工業(yè)以太網(wǎng)講義_第1頁
工業(yè)以太網(wǎng)講義_第2頁
工業(yè)以太網(wǎng)講義_第3頁
工業(yè)以太網(wǎng)講義_第4頁
工業(yè)以太網(wǎng)講義_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、工 業(yè) 以 太 網(wǎng)周純杰周純杰 教授教授華中科技大學(xué)控制系內(nèi)容介紹:n為什么工業(yè)領(lǐng)域需要以太網(wǎng)n以太網(wǎng)技術(shù)的基本原理n工業(yè)以太網(wǎng)與商業(yè)以太網(wǎng)的區(qū)別n幾種主流的工業(yè)以太網(wǎng)標(biāo)準(zhǔn)n嵌入式工業(yè)以太網(wǎng)協(xié)議棧的設(shè)計(jì)n總結(jié)為什么工業(yè)領(lǐng)域需要以太網(wǎng)原因一:現(xiàn)場總線標(biāo)準(zhǔn)難以統(tǒng)一,帶來系統(tǒng)復(fù)雜性1999 年現(xiàn)場總線技術(shù)標(biāo)準(zhǔn)IEC 61158 終于塵埃落定,有8種總線成為國際電工委員會(IEC) 現(xiàn)行的現(xiàn)場總線技術(shù)標(biāo)準(zhǔn)。它們分別是: 基金會現(xiàn)場總線FF(fundation fieldbus); ControlNet; Profibus; P-Net; FF(fieldbus fundation)高速以太網(wǎng)HSE;

2、SwiftNet; WorldFIP; Inter-bus.從用戶應(yīng)用的角度來看,多種現(xiàn)場總線標(biāo)準(zhǔn)并立導(dǎo)致多種現(xiàn)場總線標(biāo)準(zhǔn)并立導(dǎo)致在一個(gè)具體應(yīng)用中可能會涉及多種不同標(biāo)準(zhǔn)的現(xiàn)場總線在一個(gè)具體應(yīng)用中可能會涉及多種不同標(biāo)準(zhǔn)的現(xiàn)場總線儀表儀表,需要解決不同標(biāo)準(zhǔn)系統(tǒng)之間的互連接和互操作的問題,這必然會增加用戶的投資和使用維護(hù)的復(fù)雜性。原因二:信息集成有新的要求帶寬問題:帶寬問題:一般地來說,現(xiàn)場總線標(biāo)準(zhǔn)的特點(diǎn)是通信協(xié)議比較簡單,通信速率比較低。如基金會總線FF的H1和PROFIBUS-PA 的傳輸速率只有31.25Kbps。但隨著儀器儀表智能化的提高,傳輸?shù)臄?shù)據(jù)也必將趨于復(fù)雜,未來傳輸?shù)臄?shù)據(jù)可能已不滿足

3、于幾個(gè)字節(jié),甚至是WEB網(wǎng)頁,所以網(wǎng)絡(luò)傳輸?shù)母咚傩栽诠I(yè)控制中越來越重要。與商業(yè)網(wǎng)集成問題:與商業(yè)網(wǎng)集成問題:在制造加工工業(yè)中,能夠走出辦公室,在任何地方對企業(yè)生產(chǎn)進(jìn)行實(shí)時(shí)監(jiān)控,無疑是各個(gè)企業(yè)提高生產(chǎn)效率、增強(qiáng)競爭力的有效方法。如此一來,現(xiàn)場總線的底層信息必然要和上層的通用局域網(wǎng)連接,將底層信息集成到車間、公司級的數(shù)據(jù)庫中, 通過WEB方式瀏覽和交互控制。現(xiàn)有現(xiàn)場總線標(biāo)準(zhǔn)大都無法直接與互聯(lián)網(wǎng)連接,需要額外的網(wǎng)絡(luò)設(shè)備才能完成通信。原因三:工業(yè)以太網(wǎng)的技術(shù)優(yōu)勢(1) 解決協(xié)議的開放性和兼容性問題。解決協(xié)議的開放性和兼容性問題。工業(yè)以太網(wǎng)因?yàn)椴捎糜蒊EEE802.3所定義的數(shù)據(jù)傳輸協(xié)議,它是一個(gè)開放

4、的標(biāo)準(zhǔn),從而為PLC廠家和DCS廠家廣泛接受。與現(xiàn)場總線相比,以太網(wǎng)還具有向下兼容性??焖僖蕴W(wǎng)是在雙絞線連接(10BaseT)的傳統(tǒng)以太網(wǎng)標(biāo)準(zhǔn)的基礎(chǔ)上發(fā)展起來的,但它的傳輸速度從10Mbps提升到了100Mbps。在大多數(shù)場合,它還可以使用已有的布線。此外,以太網(wǎng)還允許逐漸采用新技術(shù)。也就是說,沒必要一下子改變整個(gè)網(wǎng)絡(luò),可以一步步將整個(gè)網(wǎng)絡(luò)升級。(2) 解決帶寬需求問題。解決帶寬需求問題。以太網(wǎng)最初的數(shù)據(jù)傳輸速度只有10Mbit/s,隨著1996年快速以太網(wǎng)標(biāo)準(zhǔn)的發(fā)布。以太網(wǎng)的速度提高到了100Mbit/s。1998年,千兆以太網(wǎng)標(biāo)準(zhǔn)的發(fā)布將其速度提高到最初速度的100倍。最初的以太網(wǎng)需要1

5、.2毫秒才能傳送一個(gè)1518字節(jié)大小數(shù)據(jù);現(xiàn)在,快速以太網(wǎng)已經(jīng)將這一時(shí)間減少到120秒;如果采用千兆以太網(wǎng),這一時(shí)間只需12微秒。(3) (3) 解決與商用以太網(wǎng)集成問題。解決與商用以太網(wǎng)集成問題。以太網(wǎng)作為現(xiàn)場總線,尤其是高速現(xiàn)場總線結(jié)構(gòu)的主體,可以避免現(xiàn)場總線技術(shù)游離于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展之外,使現(xiàn)場總線技術(shù)與計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)很好地融合而形成相互促進(jìn)的局面。(4) (4) 以太網(wǎng)適配器的價(jià)格大幅度下跌以及各產(chǎn)品和標(biāo)以太網(wǎng)適配器的價(jià)格大幅度下跌以及各產(chǎn)品和標(biāo)準(zhǔn)對以太網(wǎng)的支持是其成功的重要因素。準(zhǔn)對以太網(wǎng)的支持是其成功的重要因素。什么是以太網(wǎng)?1980 年DEC( digital equipme

6、nt corporation) 、Intel 和Xerox 三大公司發(fā)布了DIX版以太網(wǎng)1.0 規(guī)范,其傳輸速度為10Mb/S ,所支持的唯一物理介質(zhì)為粗同軸電纜。1982 年, 發(fā)布了DIX2.0 版, 這就是通常所說的Ethernet 。與DIX同步的是IEEE 成立的至今聞名的802.3 委員會。1985 年,IEEE 802.3 委員會發(fā)布了CSMA/ CD 訪問方法和物理層規(guī)范。盡管其幀的定義與DIX2.0不盡相同,但是現(xiàn)在更多的人認(rèn)為它就是以太網(wǎng)。以太網(wǎng)標(biāo)準(zhǔn)包括: physical layer: media, configuration data link layer: MAC p

