當前位置:首頁 > 電源 > 數(shù)字電源
[導讀]設(shè)計開發(fā)了一種適用于對數(shù)據(jù)傳輸率有一定要求的WEB數(shù)據(jù)服務器系統(tǒng)。系統(tǒng)以TMS320VC5409 DSP為主處理器,通過與RTL8019AS芯片連接實現(xiàn)了以太網(wǎng)接口。完成了lwIP TCP/IP協(xié)議棧在TMS320VC5409的移植,并在應用層實現(xiàn)了一個嵌入式WEB數(shù)據(jù)服務器。

在較高速的嵌入式應用場合,普通單片機[1]的I/O接口速度以及協(xié)議處理速度經(jīng)常成為網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)钠款i,因而并不是一種合適的設(shè)計選擇。這些系統(tǒng)中的主處理器通常都會有較快的處理和接口速度,將這些快速接口與以太網(wǎng)控制芯片進行連接可以實現(xiàn)滿足一定數(shù)據(jù)傳輸速率要求的網(wǎng)絡(luò)應用。本文基于TMS320VC5409數(shù)字信號處理器[2]和RTL8019AS以太網(wǎng)控制器[3]設(shè)計了一種適用于傳輸傳感器采集到的大量數(shù)據(jù)及處理后信息的快速以太網(wǎng)接口,并在此基礎(chǔ)上通過移植與應用lwIP TCP/IP協(xié)議棧[4]實現(xiàn)了嵌入式WEB數(shù)據(jù)服務器。
1 以太網(wǎng)控制器RTL8019AS[3]
    目前以太網(wǎng)技術(shù)在計算機系統(tǒng)中已經(jīng)發(fā)展到千兆位的帶寬速度,但多數(shù)以太網(wǎng)接口芯片都是通過PCI總線與CPU連接。而在嵌入式系統(tǒng)中,除非系統(tǒng)內(nèi)的高速處理器本身帶有PCI接口,一般很難直接與這類芯片進行連接。從經(jīng)濟與效率的角度考慮,嵌入式系統(tǒng)采用相對慢速的10M以太網(wǎng)接口芯片RTL8019AS是合適的。RTL8019AS是一種被廣泛應用的廉價以太網(wǎng)接口控制器,與CPU的接口為ISA總線,可以與各類處理器的外部接口進行輕松連接。芯片的特點如下:
    (1) 符合Ethernet II和IEEE802.3 10Base5,10Base2,10BaseT;
    (2) 全雙工,收發(fā)速率可同時達到10Mbps;
    (3) 內(nèi)置16KB SRAM,用于收發(fā)緩存環(huán),降低對主處理器的速度要求;
    (4) 支持8/16位可選寬數(shù)據(jù)總線,8條中斷申請線以及16個可選I/O基地址;
    (5) 支持UTP、AUI和BNC接口自動檢測,另外集成的10BaseT傳輸接口支持對接收線對的自動極性校正;
    (6) 支持4個診斷LED引腳的可編程輸出。
2 TMS320VC5409與RTL8019AS的接口
2.1 C5409外部總線接口的特點[2]
   C5409外部總線接口是其與多種外部器件進行連接的主要通路。通過外部總線上的各種控制信號引腳,C5409可以實現(xiàn)將對外部接口的訪問映射到對數(shù)據(jù)存儲空間、程序存儲空間或I/O空間的訪問。當映射到存儲空間時,接口的數(shù)據(jù)訪問率可以達到CPU的運行頻率,即100MHz,10ns為一個訪問周期,而映射到I/O空間時,最快可以達到20ns一個訪問周期,都足夠滿足訪問ISA總線的速率要求(RTL8019AS的最快ISA I/O寫速度50MHz,讀速度更低)。只要將RTL8019AS映射在I/O空間即可。在I/O空間訪問時,除了數(shù)據(jù)和地址總線外,主要的控制信號是IS#、R/W#、IOSTRB#信號。
2.2 C5409與RTL8019AS的連接
    具體的接口如圖1所示。為簡化系統(tǒng),選擇將RTL8019AS配置在跳線模式,可以直接在配置引腳處進行跳線或使用C5409的I/O引腳來模擬配置電平,這樣就省去了外接9346配置芯片的必要。需要注意的是用C5409的I/O引腳來模擬配置電平時,RTL8019AS的復位信號RSTDRV需要最后拉低,因為配置信號的狀態(tài)都是在RSTDRV的下降沿鎖定的。

                   
    (1) 雖然RTL8019AS的地址總線有20根,但在不使用芯片的Boot ROM和PnP功能時,只需要其中的SA0~SA9,這樣可以保證RTL8019AS的I/O基地址為200H~300H,共占用基地址之后的32字節(jié)空間。
    (2) 數(shù)據(jù)總線是雙向總線,需要考慮芯片間的電平匹配問題。C5409是3.3V接口器件而RTL8019AS的接口電平為5V,因此需在總線上加入一個兼容3.3V和5V電平的驅(qū)動芯片,如LVTH16245A。另外由RTL8019AS向C5409輸出的中斷和READY信號也需要通過驅(qū)動芯片進行電平匹配。中斷信號通過非門翻轉(zhuǎn)。
    (3) 由于C5409沒有分離的讀寫控制信號,需要通過譯碼的方法來與RTL8019AS進行連接。對DSP的IS#、R/W#和IOSTRB#信號譯碼可以獲得RTL8019AS的IORB和IOWB信號,這里需要選擇快速的譯碼芯片以滿足控制信號的時序要求。
    (4) JP拉高表示工作在跳線模式,IOCS16B拉高表示配置數(shù)據(jù)總線的寬度為16位,AEN驅(qū)動為低。RTL8019AS的復位信號RSTDRV直接以DSP的XF引腳控制。
