《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 基于TMS320VC5409的嵌入式WEB數據服務器的實現

基于TMS320VC5409的嵌入式WEB數據服務器的實現

2008-07-07
作者:高 翔1, 李 凌2, 劉廣存3

??? 摘 要: 設計開發了一種適用于對數據傳輸率有一定要求的WEB數據服務器系統。系統以TMS320VC5409 DSP為主處理器,通過與RTL8019AS芯片連接實現了以太" title="以太">以太網接口。完成了lwIP TCP/IP" title="TCP/IP">TCP/IP協議棧" title="協議棧">協議棧在TMS320VC5409的移植,并在應用層" title="應用層">應用層實現了一個嵌入式WEB數據服務器。
????關鍵詞: 嵌入式WEB數據服務器? 數據采集? TMS320VC5409? lwIP? RTL8019AS

?

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

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

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

???????????????????????
??? 在嵌入式系統中實現以太網接口的主要困難:一是合適的接口芯片較少,集成的方案(即處理器內嵌以太網接口)成本又相對較高;二是TCP/IP協議棧的實現。隨著嵌入式系統網絡應用的發展,第一個困難會隨著芯片技術的發展逐漸解決,而對于第二個困難,使用開源代碼是一個經濟的合適選擇。目前,對大多數應用來說,本文的系統都是一個可行的低成本方案,能夠滿足一定的數據傳輸率要求,且因為C5409 DSP接口還有帶寬裕量,系統具有較高的可擴展性,可以連接更快傳輸率的以太網芯片。本文設計的嵌入式WEB數據服務器,已在一個聲發射(AE)傳感器數據采集及分析系統中得到使用并達到了預期的效果。
參考文獻
[1] ?曹宇, 魏豐,胡士毅. 用51單片機控制RTL8019AS實現以太網通訊. 電子技術應用, 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.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 黄网站色成年片在线观看 | 非洲精品性hd | 全黄大全大色全免费大片 | 性欧美video在线播放 | 色中色欧美 | 最近高清无吗免费看 | 欧美午夜一区二区福利视频 | 亚洲插插 | 国产精品免费一区二区三区 | 一级免费黄色毛片 | 久草视频在线网 | 黄漫无遮挡免费网站3d | 黄色一级片中国 | 天天拍夜夜添久久精品中文 | 一级特黄色大片 | 香蕉视频污片 | 曰批全过程免费视频免费看 | xxxx日本xx| 日本国产片 | 国产特黄特色a级在线视 | 黄色录像a | 香蕉污污视频 | 日韩美一区二区 | 二级黄色毛片 | 在线成人tv天堂中文字幕 | 极品嫩模众筹福利写真视频 | 日韩伦理剧 | 最近免费中文字幕高清大全 | 人人公开免费超级碰碰碰视频 | 五月婷婷爱 | 日韩免费小视频 | 亚洲国产欧美久久香综合 | 成人免费真人毛片视频 | 欧美日韩精品国产一区在线 | 波多野结衣 一区 | 国产精品2022最新在线观看 | 男人把女人下部桶爽的视频 | 午夜tv| 超薄全透明无内肉色丝袜 | 1717国产精品视频免费 | www.色综合 |