LonWorks現(xiàn)場(chǎng)總線介紹
一、LonWorks的神經(jīng)元芯片
本文引用地址:http://cafeforensic.com/article/201612/331143.htmLonWorks技術(shù)的核心是神經(jīng)元芯片(Neuron Chip)。該芯片內(nèi)部裝有3個(gè)微處理器:MAC處理器完成介質(zhì)訪問(wèn)控制;網(wǎng)絡(luò)處理器完成OSI的3~6層網(wǎng)絡(luò)協(xié)議;應(yīng)用處理器完成用戶現(xiàn)場(chǎng)控制應(yīng)用。它們之間通過(guò)公用存儲(chǔ)器傳遞數(shù)據(jù)。
在控制單元中需要采集和控制功能,為此,神經(jīng)元芯片特設(shè)置11個(gè)I/O口。這些I/O口可根據(jù)需求不同來(lái)靈活配置與外圍設(shè)備的接口,如RS232、并口、定時(shí)/計(jì)數(shù)、間隔處理、位I / O等。
神經(jīng)元芯片還有一個(gè)時(shí)間計(jì)數(shù)器,從而能完成Watchdog、多任務(wù)調(diào)度和定時(shí)功能。神經(jīng)元芯片支持節(jié)電方式,在節(jié)電方式下系統(tǒng)時(shí)鐘和計(jì)數(shù)器關(guān)閉,但狀態(tài)信息(包括RAM中的信息) 不會(huì)改變。一旦I/O狀態(tài)變化或網(wǎng)線上信息有變,系統(tǒng)便會(huì)激活。其內(nèi)部還有一個(gè)最高1.25 M bps、獨(dú)立于介質(zhì)的收發(fā)器。由此可見,一個(gè)小小的神經(jīng)元芯片不僅具有強(qiáng)大的通信功能, 更集采集、控制于一體。在理想情況下,一個(gè)神經(jīng)元芯片加上幾個(gè)分離元件便可成為DCS系統(tǒng)中一個(gè)獨(dú)立的控制單元。
二、完善的開發(fā)平臺(tái)
LonWorks提供的不僅僅是一套高性能的神經(jīng)元芯片,更重要的是,它提供了一套完整的開發(fā)平臺(tái)。工業(yè)現(xiàn)場(chǎng)中的通信不僅要將數(shù)據(jù)實(shí)時(shí)發(fā)送、接收,更多的是數(shù)據(jù)的打包、拆包、流量處理、出錯(cuò)處理。這使控制工程師不得不在數(shù)據(jù)通信上投入大量精力。LonWorks在這方面提供了非常友好的服務(wù),提供了一套完整的建網(wǎng)工具——LonBuild。
首先,它提供了一套C語(yǔ)言的編譯器,從而大大減少了開發(fā)時(shí)間。在這個(gè)編譯器中,提供了對(duì)11個(gè)I/O非常詳盡的庫(kù)函數(shù)。在通信方面,它也提出了一個(gè)全新的概念——網(wǎng)絡(luò)變量。通過(guò)網(wǎng)絡(luò)變量,網(wǎng)絡(luò)上的通信只需將相關(guān)節(jié)點(diǎn)上的網(wǎng)絡(luò)變量連接一下即可。網(wǎng)絡(luò)變量是應(yīng)用程序定義的一個(gè)特殊靜態(tài)變量,可以是ANSI C所定義的各種類型,也可以是自定義類型,還可以規(guī)定優(yōu)先級(jí)、響應(yīng)方式等。網(wǎng)絡(luò)變量被定義為輸入或輸出,當(dāng)定義為輸出的網(wǎng)絡(luò)變量被賦予新值時(shí),與該輸出變量相連的輸入網(wǎng)絡(luò)變量就會(huì)被立刻賦予同樣的新值。
另外,LonBuild還集成開發(fā)環(huán)境和編譯于一體,具備C調(diào)試器,可在多個(gè)仿真器上調(diào)試應(yīng)用程序,并具備網(wǎng)絡(luò)協(xié)議分析和通信分析的功能。
三、LonTalk:面向?qū)ο蟮木W(wǎng)絡(luò)通信協(xié)議
LonTalk是LonWorks的通信協(xié)議,固化在神經(jīng)元芯片內(nèi)。LonTalk局部操作網(wǎng)協(xié)議是為L(zhǎng)onWo r ks中通信所設(shè)的框架,支持ISO組織制定的OSI參考模型的7層協(xié)議,并可使簡(jiǎn)短的控制信息在各種介質(zhì)中非??煽康貍鬏敗! ?br /> LonTalk協(xié)議是直接面向?qū)ο蟮木W(wǎng)絡(luò)協(xié)議,具體實(shí)現(xiàn)即采用網(wǎng)絡(luò)變量的形式。又由于硬件芯片的支持,使它實(shí)現(xiàn)了實(shí)時(shí)性和接口的直觀、簡(jiǎn)潔等現(xiàn)場(chǎng)總線的應(yīng)用要求。
1.LonTalk MAC的特點(diǎn)
介質(zhì)訪問(wèn)控制(MAC)子層是OSI參考模型的數(shù)據(jù)鏈路層的一部分。目前在不同的網(wǎng)絡(luò)中存在多種介質(zhì)訪問(wèn)控制協(xié)議,其中之一就是大家熟悉的CSMA(載波信號(hào)多路偵聽)。LonTalk正是使用該協(xié)議,但具有自己的特色。
CSMA協(xié)議要求一個(gè)節(jié)點(diǎn)在發(fā)送數(shù)據(jù)前偵聽網(wǎng)絡(luò)是否空閑。一旦監(jiān)測(cè)到線路空閑后,不同的協(xié)議動(dòng)作不同。這樣在重負(fù)載的情況下,不同協(xié)議的執(zhí)行結(jié)果不同。例如,Ethernet采用CSM A /CD協(xié)議,一旦檢測(cè)到碰撞,采用避讓算法,這種方法在重負(fù)載時(shí)導(dǎo)致網(wǎng)絡(luò)介質(zhì)傳輸率變得極低。另一些CSMA協(xié)議使用時(shí)間片規(guī)則去訪問(wèn)介質(zhì),使節(jié)點(diǎn)在限制的時(shí)間片訪問(wèn)介質(zhì),這樣可以大大減少兩個(gè)數(shù)據(jù)報(bào)發(fā)生碰撞的可能性。P-堅(jiān)持CSMA和LonTalk的CSMA就是使用時(shí)間片去訪問(wèn)介質(zhì)。
LonTalk協(xié)議使用一個(gè)改進(jìn)的CSMA介質(zhì)訪問(wèn)控制協(xié)議,稱為預(yù)測(cè)的P-堅(jiān)持CSMA。LonTa lk協(xié)議在保留CSMA協(xié)議優(yōu)點(diǎn)的同時(shí),注意克服它在控制中的不足。目前存在的MAC協(xié)議(如IEEE 802.2、802.3、802.4、802.5)都不能在重負(fù)載下很好地保持網(wǎng)絡(luò)高效率、支持大網(wǎng)絡(luò)系統(tǒng)和多通信介質(zhì)。
如果有很多網(wǎng)絡(luò)節(jié)點(diǎn)等待網(wǎng)絡(luò)空閑,一旦網(wǎng)絡(luò)空閑,這些節(jié)點(diǎn)都會(huì)馬上發(fā)送報(bào)文而產(chǎn)生碰撞。它們產(chǎn)生碰撞后會(huì)后退一段時(shí)間,假如這段時(shí)間相同,就會(huì)發(fā)生重復(fù)碰撞,這將使網(wǎng)絡(luò)效率大大降低。在預(yù)測(cè)的P-堅(jiān)持CSMA中,所有LonWorks節(jié)點(diǎn)等待隨機(jī)時(shí)間片間隔訪問(wèn)介質(zhì), 這就避免了以上情況的發(fā)生。在LonWorks中,每個(gè)節(jié)點(diǎn)發(fā)送前隨機(jī)插入1~16個(gè)很小的隨機(jī)時(shí)間片。在空閑網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)發(fā)送前平均插入8個(gè)隨機(jī)時(shí)間片。
在P-堅(jiān)持CSMA中,當(dāng)一個(gè)節(jié)點(diǎn)有信息需要發(fā)送時(shí)并不立即發(fā)送,而是等待一個(gè)概率為 P的隨機(jī)時(shí)間片。而LonTalk協(xié)議可根據(jù)網(wǎng)絡(luò)負(fù)載動(dòng)態(tài)調(diào)整P值。時(shí)間片的增加通過(guò)一個(gè)N值,插入的隨機(jī)時(shí)間片為N×16,這個(gè)N值的取值范圍是1~63。LonTalk稱N為網(wǎng)絡(luò)積壓的估計(jì)值,是對(duì)當(dāng)前發(fā)送周期有多少個(gè)節(jié)點(diǎn)有報(bào)文需要發(fā)送的估計(jì)。LonTalk協(xié)議根據(jù)網(wǎng)絡(luò)積壓動(dòng)態(tài)地調(diào)整介質(zhì)訪問(wèn),允許網(wǎng)絡(luò)在輕負(fù)載情況下用較短的時(shí)間片,在重負(fù)載情況下用較長(zhǎng)的響應(yīng)時(shí)間片。
對(duì)照實(shí)驗(yàn)表明,36個(gè)LonWorks節(jié)點(diǎn)互聯(lián),采用一般P-堅(jiān)持算法,當(dāng)每秒要傳輸?shù)膱?bào)文達(dá)500 ~1000包時(shí),碰撞率從10%上升到54%;而采用預(yù)測(cè)的P-堅(jiān)持算法,在500包以下時(shí)碰撞率與前者相當(dāng),在500~1000包時(shí)穩(wěn)定在10%。
對(duì)所有令牌環(huán)網(wǎng)絡(luò),LonTalk具有對(duì)多介質(zhì)的支持,但這些介質(zhì)必須在總線上具有環(huán)的結(jié)構(gòu) ,令牌在這個(gè)環(huán)線上輪巡。這對(duì)使用電力線和無(wú)線電作為介質(zhì)的網(wǎng)絡(luò)顯然不可行,因?yàn)榫W(wǎng)上所有節(jié)點(diǎn)幾乎能同時(shí)收到令牌。同時(shí),令牌環(huán)網(wǎng)絡(luò)還需增加令牌丟失時(shí)的恢復(fù)機(jī)制、令牌快速應(yīng)答機(jī)制,這些都增加了硬件上的開銷,使網(wǎng)絡(luò)成本增加。
對(duì)令牌總線網(wǎng)絡(luò),LonTalk在令牌中加入網(wǎng)絡(luò)地址,從而在物理總線上建立一個(gè)邏輯環(huán)的結(jié)構(gòu),使令牌在這個(gè)邏輯環(huán)上輪巡。但是,在低速網(wǎng)絡(luò)中令牌輪巡時(shí)間變得很長(zhǎng)。另外,令牌總線在有節(jié)點(diǎn)上網(wǎng)或下網(wǎng)時(shí)都會(huì)發(fā)生網(wǎng)絡(luò)重構(gòu)。在電池供電的系統(tǒng)中,會(huì)因經(jīng)常休眠和喚醒而導(dǎo)致網(wǎng)絡(luò)上下網(wǎng)時(shí)頻繁重構(gòu);在惡劣的環(huán)境中,常會(huì)發(fā)生令牌丟失而導(dǎo)致網(wǎng)絡(luò)重構(gòu)。這些網(wǎng)絡(luò)重構(gòu)會(huì)大大降低網(wǎng)絡(luò)的效率。同時(shí),由于網(wǎng)絡(luò)地址的限制,每個(gè)網(wǎng)絡(luò)至多只有255個(gè)節(jié)點(diǎn)。
我們常用的CSMA/CD(如Ethernet),在輕負(fù)載情況下具有很好的性能;在重負(fù)載情況下, 過(guò)多的碰撞使網(wǎng)絡(luò)效率變得極低。
目前,在現(xiàn)場(chǎng)總線中還有一種十分流行的網(wǎng)絡(luò)——CANbus。它采用無(wú)主結(jié)構(gòu),這一點(diǎn)大大優(yōu)于Bitbus。其MAC層上的管理很有特色。它也采用CSMA方式,但將網(wǎng)絡(luò)上的節(jié)點(diǎn)分成不同的優(yōu)先級(jí),采用支配位(0)和避讓位(1)、以及總線回讀的方法實(shí)現(xiàn)非破壞性總線仲裁。即當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)向網(wǎng)絡(luò)傳遞信息時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)主動(dòng)停止發(fā)送,而優(yōu)先級(jí)高的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸,這可以有效地避免總線碰撞。但是,這要求網(wǎng)絡(luò)一定要同步,這對(duì)多介質(zhì)的情況顯然不適用。另外,對(duì)各節(jié)點(diǎn)不太需要優(yōu)先級(jí)的網(wǎng)絡(luò),由于不得不定義一個(gè)優(yōu)先級(jí),因而當(dāng)網(wǎng)絡(luò)通信較繁忙時(shí),有些優(yōu)先級(jí)低的節(jié)點(diǎn)可能很長(zhǎng)時(shí)間不能發(fā)送信息。因此,Canbus較適合介質(zhì)單一、節(jié)點(diǎn)數(shù)目較少的小網(wǎng)絡(luò)。
綜上所述,Lon的MAC子層具有以下優(yōu)點(diǎn):支持多介質(zhì)的通信,支持低速率的網(wǎng)絡(luò),可在重負(fù)載情況下保持網(wǎng)絡(luò)性能,支持大型網(wǎng)絡(luò)。
2.LonTalk對(duì)優(yōu)先級(jí)的支持
在LonWorks網(wǎng)絡(luò)中,為提高緊急事件的響應(yīng)時(shí)間,提供了一個(gè)可選擇的優(yōu)先級(jí)機(jī)制。該機(jī)制允許用戶為每個(gè)需要優(yōu)先級(jí)的節(jié)點(diǎn)分配一個(gè)特定的優(yōu)先級(jí)時(shí)間片,并保證有且只有一個(gè)節(jié)點(diǎn)擁有這樣的優(yōu)先級(jí)時(shí)間片。在發(fā)送過(guò)程中,優(yōu)先級(jí)數(shù)據(jù)報(bào)將在該時(shí)間片內(nèi)把數(shù)據(jù)報(bào)發(fā)送出去。優(yōu)先級(jí)時(shí)間片為0~127,0是不需等待立即發(fā)送,1是等待1個(gè)時(shí)間片,2是等待2個(gè)時(shí)間片 ,依此類推。低優(yōu)先級(jí)的節(jié)點(diǎn)需等待較多的時(shí)間片,而高優(yōu)先級(jí)的節(jié)點(diǎn)需等待較少的時(shí)間片 ,這個(gè)時(shí)間片加在P-概率時(shí)間片之前。非優(yōu)先級(jí)的節(jié)點(diǎn)必須等待優(yōu)先級(jí)時(shí)間片都完成后, 再等待P-概率時(shí)間片后發(fā)送。因此,加入優(yōu)先級(jí)的節(jié)點(diǎn)總比非優(yōu)先級(jí)的節(jié)點(diǎn)有更快的響應(yīng)時(shí)間。
評(píng)論