基于DSP的嵌入式TCP/IP協(xié)議的研究和實(shí)現
關(guān)鍵詞:DSP;嵌入式系統;TCP/IP;電力系統自動(dòng)化;以太網(wǎng)
引言
近幾年來(lái),我國電力自動(dòng)化工作取得了很大進(jìn)展,電力自動(dòng)化系統的通信方式也不斷改進(jìn)。最早是用RS485總線(xiàn)將各種保護、遠動(dòng)設備聯(lián)在一起,用主從方式與主機通信,方式簡(jiǎn)單,技術(shù)缺陷也比較多。后來(lái)出現的現場(chǎng)總線(xiàn)技術(shù)因其組網(wǎng)方便、抗干擾能力強等特點(diǎn)得到廣泛的應用?,F場(chǎng)總線(xiàn)標準有多種,電力自動(dòng)化系統中最常用的是LONWORKS總線(xiàn)和CAN總線(xiàn)兩種。LONWORKS總線(xiàn)通信速率為78kbps和1.25Mbps,CAN總線(xiàn)通信速率為1Mbps。隨著(zhù)電網(wǎng)的發(fā)展,現場(chǎng)總線(xiàn)標準不統一、傳輸速率低(最大也僅為1Mbps左右)的局限性逐漸暴露出來(lái)。以太網(wǎng)具有通用性強、技術(shù)成熟、帶寬迅速增加等特性,工業(yè)控制領(lǐng)域出現嵌入式技術(shù),尤其是DSP技術(shù)的發(fā)展和DSP在工業(yè)控制領(lǐng)域的廣泛應用,使得在電力自動(dòng)化系統設計時(shí)可以利用嵌入式技術(shù)實(shí)現以太網(wǎng)通信,為電力自動(dòng)化提供開(kāi)放式、全分布、可互操作性的通信平臺。網(wǎng)絡(luò )傳輸的實(shí)時(shí)性是電力自動(dòng)化系統內部通信網(wǎng)的關(guān)鍵指標。以太網(wǎng)帶寬達到10Mb/s,可承受的網(wǎng)絡(luò )負荷很大,加上交換式智能集線(xiàn)器的使用,選擇10Mb/s以太網(wǎng)作為變電站自動(dòng)化系統的內部通信網(wǎng),其網(wǎng)絡(luò )傳輸實(shí)時(shí)性是有保證的。本文將著(zhù)重討論嵌入式TCP/IP協(xié)議的選擇和DSP實(shí)現。
嵌入式協(xié)議的選擇
TCP/IP協(xié)議是一組不同層次上的多個(gè)協(xié)議的組合,通常被認為是一個(gè)包含鏈路層、網(wǎng)絡(luò )層、傳輸層和應用層的四層協(xié)議系統[2]。嵌入式系統是為完成某種特定的功能而設計的專(zhuān)用系統。嵌入式系統不要求(也不可能)實(shí)現所有的TCP/IP協(xié)議,所以嵌入式TCP/IP是對TCP/IP協(xié)議族進(jìn)行選擇而形成的協(xié)議集合.
鏈路層協(xié)議的選擇
鏈路層協(xié)議的選擇鏈路層最基本的功能是將物理層提供的原始傳送比特流可能出錯的物理連接改造為邏輯上無(wú)差錯的數據連接,為其上層協(xié)議發(fā)送和接收數據包。以太網(wǎng)遵循IEEE802.3所規定的CSMA/CD(載波監聽(tīng)多路訪(fǎng)問(wèn)及沖突監測)協(xié)議,實(shí)現該協(xié)議可以采用通用的NIC(networkinterfacecontroller網(wǎng)絡(luò )接口控制)芯片。另外,以太網(wǎng)上數據的傳輸是采用網(wǎng)絡(luò )的MAC地址來(lái)進(jìn)行識別的,這就要求系統有實(shí)現IP地址到MAC地址的轉換功能,即ARP(地址解析)協(xié)議。ARP協(xié)議包括ARP請求和ARP響應兩部分,系統要同其他計算機通信,就必須要支持ARP響應。ARP請求在本地建立了一個(gè)IP地址到MAC地址的映射,保證了對外通信的有的放矢。RARP(逆地址解析)協(xié)議主要用于解決如何從MAC地址得到IP地址,主要用于無(wú)盤(pán)工作站中。在本嵌入式系統中可以把IP地址存儲于本地存儲器中,不必從其他服務(wù)器得到IP地址,這樣就無(wú)需實(shí)現RARP協(xié)議。
網(wǎng)絡(luò )層協(xié)議的選擇
網(wǎng)絡(luò )層主要負責處理數據包在網(wǎng)絡(luò )中的活動(dòng)。在TCP/IP協(xié)議族中,網(wǎng)絡(luò )層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議)、ICMP協(xié)議(Internet控制報文協(xié)議)以及IGMP協(xié)議(Internet組管理協(xié)議)等。IP協(xié)議是TCP/IP族的核心協(xié)議,它使異構網(wǎng)絡(luò )之間的通信成為可能。因此RTU等系統數據跨越不同的網(wǎng)絡(luò )進(jìn)行傳輸就必須要實(shí)現IP協(xié)議。ICMP中規定了多種協(xié)議類(lèi)型和代碼,如果完全的實(shí)現也要耗費不少的系統資源,本嵌入式系統中,在ICMP協(xié)議中能夠測試網(wǎng)絡(luò )的連通情況即可,因此只需實(shí)現ICMP中類(lèi)型號為0、代碼為0的Ping應答協(xié)議。IGMP協(xié)議主要用于支持主機和路由器進(jìn)行組播,在將報文發(fā)給多個(gè)接收者時(shí),嵌入式TCP/IP作為一種專(zhuān)用系統接入網(wǎng)絡(luò )的技術(shù),為了降低處理協(xié)議的復雜程度,可以直接采用廣播方式,不必要采用組播的方式進(jìn)行通信。因此在設計中不考慮實(shí)現IGMP協(xié)議。
傳輸層協(xié)議的選擇
傳輸層主要在兩臺主機之間提供端到端的通信。傳輸層有兩種不相同的傳輸協(xié)議:TCP(傳輸控制協(xié)議)和UDP(用戶(hù)數據報協(xié)議)。TCP是面向連接的,在不可靠的網(wǎng)絡(luò )服務(wù)上提供端到端的可靠字節流。TCP協(xié)議設計了嚴格的3次建立連接握手過(guò)程、4次關(guān)閉連接握手過(guò)程以及捎帶確認信息并通過(guò)滑動(dòng)窗口進(jìn)行流量控制的數據傳輸過(guò)程。UDP協(xié)議是用來(lái)提供不面向連接的,它只是簡(jiǎn)單地把數據報從一臺主機發(fā)送到另一臺主機,但并不保證該數據報能到達另一端,可靠性必須由應用層來(lái)提供。在微機遠動(dòng)和故障錄波等實(shí)時(shí)性要求不太高的設備中采用TCP協(xié)議,保證傳輸的質(zhì)量。在微機保護和自動(dòng)控制等實(shí)時(shí)性要求高的設備中采用UDP協(xié)議,其固有的傳輸可靠性低的缺陷可通過(guò)應用層的協(xié)議進(jìn)行彌補。
應用層協(xié)議選擇
應用層協(xié)議主要是指用戶(hù)進(jìn)程。在電力自動(dòng)化系統中,可以采用國際標準遠動(dòng)通信協(xié)議IEC60870-5-103或IEC60870-5-104協(xié)議等。IEC61850協(xié)議草案是IEC(國際電工委員會(huì ))針對電力系統自動(dòng)化制定的面向對象和設備的無(wú)縫聯(lián)接通信協(xié)議。該協(xié)議正式公布以后,也可以采用。
基于芯片嵌入式的實(shí)現
基于DSP的嵌入式TCP/IP網(wǎng)絡(luò )通信系統主要包括DSP芯片和以太網(wǎng)控制器等芯片組成的以太網(wǎng)接口、驅動(dòng)軟件和嵌入式TCP/IP協(xié)議棧。
硬件設計
TMS320LF240x是TI公司發(fā)布的一款具有很高的性?xún)r(jià)比,適合用于工業(yè)控制領(lǐng)域的芯片。TMS320LF2407控制器是240x系列中功能最強的一種控制器,在電力自動(dòng)化系統中得到了廣泛應用。TMS320LF2407工作頻率高(40MHz),有很大的存儲空間(高達32K字的FLASH程序存儲器,可擴展外部64K字程序存儲器,64K字數據存儲器,64K字I/O尋址空間),也非常適合用來(lái)處理復雜的TCP/IP協(xié)議。
RTL8019AS是臺灣REALTEK半導體公司生產(chǎn)的以太網(wǎng)控制器,其性能包括:支持EthernetⅡ和EEE802.3標準;支持8/16位數據總線(xiàn);內置16K字的SRAM;全雙工,收發(fā)同時(shí)達到10Mbps;支持BNC,AUI,UTP介質(zhì)。RTL8019AS可提供100腳的TQFP封裝,減少了PCB面積,更適合于嵌入式系統。
RTL8019AS通過(guò)CR寄存器中PS0和PS1位將寄存器組分為4頁(yè)。每頁(yè)包含16個(gè)寄存器,00H到1FH為各種寄存器的地址,10H-17H為遠端DMA端口,18H-1FH為復位端口(這些地址是相對于網(wǎng)卡I/O起始地址而言的,起始地址由配置寄存器的3-0bit決定)。TMS320LF2407對RTL8019AS的控制就是對寄存器編程,所以我們只用5根地址線(xiàn)與RTL8019AS相連。由于DSP與單片機不同,DSP的I/O空間與程序數據空間使用相同的地址區域,必須使用
TMS320LF2407的控制信號IS控制對RTL8019AS寄存器的讀寫(xiě)。TMS320LF2407的讀/寫(xiě)速度很快,因此將RTL8019AS的IOCHRDY信號與TMS320LF2407的READY相連。需要注意的是TMS320LF2407和RTL8019AS工作電壓不同,之間的連線(xiàn)需要通過(guò)電平轉換。以太網(wǎng)接口電路如圖1所示。