7、rotocol, CSMA/CDPA SFD DA SA TypeData PacketFCSEthernet HeaderData Field7166246-1500 bytes4An Ethernet II frame以太網(wǎng)幀結(jié)構(gòu)nEvery device has unique addressnMulticasting, broadcasting supportedPA SFDDA SA Length802.3 Header and Data PacketFCS7166246-1500 bytes4An 802.3 frameSOF1CSMA/CDnCarrier Sense (CS)“偵

8、聽”在發(fā)送信息幀之前是否有網(wǎng)絡(luò)傳輸。一旦偵聽到信道空閑,等待一個(gè)IFG (46bit時(shí)間)后便立刻發(fā)送信息幀nMultiple Access (MA)“多點(diǎn)接入”如果多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送信息,此時(shí)就會發(fā)生沖突nCollision Detect (CD)“沖突檢測”CSMA/CD協(xié)議中采用重傳機(jī)制重新執(zhí)行信息幀的發(fā)送操作,直到該信息幀成功發(fā)送或重傳次數(shù)n達(dá)到上限(attempLimit)而 終止發(fā)送Intel Demo 2CSMA/CDnExponential Back-off Algorithm “二進(jìn)制指數(shù)回避算法,BEB”每次檢測到?jīng)_突,CSMA/CD采用BEB算法隨機(jī)地計(jì)算出下一次重傳需要等

9、待的時(shí)間,即幀重傳時(shí)延。幀重傳時(shí)延的大小為時(shí)隙時(shí)間(slot Time,512bit的傳輸時(shí)間)的整數(shù)倍r。r為隨機(jī)整數(shù),其取值為:0r2r,k=min(n,10), 其中,n為重傳次數(shù),最大值為16.對于 10M bit/s網(wǎng)絡(luò),一個(gè)時(shí)隙時(shí)間為51.2us。因此沖突所導(dǎo)致的等待時(shí)間最長可以達(dá)到51ms。重傳時(shí)延的不確定性,不能滿足工業(yè)系統(tǒng)的實(shí)時(shí)性工業(yè)以太網(wǎng)與商業(yè)以太網(wǎng)的區(qū)別1、工業(yè)以太網(wǎng)的基本體系結(jié)構(gòu)2、改進(jìn)的實(shí)時(shí)工業(yè)以太網(wǎng)體系結(jié)構(gòu)3、工業(yè)以太網(wǎng)的實(shí)時(shí)通信技術(shù)4、工業(yè)以太網(wǎng)的設(shè)備環(huán)境適應(yīng)性和可靠性要求1、工業(yè)以太網(wǎng)基本體系結(jié)構(gòu) 工業(yè)以太網(wǎng)在商用以太網(wǎng)基礎(chǔ)上發(fā)展而來,它的體系結(jié)構(gòu)基本上采用了以

10、太網(wǎng)的標(biāo)準(zhǔn)結(jié)構(gòu)。對應(yīng)于ISO/OSI通信參考模型,工業(yè)以太網(wǎng)協(xié)議在物理層和數(shù)據(jù)鏈路層均采用了802.3標(biāo)準(zhǔn),在網(wǎng)絡(luò)層和傳輸層則采用被稱為以太網(wǎng)“事實(shí)上標(biāo)準(zhǔn)”的TCP/IP協(xié)議簇,在高層協(xié)議上,工業(yè)以太網(wǎng)通常省略了會話層、表示層,而定義了應(yīng)用層,有的工業(yè)以太網(wǎng)還定義了用戶層。 根據(jù)實(shí)時(shí)以太網(wǎng)實(shí)時(shí)擴(kuò)展的不同技術(shù)方案,可將實(shí)時(shí)以太網(wǎng)通信協(xié)議模型分為5類,是經(jīng)過常規(guī)最大努力提高實(shí)時(shí)性,一般工業(yè)以太網(wǎng)的通信協(xié)議模型;采用在TCP/IP之上進(jìn)行實(shí)時(shí)數(shù)據(jù)交換方案;采用經(jīng)優(yōu)化處理和提供旁路實(shí)時(shí)通道的通信協(xié)議模型;采用集中調(diào)度提高實(shí)時(shí)性的解決方案;采用類似Interbus現(xiàn)場總線“集總幀”通信方式和在物理層使用

11、總線拓?fù)浣Y(jié)構(gòu)提升以太網(wǎng)實(shí)時(shí)性能。2、改進(jìn)的實(shí)時(shí)工業(yè)以太網(wǎng)體系結(jié)構(gòu)3、工業(yè)以太網(wǎng)的實(shí)時(shí)通信技術(shù)n采用以太網(wǎng)與TCP/IP相結(jié)合的方法n直接修改傳統(tǒng)以太網(wǎng)MAC協(xié)議(CSMA/CD)方式n數(shù)據(jù)鏈路層增加實(shí)時(shí)調(diào)度層的方式n網(wǎng)絡(luò)節(jié)點(diǎn)間的時(shí)間同步機(jī)制也是實(shí)現(xiàn)確定性實(shí)時(shí)調(diào)度的必要手段之一采用以太網(wǎng)與TCP/IP相結(jié)合的方法n標(biāo)準(zhǔn):HSE、EtherNET/IP和Modbus/TCP n說明:它們是建立在以太網(wǎng)和TCP/IP協(xié)議基礎(chǔ)上的數(shù)據(jù)傳遞。提高實(shí)時(shí)性的主要手段包括提高通信速率,控制網(wǎng)絡(luò)負(fù)荷以及采用全雙工交換技術(shù)。然而,交換式以太網(wǎng)并不是實(shí)時(shí)通信最終的解決方案, 當(dāng)多個(gè)數(shù)據(jù)流同時(shí)到達(dá)交換機(jī)時(shí),需要將其緩

