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