《電子技術(shù)應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 業(yè)界動態(tài) > 基于TMS320F2812 DSP的網(wǎng)絡通信系統(tǒng)設計

基于TMS320F2812 DSP的網(wǎng)絡通信系統(tǒng)設計

2009-06-18
作者:關宗安, 仲叢久, 張芝賢,

??? 摘? 要:研究了DSP嵌入式系統(tǒng)連接以太網(wǎng)進行數(shù)據(jù)傳輸?shù)姆椒?。本系統(tǒng)采用了TMS320F2812 DSP作為主處理器,利用以太網(wǎng)控制器芯片RTL8019AS實現(xiàn)DSP系統(tǒng)與PC機之間的連接,,完成通過網(wǎng)線從PC機傳輸數(shù)據(jù)到DSP,DSP再將數(shù)據(jù)通過網(wǎng)線回傳到PC機上顯示的基本功能,。實驗結(jié)果表明,,基于DSP實現(xiàn)與以太網(wǎng)之間的互聯(lián)是切實可行的,,在嵌入式實時多任務環(huán)境中,,將以太網(wǎng)通信作為多個任務中的一個,可以根據(jù)不同場合的需求進行通信方式的選擇,。?

??? 關鍵詞: DSP,; 控制,; 以太網(wǎng),; 網(wǎng)絡通信

?

??? 以太網(wǎng)經(jīng)過20多年的發(fā)展,已經(jīng)成為現(xiàn)代互聯(lián)網(wǎng)絡中底層連接不可或缺的一部分,,它組網(wǎng)方便,,具有更好的開放性,成為當今最受歡迎的局域網(wǎng)之一,。數(shù)字信號處理器(DSP)芯片作為一種特殊的嵌入式微處理器系統(tǒng),,是專門為實現(xiàn)各種數(shù)字信號處理算法而設計的,具有嵌入式的協(xié)處理器和用于快速數(shù)據(jù)處理的并行數(shù)據(jù)通道,,其卓越的性能,、不斷上升的性價比及日漸完善的開發(fā)方式使它的應用領域越來越廣泛,因此嵌入式網(wǎng)絡開發(fā)的應用前景十分廣闊,,已經(jīng)成為研究的熱點,。如何在DSP與PC機之間高速、可靠地進行通信,,如何借鑒PC聯(lián)網(wǎng)的成功經(jīng)驗將DSP聯(lián)網(wǎng),,甚至與Internet對接,最直接的想法就是設計DSP與網(wǎng)卡的接口電路,,通過對網(wǎng)卡直接編程,,即可實現(xiàn)局域網(wǎng)內(nèi)任意站點之間的通信。?

1 總體方案設計 ?

??? 為實現(xiàn)網(wǎng)絡通信控制系統(tǒng)的功能,,本系統(tǒng)采用模塊化結(jié)構(gòu),。系統(tǒng)主要由DSP主控部分、網(wǎng)絡接口和UDPTest組成,。DSP主控部分主要完成信息處理和記錄,、控制并調(diào)度其他部分正常工作。網(wǎng)絡接口部分對傳來的信號進行處理,,檢測DSP,、PC機的狀態(tài),確認后將信號按要求的傳送命令傳送出去,。UDPTest用于對指定地址的接收和廣播的數(shù)據(jù)包進行顯示,。以太網(wǎng)接口芯片部分完成數(shù)據(jù)網(wǎng)上傳輸?shù)目刂啤;贒SP的網(wǎng)絡傳輸?shù)膶崿F(xiàn)系統(tǒng)結(jié)構(gòu)框圖如圖1所示,。?

?

?

2 硬件電路設計?

??? RTL8019AS以太網(wǎng)控制器實現(xiàn)了以太網(wǎng)媒介訪問層(MAC)和物理層(PHY)的全部功能,。在本系統(tǒng)中,RTL8019AS采用跳線模式,,將JP管腳經(jīng)過一個10 kΩ電阻上拉接到5 V電源上,。基地址的選擇通過BD0~BD3管腳決定,,直接將其懸空,,基地址選擇300H,其地址范圍為0300H~031FH,。中斷選擇由BD4~BD6決定,,將其全部接入低電平,選擇中斷INT0,。AUI管腳決定RTL8019AS與以太網(wǎng)連接方式,,AUI為低電平表示是BNC或是UTP接口,所以直接將其懸空,。網(wǎng)絡接口的具體類型由PL0(BA14),、PL1(BD7)決定,將其接低電平,,選擇自動檢測模式,,即RTL8019AS會自動檢測接口類型,如10Base-T是電纜信號則選擇接口類型為UTP,, 否則選擇接口類型為BNC,。?

