摘 要:工業領域的設備集成化、數字化、網絡化、智能化已是必然趨勢,“信息孤島”早已不能適應當今的信息化,急需將現場設備的控制與數據采集網絡化,那么具有通信作用的智能節點是使設備網絡化的關鍵。CP2200是工業領域最小的以太網控制器,它再與單片機相結合,便可實現以太網智能節點,來完成工業領域中現場數據采集與控制的任務。
關鍵詞:智能節點;以太網;CP2200;TCP/IP協議
1.引言
隨著信息技術的發展,互聯網已經越來越深入人們的工作和生活,測控系統也逐漸趨于網絡化。在當今的測控系統中,連接在現場總線網絡上的每一個節點,即傳感器、變送器、執行器等都不再是單一功能的傳統儀表,而是集數據采集、轉換、控制、計算、報警、診斷及數字通訊等功能為一體的智能化設備亦稱智能化模塊或稱智能節點[1]。
智能節點在實現通訊功能時應遵守一定的協議,在這一方面,以太網和TCP/IP協議己經成為使用最廣泛的協議,而其它總線協議如RS485,RS232,CAN,LANWORKS,都只是一些局部系統的總線。如何實現以太網智能節點并進行傳輸數據,如何加載TCP/IP協議連接到互聯網,成為嵌入式研究領域的一個新熱點。
智能節點在網絡測控中起著承上啟下的作用。它位于傳感器和執行機構所在的現場,一方面可以自主完成現場信息采集、處理及存儲;另一方面又可將采集的信息通過以太網上傳到PC機的人機交互界面進行數據的分析及顯示,同時還可接受PC機的命令,根據系統需要對現場的執行機構實現多種控制功能。如若能夠設計這樣的智能節點,則應用領域非常廣闊。
2.以太網控制芯片CP2200
2.1 CP2200簡介
CP2200是以太網控制器[2],它包括了一個集成了IEEE802.3 Ethernet的媒體訪問控制器(MAC),10BASE-T物理層(PHY),8kB非易失性Flash存儲器。48腳TQFP封裝。CP2200可以為具有11個以上端口I/O引腳的任何微控制器或主處理器增加以太網通信功能。8位并行總線接口支持Intel和Motorola總線方式,可以使用復用或非復用方式尋址。有方式選擇引腳,用于配置總線接口方式。在非復用方式,數據傳輸速率可以超過30Mbps。
片內FLASH存儲器可用于存儲用戶常數、Web服務器內容或作為通用非易失性存儲器。FLASH存儲器的最后6個存儲單元已在出廠前被預先寫入了唯一的48位MAC地址,消除大多數嵌入式系統的生產過程中必不可少的序列化步驟。
CP2200有4種不同水平的功能功率模式,允許主處理器管理總的系統功耗。中斷選擇引腳還允許主處理器進入“sleep”模式,并且當數據包到達或者是當CP2200被插入到網絡時有自動喚醒的功能。全/半雙工自適應。
[align=center]

圖2-1 CP2200系統框圖[/align]
2.2 CP2200系統框圖
2.3 CP2200的緩存和Flash存儲器組織結構
[align=center]

圖2-2 CP2200的緩存及Flash存儲器組織結構圖[/align]
如圖2-2所示,CP2200擁有2K的發送緩存和4K接受緩存,發送緩存和接受緩存共享相同的地址空間,都通過RAMADDRH:RAMADDRL指針來存取;以及擁有獨立地址空間的8K片內FLASH,通過FLASHADDRH:FLASHADDRL指針存取。
2.4 CP2200的寄存器
主控可通過并行接口訪問CP2200的直接或間接寄存器,進而控制CP2200。CP2200/1有114個內部直接寄存器和9個間接寄存器。這些寄存器基于功能被分成11個類別組:中斷狀態和控制寄存器、復位源寄存器、功率模式寄存器、發送狀態和控制寄存器、接受接口狀態和控制寄存器、接受緩存狀態和控制寄存器、FLASH存取寄存器、MAC訪問寄存器、MAC間接寄存器和PHY狀態和控制寄存器。
[align=center]

圖3-1 C8051F020與CP2200的連接原理圖[/align]
3.智能節點的連接原理圖
本系統采用非復用方式,C8051F020的P7口作為數據總線連接CP2200的D[0:7];P6口作為地址總線連接CP2200的A[0:7];P5.7作為CP2200的片選;C8051F020的P4.5連接CP2200的 來進行復位操作,而且至少要維持15μs的低電平。CP2200工作于中斷方式。CP2200有14個中斷源,當某一事件發生時,通過 向C8051F020的 發出中斷請求。
4.以太網通信接口軟件設計
[align=center]