軟件設計
以太網(wǎng)鏈路層遵循的IEEE802.3協(xié)議的CSMA/CD和CRC校驗等功能由網(wǎng)卡控制芯片Rtl8019as完成,TMS320LF2407芯片則完成其他TCP/IP協(xié)議的解釋和執行。TMS320LF2407控制RTL8019AS完成通信任務(wù)時(shí),首先要對RTL8019AS復位,并對RTL8019AS的寄存器進(jìn)行初始化,確定發(fā)送和接收的條件,然后才能發(fā)送數據或接收數據。當一幀數據發(fā)送結束、接收到一幀數據或出錯等事件發(fā)生時(shí),RTL8019AS向TMS320LF2407申請中斷,TMS320LF2407響應中斷后根據中斷狀態(tài)寄存器的內容進(jìn)行相應的處理。
在TMS320LF2407內部,DSP程序完成對數據的打包解包。系統復位后,系統首先發(fā)送ARP請求,建立地址映射,并內部中斷進(jìn)行定時(shí)更新。DSP芯片根據情況將采集或收集到數據按照TCP協(xié)議或UDP協(xié)議格式打包,送入網(wǎng)卡芯片,由網(wǎng)卡芯片將數據輸出到局域網(wǎng)中。反之,當有數據從RJ45過(guò)來(lái),網(wǎng)卡芯片產(chǎn)生外部中斷,請求DSP進(jìn)行處理。DSP芯片對數據報進(jìn)行分析,如果是ARP(物理地址解析)數據包,則程序轉入ARP處理程序。如果是IP數據包則進(jìn)一步判斷是哪個(gè)協(xié)議向IP傳送數據。如果是ICMP協(xié)議,判斷是否為Ping請求,是則應答,不是丟棄該數據包;如果是TCP或UDP協(xié)議,且端口正確則按相應的協(xié)議處理數據,端口不正確丟棄數據包。程序框圖如圖2所示。

結論
本文結合電力系統自動(dòng)化系統實(shí)際提出了一種基于DSP的嵌入式TCP/IP的實(shí)現,論述了協(xié)議的選擇和軟硬件的設計方法。實(shí)驗結果表明數據通過(guò)該系統處理以后可以直接送到以太網(wǎng)進(jìn)行傳輸。這為在電力自動(dòng)化系統當中應用以太網(wǎng)通信技術(shù)提供了一種解決方法。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
tcp/ip相關(guān)文章:tcp/ip是什么
網(wǎng)線(xiàn)測試儀相關(guān)文章:網(wǎng)線(xiàn)測試儀原理
評論