12、存后從目的端口順序輸出,此時(shí)多路轉(zhuǎn)換和緩存的時(shí)間取決于不同交換機(jī)的具體實(shí)現(xiàn)方式和網(wǎng)絡(luò)的負(fù)載情況,其值仍是一個(gè)不確定的數(shù)值。在許多工業(yè)應(yīng)用環(huán)境中,需要一個(gè)設(shè)備同時(shí)向多個(gè)設(shè)備發(fā)送數(shù)據(jù)(如廣播或發(fā)布/預(yù)定關(guān)系)。交換式以太網(wǎng)更適合于點(diǎn)對點(diǎn)的數(shù)據(jù)交換,當(dāng)廣播或多播報(bào)文同時(shí)傳遞到一個(gè)端口時(shí)會造成數(shù)據(jù)傳遞的時(shí)延。 采用以太網(wǎng)與TCP/IP相結(jié)合的方法n標(biāo)準(zhǔn):HSE、EtherNET/IP和Modbus/TCP n說明:它們是建立在以太網(wǎng)和TCP/IP協(xié)議基礎(chǔ)上的數(shù)據(jù)傳遞。提高實(shí)時(shí)性的主要手段包括提高通信速率,控制網(wǎng)絡(luò)負(fù)荷以及采用全雙工交換技術(shù)。然而,交換式以太網(wǎng)并不是實(shí)時(shí)通信最終的解決方案, 當(dāng)多個(gè)數(shù)據(jù)流

13、同時(shí)到達(dá)交換機(jī)時(shí),需要將其緩存后從目的端口順序輸出,此時(shí)多路轉(zhuǎn)換和緩存的時(shí)間取決于不同交換機(jī)的具體實(shí)現(xiàn)方式和網(wǎng)絡(luò)的負(fù)載情況,其值仍是一個(gè)不確定的數(shù)值。在許多工業(yè)應(yīng)用環(huán)境中,需要一個(gè)設(shè)備同時(shí)向多個(gè)設(shè)備發(fā)送數(shù)據(jù)(如廣播或發(fā)布/預(yù)定關(guān)系)。交換式以太網(wǎng)更適合于點(diǎn)對點(diǎn)的數(shù)據(jù)交換,當(dāng)廣播或多播報(bào)文同時(shí)傳遞到一個(gè)端口時(shí)會造成數(shù)據(jù)傳遞的時(shí)延。 采用以太網(wǎng)與TCP/IP相結(jié)合的方法另外,HSE,Ethernet/IP和Modbus TCP都沒有在實(shí)質(zhì)上解決以太網(wǎng)的通信不確定性問題,而是采取了一種比較折衷的方案,即傳輸層、數(shù)據(jù)鏈路層和物理層沿用以太網(wǎng)的原有機(jī)制,在用戶層或應(yīng)用層對數(shù)據(jù)的傳輸進(jìn)行控制。而對于應(yīng)用層

14、以下的報(bào)文是不能控制的,如ARP (Address Resolution Protocol)、ICMP (Internet Control Messages Protocol)等協(xié)議所產(chǎn)生的報(bào)文。這種折衷的方案不能滿足實(shí)時(shí)性要求很高的場合。 直接修改CSMA/CD方式由于導(dǎo)致不確定性通信的CSMA/CD機(jī)制位于以太網(wǎng)MAC層,所以最直接的方法是修改以太網(wǎng)的MAC層協(xié)議。采用這種方式中,加州大學(xué)開發(fā)的CSMA /DCR協(xié)議影響較為廣泛,它保持了與標(biāo)準(zhǔn)CSMA/CD 的兼容,該協(xié)議在未發(fā)生沖突的情況下,采用CSMA/CD協(xié)議,當(dāng)發(fā)生沖突時(shí),采用一種確定性的沖突解決算法(二叉樹遍歷算法)來保證一個(gè)確

15、定性數(shù)據(jù)的最壞信道訪問時(shí)間。但由于以太網(wǎng)的MAC協(xié)議是固化在硬件芯片中的,要修改MAC層協(xié)議,就必須對相關(guān)硬件進(jìn)行改動;其次,該類只能保證確定時(shí)間內(nèi)解決沖突,往往最壞沖突解決時(shí)間通常遠(yuǎn)大于平均沖突解決時(shí)間,而實(shí)時(shí)系統(tǒng)中最關(guān)注的正是系統(tǒng)在最壞條件下的表現(xiàn)。因此此類方案多見于學(xué)術(shù)文章,沒有相應(yīng)的工業(yè)標(biāo)準(zhǔn)采用。數(shù)據(jù)鏈路層增加實(shí)時(shí)調(diào)度層的方式在MAC層之上增加一個(gè)實(shí)施確定性調(diào)度的軟件層. 現(xiàn)有的幾種方案的共同思想是,網(wǎng)段內(nèi)的實(shí)時(shí)報(bào)文和非實(shí)時(shí)報(bào)文將分時(shí)發(fā)送,協(xié)議棧中實(shí)時(shí)通信報(bào)文經(jīng)過數(shù)據(jù)鏈路層傳遞后,不經(jīng)過網(wǎng)絡(luò)層和傳輸層而直接傳遞給應(yīng)用層,同時(shí)非實(shí)時(shí)報(bào)文仍然要通過TCP/IP協(xié)議來傳遞.典型的有下列幾種:

16、(1) 基于帶寬預(yù)留方式的調(diào)度(2) 基于時(shí)間片的分時(shí)調(diào)度方式(3) EtherCAT方式(1) 基于帶寬預(yù)留方式的調(diào)度標(biāo)準(zhǔn):RETHER,Ethereal說明:RETHER是一個(gè)在傳統(tǒng)總線共享式以太網(wǎng)上實(shí)現(xiàn)確定性調(diào)度的協(xié)議,該協(xié)議在MAC層之上的調(diào)度層中采用了一種增強(qiáng)型的分布式令牌傳遞機(jī)制來控制各個(gè)節(jié)點(diǎn)的數(shù)據(jù)發(fā)送,以沖突避免的方式來保證數(shù)據(jù)發(fā)送的確定性。Ethereal協(xié)議也是一個(gè)采用帶寬預(yù)留方式來保證數(shù)據(jù)傳送實(shí)時(shí)性的協(xié)議。該協(xié)議的特點(diǎn)是為保證實(shí)時(shí)性所增加的實(shí)時(shí)控制邏輯位于交換機(jī)的軟件中,而對于網(wǎng)絡(luò)中各節(jié)點(diǎn)的網(wǎng)絡(luò)硬件甚至運(yùn)行于其上的操作系統(tǒng)幾乎不做任何特殊要求,即網(wǎng)絡(luò)節(jié)點(diǎn)所處的軟硬件環(huán)境是透