2.3 C5409對RTL8019AS控制與讀寫
    (1)初始化RTL8019AS。首先在寄存器頁0,通過配置三個指針寄存器BNRY、PSTART、PSTOP來定義接收緩存區(qū)環(huán),通過配置寄存器ISR和IMR來清除使能中斷,然后在寄存器頁1配置物理地址寄存器PAR0~PAR5、多播地址寄存器MAR0~MAR7(在無需接收多播以太幀RCR寄存器的AM為0,MARx無需配置)及當前頁指針寄存器CURR,最后回到寄存器頁0,初始化數(shù)據(jù)配置寄存器DCR、接收配置寄存器RCR和發(fā)送配置寄存器TCR并向控制寄存器寫入開始命令。
    (2)接收以太幀。芯片在接收到一個完整的以太幀并校驗正確后就會發(fā)出一個中斷并置狀態(tài)寄存器ISR和RSR的PRX位,表示正確接收到一幀以太網(wǎng)數(shù)據(jù)。這時DSP就可以通過RTL8019AS的遠程DMA通道從芯片內(nèi)部的接收緩存區(qū)環(huán)中讀出以太數(shù)據(jù)幀。在每個接收到的以太數(shù)據(jù)幀之前,RTL8019AS會向這一幀的接收緩存區(qū)的頭四個字節(jié)中寫入接收狀態(tài)、下一包(即下一個以太幀)緩存區(qū)頭指針、當前接收幀的字節(jié)數(shù)等信息。在8位模式時如圖2所示。這里字節(jié)長度包括接收到的4字節(jié)校驗數(shù)據(jù)。接收過程受到三個寄存器的控制:BNRY、RBCR0和RBCR1,BNRY寄存器指向待接收數(shù)據(jù)幀在緩存區(qū)環(huán)中的首頁起始地址,而RBCR0和RBCR1指定了待接收數(shù)據(jù)的長度。DSP通過初始化這三個寄存器并向RTL8019AS發(fā)出“Remote read”命令來將數(shù)據(jù)從緩存區(qū)環(huán)讀出。Remote DMA通道會自動根據(jù)這三個寄存器來控制讀出的起始地址和長度。此外,還可以使用“Send Packet”命令來接收數(shù)據(jù),這時BNRY、RBCR0和RBCR1寄存器是自動初始化的。

                               
    (3)發(fā)送以太幀。發(fā)送過程受到四個寄存器的控制:CRDA0、CRDA1、RBCR0和RBCR1,其中CRDA0和CRDA1寄存器指向待發(fā)送數(shù)據(jù)幀將要寫入到緩存區(qū)環(huán)中的起始地址,而RBCR0和RBCR1指定了待發(fā)送數(shù)據(jù)的長度。DSP通過初始化這幾個寄存器并向RTL8019AS發(fā)出“Remote write”命令來將數(shù)據(jù)寫到緩存區(qū)環(huán)。Remote DMA通道會自動根據(jù)三個寄存器來控制寫入的起始地址和長度。為了向以太網(wǎng)發(fā)送數(shù)據(jù)幀,DSP只要將控制寄存器CR的TXP置為1即可,RTL8019AS會自動完成數(shù)據(jù)的校驗并發(fā)送。
