當20世紀70和80年代采用RS-232串行協(xié)議來解決電子終端及個人電腦的需求時,很少有人會想到它會成為這樣一種普適標準特性。數(shù)以千計的工業(yè)設備是基于RS-232接口開發(fā)出來的。但對于電子通信而言,發(fā)展的步伐已進入到一個更高水平。
今天,以太網(wǎng)是用于本地和廣域網(wǎng)應用、定義完善的標準。無數(shù)設備通過以太網(wǎng)TCP/IP協(xié)議訪問互聯(lián)網(wǎng)。盡管存在其它物理層實現(xiàn),但直到電子通信因需要引入更快、更先進的協(xié)議之前,以太網(wǎng)仍將會占有相當話語權(quán)。
無數(shù)新設計仍將以太網(wǎng)作為主要網(wǎng)絡標準。其它設計可能采用不同的物理接口,但仍將采用TCP/IP來接入互聯(lián)網(wǎng)等網(wǎng)絡。事實上,廣為接受的以太網(wǎng)TCP/IP協(xié)議是互聯(lián)網(wǎng)得以在過去二十年迅速發(fā)展的主要原因。但RS-232又面臨哪些情況?
持續(xù)發(fā)展
數(shù)以百萬的電子產(chǎn)品仍將RS-232作為一種串行接口。這種情況在發(fā)展中國家尤其如此,這些國家和地區(qū)的開發(fā)商可能缺乏足夠的預算以從傳統(tǒng)系統(tǒng)升級到新技術。因此,必須考慮某些形式的可持續(xù)發(fā)展。
RS-232串口轉(zhuǎn)以太網(wǎng)適配器,即用來將傳統(tǒng)系統(tǒng)轉(zhuǎn)變?yōu)榫W(wǎng)絡應用全新環(huán)境的進化鏈中的“缺失環(huán)節(jié)”,是在這種新環(huán)境下仍能發(fā)揮作用的具成本效益的方式。當評估一個串口轉(zhuǎn)以太網(wǎng)橋方案時,開發(fā)人員應考慮如下因素。
小尺寸:優(yōu)化的PCB設計,以及集成度更高因而數(shù)量更少的器件,使得設計項目的體積和成本都得以降低;工作電壓:應與RS-232和RS-485等通用串行通信標準兼容。適應性:強烈建議采用可定制和分層的軟件以及靈活的硬件設計以使該設計更適用于不同的應用;易用性:用于配置和監(jiān)控的簡單接口,如圖形用戶界面和LED指示燈等提升了易用性;性能:橋接方案應在不給用戶帶來任何不便的情況下,實現(xiàn)RS-232和/或RS-485與以太網(wǎng)的轉(zhuǎn)換。建議使用一個帶串行通信接口的微控制器和一個以太網(wǎng)媒體訪問控制器(MAC)。為降低成本,設備只需具有恰好能滿足應用所需的性能就好;系統(tǒng)成本:開發(fā)人員應盡可能降低系統(tǒng)成本。
實現(xiàn)成本效益
當你試圖把新舊系統(tǒng)連接起來時,成本效益是什么?即軟件必須是互補的而硬件成本應盡量低。因此,強烈建議采用不花成本但仍然具有魯棒性且可定制的軟件方案。
現(xiàn)成的操作系統(tǒng)和協(xié)議棧可以簡化這一工作。與從頭開發(fā)自己的任務調(diào)度器、以太網(wǎng)TCP/IP協(xié)議棧或應用相比,添加、修改或刪除軟件模塊所花的力氣要小得多。目前,你可以找到各種各樣的免授權(quán)和開源協(xié)議棧及操作系統(tǒng)。但選擇的時候仍需明智,因為它們與硬件和所能獲得的支持息息相關。
你可能有能夠滿足串口轉(zhuǎn)以太網(wǎng)橋接功能的應用。但如果所選處理器件(微處理器或微控制器)功能超過了性能要求,則成本就可能過高。而如果所選器件的性能不夠,那么最終產(chǎn)品的功能將滿足不了應用需求。
微處理器可以輕松完成這個任務。但微控制器已經(jīng)發(fā)展到可以運行操作系統(tǒng)且能以低得多的成本提供以太網(wǎng)連接這樣一個階段。采用一款帶有小容量SRAM和閃存的低端32位微控制器可以輕松實現(xiàn)一個串口轉(zhuǎn)以太網(wǎng)的橋接設計。
使設計和定制更容易
即使你已經(jīng)找到了具有所需性能和外設以及足夠的SRAM和閃存以運行簡化的操作系統(tǒng)和基本以太網(wǎng)協(xié)議棧的具有成本效益的微控制器,你仍需把這些軟件和硬件模塊整合在一起。工程時間會影響系統(tǒng)成本,那么,該如何簡化開發(fā)工作呢?
建議采用分層軟件架構(gòu)。可以把所有不同模塊整合在一起創(chuàng)建一個可組織開發(fā)進程的軟件環(huán)境。這會直接影響工程進度以及后繼對串口轉(zhuǎn)以太網(wǎng)橋的定制。
這種分層軟件模型基于把幾個主要軟件模塊分成不同層以及從本質(zhì)上對所用的硬件實施抽象。硬件抽象層(HAL)被定義為:通過HAL/HW接口直接訪問硬件資源的軟件組件集,它們包括外設、配置寄存器,優(yōu)化的匯編器程序(帶合適的原型)、預編譯的目標代碼庫或任何其它硬件相關資源。
這樣,若以后需對軟件設計進行修改,就可將其移植到更高端的微控制器和不同的硬件平臺。軟件可容易地“進化”,并且當新增外設甚至改變協(xié)議和硬件時可以平穩(wěn)過渡,從而使更多軟件可復用于未來改善的設計。
集成
圖1詳解了一個典型的分層軟件架構(gòu)。應用軟件工作在操作系統(tǒng)(FreeRTOS)下,它處理以太網(wǎng)協(xié)議棧(LwIP)和微控制器外設(見下表)。硬件包括飛思卡爾的32位MCF51CN128微控制器,所需外部元件極少。
在商用串口轉(zhuǎn)以太網(wǎng)橋應用中,F(xiàn)reeRTOS開源軟件提供了足夠的功能。它處理信號、多路復用、中斷、RAM管理、搶占式任務、棧空間和任務優(yōu)先級等工作。FreeRTOS得到廣泛支持,這款嵌入式微控制器業(yè)界的知名軟件已在至少19種架構(gòu)中得到應用。代碼精煉是其一個關鍵優(yōu)勢。
所選的開源TCP/IP協(xié)議棧處理所有以太網(wǎng)事務。因其平衡了功能性和低RAM /閃存需求,所以在串口轉(zhuǎn)以太網(wǎng)橋應用中受到極力推薦。在編譯時,LwIP占用12.15kb的RAM來啟動串口橋所需的所有TCP/IP服務。
在運行時,堆棧分配并釋放一些緩沖區(qū),并從堆棧中獲取所需的RAM。它使用非常有限的一組網(wǎng)絡緩沖區(qū)發(fā)送和接收來自應用更高層的信息。支持的協(xié)議包括TCP/IP、ICMP、UDP、專門的RAW API(用于該串口橋)、可選的插孔API、DHCP、PPP以及ARP等。
32位微控制器MCF51CN128包含128kb閃存和24kb SRAM。其片上存儲器足夠運行串口轉(zhuǎn)以太網(wǎng)橋應用以及操作系統(tǒng)和以太網(wǎng)棧。
MCF51CN128工作在50MHz最高頻率提供所需功能。它集成了一個快速以太網(wǎng)控制器(FEC)和諸如UART(SCI)、SPI和I2C等串行接口。其余的通用I/O(GPIO)引腳支持驅(qū)動面向狀態(tài)驗證的LED等其它工作。該芯片適合這一應用并具有低BOM成本。
串口轉(zhuǎn)以太網(wǎng)橋?qū)崿F(xiàn)
為簡單的串口轉(zhuǎn)以太網(wǎng)橋研制了一個參考設計作為交鑰匙方案,它具有Web服務器、FTP服務、電子郵件客戶端、SD-CARD支持及其它吸引人的特性。為簡化設計并能最大限度地在不同產(chǎn)品設計中復用該設計布局,可將該系統(tǒng)分為兩個主要硬件模塊:最小系統(tǒng)和演示系統(tǒng)(圖2)。
最小系統(tǒng)包括實現(xiàn)以太網(wǎng)功能所需的所有硬件。這個最小的硬件模塊只有1.15×1.55英寸大。通過提供一個未穩(wěn)壓的3.7到5.5V電源,這款以太網(wǎng)功能的最小實現(xiàn)不再需要其它器件。
演示系統(tǒng)則帶有uSD卡插座、按鈕和LED等其它功能。頂層和底層分別可見用于隔離這兩個系統(tǒng)的零歐姆電阻(圖3)。斷開零歐姆電阻就把演示系統(tǒng)和最小系統(tǒng)隔離開來。
對于這個具體實現(xiàn)來說,以太網(wǎng)接口通過以太網(wǎng)電纜中兩對空閑電纜對參考設計板供電。請注意,這不是以太網(wǎng)供電(PoE)標準。UART引腳(+5.5 V)、電源插座連接器以及經(jīng)過穩(wěn)壓的3.3V電源接口也可供電并支持特定的系統(tǒng)功能(圖2)。利用PCB上的削切線(cut-trace)可實現(xiàn)所有這些選項。
該串口橋可通過一組命令工作在配置模式,其中UART(SCI)或SPI用于配置功能。在配置模式,可改變MAC、IP、掩膜、網(wǎng)關和服務器地址等各種選項。
可以指定是使用靜態(tài)還是動態(tài)地址,而諸如連接哪個端口以及客戶機/服務器實現(xiàn)地址等TCP參數(shù)也是可配置的。可修改的UART參數(shù)包括端口、波特率、奇偶校驗、位數(shù)、停止位和流量控制(硬件或軟件)。最后,可對SPI進行端口、波特率、極性、相位、主/從和輪詢/中斷處理等配置。
當該參考設計工作在橋模式,串口收到的字符被發(fā)送到以太網(wǎng),反之亦然。串口轉(zhuǎn)以太網(wǎng)橋工作在兩個接口之間,其目的是在這兩個接口間提供高速數(shù)據(jù)傳輸。
連接串口與以太網(wǎng)
快速以太網(wǎng)控制器(FEC)是飛思卡爾的MAC實現(xiàn)。FEC在緩沖區(qū)描述符表中存儲RX和TX數(shù)據(jù)包。緩沖區(qū)描述符包括大多緩沖區(qū)描述符狀態(tài)和控制標志、接收或發(fā)送數(shù)據(jù)的緩沖區(qū)長度以及與接收或傳送操作相關的緩沖區(qū)指針。
當諸如以太網(wǎng)這樣的高速接口試圖連接到UART或SPI等低速接口時,必須采用流量控制協(xié)議作為速度適配器。以太網(wǎng)沒有流量控制功能,這點與TCP/IP不同。UART具有軟件和硬件流量控制功能。
當應用需要進行持續(xù)數(shù)據(jù)傳送時,若串口橋應用沒能以同一速率對數(shù)據(jù)進行處理,則數(shù)據(jù)會迅速填滿UART的軟件緩沖器。確定工作波特率和UART緩沖區(qū)大小時需格外小心,因為當使用實時操作系統(tǒng)(RTOS)時,這兩個因素會影響到運行任務的實現(xiàn)及其優(yōu)先級。
SPI通信沒有流量控制。不應改變其軟件驅(qū)動器以在通信中增加額外的頭文件。應在應用層通過采用響應或其它定制流量控制協(xié)議來實現(xiàn)流量控制。
借助流量控制協(xié)議可以輕松中止通訊。但若頻繁發(fā)生這種中止情況,通信性能將會降低,特別是對諸如UART和SPI等串口協(xié)議來說。可以通過UART或SPI硬件緩沖區(qū)(通常1~4字節(jié)長)解決該性能問題。為盡可能減少延誤,采用中斷來通知應用橋何時可以發(fā)送字符。
但是,向UART硬件緩沖區(qū)要求可用空間的中斷請求和緩沖區(qū)相應該請求之間的延遲必須予以考慮。通過在橋應用和UART控制器間加入軟件緩沖區(qū)可縮短該延遲。采用這種方式,應用橋可填充軟件緩沖區(qū),而UART ISR(中斷服務程序)可逐字符地取走數(shù)據(jù),直至軟件緩沖區(qū)被清空。該技術減少了流量控制中止通信的次數(shù),提升了整體性能。對UART接收來說,軟件緩沖區(qū)對存儲所有可以接收到的字符來說很重要。
以太網(wǎng)數(shù)據(jù)包由數(shù)據(jù)和協(xié)議報頭組成。對串口轉(zhuǎn)以太網(wǎng)橋應用而言,有效的以太網(wǎng)數(shù)據(jù)包是通過在數(shù)據(jù)部分使用可能多的字節(jié)數(shù)組成。這將抵消所需報頭部分帶來的開銷。
應用層(串口橋)通過使用FIFO等軟件緩沖區(qū)進行數(shù)據(jù)排列和解排列解決了該問題。可采用獨立的串口接收(Rx)和發(fā)送(TX)緩沖區(qū)來存儲應用無法一次處理的所有信息。
本文小結(jié)
許多設備內(nèi)基于串行的接口(RS-232、RS-485和SPI)無法提供類似以太網(wǎng)協(xié)議所實現(xiàn)的更強的連接能力。串口轉(zhuǎn)以太網(wǎng)橋是解決該問題的一個具成本效益的方案。在設計這種轉(zhuǎn)換橋時,必須把結(jié)構(gòu)和分層軟件與具成本效益的硬件結(jié)合起來以滿足應用對功能的要求。我們采用Free-RTOS、LightweightIP(以太網(wǎng)-TCP/IP棧)和飛思卡爾的MCF51CN128嵌入式控制器為簡單串口轉(zhuǎn)以太網(wǎng)橋構(gòu)建了一個參考設計。
來源;電子工程網(wǎng)
評論
查看更多