圖4-1 典型以太網幀[/align]
本系統設計采用的是IEEE802.3以太網協議。它的幀結構如圖4-1所示。物理信道上的收發操作均使用這個幀格式。其中,前導序列、幀起始位、CRC校驗及必要的填充均有由硬件自動添加/刪除,與上層軟件無關。Length/Type是類型字段,表明該幀的數據類型,不同的協議的類型字段不同。如:0800H表示數據為IP包,0806H表示數據為ARP包,814CH是SNMP包,8137H為IPX/SPX包(小于0600H的值是用于IEEE802的,表示數據包的長度)。Data是數據字段,該字段數據不能超過1500字節。因為以太網規定整個傳輸包的最大長度不能超過1514字節。由于以太網幀傳輸的數據包最小不能小于64字節,除去(Destination MAC Address, Source MAC Address, Length/Type及CRC共18字節),還必須傳輸46字節的數據,當數據段的數據不足46字節時,后面補0填充至最小幀長64字節。
4.1 CP2200初始化流程
系統上電后必須初始化,才能夠正常的工作,圖4-2為初始化流程。
[align=center]

圖4-2 CP2200初始化流程[/align]
4.2幀的接收發送流程
一旦系統初始化完成,C8051F020即可向主控PC發送采集的數據或響應主控PC的ARP請求,向主控PC發送自己的IP地址與MAC地址。
系統復位初始化完成后,若接受緩存、過濾器及散列表也被初始化,智能結點即可接受主控PC送來的命令、調控數據、下載更新程序或主控PC的ARP請求。當CP2200收到一個新幀,就通過中斷通知C8051F020,然后如圖4-3 幀收發送流程來讀取幀。
[align=center]

圖4-3 幀收發送流程[/align]
幀異常中止只出現于半雙工模式,典型的原因是網絡擁塞。
4.3 TCP/IP裁剪與設計
智能節點部分實際上是一個相對獨立的單片機系統,要完成上傳下達的任務,經常與主控PC通信,在有些應用環境中還要進行數據采集與處理的任務,相對來說就顯得單片機系統資源有限。
而網絡協議通常分層設計,TCP/IP協議一樣也是一種分層結構。它是由基于硬件層次上的四個概念性層次構成[3],即網絡接口層、互聯網層、傳輸層和應用層。為了能夠與主控PC在對等層上實現通信,為此在我們的智能節點中至少還應該設計并實現IP協議與TCP或UDP協議。
但是TCP/IP協議是一個非常龐大的體系,不可能將所有協議進行集成,只能在對TCP/IP進行裁剪的基礎上,將它作為一種嵌入式應用,固化到單片機系統的ROM中,使數據傳輸按TCP/IP協議格式封裝,從而達到在Internet上傳輸的目的。實現TCP協議需要大容量的數據存儲器來存儲等待應答的數據信息。如果多個TCP連接同時建立,就需要提供額外的RAM來存儲連接信息,如IP地址、端口號、緩沖指針等。而UDP的首部僅僅8字節,相對于TCP首部20~60字節,顯得更加緊湊,它有較高的數據傳輸效率,而且UDP是無連接協議,它允許使用一種更輕便、更快速的接口,更能夠適應于工業中的實時性,這在單片機的嵌入式應用中更具有優越性。因此,我們在智能節點的高層協議設計中選擇UDP作為傳輸層協議,而沒有采用TCP。此外還實現了ARP,ICMP及IP協議,其它協議和TCP協議一起均被裁剪。
在設計時我們在充分考慮實時性要求同時,還應兼顧網絡的擁塞狀態與利用率。因此不能每采集一個數據就馬上實施通訊過程,這樣因要攜帶過多的各層協議首部而降低線路利用率。若每次都組織數據達到1500字節大小的數據包再發送,那么又降低了實時性,所以我們取256字節作為一幀數據為單位實施一次通信過程。
5.智能節點主程序流程圖
[align=center]

圖5-1 智能節點主程序流程圖[/align]
6.小結
在當今工業領域急切追求設備的集成化、數字化、網絡化、智能化,如何來實現現場設備的網絡化呢?以太網智能節點在這樣的應用中就顯得特別重要。本文作者創新點:利用以太網控制器芯片CP2200實現了以太網智能節點硬件到軟件的設計,在應用于某一領域時只要稍加修改,便可以發揮它強大的通信與數據采集及控制功能。
參考文獻:
[1] 馮冬芹.以太網與TCP/IP[J].自動化儀表.2003.24(5):67-70
[2] User Manual of cp220/1. http://www.silabs.com.
[3] 謝希人.計算機網絡(第四版)[M].北京:電子工業出版社.2003.6
[4] 門磊等,李玉強等.基于以太網嵌入式系統研究[J].沈陽工業大學學報,2004.4.
[5] User Manual of C8051F020/1/2/3. http:// www.silabs.com.
[6] 習博 方彥軍. 工業以太網中網絡通信技術的研究. 微計算機信息.2005.21(2):148-149
[7] 羅智佳等. 基于以太網的分布式數據采集監控系統的應用. 微計算機信息.2006.22(1):22-24