17、明的。在交換機(jī)上運(yùn)行的調(diào)度軟件以帶寬預(yù)留的方式保證實(shí)時(shí)數(shù)據(jù)的確定性,同時(shí)以最大努力方式進(jìn)行非實(shí)時(shí)數(shù)據(jù)的傳送。帶寬預(yù)留式調(diào)度方式的缺點(diǎn)是,當(dāng)現(xiàn)場環(huán)境中一個(gè)網(wǎng)段包含大量的網(wǎng)絡(luò)節(jié)點(diǎn),節(jié)點(diǎn)間隨機(jī)性通信頻繁時(shí),調(diào)度算法的效率不高。(2) 基于時(shí)間片的分時(shí)調(diào)度方式標(biāo)準(zhǔn):Powerlink,Profinet,EPA說明:Powerlink是由奧地利B&R公司開發(fā)的以太網(wǎng)控制協(xié)議,該方案在MAC層之上實(shí)現(xiàn)了一個(gè)基于主從式輪詢機(jī)制的調(diào)度策略,使用時(shí)間槽來分配發(fā)送許可。該機(jī)制在網(wǎng)絡(luò)上定義一個(gè)網(wǎng)絡(luò)站點(diǎn)來擔(dān)當(dāng)管理者,配置其它站點(diǎn)的時(shí)間槽,其它節(jié)點(diǎn)以從站方式運(yùn)行,只有在收到主站的發(fā)送許可時(shí)才能發(fā)送數(shù)據(jù)。站點(diǎn)之間

18、的數(shù)據(jù)交換是在一個(gè)固定的時(shí)間間隔內(nèi)循環(huán)執(zhí)行的,這個(gè)時(shí)間周期由管理者進(jìn)行配置。管理者在為各站點(diǎn)分配時(shí)間槽時(shí),也為普通的非實(shí)時(shí)數(shù)據(jù)預(yù)留了時(shí)間槽。為了提高實(shí)時(shí)數(shù)據(jù)的傳輸效率,該方案在與TCP/IP協(xié)議對等的層次上開發(fā)自定義的實(shí)時(shí)數(shù)據(jù)封裝協(xié)議,而對于非實(shí)時(shí)性數(shù)據(jù),仍采用普通的TCP/IP協(xié)議傳輸。西門子公司的Profinet與Powerlink相象,它們都是基于時(shí)間片機(jī)制,并把通信周期分為實(shí)時(shí)部分和非實(shí)時(shí)部分。在一個(gè)通信周期中首先進(jìn)行實(shí)時(shí)通信,然后傳遞非實(shí)時(shí)信息(如TCP/IP報(bào)文),兩者的區(qū)別在于通信周期的同步方式。Profinet用特殊的以太網(wǎng)交換機(jī)實(shí)現(xiàn)網(wǎng)絡(luò)的時(shí)間同步, Powerlink則應(yīng)用輪

19、詢的方式,由主站來設(shè)置網(wǎng)絡(luò)時(shí)鐘。EPA在網(wǎng)絡(luò)層(即IP層)與數(shù)據(jù)鏈路層(或MAC層)之間定義了通信調(diào)度接口,用于有網(wǎng)絡(luò)層到MAC層的實(shí)時(shí)數(shù)據(jù)和非實(shí)時(shí)數(shù)據(jù)包的傳輸調(diào)度,以滿足EPA周期與非周期信息傳輸?shù)膶?shí)時(shí)性。(3) EtherCAT方式 EtherCAT是Beckhoff開發(fā)的一種實(shí)時(shí)以太網(wǎng)現(xiàn)場總線系統(tǒng)。EtherCAT主站傳遞的以太網(wǎng)幀包含了所有的I/O從站數(shù)據(jù),報(bào)文在I/O從站間傳遞,每個(gè)從站用極短的時(shí)間獲取數(shù)據(jù)并將發(fā)出數(shù)據(jù)寫入到相應(yīng)位置,然后將報(bào)文傳遞給下一個(gè)從站。最后一個(gè)從站處理結(jié)束后,將報(bào)文傳遞回EtherCAT主站EtherCAT充分利用了I/O層的帶寬,使得其處理1000個(gè)數(shù)字量

20、I/O只需30s,處理200個(gè)16位模擬量信號只需50s,即取樣頻率達(dá)到20kHz。EtherCAT適合處理具有大量I/O節(jié)點(diǎn)且報(bào)文簡單的系統(tǒng)。網(wǎng)絡(luò)節(jié)點(diǎn)間的時(shí)間同步機(jī)制由于以太網(wǎng)的不確定性源于網(wǎng)絡(luò)中不同節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù)而引起的碰撞,因而只有對網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行高精度的時(shí)鐘同步,把網(wǎng)絡(luò)節(jié)點(diǎn)上的數(shù)據(jù)發(fā)送實(shí)現(xiàn)為同步時(shí)鐘的函數(shù),才能規(guī)劃各網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)據(jù)發(fā)送時(shí)隙起點(diǎn)和時(shí)隙長度,從而避免網(wǎng)絡(luò)中有一個(gè)以上的節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù). IEEE1588 - PRECISION TIME PROTOCOL 定義了一個(gè)在分布式網(wǎng)絡(luò)中進(jìn)行亞微秒級時(shí)鐘同步的方法,從而使其成為目前一個(gè)較被看好的、可用于實(shí)現(xiàn)實(shí)時(shí)以太網(wǎng)解決方案的時(shí)

21、間協(xié)議,該標(biāo)準(zhǔn)在2002年11月被IEEE批準(zhǔn)。現(xiàn)已用與EPA、EtherCAT協(xié)議中。4、工業(yè)以太網(wǎng)設(shè)備環(huán)境適應(yīng)性和可靠性要求、工業(yè)以太網(wǎng)設(shè)備環(huán)境適應(yīng)性和可靠性要求 工業(yè)以太網(wǎng)設(shè)備商用以太網(wǎng)設(shè)備元器件工業(yè)級商業(yè)級接插件耐腐性、防塵、防水,如加固型RJ45、DB9、航空接頭等一般RJ45工作電壓24VDC220VAC電源冗余雙電源一般沒有安裝方式可采用DIN導(dǎo)軌或其它固定安裝桌面、機(jī)架等工作溫度-4085或-2070540電磁兼容標(biāo)準(zhǔn)EN 500812(工業(yè)級EMC)EN 500822(工業(yè)級EMC)EN 500812(辦公室用EMC)EN 500822(辦公室用EMC)MTBF值至少10年3

22、5年幾種主流的工業(yè)以太網(wǎng)標(biāo)準(zhǔn)nEPAnEtherCATnProfinetnHSEnModbus TCPnEthernet PowerlinknEthernet/IPEPAEPA是一種用于過程行業(yè)中確定性以太網(wǎng)通訊的中國提案。它也是浙大中控的商業(yè)名稱,無集團(tuán)支持,尚未在市場中推廣。方案:在MAC層中,達(dá)到實(shí)時(shí)的時(shí)間分割。通過常規(guī)TCPIP和或采用Modbus,完成所有其他傳輸。實(shí)時(shí)性:循環(huán)通訊為1O100ms,無同步。功能:通過TCPIP的常規(guī)lT和過程通訊。在慢實(shí)時(shí)中的分布式功能塊之間的確定性通訊的額外功能。EtherCAT2003年,由倍福公司(Beckhoff)開發(fā)。由EtherCAT E