3 TCP/IP協(xié)議的實現(xiàn)
    由于嵌入式硬件上處理資源和實時性要求的限制,其TCP/IP協(xié)議的實現(xiàn)與在通常的計算機上實現(xiàn)是有差別的,要求占用存儲空間盡可能的小,處理速度足夠快,因此一般都要針對應用的特點對TCP/IP協(xié)議進行必要的裁剪與優(yōu)化。
    較普遍的TCP/IP協(xié)議嵌入式實現(xiàn)主要有兩種方案,一是基于各種實時操作系統(tǒng)的TCP/IP協(xié)議棧,如VxWorksμC/OS-II、μClinux、CMX-RTOS等嵌入式實時操作系統(tǒng)都內(nèi)嵌或有可配置的TCP/IP協(xié)議棧實現(xiàn)模塊;另外一種方式是直接在嵌入式硬件上實現(xiàn),如Microchip公司為其PIC單片機設(shè)計的TCP/IP協(xié)議棧。對一些處理任務比較簡單而且實時性要求很高的系統(tǒng)來說,直接實現(xiàn)的方式是較好的選擇。在本系統(tǒng)中,根據(jù)具體應用的特點,選擇對開源軟件lwIP(a light-weight implementation of the TCP/IP protocol suite)[4]進行適當?shù)牟眉艉髮⑵湟浦驳紺5409 DSP上,直接實現(xiàn)了IP、ARP、TCP、ICMP協(xié)議和以太網(wǎng)驅(qū)動,代碼長度28KB,占用數(shù)據(jù)空間9KB。
    應用層與lwIP協(xié)議棧的接口可以有兩種方式,一是通過調(diào)用lwIP API函數(shù);二是直接調(diào)用協(xié)議的實現(xiàn)模塊,即使用原始API函數(shù)。lwIP API函數(shù)為上層應用提供了使用協(xié)議棧常態(tài)的順序的編程模式,即基于“open-read-write-close”模式,這是一種類BSD socket的API。而原始API是一種基于回調(diào)(callback)機制的應用程序接口,調(diào)用這種接口使得應用層與lwIP協(xié)議棧聯(lián)系得更緊密,要求應用程序員對lwIP的底層機制了解得更透徹,因此相對來說編寫程序會更困難一些,程序代碼也更難理解。然而好處也顯而易見——處理速度更快,占用內(nèi)存更小,對小型系統(tǒng)而言很有意義。
4 嵌入式WEB數(shù)據(jù)服務器應用
    本系統(tǒng)通過調(diào)用協(xié)議棧的原始應用層接口來實現(xiàn)嵌入式WEB數(shù)據(jù)服務器應用,其原理如圖3所示。其作用是將傳感器采集到的數(shù)據(jù)或數(shù)據(jù)處理后的信息按照預先約定的格式存儲在數(shù)據(jù)緩存中,每收到一次網(wǎng)絡(luò)上的主機發(fā)來的“Get AE”命令就將處理的結(jié)果發(fā)送出去。ae_init函數(shù)用來在初始化時啟動數(shù)據(jù)服務應用;在建立TCP連接時ae_accept函數(shù)用來在協(xié)議控制塊PCB中注冊應用層處理函數(shù),每次在建立連接時都會被協(xié)議棧調(diào)用;ae_recv是實際的應用層處理函數(shù),在每次接收到從對應連接上發(fā)來的應用層命令時,協(xié)議棧都會調(diào)用它做出合適的處理和響應,這里主要是用來向客戶端主機傳輸傳感器數(shù)據(jù)或信息。在未進行優(yōu)化的情況下,在一個正常工作(有外部Internet連接)的局域網(wǎng)內(nèi),系統(tǒng)能達到最少110KBps的傳輸速率,基本滿足設(shè)計要求。若需進一步提高傳輸帶寬,可以應用100M或更高速度的網(wǎng)卡芯片與DSP進行接口。

                       
    在嵌入式系統(tǒng)中實現(xiàn)以太網(wǎng)接口的主要困難:一是合適的接口芯片較少,集成的方案(即處理器內(nèi)嵌以太網(wǎng)接口)成本又相對較高;二是TCP/IP協(xié)議棧的實現(xiàn)。隨著嵌入式系統(tǒng)網(wǎng)絡(luò)應用的發(fā)展,第一個困難會隨著芯片技術(shù)的發(fā)展逐漸解決,而對于第二個困難,使用開源代碼是一個經(jīng)濟的合適選擇。目前,對大多數(shù)應用來說,本文的系統(tǒng)都是一個可行的低成本方案,能夠滿足一定的數(shù)據(jù)傳輸率要求,且因為C5409 DSP接口還有帶寬裕量,系統(tǒng)具有較高的可擴展性,可以連接更快傳輸率的以太網(wǎng)芯片。本文設(shè)計的嵌入式WEB數(shù)據(jù)服務器,已在一個聲發(fā)射(AE)傳感器數(shù)據(jù)采集及分析系統(tǒng)中得到使用并達到了預期的效果。
參考文獻
[1]  曹宇, 魏豐,胡士毅. 用51單片機控制RTL8019AS實現(xiàn)以太網(wǎng)通訊. 電子技術(shù)應用, 2003,29(1):21-23.
[2]  TMS320VC5409 Fixed-point digital signal processor datasheet. Texas Instruments Inc, 2000.
[3]  RTL8019AS datasheet. RealTek Semiconductor Corp, 2005, 8.

[4]  Adam Dunkels. Design and implementation of the lwIP TCP/IP stack.http://www.sics.se/

~adam/lwip/doc/lwip.pdf,  2001, 2.

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