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

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

2009-06-18
作者:關(guān)宗安, 仲叢久, 張芝賢,

??? 摘? 要:研究了DSP嵌入式系統(tǒng)連接以太網(wǎng)進(jìn)行數(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)是切實可行的,在嵌入式實時多任務(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),是專門為實現(xiàn)各種數(shù)字信號處理算法而設(shè)計的,具有嵌入式的協(xié)處理器和用于快速數(shù)據(jù)處理的并行數(shù)據(jù)通道,其卓越的性能、不斷上升的性價比及日漸完善的開發(fā)方式使它的應(yīng)用領(lǐng)域越來越廣泛,因此嵌入式網(wǎng)絡(luò)開發(fā)的應(yīng)用前景十分廣闊,已經(jīng)成為研究的熱點。如何在DSP與PC機之間高速、可靠地進(jìn)行通信,如何借鑒PC聯(lián)網(wǎng)的成功經(jīng)驗將DSP聯(lián)網(wǎng),甚至與Internet對接,最直接的想法就是設(shè)計DSP與網(wǎng)卡的接口電路,通過對網(wǎng)卡直接編程,即可實現(xiàn)局域網(wǎng)內(nèi)任意站點之間的通信。?

1 總體方案設(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機的狀態(tài),確認(rèn)后將信號按要求的傳送命令傳送出去。UDPTest用于對指定地址的接收和廣播的數(shù)據(jù)包進(jìn)行顯示。以太網(wǎng)接口芯片部分完成數(shù)據(jù)網(wǎng)上傳輸?shù)目刂啤;贒SP的網(wǎng)絡(luò)傳輸?shù)膶崿F(xiàn)系統(tǒng)結(jié)構(gòu)框圖如圖1所示。?

?

?

2 硬件電路設(shè)計?

??? RTL8019AS以太網(wǎng)控制器實現(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)中實現(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ù)長度和校驗和4個字段,然后再添加IP頭(包括源IP地址、目的IP地址)、校驗和等字段,最后封裝以太網(wǎng)IEEE802.3幀,包括目的CRC地址、源MAC地址和以太網(wǎng)幀總長度。其中源MAC地址為本地物理地址,由程序在初始化時設(shè)定。而IEEE802.3幀結(jié)構(gòu)中的CRC校驗由以太網(wǎng)硬件自動完成。至此,構(gòu)造了一個完整的UDP數(shù)據(jù)報,就可以交給RTL8019AS進(jìn)行發(fā)送了。對于接收到的數(shù)據(jù)包,主處理器對其進(jìn)行拆解,將解包得到的IP地址與本地IP地址相比較,同時進(jìn)行校驗和驗證,如果IP一致,則接收該數(shù)據(jù)包,否則將其丟棄;如果校驗和不正確,則表示數(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ā)送物理幀隊列讀出一幀已封裝好的IEEE802.3 幀數(shù)據(jù),通過控制器的遠(yuǎn)程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)絡(luò)通信系統(tǒng)因其顯著的高效傳輸效果及體積小、重量輕、可靠性高等特點,已經(jīng)在各種家電設(shè)備、儀器儀表以及工業(yè)生產(chǎn)中的數(shù)據(jù)采集與控制設(shè)備等領(lǐng)域中得到廣泛應(yīng)用,取得了良好的經(jīng)濟(jì)效益和社會效益。實驗表明, 本系統(tǒng)能夠正確快速地接入以太網(wǎng),可以從PC機上通過網(wǎng)線傳輸數(shù)據(jù)到DSP上,然后DSP再將數(shù)據(jù)通過網(wǎng)線回傳到PC機上顯示。采用實時操作系統(tǒng)μC/OS- II 可大幅加快軟件的開發(fā)和調(diào)試進(jìn)度。使用RTL8019AS 作為嵌入式系統(tǒng)以太網(wǎng)接口芯片是嵌入式設(shè)備接入以太網(wǎng)的一種嘗試,與使用普通的PC機作Web服務(wù)器相比,此種方案節(jié)省費用、可移植性好、嵌入式設(shè)備和網(wǎng)絡(luò)服務(wù)器的分離、可以方便地連接各種嵌入式設(shè)備以及簡化了嵌入式網(wǎng)絡(luò)設(shè)備的開發(fā)等優(yōu)點。?

參考文獻(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)用實例[M]. 北京:北京航空航天大學(xué)出版社,2007.?

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

[6] (美)Travis Russell. 最新網(wǎng)絡(luò)通信協(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)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。