??? 摘? 要:研究了DSP嵌入式系統(tǒng)連接以太網(wǎng)進(jìn)行數(shù)據(jù)傳輸?shù)姆椒ā1鞠到y(tǒng)采用了TMS320F2812 DSP作為主處理器,利用以太網(wǎng)控制器芯片RTL8019AS實(shí)現(xiàn)DSP系統(tǒng)與PC機(jī)之間的連接,,完成通過網(wǎng)線從PC機(jī)傳輸數(shù)據(jù)到DSP,,DSP再將數(shù)據(jù)通過網(wǎng)線回傳到PC機(jī)上顯示的基本功能。實(shí)驗(yàn)結(jié)果表明,,基于DSP實(shí)現(xiàn)與以太網(wǎng)之間的互聯(lián)是切實(shí)可行的,,在嵌入式實(shí)時多任務(wù)環(huán)境中,將以太網(wǎng)通信作為多個任務(wù)中的一個,可以根據(jù)不同場合的需求進(jìn)行通信方式的選擇,。?
??? 關(guān)鍵詞: DSP,; 控制; 以太網(wǎng),; 網(wǎng)絡(luò)通信
?
??? 以太網(wǎng)經(jīng)過20多年的發(fā)展,,已經(jīng)成為現(xiàn)代互聯(lián)網(wǎng)絡(luò)中底層連接不可或缺的一部分,它組網(wǎng)方便,,具有更好的開放性,,成為當(dāng)今最受歡迎的局域網(wǎng)之一。數(shù)字信號處理器(DSP)芯片作為一種特殊的嵌入式微處理器系統(tǒng),,是專門為實(shí)現(xiàn)各種數(shù)字信號處理算法而設(shè)計的,,具有嵌入式的協(xié)處理器和用于快速數(shù)據(jù)處理的并行數(shù)據(jù)通道,其卓越的性能,、不斷上升的性價比及日漸完善的開發(fā)方式使它的應(yīng)用領(lǐng)域越來越廣泛,,因此嵌入式網(wǎng)絡(luò)開發(fā)的應(yīng)用前景十分廣闊,已經(jīng)成為研究的熱點(diǎn),。如何在DSP與PC機(jī)之間高速,、可靠地進(jìn)行通信,如何借鑒PC聯(lián)網(wǎng)的成功經(jīng)驗(yàn)將DSP聯(lián)網(wǎng),,甚至與Internet對接,,最直接的想法就是設(shè)計DSP與網(wǎng)卡的接口電路,通過對網(wǎng)卡直接編程,,即可實(shí)現(xiàn)局域網(wǎng)內(nèi)任意站點(diǎn)之間的通信,。?
1 總體方案設(shè)計 ?
??? 為實(shí)現(xiàn)網(wǎng)絡(luò)通信控制系統(tǒng)的功能,本系統(tǒng)采用模塊化結(jié)構(gòu),。系統(tǒng)主要由DSP主控部分,、網(wǎng)絡(luò)接口和UDPTest組成。DSP主控部分主要完成信息處理和記錄,、控制并調(diào)度其他部分正常工作,。網(wǎng)絡(luò)接口部分對傳來的信號進(jìn)行處理,檢測DSP,、PC機(jī)的狀態(tài),,確認(rèn)后將信號按要求的傳送命令傳送出去。UDPTest用于對指定地址的接收和廣播的數(shù)據(jù)包進(jìn)行顯示,。以太網(wǎng)接口芯片部分完成數(shù)據(jù)網(wǎng)上傳輸?shù)目刂?。基于DSP的網(wǎng)絡(luò)傳輸?shù)膶?shí)現(xiàn)系統(tǒng)結(jié)構(gòu)框圖如圖1所示,。?
?
?
2 硬件電路設(shè)計?
??? RTL8019AS以太網(wǎng)控制器實(shí)現(xiàn)了以太網(wǎng)媒介訪問層(MAC)和物理層(PHY)的全部功能,。在本系統(tǒng)中,,RTL8019AS采用跳線模式,將JP管腳經(jīng)過一個10 kΩ電阻上拉接到5 V電源上,?;刂返倪x擇通過BD0~BD3管腳決定,直接將其懸空,,基地址選擇300H,,其地址范圍為0300H~031FH。中斷選擇由BD4~BD6決定,,將其全部接入低電平,,選擇中斷INT0。AUI管腳決定RTL8019AS與以太網(wǎng)連接方式,,AUI為低電平表示是BNC或是UTP接口,,所以直接將其懸空。網(wǎng)絡(luò)接口的具體類型由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為了兼容的需要設(shè)置了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)的設(shè)計?
3.1主程序的設(shè)計 ?
??? 本系統(tǒng)主要是在嵌入式系統(tǒng)中實(shí)現(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ù)進(jìn)行協(xié)議封裝。以UDP數(shù)據(jù)報為例,,首先對原始數(shù)據(jù)添加UDP頭,,包括源端口、目的端口,、UDP數(shù)據(jù)長度和校驗(yàn)和4個字段,,然后再添加IP頭(包括源IP地址、目的IP地址),、校驗(yàn)和等字段,,最后封裝以太網(wǎng)IEEE802.3幀,包括目的CRC地址,、源MAC地址和以太網(wǎng)幀總長度,。其中源MAC地址為本地物理地址,由程序在初始化時設(shè)定,。而IEEE802.3幀結(jié)構(gòu)中的CRC校驗(yàn)由以太網(wǎng)硬件自動完成,。至此,構(gòu)造了一個完整的UDP數(shù)據(jù)報,,就可以交給RTL8019AS進(jìn)行發(fā)送了,。對于接收到的數(shù)據(jù)包,主處理器對其進(jìn)行拆解,,將解包得到的IP地址與本地IP地址相比較,,同時進(jìn)行校驗(yàn)和驗(yàn)證,如果IP一致,,則接收該數(shù)據(jù)包,,否則將其丟棄;如果校驗(yàn)和不正確,,則表示數(shù)據(jù)包傳輸過程中發(fā)生差錯,,但不產(chǎn)生差錯報文,,由應(yīng)用層發(fā)現(xiàn)丟失的數(shù)據(jù)包并請求重傳。?
3.2 主程序流程圖?
??? 主程序流程圖如圖3所示,,DSP首先初始化網(wǎng)絡(luò)設(shè)備,。當(dāng)有數(shù)據(jù)從RJ45傳過來時,DSP對數(shù)據(jù)包進(jìn)行分析,,如果是ARP(物理地址解析協(xié)議)數(shù)據(jù)包,,則程序轉(zhuǎn)入ARP處理程序。如果是IP(網(wǎng)間協(xié)議)數(shù)據(jù)包且傳輸層使用UDP(用戶數(shù)據(jù)報協(xié)議),,端口正確,,則認(rèn)為數(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 中斷服務(wù)子程序的設(shè)計?
??? 本系統(tǒng)采用中斷方式來處理RTL8019AS 的收發(fā)。當(dāng)主程序響應(yīng)RTL8019AS的中斷時,,根據(jù)中斷寄存器(ISR)的值來判定程序的走向,,中斷流程圖如圖4所示。?
?
?
??? DSP 接收到外部INT0中斷后檢查狀態(tài)寄存器ISR,,如果PTX 位有效,,則說明上一幀數(shù)據(jù)發(fā)送完成;如果PRX 位有效,,表明接收到新的一幀數(shù)據(jù),。對于發(fā)送數(shù)據(jù),先要進(jìn)行載波沖突檢測,,在無沖突情況下,,主處理器從發(fā)送物理幀隊(duì)列讀出一幀已封裝好的IEEE802.3 幀數(shù)據(jù),通過控制器的遠(yuǎn)程DMA 通道寫到發(fā)送緩沖區(qū),,然后向命令寄存器CR 寫入0x1E 控制字啟動發(fā)送,,控制器發(fā)送完一幀數(shù)據(jù)后再次向主處理器發(fā)出發(fā)送中斷請求信號,如果物理幀隊(duì)列不為空,,則主處理器繼續(xù)發(fā)送,,否則返回。對于接收數(shù)據(jù),,主處理器從接收緩沖區(qū)讀入一幀數(shù)據(jù)并對數(shù)據(jù)解包,,將解包得到的IP 地址與本機(jī)IP 地址比較,如果一樣,,則接收該幀數(shù)據(jù),,否則丟棄該幀數(shù)據(jù)。讀入一幀數(shù)據(jù)后判斷接收緩沖區(qū)是否為空,,不為空繼續(xù)讀取數(shù)據(jù),,否則返回。?
??? 基于DSP的網(wǎng)絡(luò)通信系統(tǒng)因其顯著的高效傳輸效果及體積小,、重量輕,、可靠性高等特點(diǎn),已經(jīng)在各種家電設(shè)備,、儀器儀表以及工業(yè)生產(chǎn)中的數(shù)據(jù)采集與控制設(shè)備等領(lǐng)域中得到廣泛應(yīng)用,,取得了良好的經(jīng)濟(jì)效益和社會效益。實(shí)驗(yàn)表明, 本系統(tǒng)能夠正確快速地接入以太網(wǎng),,可以從PC機(jī)上通過網(wǎng)線傳輸數(shù)據(jù)到DSP上,,然后DSP再將數(shù)據(jù)通過網(wǎng)線回傳到PC機(jī)上顯示。采用實(shí)時操作系統(tǒng)μC/OS- II 可大幅加快軟件的開發(fā)和調(diào)試進(jìn)度,。使用RTL8019AS 作為嵌入式系統(tǒng)以太網(wǎng)接口芯片是嵌入式設(shè)備接入以太網(wǎng)的一種嘗試,,與使用普通的PC機(jī)作Web服務(wù)器相比,此種方案節(jié)省費(fèi)用,、可移植性好,、嵌入式設(shè)備和網(wǎng)絡(luò)服務(wù)器的分離、可以方便地連接各種嵌入式設(shè)備以及簡化了嵌入式網(wǎng)絡(luò)設(shè)備的開發(fā)等優(yōu)點(diǎn),。?
參考文獻(xiàn)?
[1] 侯振鵬. 嵌入式C語言程序設(shè)計[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與外設(shè)[M]. 北京:清華大學(xué)出版社, 2007.?
[4] 萬山明.TMS320F281x DSP原理及應(yīng)用實(shí)例[M]. 北京:北京航空航天大學(xué)出版社,2007.?
[5] 陳玉,王宗和,,張旭東,等. TMS320系列DSP硬件開發(fā)系統(tǒng)[M].北京:清華大學(xué)出版社,,2008.?
[6] (美)Travis Russell. 最新網(wǎng)絡(luò)通信協(xié)議[M]. 葉棟,,黃雷君,譯.北京:電子工業(yè)出版社,,1999.