??? 由于RTL8019AS工作電壓為5 V,而數(shù)字信號處理器TMS320F2812的工作電壓為3.3 V,,所以RTL8019AS的輸出信號要經(jīng)過電平轉(zhuǎn)換,,中斷信號也要經(jīng)過電平轉(zhuǎn)換反向送給DSP。TMS320F2812的輸出電平符合RTL8019AS的輸入電平范圍,,但是為了便于DSP與RTL8019AS的邏輯控制,,還是通過譯碼電平變換以后將其連接。譯碼,、電平變換及反向功能由74LVTH16245完成,,采用I/O 方式RTL8019AS 交換數(shù)據(jù)。ISA為了兼容的需要設置了IOCS16B 信號線,,DSP與RTL8019AS交換的數(shù)據(jù)為16位寬,,所以將其通過10 kΩ上拉電阻接5 V電源。RTL8019AS的IOWB,、IORB,、AEN信號線通過DSP的IS,、IOSTRB、R/W這三根線譯碼得到,。?

??? TMS320F2812與RTL8019AS的接口如圖 2所示,。?

?

?

3? 軟件系統(tǒng)的設計?

3.1主程序的設計 ?

??? 本系統(tǒng)主要是在嵌入式系統(tǒng)中實現(xiàn)TCP/IP協(xié)議棧,主要采用以太網(wǎng)IEEE802.3,、IP,、UDP、ARP等協(xié)議作為通信協(xié)議,,傳輸數(shù)據(jù)通過以太網(wǎng)控制器完成,。其主程序主要完成從UDP數(shù)據(jù)包中解析出完整的CAN協(xié)議報文,并存入數(shù)據(jù)緩沖區(qū)A中,。同時,,也可以將數(shù)據(jù)緩沖區(qū)B中完整的CAN協(xié)議報文封裝成UDP數(shù)據(jù)報,,然后將其發(fā)送到以太網(wǎng)上,。?

??? 在數(shù)據(jù)發(fā)送前,先要對待傳輸?shù)臄?shù)據(jù)進行協(xié)議封裝,。以UDP數(shù)據(jù)報為例,,首先對原始數(shù)據(jù)添加UDP頭,包括源端口,、目的端口,、UDP數(shù)據(jù)長度和校驗和4個字段,然后再添加IP頭(包括源IP地址,、目的IP地址),、校驗和等字段,最后封裝以太網(wǎng)IEEE802.3幀,,包括目的CRC地址,、源MAC地址和以太網(wǎng)幀總長度。其中源MAC地址為本地物理地址,,由程序在初始化時設定,。而IEEE802.3幀結(jié)構(gòu)中的CRC校驗由以太網(wǎng)硬件自動完成。至此,,構(gòu)造了一個完整的UDP數(shù)據(jù)報,,就可以交給RTL8019AS進行發(fā)送了。對于接收到的數(shù)據(jù)包,,主處理器對其進行拆解,,將解包得到的IP地址與本地IP地址相比較,同時進行校驗和驗證,,如果IP一致,,則接收該數(shù)據(jù)包,否則將其丟棄;如果校驗和不正確,,則表示數(shù)據(jù)包傳輸過程中發(fā)生差錯,,但不產(chǎn)生差錯報文,由應用層發(fā)現(xiàn)丟失的數(shù)據(jù)包并請求重傳,。?

3.2 主程序流程圖?

??? 主程序流程圖如圖3所示,,DSP首先初始化網(wǎng)絡設備。當有數(shù)據(jù)從RJ45傳過來時,,DSP對數(shù)據(jù)包進行分析,,如果是ARP(物理地址解析協(xié)議)數(shù)據(jù)包,則程序轉(zhuǎn)入ARP處理程序,。如果是IP(網(wǎng)間協(xié)議)數(shù)據(jù)包且傳輸層使用UDP(用戶數(shù)據(jù)報協(xié)議),,端口正確,則認為數(shù)據(jù)報正確,,數(shù)據(jù)解包后,,送入數(shù)據(jù)緩沖區(qū)A,最后把數(shù)據(jù)部分通過CAN接口輸出,。反之,,如果DSP從CAN接口接收數(shù)據(jù),則將數(shù)據(jù)按照UDP協(xié)議格式打包,,送入數(shù)據(jù)緩沖區(qū)B,,由RTL8019AS將數(shù)據(jù)輸出到局域網(wǎng)中。?