23、TG的140名成員支持。方案:使用以太網(wǎng)物理層將閉環(huán)段內(nèi)的主站連接到環(huán)內(nèi)的從站。任何單一個(gè)報(bào)文以主站傳遞到每個(gè)從站,并從此處再回到主站。該報(bào)文具有一個(gè)以太網(wǎng)結(jié)構(gòu),但協(xié)議完全不同。每個(gè)從站擁有一個(gè)可在線讀寫的信箱。每臺設(shè)備集成門列陣或處理實(shí)時(shí)解碼的專用集成電路硅。常規(guī)TCP/IP設(shè)備必須通過網(wǎng)關(guān)連接,之后小型TCP/IP數(shù)據(jù)包能夠嵌入在EtherCAT報(bào)文內(nèi),打開包裝并在主站內(nèi)組合在一起,因此到達(dá)外部設(shè)備,用于TCP/IP的帶寬為1。實(shí)時(shí)性:循環(huán)時(shí)間從30us起。100個(gè)軸為100us,同步1us。功能:主要用于運(yùn)動控制,I/O和編碼器。Profinet由PROFlBus國際組織1200多名成員

24、以及五大洲125個(gè)國家的區(qū)域組織共同定義。多于25家公司及1 OO多種產(chǎn)品。公司涉及:倍福,HMS,西門子等,德國汽車行業(yè)宣布采用Profinet的公司包括Audi,BMW等。方案:主要功能采用了常規(guī)TCP/IP。這包括組態(tài),參數(shù)化及CBA (Component Based Automation基于組件的自動化),在TCP/lP傳輸上無限制。對于l/0和達(dá)到1 ms的其他實(shí)時(shí)功能,使用直接尋址和優(yōu)先級報(bào)文(RT信道)。TCP/IP傳輸無限定,但由于優(yōu)先級,會發(fā)生交換桐內(nèi)的較短的延遲。對要求低于1ms的實(shí)時(shí)并且同步1uS,Profinet報(bào)文使用基于專用集成電路的交換機(jī)以菊花鏈或環(huán)形方式連接,來

25、控制段中的傳輸。同步符合IEC 61588并且組態(tài)循環(huán)時(shí)間從250us起。實(shí)時(shí)性:對于30個(gè)軸,循環(huán)時(shí)間從250s起,及50的TCP/lP。對于15O個(gè)軸為1ms,同步1us。功能:CBA用于Profibus(已安裝有1,300萬個(gè)節(jié)點(diǎn))和 Interbus(已安裝有700萬個(gè)節(jié)點(diǎn))的透明移植。HSE由Fieldbus Foundation定義,為通過網(wǎng)關(guān)將FF網(wǎng)絡(luò)連接到以太網(wǎng)。由Fieldbus Foundation支持。唯一的產(chǎn)品是連接Foundation Fieldbus網(wǎng)絡(luò)的連接設(shè)備。艾默生過程管理公司,Endress+Hauser和Smar國際組織是連接設(shè)備的制造商。方案:以太網(wǎng)報(bào)文

26、中嵌入現(xiàn)場總線(FF)協(xié)議,無TCP/IP傳輸。實(shí)時(shí)性:無。功能:使DCS能夠跳變接口并且僅使用以太網(wǎng)作為通訊網(wǎng)絡(luò)。Modbus TCP由施耐德電氣公司定義,由用戶組織Modbus-IDA支持。自1979年開始使用初始的Modbus協(xié)議(如RS485)。輕松實(shí)現(xiàn)向以太網(wǎng)遷移,并廣泛的推廣。迄今為止,可能是最多使用的以太網(wǎng)解決方案。大約9O個(gè)產(chǎn)品主要來自有多接口選擇的遠(yuǎn)程I/O供應(yīng)商。方案:基于嵌入Modbus的常規(guī)TCP/IP, 種使用請求/應(yīng)答模式的非常簡單的協(xié)議。此方案為非確定性,反應(yīng)時(shí)間最佳20ms??稍黾訋в蠷TPS(Realtime Publisher Subscriber)實(shí)時(shí)性。

27、這是使用UDP/IP來改善性能,但沒有達(dá)到真正的實(shí)時(shí)標(biāo)準(zhǔn),用于TCP/IP的帶寬為90100。實(shí)時(shí)性:循環(huán)通訊為2O100ms,無同步。功能:將Modbus和以太網(wǎng)連接,用于I/O和在寄存器中讀寫的簡單協(xié)議。Ethernet PowerlinkPowerlink于2001年,由Bernecker+Rainer(B&R)開發(fā),并由EPSG(EPL標(biāo)準(zhǔn)化組織)支持。Power-link早期以運(yùn)動控制產(chǎn)品的形式推向市場,并在這種市場中占有份額,已安裝60,000多個(gè)節(jié)點(diǎn)。方案:帶有提供同步及肘間槽主站的閉環(huán)段。其中一個(gè)時(shí)間槽面向小型TCP/lP報(bào)文開放(1帶寬)。實(shí)時(shí)性:對應(yīng)于八個(gè)軸循環(huán)時(shí)間

28、為0.2ms。主站與驅(qū)動之間1O個(gè)網(wǎng)絡(luò)集線器,最大量限定為2O個(gè)軸,同步1us。功能:主要用于運(yùn)動控制。Ethernet/IP 由羅克韋爾公司定義。有ODVA的250名成員支持。主要產(chǎn)品是羅克韋爾,菲尼克斯及萬可等,大約21個(gè)認(rèn)證產(chǎn)品。2004年春天,通用汽車宣布,它將為其自動化程序標(biāo)準(zhǔn)化為Ethernet/IP。方案:通過常規(guī)以太網(wǎng),基于常規(guī)TCP/IP,并帶有可選UDP/IP對象嵌入?yún)f(xié)議,CIP經(jīng)由常規(guī)以太網(wǎng)(公用接口協(xié)議),傳輸I/O數(shù)據(jù),組態(tài)與診斷。非確定性響應(yīng)時(shí)間將至10ms??商砑油?CIPsynq-IEC61588),用于TCP/IP的帶寬為9O100。實(shí)時(shí)性:循環(huán)通訊為101

