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