1.引言
在Internet的日益普及,信息共享程度的不斷提高的今天,人們的工作和生活方式已經有了革命性的改變。家庭電器和工業設備中無處不在的充滿了單片機或微控制器(MCU)。但目前大多數嵌入式系統還處于單獨應用的階段,而工業上也只是利用孤立于Internet以外的的控制通信網絡(如CAN,I2C,PROFIBUS等現場總線)實現MCU組網。如果能將嵌入式系統連接到應用廣泛的Internet上面,或者在現有網絡的基礎上利用Internet為介質,則可以方便、低廉地將信息傳送到幾乎世界上的任何一個地方,從而進行遠程監控。因此,嵌入式Internet技術就應運而生,并成為業內的一大熱點。
2嵌入式Internet技術原理及方案
嵌入式Internet技術,也就是將嵌入式系統與Internet結合起來實現系統網絡化,涉及的兩個關鍵問題即傳送信息的媒質和采用的協議。與Internet相聯接的途徑可以是以太網或者電話線等媒介。而在大多數工作場地都配有以太網,電子裝置通過集線器(HUB)可以隨時插接。在家庭中,也有電力線和電話線等載體可以利用。如果是與局域網連接,只需要為該裝置設置硬的或軟的IP地址就可。如果是利用電話線路,可以使用電話用戶的ID。現在實現嵌入式電子裝置的訪問連通,幾乎不成問題。所以嵌入式Internet技術的關鍵問題在于如何在MCU中實現Internet上被廣泛使用的TCP/IP通信協議。但是TCP/IP通信協議對于計算機存儲器、運算速度等的要求比較高,普通單片機無法達到其要求。根據各種MCU自身的特性,實現TCP/IP協議的方法可分以下幾種:
1)高檔MCU芯片
采用ARM內核的系列處理器或者386EX等高檔MCU,其運算速度快,性能高,在芯片上可以運行實時操作系統(RTOS),同時也可以嵌入完整的TCP/IP協議。
2)32位MCU芯片
32位機也有足夠的資源和能力運行TCP/IP協議和一些嵌入式操作系統。所以原則上講,實現思路和高檔機一樣。
3)8/16位MCU芯片
由于8位和16位MCU的處理能力和存儲問題,要實現TCP/IP協議是比較困難的。因此要根據其特點,對TCP/IP協議進行簡化,保留其最基本的東西。同時,上層協議可不用或者簡單實現。即將原來的TCP/IP協議轉變成嵌入式TCP/IP協議,我們隨后會具體介紹。
由TCP/IP協議在MCU中的實現方法和嵌入式系統的要求,一般實現嵌入式Internet的方案有以下幾種:
1.把標準網絡協議(TCP/IP)一直擴展到嵌入式設備當中,由嵌入式系統自身實現聯網功能,每個設備都可與Internet相連。這是解決問題的最佳方案及未來電器、設備的發展方向。例如Netscillon公司的ARM+NET系列芯片,將其嵌入到任何設備中既可實現上網。此方案對微處理器性能的要求較高。
2.通過專用的WEB服務器實現。在現有的嵌入式系統中大量使用的是8位和16位MCU,并不要求每個設備都直接連到Internet上,用戶可以通過Internet接近設備,然后再用輕量級網絡擴展到多個設備上。如電力線、RS-485、RS-232、I2C等。專用WEB服務器可作為子網設備路由器來轉換和實現嵌入式系統與外部網的通信。emWare公司專門為嵌入式微控制器設備設計的網絡服務器。
3.RS232/485,CAN,I2C
通過嵌入式網關(emGateway)聯接。嵌入式網關運行TCP/IP協議,與嵌入式設備輕量級網絡(如RS-232,RS-485,現場總線等)相連接,提供與Internet或局域網的協議轉換及路由功能。結構如圖一所示。
圖一8/16位MCU嵌入式網關結構圖
2.1嵌入式TCP/IP協議概述
傳輸控制協議/網間協議(TCP/IP)是構建Internet的標準協議,它最早是在PC機上實現的。由于嵌入式系統與PC機的差別很大,因此在嵌入式系統中實現TCP/IP協議與PC機操作系統中的實現有很大的不同。圖二顯示了嵌入式TCP/IP協議與TCP/IP協議各層詳細的內容和協議和相對應的OSI模型關系。
圖二三種協議層的結構比較
如圖所示,TCP/IP通常采用一種簡化的四層模型,分別為:應用層、傳輸層、網絡層、網絡接口層。在嵌入式TCP/IP中,前三層協議是由嵌入式處理器實現的。接口層是由網絡控制芯片實現的。
由于嵌入式系統沒有一個多任務的操作系統,而且又是直接面對硬件,所以嵌入式TCP/IP協議在應用層上要求簡單。同時,不同嵌入式系統對嵌入式Internet所采用的應用層協議要求不同,而且應用層的協議還要和鏈路層實現的協議相對應。因此,系統要根據自己的需要和鏈路層協議的實現來選擇和簡化應用層的協議。
傳輸層主要為兩臺主機上的應用程序提供端到端的通信。傳輸層有兩種不同的傳輸協議:面向連接的TCP(傳輸控制協議)和無連接的UDP(用戶數據報協議)。TCP是面向接入即傳輸前必須先通過“三重握手”在主機間建立TCP接入,它所傳數據流采用了順序號和應答措施,可以發現數據的丟失、段的失序和對傳輸錯誤的排除,所以TCP協議提供的是數據流的可靠傳輸。但相對于UDP,它的可靠性是以復雜性為代價的,需要復雜龐大的程序來實現。UDP提供的是無連接的不可靠的服務,可能出現數據包的丟失,重復和連接失敗等錯誤。但是正因沒有接入機制,它可以實現高速發送,充分發揮物理傳輸設備的速度。UDP適合用在通信介質十分可靠的情況,例如以太網等。
網絡層處理分組在網絡中的活動。其協議包括IP協議(網際協議)、ARP協議(地址解析協議)、ICMP協議(Internet互聯網控制報文協議)以及IGMP協議(Internet組管理協議)。IP協議是TCP/IP族的核心協議,它使異構網絡之間的通信成為可能。因此如果嵌入式Internet,需要跨越不同的網絡進行通信就必須要實現IP協議。ARP協議實現將邏輯IP地址映射為物理地址。ICMP協議主要用來傳遞差錯報文以及其他需要注意的信息。我們通常使用的應用程序PING就是采用ICMP協議來測試網絡的連通情況。對于普通的嵌入式Internet的應用而言,在ICMP協議中能夠測試網絡的連通情況即可,因此只需實現ICMP中類型號為0、代碼為0的PING應答協議即可。通常嵌入式Internet不考慮IGMP。
鏈路層主要作用是為其上層協議發送和接收數據包,根據物理層的不同,主要協議有以太網、令牌環網、FDDI(光纖分布式數據接口)及RS232串行線路協議等。可由選擇的網絡接口芯片完成。
3設計實例
應用普通8/16位MCU形成嵌入式網關是最具發展潛力的一大熱點。而應用TCP/IP協議的以太網已經成為最流行的分組交換局域網技術,整個網絡只有一種底層通訊協議,同時也具有開放的TCP/IP網絡技術。它可滿足控制系統各個層次的要求。工業控制領域中常用的現場總線和串行通信可以通過嵌入式網關與以太網相連,從而方便的實現控制網絡與Internet連接,目前基于以太網的工業控制網絡已經成為未來的發展趨勢。所以本設計采用在16位MCU中嵌入“裁剪”后的TCP/IP協議棧及以太網控制芯片驅動程序,并通過以太網接入Internet網絡。其硬件框圖如圖三所示。
圖三16位單片機實現嵌入式網卡的硬件框圖
這種方案首先要求在鏈路層上,由于采用以太網的接人方式,系統必須要實現IEEE802.3標準,這可采用通用的以太網接口芯片RTL8019AS來完成。其次,為了保證系統在以太網的通信,系統還需實現ARP應答協議。在網絡層上要實現IP協議,為了能夠測試系統與網絡的連接,系統需要實現ICMP協議中的ping應答協議。在傳輸層上我們選擇UDP協議。應用層上單片機系統傳遞來自Ethernet和數據終端的數據,應用層只對大的數據報作打包拆報處理。
RTL8019AS是RealTek公司生產的一種全雙工以太網控制器,符合EthernetII、IEEE802.3(10Base5、10Base2、10BaseT)標準;與NE2000兼容;支持8位、16位數據總線;內置16KB的SRAM,用于收發緩沖,可降低對主處理器的速度要求。外部RAM使用PSD4135(512KB),從而為數據處理提供了很大的緩存,同時它也有地址鎖存和地址譯碼功能。使用E2PROM—93C46,可以將網卡物理地址和其他參數保存在里面。
這里的RTL8019AS就是處理以太網協議(IEEE802.3)的。數據的流向為:請求信息從局域網中來,通過RJ45送到RTL8019AS,處理后的數據包送入80C196協議棧,由協議棧對數據包進行解析,得到原始請求信息。請求信息再經過80C196的處理,產生回復信息。回復信息到局域網的過程與上面正好相反。RJ45為此系統與局域網的接口。
一個標準的IEEE802.3數據幀由七部分組成,圖四說明了標準的IEEE802.3數據包與TCP/IP協議數據的關系。
圖四IEEE802.3幀的組成
數據段的個數可從46Byte~1500Byte,不足46Byte時用零補足;超過1500Byte時,需要拆成多個幀傳送。前導位、幀起始位和幀校驗序列僅供控制器本身用,主處理器收到的數據幀的組成依次包括:接收狀態、下一幀的頁地址指針、目的地址、源地址、數據長度、數據段。IEEE802.3標準中的數據長度值小于或等于0x0600時,表示數據段的長度;反之,表示數據幀的類型。例如值為0x0800,表示數據段為IP包;值為0x0806,表示數據段為ARP包。
3.1系統軟件
在選定硬件,完成各芯片間地址線、數據線及狀態線連接后,開始軟件設計。軟件設計主要包括:芯片初始化程序、以太網控制器驅動程序、TCP/IP協議棧程序、系統網絡配置程序。芯片初始化程序用于設置MCU工作模式及外圍芯片選擇;以太網控制器驅動程序用于設置以太網控制芯片的工作狀態及工作方式,分配收發數據的緩沖區;系統網絡配置程序用于給監測系統分配IP地址及域名。
當網絡有數據時,RTL8019AS在接收和處理完以太網數據幀后傳送給單片機,80C196對數據包進行分析,如果是ARP(物理地址解析)數據包,則程序轉入ARP處理程序。如果是IP數據包且IP地址正確,則繼續分析若是ICMP包,則調用ICMP處理程序。若是UDP數據包,則80C196對數據解包后,將數據部分轉存在PSD4135中或者通過串口輸出。反之,當有數據要發送時,80C196將調用UDP打包程序來封裝數據并送入RTL8019的緩存中去。具體流程為:數據放到UDP的數據段-》生成UDP校驗-》建立IP頭-》(ARP地址解析)-》生成Ethernet頭-》放到網卡發送緩沖區-》發送。
4結束語
基于嵌入式Internet的工業以太網控制網絡是未來新一代工業控制網絡的發展趨勢。本文闡述了嵌入式Internet的各種技術原理,并通過了以太網接口控制芯片和嵌入式TCP/IP協議實現了嵌入式網關的功能。相信隨著嵌入式Internet技術的日益完善,這種可與現場總線等已有網絡實現方便簡單連接的方案,會得到更加廣泛的應用。
評論
查看更多