以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- DSP系統和硬件開發討論區 (http://www.hufushizhe.com/bbs/list.asp?boardid=5) ---- 基于TMS320F2812 DSP的網絡通信系統設計 (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=5&id=1306) |
-- 作者:wangxinxin -- 發布時間:2010-11-13 11:53:34 -- 基于TMS320F2812 DSP的網絡通信系統設計 摘 要:研究了DSP嵌入式系統連接以太網進行數據傳輸的方法。本系統采用了TMS320F2812 DSP作為主處理器,利用以太網控制器芯片RTL8019AS實現DSP系統與PC機之間的連接,完成通過網線從PC機傳輸數據到DSP,DSP再將數據通過網線回傳到PC機上顯示的基本功能。實驗結果表明,基于DSP實現與以太網之間的互聯是切實可行的,在嵌入式實時多任務環境中,將以太網通信作為多個任務中的一個,可以根據不同場合的需求進行通信方式的選擇。 關鍵詞: DSP; 控制; 以太網; 網絡通信 以太網經過20多年的發展,已經成為現代互聯網絡中底層連接不可或缺的一部分,它組網方便,具有更好的開放性,成為當今最受歡迎的局域網之一。數字信號處理器(DSP)芯片作為一種特殊的嵌入式微處理器系統,是專門為實現各種數字信號處理算法而設計的,具有嵌入式的協處理器和用于快速數據處理的并行數據通道,其卓越的性能、不斷上升的性價比及日漸完善的開發方式使它的應用領域越來越廣泛,因此嵌入式網絡開發的應用前景十分廣闊,已經成為研究的熱點。如何在DSP與PC機之間高速、可靠地進行通信,如何借鑒PC聯網的成功經驗將DSP聯網,甚至與Internet對接,最直接的想法就是設計DSP與網卡的接口電路,通過對網卡直接編程,即可實現局域網內任意站點之間的通信。 1 總體方案設計 為實現網絡通信控制系統的功能,本系統采用模塊化結構。系統主要由DSP主控部分、網絡接口和UDPTest組成。DSP主控部分主要完成信息處理和記錄、控制并調度其他部分正常工作。網絡接口部分對傳來的信號進行處理,檢測DSP、PC機的狀態,確認后將信號按要求的傳送命令傳送出去。UDPTest用于對指定地址的接收和廣播的數據包進行顯示。以太網接口芯片部分完成數據網上傳輸的控制。基于DSP的網絡傳輸的實現系統結構框圖如圖1所示。 2 硬件電路設計 RTL8019AS以太網控制器實現了以太網媒介訪問層(MAC)和物理層(PHY)的全部功能。在本系統中,RTL8019AS采用跳線模式,將JP管腳經過一個10 kΩ電阻上拉接到5 V電源上。基地址的選擇通過BD0~BD3管腳決定,直接將其懸空,基地址選擇300H,其地址范圍為0300H~031FH。中斷選擇由BD4~BD6決定,將其全部接入低電平,選擇中斷INT0。AUI管腳決定RTL8019AS與以太網連接方式,AUI為低電平表示是BNC或是UTP接口,所以直接將其懸空。網絡接口的具體類型由PL0(BA14)、PL1(BD7)決定,將其接低電平,選擇自動檢測模式,即RTL8019AS會自動檢測接口類型,如10Base-T是電纜信號則選擇接口類型為UTP, 否則選擇接口類型為BNC。 由于RTL8019AS工作電壓為5 V,而數字信號處理器TMS320F2812的工作電壓為3.3 V,所以RTL8019AS的輸出信號要經過電平轉換,中斷信號也要經過電平轉換反向送給DSP。TMS320F2812的輸出電平符合RTL8019AS的輸入電平范圍,但是為了便于DSP與RTL8019AS的邏輯控制,還是通過譯碼電平變換以后將其連接。譯碼、電平變換及反向功能由74LVTH16245完成,采用I/O 方式RTL8019AS 交換數據。ISA為了兼容的需要設置了IOCS16B 信號線,DSP與RTL8019AS交換的數據為16位寬,所以將其通過10 kΩ上拉電阻接5 V電源。RTL8019AS的IOWB、IORB、AEN信號線通過DSP的IS、IOSTRB、R/W這三根線譯碼得到。 TMS320F2812與RTL8019AS的接口如圖 2所示。 3 軟件系統的設計 3.1主程序的設計 本系統主要是在嵌入式系統中實現TCP/IP協議棧,主要采用以太網IEEE802.3、IP、UDP、ARP等協議作為通信協議,傳輸數據通過以太網控制器完成。其主程序主要完成從UDP數據包中解析出完整的CAN協議報文,并存入數據緩沖區A中。同時,也可以將數據緩沖區B中完整的CAN協議報文封裝成UDP數據報,然后將其發送到以太網上。 在數據發送前,先要對待傳輸的數據進行協議封裝。以UDP數據報為例,首先對原始數據添加UDP頭,包括源端口、目的端口、UDP數據長度和校驗和4個字段,然后再添加IP頭(包括源IP地址、目的IP地址)、校驗和等字段,最后封裝以太網IEEE802.3幀,包括目的CRC地址、源MAC地址和以太網幀總長度。其中源MAC地址為本地物理地址,由程序在初始化時設定。而IEEE802.3幀結構中的CRC校驗由以太網硬件自動完成。至此,構造了一個完整的UDP數據報,就可以交給RTL8019AS進行發送了。對于接收到的數據包,主處理器對其進行拆解,將解包得到的IP地址與本地IP地址相比較,同時進行校驗和驗證,如果IP一致,則接收該數據包,否則將其丟棄;如果校驗和不正確,則表示數據包傳輸過程中發生差錯,但不產生差錯報文,由應用層發現丟失的數據包并請求重傳。 3.2 主程序流程圖 主程序流程圖如圖3所示,DSP首先初始化網絡設備。當有數據從RJ45傳過來時,DSP對數據包進行分析,如果是ARP(物理地址解析協議)數據包,則程序轉入ARP處理程序。如果是IP(網間協議)數據包且傳輸層使用UDP(用戶數據報協議),端口正確,則認為數據報正確,數據解包后,送入數據緩沖區A,最后把數據部分通過CAN接口輸出。反之,如果DSP從CAN接口接收數據,則將數據按照UDP協議格式打包,送入數據緩沖區B,由RTL8019AS將數據輸出到局域網中。 3.3 中斷服務子程序的設計 本系統采用中斷方式來處理RTL8019AS 的收發。當主程序響應RTL8019AS的中斷時,根據中斷寄存器(ISR)的值來判定程序的走向,中斷流程圖如圖4所示。 DSP 接收到外部INT0中斷后檢查狀態寄存器ISR,如果PTX 位有效,則說明上一幀數據發送完成;如果PRX 位有效,表明接收到新的一幀數據。對于發送數據,先要進行載波沖突檢測,在無沖突情況下,主處理器從發送物理幀隊列讀出一幀已封裝好的IEEE802.3 幀數據,通過控制器的遠程DMA 通道寫到發送緩沖區,然后向命令寄存器CR 寫入0x1E 控制字啟動發送,控制器發送完一幀數據后再次向主處理器發出發送中斷請求信號,如果物理幀隊列不為空,則主處理器繼續發送,否則返回。對于接收數據,主處理器從接收緩沖區讀入一幀數據并對數據解包,將解包得到的IP 地址與本機IP 地址比較,如果一樣,則接收該幀數據,否則丟棄該幀數據。讀入一幀數據后判斷接收緩沖區是否為空,不為空繼續讀取數據,否則返回。 基于DSP的網絡通信系統因其顯著的高效傳輸效果及體積小、重量輕、可靠性高等特點,已經在各種家電設備、儀器儀表以及工業生產中的數據采集與控制設備等領域中得到廣泛應用,取得了良好的經濟效益和社會效益。實驗表明, 本系統能夠正確快速地接入以太網,可以從PC機上通過網線傳輸數據到DSP上,然后DSP再將數據通過網線回傳到PC機上顯示。采用實時操作系統μC/OS- II 可大幅加快軟件的開發和調試進度。使用RTL8019AS 作為嵌入式系統以太網接口芯片是嵌入式設備接入以太網的一種嘗試,與使用普通的PC機作Web服務器相比,此種方案節省費用、可移植性好、嵌入式設備和網絡服務器的分離、可以方便地連接各種嵌入式設備以及簡化了嵌入式網絡設備的開發等優點。 |