29、00ms,同步時(shí)間大約為10us。功能:用于ControlNet和DeviceNet(安裝了base 2.5m的節(jié)點(diǎn))通過橋路,實(shí)現(xiàn)到現(xiàn)場總線的遷移。驅(qū)動控制帶有適度范圍的循環(huán)時(shí)間及同步。嵌入式工業(yè)以太網(wǎng)協(xié)議棧的設(shè)計(jì)n總體設(shè)計(jì)方案n精簡的TCP/IP協(xié)議棧實(shí)現(xiàn)n工業(yè)以太網(wǎng)實(shí)時(shí)通信的解決總體設(shè)計(jì)方案嵌入式工業(yè)以太網(wǎng)節(jié)點(diǎn)就是在原有的控制節(jié)點(diǎn)設(shè)備上實(shí)現(xiàn)了工業(yè)以太網(wǎng)功能的系統(tǒng), 綜合之前各主流工業(yè)以太網(wǎng)協(xié)議的體系結(jié)構(gòu)和設(shè)計(jì)思想,總結(jié)工業(yè)以太網(wǎng)協(xié)議棧應(yīng)該具備以下部分:(1)精簡的TCP/IP協(xié)議棧,支持程序下載、組態(tài)更新等非實(shí)時(shí)數(shù)據(jù)傳輸,方便與企業(yè)上層管理系統(tǒng)的集成。(2)保證實(shí)時(shí)數(shù)據(jù)通信的解決方案嵌入

30、式工業(yè)以太網(wǎng)協(xié)議棧的設(shè)計(jì)n總體設(shè)計(jì)方案n精簡的TCP/IP協(xié)議棧實(shí)現(xiàn)n工業(yè)以太網(wǎng)實(shí)時(shí)通信的解決精簡的TCP/IP協(xié)議棧實(shí)現(xiàn)其中,如何實(shí)現(xiàn)TCP/IP 協(xié)議是嵌入式網(wǎng)絡(luò)系統(tǒng)的關(guān)鍵技術(shù)之一,在嵌入式系統(tǒng)中應(yīng)用TCP/IP 協(xié)議的關(guān)鍵是, 如何設(shè)計(jì)出精簡、高效的TCP/IP 協(xié)議子集, 以此來減少對系統(tǒng)資源的占用。目前,在嵌入式工業(yè)以太網(wǎng)節(jié)點(diǎn)設(shè)計(jì)方面,主流的技術(shù)方案有兩種:(1)使用嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)(2)是直接對單片機(jī)編程,自行編制TCP/IP協(xié)議棧1、方案討論(1)使用嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)嵌入式操作系統(tǒng)具有通用操作系統(tǒng)的基本特點(diǎn),如能夠有效管理越來越復(fù)雜的系統(tǒng)資源:能夠提供

31、庫函數(shù)、驅(qū)動程序、工具集以及應(yīng)用程序。目前市場上的嵌入式實(shí)時(shí)操作系統(tǒng),如Windows CE, VxWork, uCLinux等,都集成了TCP/IP協(xié)議棧。因此,使用嵌入式操作系統(tǒng),只需完成操作系統(tǒng)代碼的剪裁以及硬件驅(qū)動程序的移植,而對TCP/IP協(xié)議棧小必有深度的了解,將大大減少軟件編寫的工作量。(2)是直接對單片機(jī)編程,自行編制TCP/IP協(xié)議棧采用這種方法,需要對TCP/IP協(xié)議棧有深刻的理解,工作量較大,但可以為更好的理解以太網(wǎng)通信原理、開發(fā)其它協(xié)議的通信軟件打下良好的基礎(chǔ)。選用第一種方案工作量小,設(shè)計(jì)成功率較高,但是市而上的嵌入式操作系統(tǒng)都價(jià)格不菲。如果選擇自由軟件Linux,一方

32、面其實(shí)時(shí)性不好,做到微秒級的響應(yīng)需要代價(jià)大,另一方而熟悉Linux操作系統(tǒng)需要相當(dāng)長的時(shí)間。另外,使用嵌入式操作系統(tǒng),將會占用大量的存儲空間,把它移植入8位單片機(jī),需要開發(fā)人員對系統(tǒng)移植有深入的理解,否則效果適得其反,如果選用通用的ARM平臺,往往需要增加很多外圍接口電路,無論從人力還是物力講,都不利于節(jié)點(diǎn)成本控制。因此針對控制網(wǎng)絡(luò)節(jié)點(diǎn),節(jié)點(diǎn)任務(wù)簡單,通信量小的特點(diǎn),下面主要討論基于單片機(jī)直接編程方案的實(shí)現(xiàn)。2、硬件平臺設(shè)計(jì)硬件平臺的整體框圖如圖所示。由于51系列單片機(jī)的內(nèi)部RAM空間有限,必須擴(kuò)展外部SRAM。以太網(wǎng)控制器接收到以太網(wǎng)數(shù)據(jù)包后,暫存到外部SRAM的緩沖區(qū)中等待單片機(jī)處理:單片

33、機(jī)在外部SRAM中將以太網(wǎng)數(shù)據(jù)包封裝好后,通過以太網(wǎng)控制器發(fā)送出去。以太網(wǎng)控制器選型:RTL8019as VS. CP2200(1)電源電壓CP2200:3.13.6V RTL8019as:5v(2)封裝CP2200采用精巧的55毫米封裝,有28腳QFN和48腳TQFP兩種封裝。28腳QFN封裝只支持復(fù)用方式尋址。有方式選擇引腳,用于選擇總線接口方式。被宣稱是,業(yè)界體積最小和效能最高的單芯片。RTL8019as只有100pin PQFP封裝方式。(3)內(nèi)部資源CP2200組件還內(nèi)含IEEE 802.3兼容的10Base-T以太網(wǎng)媒體存取控制器(MAC)和實(shí)體層(PHY)以及8kB閃存,它已由工

34、廠預(yù)先設(shè)定一組獨(dú)一無二的48位MAC地址,故能省下多數(shù)嵌入式系統(tǒng)在產(chǎn)品制造過程中所需執(zhí)行的編序步驟(serialization step)。芯片內(nèi)建的閃存可用來儲存使用者常數(shù)和網(wǎng)站服務(wù)器內(nèi)容或作為通用的資料非揮發(fā)性內(nèi)存。另外,8192字節(jié)非易失性數(shù)據(jù)存儲空間(RAM)專門提供2K的發(fā)送緩沖區(qū),4K的接收緩沖區(qū)。CPU通過8根地址總線可以實(shí)現(xiàn)對CP2200內(nèi)部全部存儲區(qū)域的操作。RTL8019AS內(nèi)部沒有FLASH,對外提供16k,32k,和64k 字節(jié)BROM 和閃存接口。一般使用外擴(kuò)9346(6416-bit EEPROM)存儲資源配置和ID 參數(shù)。為了制造便利有規(guī)劃空白9346 的能力。

35、RTL8019AS 用16k 字節(jié)SRAM,可以由用戶自由配置。同樣寄存器的基地址也可自由配置,個(gè)人認(rèn)為這種自由性對該模塊設(shè)計(jì)沒有很大意義。而且增加復(fù)雜性。RTL8019as提供16 條基本地址總線為大資源情況下提供了寬松的環(huán)境。(4)支持的通信網(wǎng)絡(luò)CP2200集成的IEEE 802.3 MAC和10 BASE-T PHY,完全兼容100/1000 BASE-T網(wǎng)絡(luò)。RTL8019as支持以太網(wǎng)II和IEEE802.3 10Base5, 10Base2,10BaseT,僅支持10M帶寬。(5)CP2200的特色業(yè)界體積最小能在-40到+85溫度范圍操作電流消耗僅70mA,相當(dāng)于其它產(chǎn)品的1/3