?

?

3.3 中斷服務子程序的設計?

??? 本系統(tǒng)采用中斷方式來處理RTL8019AS 的收發(fā),。當主程序響應RTL8019AS的中斷時,,根據(jù)中斷寄存器(ISR)的值來判定程序的走向,中斷流程圖如圖4所示,。?

?

?

??? DSP 接收到外部INT0中斷后檢查狀態(tài)寄存器ISR,,如果PTX 位有效,則說明上一幀數(shù)據(jù)發(fā)送完成,;如果PRX 位有效,,表明接收到新的一幀數(shù)據(jù)。對于發(fā)送數(shù)據(jù),,先要進行載波沖突檢測,,在無沖突情況下,主處理器從發(fā)送物理幀隊列讀出一幀已封裝好的IEEE802.3 幀數(shù)據(jù),,通過控制器的遠程DMA 通道寫到發(fā)送緩沖區(qū),,然后向命令寄存器CR 寫入0x1E 控制字啟動發(fā)送,控制器發(fā)送完一幀數(shù)據(jù)后再次向主處理器發(fā)出發(fā)送中斷請求信號,,如果物理幀隊列不為空,,則主處理器繼續(xù)發(fā)送,,否則返回。對于接收數(shù)據(jù),,主處理器從接收緩沖區(qū)讀入一幀數(shù)據(jù)并對數(shù)據(jù)解包,,將解包得到的IP 地址與本機IP 地址比較,如果一樣,,則接收該幀數(shù)據(jù),,否則丟棄該幀數(shù)據(jù)。讀入一幀數(shù)據(jù)后判斷接收緩沖區(qū)是否為空,,不為空繼續(xù)讀取數(shù)據(jù),,否則返回。?

??? 基于DSP的網(wǎng)絡通信系統(tǒng)因其顯著的高效傳輸效果及體積小,、重量輕,、可靠性高等特點,已經(jīng)在各種家電設備,、儀器儀表以及工業(yè)生產(chǎn)中的數(shù)據(jù)采集與控制設備等領域中得到廣泛應用,,取得了良好的經(jīng)濟效益和社會效益。實驗表明, 本系統(tǒng)能夠正確快速地接入以太網(wǎng),,可以從PC機上通過網(wǎng)線傳輸數(shù)據(jù)到DSP上,,然后DSP再將數(shù)據(jù)通過網(wǎng)線回傳到PC機上顯示。采用實時操作系統(tǒng)μC/OS- II 可大幅加快軟件的開發(fā)和調(diào)試進度,。使用RTL8019AS 作為嵌入式系統(tǒng)以太網(wǎng)接口芯片是嵌入式設備接入以太網(wǎng)的一種嘗試,與使用普通的PC機作Web服務器相比,,此種方案節(jié)省費用,、可移植性好、嵌入式設備和網(wǎng)絡服務器的分離,、可以方便地連接各種嵌入式設備以及簡化了嵌入式網(wǎng)絡設備的開發(fā)等優(yōu)點,。?

參考文獻?

[1] 侯振鵬. 嵌入式C語言程序設計[M].北京:人民郵電出版社,2006.?

[2] K.-C,, Kyu-Chan Lee,, B. H. Bo H. Cho. Power?conversion circuitsfor automotive headlight using auxiliary?winding. Patent pending 10-1999.?

[3] 徐科軍,張興,,肖本賢,,等.TMS320LF/FC23系列DSP的CPU與外設[M]. 北京:清華大學出版社, 2007.?

[4] 萬山明.TMS320F281x DSP原理及應用實例[M]. 北京:北京航空航天大學出版社,2007.?

[5] 陳玉,王宗和,張旭東,,等. TMS320系列DSP硬件開發(fā)系統(tǒng)[M].北京:清華大學出版社,,2008.?

[6] (美)Travis Russell. 最新網(wǎng)絡通信協(xié)議[M]. 葉棟,黃雷君,,譯.北京:電子工業(yè)出版社,,1999.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]