摘 要:工業(yè)領(lǐng)域的設(shè)備集成化、數(shù)字化、網(wǎng)絡(luò)化、智能化已是必然趨勢,“信息孤島”早已不能適應(yīng)當(dāng)今的信息化,急需將現(xiàn)場設(shè)備的控制與數(shù)據(jù)采集網(wǎng)絡(luò)化,那么具有通信作用的智能節(jié)點(diǎn)是使設(shè)備網(wǎng)絡(luò)化的關(guān)鍵。CP2200是工業(yè)領(lǐng)域最小的以太網(wǎng)控制器,它再與單片機(jī)相結(jié)合,便可實(shí)現(xiàn)以太網(wǎng)智能節(jié)點(diǎn),來完成工業(yè)領(lǐng)域中現(xiàn)場數(shù)據(jù)采集與控制的任務(wù)。
關(guān)鍵詞:智能節(jié)點(diǎn);以太網(wǎng);CP2200;TCP/IP協(xié)議
1.引言
隨著信息技術(shù)的發(fā)展,互聯(lián)網(wǎng)已經(jīng)越來越深入人們的工作和生活,測控系統(tǒng)也逐漸趨于網(wǎng)絡(luò)化。在當(dāng)今的測控系統(tǒng)中,連接在現(xiàn)場總線網(wǎng)絡(luò)上的每一個(gè)節(jié)點(diǎn),即傳感器、變送器、執(zhí)行器等都不再是單一功能的傳統(tǒng)儀表,而是集數(shù)據(jù)采集、轉(zhuǎn)換、控制、計(jì)算、報(bào)警、診斷及數(shù)字通訊等功能為一體的智能化設(shè)備亦稱智能化模塊或稱智能節(jié)點(diǎn)[1]。
智能節(jié)點(diǎn)在實(shí)現(xiàn)通訊功能時(shí)應(yīng)遵守一定的協(xié)議,在這一方面,以太網(wǎng)和TCP/IP協(xié)議己經(jīng)成為使用最廣泛的協(xié)議,而其它總線協(xié)議如RS485,RS232,CAN,LANWORKS,都只是一些局部系統(tǒng)的總線。如何實(shí)現(xiàn)以太網(wǎng)智能節(jié)點(diǎn)并進(jìn)行傳輸數(shù)據(jù),如何加載TCP/IP協(xié)議連接到互聯(lián)網(wǎng),成為嵌入式研究領(lǐng)域的一個(gè)新熱點(diǎn)。
智能節(jié)點(diǎn)在網(wǎng)絡(luò)測控中起著承上啟下的作用。它位于傳感器和執(zhí)行機(jī)構(gòu)所在的現(xiàn)場,一方面可以自主完成現(xiàn)場信息采集、處理及存儲;另一方面又可將采集的信息通過以太網(wǎng)上傳到PC機(jī)的人機(jī)交互界面進(jìn)行數(shù)據(jù)的分析及顯示,同時(shí)還可接受PC機(jī)的命令,根據(jù)系統(tǒng)需要對現(xiàn)場的執(zhí)行機(jī)構(gòu)實(shí)現(xiàn)多種控制功能。如若能夠設(shè)計(jì)這樣的智能節(jié)點(diǎn),則應(yīng)用領(lǐng)域非常廣闊。
2.以太網(wǎng)控制芯片CP2200
2.1 CP2200簡介
CP2200是以太網(wǎng)控制器[2],它包括了一個(gè)集成了IEEE802.3 Ethernet的媒體訪問控制器(MAC),10BASE-T物理層(PHY),8kB非易失性Flash存儲器。48腳TQFP封裝。CP2200可以為具有11個(gè)以上端口I/O引腳的任何微控制器或主處理器增加以太網(wǎng)通信功能。8位并行總線接口支持Intel和Motorola總線方式,可以使用復(fù)用或非復(fù)用方式尋址。有方式選擇引腳,用于配置總線接口方式。在非復(fù)用方式,數(shù)據(jù)傳輸速率可以超過30Mbps。
片內(nèi)FLASH存儲器可用于存儲用戶常數(shù)、Web服務(wù)器內(nèi)容或作為通用非易失性存儲器。FLASH存儲器的最后6個(gè)存儲單元已在出廠前被預(yù)先寫入了唯一的48位MAC地址,消除大多數(shù)嵌入式系統(tǒng)的生產(chǎn)過程中必不可少的序列化步驟。
CP2200有4種不同水平的功能功率模式,允許主處理器管理總的系統(tǒng)功耗。中斷選擇引腳還允許主處理器進(jìn)入“sleep”模式,并且當(dāng)數(shù)據(jù)包到達(dá)或者是當(dāng)CP2200被插入到網(wǎng)絡(luò)時(shí)有自動喚醒的功能。全/半雙工自適應(yīng)。
[align=center]
圖2-1 CP2200系統(tǒng)框圖[/align]
2.2 CP2200系統(tǒng)框圖
2.3 CP2200的緩存和Flash存儲器組織結(jié)構(gòu)
[align=center]
圖2-2 CP2200的緩存及Flash存儲器組織結(jié)構(gòu)圖[/align]
如圖2-2所示,CP2200擁有2K的發(fā)送緩存和4K接受緩存,發(fā)送緩存和接受緩存共享相同的地址空間,都通過RAMADDRH:RAMADDRL指針來存取;以及擁有獨(dú)立地址空間的8K片內(nèi)FLASH,通過FLASHADDRH:FLASHADDRL指針存取。
2.4 CP2200的寄存器
主控可通過并行接口訪問CP2200的直接或間接寄存器,進(jìn)而控制CP2200。CP2200/1有114個(gè)內(nèi)部直接寄存器和9個(gè)間接寄存器。這些寄存器基于功能被分成11個(gè)類別組:中斷狀態(tài)和控制寄存器、復(fù)位源寄存器、功率模式寄存器、發(fā)送狀態(tài)和控制寄存器、接受接口狀態(tài)和控制寄存器、接受緩存狀態(tài)和控制寄存器、FLASH存取寄存器、MAC訪問寄存器、MAC間接寄存器和PHY狀態(tài)和控制寄存器。
[align=center]
圖3-1 C8051F020與CP2200的連接原理圖[/align]
3.智能節(jié)點(diǎn)的連接原理圖
本系統(tǒng)采用非復(fù)用方式,C8051F020的P7口作為數(shù)據(jù)總線連接CP2200的D[0:7];P6口作為地址總線連接CP2200的A[0:7];P5.7作為CP2200的片選;C8051F020的P4.5連接CP2200的 來進(jìn)行復(fù)位操作,而且至少要維持15μs的低電平。CP2200工作于中斷方式。CP2200有14個(gè)中斷源,當(dāng)某一事件發(fā)生時(shí),通過 向C8051F020的 發(fā)出中斷請求。
4.以太網(wǎng)通信接口軟件設(shè)計(jì)
[align=center]
圖4-1 典型以太網(wǎng)幀[/align]
本系統(tǒng)設(shè)計(jì)采用的是IEEE802.3以太網(wǎng)協(xié)議。它的幀結(jié)構(gòu)如圖4-1所示。物理信道上的收發(fā)操作均使用這個(gè)幀格式。其中,前導(dǎo)序列、幀起始位、CRC校驗(yàn)及必要的填充均有由硬件自動添加/刪除,與上層軟件無關(guān)。Length/Type是類型字段,表明該幀的數(shù)據(jù)類型,不同的協(xié)議的類型字段不同。如:0800H表示數(shù)據(jù)為IP包,0806H表示數(shù)據(jù)為ARP包,814CH是SNMP包,8137H為IPX/SPX包(小于0600H的值是用于IEEE802的,表示數(shù)據(jù)包的長度)。Data是數(shù)據(jù)字段,該字段數(shù)據(jù)不能超過1500字節(jié)。因?yàn)橐蕴W(wǎng)規(guī)定整個(gè)傳輸包的最大長度不能超過1514字節(jié)。由于以太網(wǎng)幀傳輸?shù)臄?shù)據(jù)包最小不能小于64字節(jié),除去(Destination MAC Address, Source MAC Address, Length/Type及CRC共18字節(jié)),還必須傳輸46字節(jié)的數(shù)據(jù),當(dāng)數(shù)據(jù)段的數(shù)據(jù)不足46字節(jié)時(shí),后面補(bǔ)0填充至最小幀長64字節(jié)。
4.1 CP2200初始化流程
系統(tǒng)上電后必須初始化,才能夠正常的工作,圖4-2為初始化流程。
[align=center]
圖4-2 CP2200初始化流程[/align]
4.2幀的接收發(fā)送流程
一旦系統(tǒng)初始化完成,C8051F020即可向主控PC發(fā)送采集的數(shù)據(jù)或響應(yīng)主控PC的ARP請求,向主控PC發(fā)送自己的IP地址與MAC地址。
系統(tǒng)復(fù)位初始化完成后,若接受緩存、過濾器及散列表也被初始化,智能結(jié)點(diǎn)即可接受主控PC送來的命令、調(diào)控?cái)?shù)據(jù)、下載更新程序或主控PC的ARP請求。當(dāng)CP2200收到一個(gè)新幀,就通過中斷通知C8051F020,然后如圖4-3 幀收發(fā)送流程來讀取幀。
[align=center]
圖4-3 幀收發(fā)送流程[/align]
幀異常中止只出現(xiàn)于半雙工模式,典型的原因是網(wǎng)絡(luò)擁塞。
4.3 TCP/IP裁剪與設(shè)計(jì)
智能節(jié)點(diǎn)部分實(shí)際上是一個(gè)相對獨(dú)立的單片機(jī)系統(tǒng),要完成上傳下達(dá)的任務(wù),經(jīng)常與主控PC通信,在有些應(yīng)用環(huán)境中還要進(jìn)行數(shù)據(jù)采集與處理的任務(wù),相對來說就顯得單片機(jī)系統(tǒng)資源有限。
而網(wǎng)絡(luò)協(xié)議通常分層設(shè)計(jì),TCP/IP協(xié)議一樣也是一種分層結(jié)構(gòu)。它是由基于硬件層次上的四個(gè)概念性層次構(gòu)成[3],即網(wǎng)絡(luò)接口層、互聯(lián)網(wǎng)層、傳輸層和應(yīng)用層。為了能夠與主控PC在對等層上實(shí)現(xiàn)通信,為此在我們的智能節(jié)點(diǎn)中至少還應(yīng)該設(shè)計(jì)并實(shí)現(xiàn)IP協(xié)議與TCP或UDP協(xié)議。
但是TCP/IP協(xié)議是一個(gè)非常龐大的體系,不可能將所有協(xié)議進(jìn)行集成,只能在對TCP/IP進(jìn)行裁剪的基礎(chǔ)上,將它作為一種嵌入式應(yīng)用,固化到單片機(jī)系統(tǒng)的ROM中,使數(shù)據(jù)傳輸按TCP/IP協(xié)議格式封裝,從而達(dá)到在Internet上傳輸?shù)哪康摹?shí)現(xiàn)TCP協(xié)議需要大容量的數(shù)據(jù)存儲器來存儲等待應(yīng)答的數(shù)據(jù)信息。如果多個(gè)TCP連接同時(shí)建立,就需要提供額外的RAM來存儲連接信息,如IP地址、端口號、緩沖指針等。而UDP的首部僅僅8字節(jié),相對于TCP首部20~60字節(jié),顯得更加緊湊,它有較高的數(shù)據(jù)傳輸效率,而且UDP是無連接協(xié)議,它允許使用一種更輕便、更快速的接口,更能夠適應(yīng)于工業(yè)中的實(shí)時(shí)性,這在單片機(jī)的嵌入式應(yīng)用中更具有優(yōu)越性。因此,我們在智能節(jié)點(diǎn)的高層協(xié)議設(shè)計(jì)中選擇UDP作為傳輸層協(xié)議,而沒有采用TCP。此外還實(shí)現(xiàn)了ARP,ICMP及IP協(xié)議,其它協(xié)議和TCP協(xié)議一起均被裁剪。
在設(shè)計(jì)時(shí)我們在充分考慮實(shí)時(shí)性要求同時(shí),還應(yīng)兼顧網(wǎng)絡(luò)的擁塞狀態(tài)與利用率。因此不能每采集一個(gè)數(shù)據(jù)就馬上實(shí)施通訊過程,這樣因要攜帶過多的各層協(xié)議首部而降低線路利用率。若每次都組織數(shù)據(jù)達(dá)到1500字節(jié)大小的數(shù)據(jù)包再發(fā)送,那么又降低了實(shí)時(shí)性,所以我們?nèi)?56字節(jié)作為一幀數(shù)據(jù)為單位實(shí)施一次通信過程。
5.智能節(jié)點(diǎn)主程序流程圖
[align=center]
圖5-1 智能節(jié)點(diǎn)主程序流程圖[/align]
6.小結(jié)
在當(dāng)今工業(yè)領(lǐng)域急切追求設(shè)備的集成化、數(shù)字化、網(wǎng)絡(luò)化、智能化,如何來實(shí)現(xiàn)現(xiàn)場設(shè)備的網(wǎng)絡(luò)化呢?以太網(wǎng)智能節(jié)點(diǎn)在這樣的應(yīng)用中就顯得特別重要。本文作者創(chuàng)新點(diǎn):利用以太網(wǎng)控制器芯片CP2200實(shí)現(xiàn)了以太網(wǎng)智能節(jié)點(diǎn)硬件到軟件的設(shè)計(jì),在應(yīng)用于某一領(lǐng)域時(shí)只要稍加修改,便可以發(fā)揮它強(qiáng)大的通信與數(shù)據(jù)采集及控制功能。
參考文獻(xiàn):
[1] 馮冬芹.以太網(wǎng)與TCP/IP[J].自動化儀表.2003.24(5):67-70
[2] User Manual of cp220/1. http://www.silabs.com.
[3] 謝希人.計(jì)算機(jī)網(wǎng)絡(luò)(第四版)[M].北京:電子工業(yè)出版社.2003.6
[4] 門磊等,李玉強(qiáng)等.基于以太網(wǎng)嵌入式系統(tǒng)研究[J].沈陽工業(yè)大學(xué)學(xué)報(bào),2004.4.
[5] User Manual of C8051F020/1/2/3. http:// www.silabs.com.
[6] 習(xí)博 方彥軍. 工業(yè)以太網(wǎng)中網(wǎng)絡(luò)通信技術(shù)的研究. 微計(jì)算機(jī)信息.2005.21(2):148-149
[7] 羅智佳等. 基于以太網(wǎng)的分布式數(shù)據(jù)采集監(jiān)控系統(tǒng)的應(yīng)用. 微計(jì)算機(jī)信息.2006.22(1):22-24