36、RTL8019as優(yōu)勢在于很早就進(jìn)入市場,網(wǎng)絡(luò)上各個(gè)方面成熟的應(yīng)用很多,因?yàn)槲臋n不成熟的情況下,因?yàn)檫m合8019as的源代碼已經(jīng)可以獲得。CP2200雖然無論是體積,在縮減PCB尺寸方面,易用性和整體性能等方面都遠(yuǎn)遠(yuǎn)強(qiáng)于早期推出的RTL8019as。從長遠(yuǎn)利益考慮,PCB版的尺寸,抗干擾性等等,選擇專門為8位單片機(jī)量身定做的CP2200是替代RTL8019as很好的選擇。RTL8019asVS.CP2200選型小結(jié)3、TCP/IP協(xié)議棧實(shí)現(xiàn)層 次需要實(shí)現(xiàn)的協(xié)議應(yīng)用層HTTP、Telent等(視具體的工業(yè)以太網(wǎng)協(xié)議而定)傳輸層TCP、UDP網(wǎng)絡(luò)層IP、ICMP、ARP鏈路層由CP2200完成應(yīng)用

37、層 網(wǎng)絡(luò)應(yīng)用層要有一個(gè)定義清晰的對話過程 傳輸層 傳輸層讓網(wǎng)絡(luò)程序通過明確定義的通道及某些特性獲取數(shù)據(jù),如定義網(wǎng)絡(luò)連接的端口號等,實(shí)現(xiàn)該層協(xié)議的傳輸控制協(xié)議TCP和用戶數(shù)據(jù)報(bào)協(xié)議UDP。網(wǎng)絡(luò)層(IP層) 網(wǎng)絡(luò)層讓信息可以發(fā)送到相鄰的TCP/IP網(wǎng)絡(luò)上的任一主機(jī)上。IP層的代碼有兩個(gè)功能: 驗(yàn)證到來的IP 報(bào)文報(bào)頭的正確性, 并且對TCP和ICMP報(bào)文實(shí)行分流。為了能夠測試系統(tǒng)與網(wǎng)絡(luò)的連接, 系統(tǒng)需要實(shí)現(xiàn)ICMP協(xié)議中的Ping應(yīng)答協(xié)議,Ping 應(yīng)答協(xié)議主要是檢查網(wǎng)絡(luò)是否連通。同時(shí)為建立網(wǎng)絡(luò)間的互連應(yīng)提供ARP地址解析協(xié)議,實(shí)現(xiàn)從IP地址到數(shù)據(jù)鏈路物理地址的映像。因?yàn)椴豢紤]IP的分片和重組,所

38、以IP層的代碼非常的精簡。鏈路層 由控制同一物理網(wǎng)絡(luò)上的不同機(jī)器間數(shù)據(jù)傳送的底層協(xié)議組成,主要是IEEE802.3規(guī)定的CSMA/CD協(xié)議。實(shí)現(xiàn)這一層協(xié)議的協(xié)議并不屬于TCP IP協(xié)議組。該部分由以太網(wǎng)控制器CP2200完成。4、協(xié)議棧實(shí)現(xiàn)主要思路實(shí)現(xiàn)過程中的一個(gè)總目標(biāo)是系統(tǒng)開銷要少, 每一層之間要相互獨(dú)立,內(nèi)存操作簡單。為了實(shí)現(xiàn)每一層的獨(dú)立, 實(shí)現(xiàn)上下層之間的數(shù)據(jù)透明傳輸。每層之間應(yīng)通過一系列的函數(shù)進(jìn)行數(shù)據(jù)傳遞, 同時(shí)為了減少由于數(shù)據(jù)拷貝引入的系統(tǒng)開銷, 系統(tǒng)應(yīng)通過指針操作, 而不是數(shù)據(jù)拷貝方式,將緩沖區(qū)中的數(shù)據(jù)沿協(xié)議棧向上傳遞。由于TCP/IP 的各層協(xié)議的各種數(shù)據(jù)格式, 在各種資料中都有

39、詳細(xì)說明, 這里就不再一一介紹。只詳細(xì)介紹總的結(jié)構(gòu)、各層的功能及實(shí)現(xiàn)過程。4.1 鏈路層的實(shí)現(xiàn)思想1) 首先公共數(shù)據(jù)結(jié)構(gòu)的定義: 如各種報(bào)文(IP、MAC、ARP、TCP等)的報(bào)文頭,IP和MAC地址格式、節(jié)點(diǎn)的地址配置、緩沖區(qū)格式及大小等。2)網(wǎng)絡(luò)驅(qū)動接口由于網(wǎng)絡(luò)驅(qū)動自己編制的, 所以與上層結(jié)合起來很順利, 接收時(shí)采用中斷機(jī)制, 當(dāng)收到網(wǎng)絡(luò)中斷就讀取數(shù)據(jù), 根據(jù)包的種類分別傳給ARP或IP協(xié)議, 由每一層自行處理數(shù)據(jù)。發(fā)送時(shí)采用查詢方式, 應(yīng)用層準(zhǔn)備好數(shù)據(jù), 一層層封裝并向下傳遞, 最后經(jīng)由網(wǎng)絡(luò)驅(qū)動程序發(fā)送。右圖是CP2200的驅(qū)動程序初時(shí)化流程。該流程完成之后,表示節(jié)點(diǎn)網(wǎng)絡(luò)連接成功。4.2

40、 網(wǎng)絡(luò)層的實(shí)現(xiàn)思想1)ARP的實(shí)現(xiàn)首先定義ARP數(shù)據(jù)結(jié)構(gòu),根據(jù)相應(yīng)的標(biāo)準(zhǔn)來定。主要工作有:ARP為IP地址到對應(yīng)的硬件地址之間提供動態(tài)映射,當(dāng)主機(jī)要找出另一主機(jī)的物理地址時(shí),它就發(fā)送一個(gè)ARP查詢分組,這個(gè)分組包括發(fā)送站的物地址和IP地址,查詢采取在網(wǎng)絡(luò)上廣播的方式,目的主機(jī)的ARP層收到這份播報(bào)文后,識別出這是發(fā)送端在尋問它的IP地址 于是發(fā)送一個(gè)ARP應(yīng)答。主要函數(shù)有:nvoid arp_send(UCHAR * hwaddr, ULONG ipaddr, UCHAR msg_type) 發(fā)送ARP數(shù)據(jù)包nvoid arp_rcve(UCHAR xdata * inbuf) 接收ARP數(shù)據(jù)

41、包nvoid age_arp_cache(void) ARP 高速緩存超時(shí)函數(shù)nvoid arp_retransmit(void) 重發(fā)ARP數(shù)據(jù)包nUCHAR xdata * arp_resolve(ULONG dest_ipaddr) ARP 地址解析2)IP 協(xié)議的實(shí)現(xiàn):首先定義數(shù)據(jù)結(jié)構(gòu)IP根據(jù)標(biāo)準(zhǔn)來定義。主要工作是對上一層傳下來的數(shù)據(jù)包, 加上IP首部和IP校驗(yàn)和, 發(fā)往下一層。以及對下一層傳上來的數(shù)據(jù)包,進(jìn)行校驗(yàn)和檢查, 若正確去掉IP 首部, 送往上一層。主要函數(shù):nvoid ip_send(UCHAR xdata * outbuf, ULONG ipaddr, UCHAR pro

42、to_id, UINT len) 發(fā)送IP數(shù)據(jù)nvoid ip_rcve(UCHAR xdata * inbuf) 接收IP數(shù)據(jù)3)ICPM的實(shí)現(xiàn)(Ping應(yīng)答的實(shí)現(xiàn))首先定義數(shù)據(jù)結(jié)構(gòu)ICMP數(shù)據(jù)幀格式, 根據(jù)標(biāo)準(zhǔn)來定義。主要工作有:為了便于測試要響應(yīng)主機(jī)的PING 程序, 即如收到ICMP 的回顯請求包, 則按照格式組裝一個(gè)ICMP的回顯應(yīng)答包并發(fā)送主要函數(shù)有:nvoid ping_send(UCHAR xdata * inbuf, ULONG ipaddr, UINT len)發(fā)送ICMP 回顯請求給目的主機(jī) 并等待返回ICMP回顯應(yīng)答nvoid dest_unreach_send(UCH

43、AR xdata * inbuf, ULONG ipaddr) 目的主機(jī)無法達(dá)到處理函數(shù)nvoid icmp_rcve(UCHAR xdata * inbuf, UINT len) 接收ICMP回顯數(shù)據(jù)4.3 傳輸層的實(shí)現(xiàn)思想1)TCP的實(shí)現(xiàn)首先定義數(shù)據(jù)結(jié)構(gòu)TCP數(shù)據(jù)幀格式, 根據(jù)標(biāo)準(zhǔn)來定義。主要工作有:TCP提供一種面向連接的、可靠的字節(jié)流傳送服務(wù),它具有5個(gè)特征:面向數(shù)據(jù)流、虛電路連接、有緩沖的傳送、無結(jié)構(gòu)的數(shù)據(jù)流和全雙工連接一旦數(shù)據(jù)報(bào)被破壞或丟失,則由TCP將其重新傳輸。主要函數(shù)有:ninit_tcp(void) 初始化TCP 協(xié)議ntcp_send(UINT flags, UINT h

44、dr_len, UCHAR nr) 發(fā)送TCP 數(shù)據(jù)nTcp_retransmit(void) 重發(fā)TCP 數(shù)據(jù)nTcp_inactivity(void) 停止TCPntcp_rcve(UCHAR xdata * inbuf, UINT len) 接收TCP 數(shù)據(jù)2)UDP的實(shí)現(xiàn)根據(jù)標(biāo)準(zhǔn)定義UDP 數(shù)據(jù)幀格式。這一部分的主要工作有: 對應(yīng)用層傳下來的數(shù)據(jù)包, 加上UDP 首部和UDP 校驗(yàn)和, 發(fā)往下一層。以及對下一層傳上來的數(shù)據(jù)包, 進(jìn)行校驗(yàn)和檢查, 若正確去掉UDP 首部, 提出數(shù)據(jù)送給應(yīng)用層。需注意的是, 要產(chǎn)生一個(gè)偽首部用于UDP數(shù)據(jù)檢驗(yàn)和計(jì)算。主要函數(shù)有:nvoid udp_send

45、(UCHAR xdata * inbuf, UINT port, UINT len) 發(fā)送UDP數(shù)據(jù)報(bào)nvoid udp_rcve(UCHAR xdata * inbuf, UINT len) 接收UDP數(shù)據(jù)報(bào)nvoid udp_echo_service(UCHAR xdata * inbuf, UINT len) 一個(gè)簡單的處理UDP 協(xié)議的函數(shù) 將接收到的字符再發(fā)送回源IP地址4.4 協(xié)議棧的用戶接口分布于各個(gè)層次的協(xié)議功能函數(shù)共同完成一個(gè)通信的過程,最終這些函數(shù)的執(zhí)行結(jié)果,映射成各類事件,通過事件觸發(fā)來進(jìn)行協(xié)議棧的管理,保證通信的可靠進(jìn)行。我們將其稱為基于事件驅(qū)動機(jī)制的用戶接口。系統(tǒng)初始

46、化完成后,進(jìn)入事件循環(huán)體,不斷查詢C8051F040的事件隊(duì)列是否有事件。一旦事件隊(duì)列非空,則讀取事件標(biāo)志字,判斷事件類型,而后調(diào)用對應(yīng)事件處理了程序。處理了程序執(zhí)行完畢后,仍然返回到事件循環(huán)體中。事件標(biāo)志字由中斷直接或者間接驅(qū)動,當(dāng)某個(gè)事件發(fā)生后,只需在中斷服務(wù)程序中將狀態(tài)字的對應(yīng)位置位。中斷小斷向事件隊(duì)列中添加事件,而C8051F040處理程序則小停地從事件隊(duì)列中讀取事件標(biāo)志字,處理事件。事件驅(qū)動機(jī)制的特點(diǎn)有:由于在中斷處理程序中,僅執(zhí)行了改變事件標(biāo)志字這樣的簡單程序語句,把事件添加到C8051F040的事件隊(duì)列中后就立即返回,所以系統(tǒng)關(guān)閉中斷的時(shí)間很短,從而增強(qiáng)了系統(tǒng)對中斷處理的實(shí)時(shí)性。 C8051F040根據(jù)當(dāng)前讀取的事件,進(jìn)行相應(yīng)事件處理或者向事件隊(duì)列中添加進(jìn)一步處理所需的事件。這實(shí)際上是對任務(wù)都進(jìn)行了分步處理,在執(zhí)行一步某一任務(wù)的同時(shí),也可以執(zhí)行一步其他任務(wù)。這樣,在不影響主程序流程的情況下,提高了系統(tǒng)的實(shí)時(shí)性。事件循環(huán)體的簡要流程各事件的含義:nEVENT_ETH_ARRIVED:有待處理的以太網(wǎng)幀事件。檢測到此事件,C8051F040會調(diào)用讀CP2200接收緩沖區(qū)程序,然后對幀進(jìn)行解包處理。nEVENT_TCP_RETRAN:TCP重傳事件。若TCP定時(shí)器超時(shí),

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論