LonWorks是美國Echelon公司1992年推出的局部操作網絡,最初主要用于樓宇自動化,但很快發展到工業現場網。LonWorks技術為設計和實現可互操作的控制網絡提供了一套完整、開放、成品化的解決途徑。
一、LonWorks的神經元芯片
LonWorks技術的核心是神經元芯片(Neuron Chip)。該芯片內部裝有3個微處理器:MAC處理器完成介質訪問控制;網絡處理器完成OSI的3~6層網絡協議;應用處理器完成用戶現場控制應用。它們之間通過公用存儲器傳遞數據。
在控制單元中需要采集和控制功能,為此,神經元芯片特設置11個I/O口。這些I/O口可根據需求不同來靈活配置與外圍設備的接口,如RS232、并口、定時/計數、間隔處理、位I / O等。
神經元芯片還有一個時間計數器,從而能完成Watchdog、多任務調度和定時功能。神經元芯片支持節電方式,在節電方式下系統時鐘和計數器關閉,但狀態信息(包括RAM中的信息) 不會改變。一旦I/O狀態變化或網線上信息有變,系統便會激活。其內部還有一個最高1.25 M bps、獨立于介質的收發器。由此可見,一個小小的神經元芯片不僅具有強大的通信功能, 更集采集、控制于一體。在理想情況下,一個神經元芯片加上幾個分離元件便可成為DCS系統中一個獨立的控制單元。
二、完善的開發平臺
LonWorks提供的不僅僅是一套高性能的神經元芯片,更重要的是,它提供了一套完整的開發平臺。工業現場中的通信不僅要將數據實時發送、接收,更多的是數據的打包、拆包、流量處理、出錯處理。這使控制工程師不得不在數據通信上投入大量精力。LonWorks在這方面提供了非常友好的服務,提供了一套完整的建網工具——LonBuild。
首先,它提供了一套C語言的編譯器,從而大大減少了開發時間。在這個編譯器中,提供了對11個I/O非常詳盡的庫函數。在通信方面,它也提出了一個全新的概念——網絡變量。通過網絡變量,網絡上的通信只需將相關節點上的網絡變量連接一下即可。網絡變量是應用程序定義的一個特殊靜態變量,可以是ANSI C所定義的各種類型,也可以是自定義類型,還可以規定優先級、響應方式等。網絡變量被定義為輸入或輸出,當定義為輸出的網絡變量被賦予新值時,與該輸出變量相連的輸入網絡變量就會被立刻賦予同樣的新值。
另外,LonBuild還集成開發環境和編譯于一體,具備C調試器,可在多個仿真器上調試應用程序,并具備網絡協議分析和通信分析的功能。
三、LonTalk:面向對象的網絡通信協議
LonTalk是LonWorks的通信協議,固化在神經元芯片內。LonTalk局部操作網協議是為LonWo r ks中通信所設的框架,支持ISO組織制定的OSI參考模型的7層協議,并可使簡短的控制信息在各種介質中非常可靠地傳輸。
LonTalk協議是直接面向對象的網絡協議,具體實現即采用網絡變量的形式。又由于硬件芯片的支持,使它實現了實時性和接口的直觀、簡潔等現場總線的應用要求。
1.LonTalk MAC的特點
介質訪問控制(MAC)子層是OSI參考模型的數據鏈路層的一部分。目前在不同的網絡中存在多種介質訪問控制協議,其中之一就是大家熟悉的CSMA(載波信號多路偵聽)。LonTalk正是使用該協議,但具有自己的特色。
CSMA協議要求一個節點在發送數據前偵聽網絡是否空閑。一旦監測到線路空閑后,不同的協議動作不同。這樣在重負載的情況下,不同協議的執行結果不同。例如,Ethernet采用CSM A /CD協議,一旦檢測到碰撞,采用避讓算法,這種方法在重負載時導致網絡介質傳輸率變得極低。另一些CSMA協議使用時間片規則去訪問介質,使節點在限制的時間片訪問介質,這樣可以大大減少兩個數據報發生碰撞的可能性。P-堅持CSMA和LonTalk的CSMA就是使用時間片去訪問介質。
LonTalk協議使用一個改進的CSMA介質訪問控制協議,稱為預測的P-堅持CSMA。LonTa lk協議在保留CSMA協議優點的同時,注意克服它在控制中的不足。目前存在的MAC協議(如IEEE 802.2、802.3、802.4、802.5)都不能在重負載下很好地保持網絡高效率、支持大網絡系統和多通信介質。
如果有很多網絡節點等待網絡空閑,一旦網絡空閑,這些節點都會馬上發送報文而產生碰撞。它們產生碰撞后會后退一段時間,假如這段時間相同,就會發生重復碰撞,這將使網絡效率大大降低。在預測的P-堅持CSMA中,所有LonWorks節點等待隨機時間片間隔訪問介質, 這就避免了以上情況的發生。在LonWorks中,每個節點發送前隨機插入1~16個很小的隨機時間片。在空閑網絡中,每個節點發送前平均插入8個隨機時間片。
在P-堅持CSMA中,當一個節點有信息需要發送時并不立即發送,而是等待一個概率為 P的隨機時間片。而LonTalk協議可根據網絡負載動態調整P值。時間片的增加通過一個N值,插入的隨機時間片為N×16,這個N值的取值范圍是1~63。LonTalk稱N為網絡積壓的估計值,是對當前發送周期有多少個節點有報文需要發送的估計。LonTalk協議根據網絡積壓動態地調整介質訪問,允許網絡在輕負載情況下用較短的時間片,在重負載情況下用較長的響應時間片。
對照實驗表明,36個LonWorks節點互聯,采用一般P-堅持算法,當每秒要傳輸的報文達500 ~1000包時,碰撞率從10%上升到54%;而采用預測的P-堅持算法,在500包以下時碰撞率與前者相當,在500~1000包時穩定在10%。
對所有令牌環網絡,LonTalk具有對多介質的支持,但這些介質必須在總線上具有環的結構 ,令牌在這個環線上輪巡。這對使用電力線和無線電作為介質的網絡顯然不可行,因為網上所有節點幾乎能同時收到令牌。同時,令牌環網絡還需增加令牌丟失時的恢復機制、令牌快速應答機制,這些都增加了硬件上的開銷,使網絡成本增加。
對令牌總線網絡,LonTalk在令牌中加入網絡地址,從而在物理總線上建立一個邏輯環的結構,使令牌在這個邏輯環上輪巡。但是,在低速網絡中令牌輪巡時間變得很長。另外,令牌總線在有節點上網或下網時都會發生網絡重構。在電池供電的系統中,會因經常休眠和喚醒而導致網絡上下網時頻繁重構;在惡劣的環境中,常會發生令牌丟失而導致網絡重構。這些網絡重構會大大降低網絡的效率。同時,由于網絡地址的限制,每個網絡至多只有255個節點。
我們常用的CSMA/CD(如Ethernet),在輕負載情況下具有很好的性能;在重負載情況下, 過多的碰撞使網絡效率變得極低。
目前,在現場總線中還有一種十分流行的網絡——CANbus。它采用無主結構,這一點大大優于Bitbus。其MAC層上的管理很有特色。它也采用CSMA方式,但將網絡上的節點分成不同的優先級,采用支配位(0)和避讓位(1)、以及總線回讀的方法實現非破壞性總線仲裁。即當兩個節點同時向網絡傳遞信息時,優先級低的節點主動停止發送,而優先級高的節點可不受影響地繼續傳輸,這可以有效地避免總線碰撞。但是,這要求網絡一定要同步,這對多介質的情況顯然不適用。另外,對各節點不太需要優先級的網絡,由于不得不定義一個優先級,因而當網絡通信較繁忙時,有些優先級低的節點可能很長時間不能發送信息。因此,Canbus較適合介質單一、節點數目較少的小網絡。
綜上所述,Lon的MAC子層具有以下優點:支持多介質的通信,支持低速率的網絡,可在重負載情況下保持網絡性能,支持大型網絡。
2.LonTalk對優先級的支持
在LonWorks網絡中,為提高緊急事件的響應時間,提供了一個可選擇的優先級機制。該機制允許用戶為每個需要優先級的節點分配一個特定的優先級時間片,并保證有且只有一個節點擁有這樣的優先級時間片。在發送過程中,優先級數據報將在該時間片內把數據報發送出去。優先級時間片為0~127,0是不需等待立即發送,1是等待1個時間片,2是等待2個時間片 ,依此類推。低優先級的節點需等待較多的時間片,而高優先級的節點需等待較少的時間片 ,這個時間片加在P-概率時間片之前。非優先級的節點必須等待優先級時間片都完成后, 再等待P-概率時間片后發送。因此,加入優先級的節點總比非優先級的節點有更快的響應時間。
3.LonTalk對多介質的支持
LonTalk協議對各種介質的支持是獨立的。Lon的神經元芯片可以容許的通信介質類型非常廣泛,如雙絞線、電力線、無線電、紅外線、同軸電纜、光纖等。
4.LonTalk對多通道的支持
一個通道是指在物理上能獨立發送報文(不需要轉發)的一段介質。LonTalk規定,一個通道至多有32385個節點,一個網絡可以由一個或多個通道組成,通道之間通過路由器來連接。
這樣,不僅可實現多介質在同一網絡上的連接,而且可減輕一個通道的網絡信道過于擁擠。
5.LonTalk對大網絡的支持
網絡地址可以有以下三層結構:
第一層結構是域。域的結構可以保證在不同的域中通信彼此獨立。例如,不同的應用節點共存在同一通信介質中(如無線電),不同的域的區分可以保證它們的應用完全獨立,不會彼此干擾。
第二層結構是子網。每個域最多有255個子網,一個子網可以是一個或多個通道的邏輯分組 ,有一種子網層的智能路由器產品可以實現子網間的數據交換。
第三層結構是節點。每個子網最多有127個節點,所以一個域最多有255×127=32385個節點。任一節點可以分屬一個或兩個域,容許一個節點作為兩個域之間的網關,也容許一個傳感器節點將采集到的數據分別發向兩個不同的域。
節點也可以被分組,一個分組在一個域中跨越幾個子網或通道。在一個域中最多有256 個分組,每個分組對需應答服務最多有64個節點,而無應答服務的節點個數不限。一個節點可以分屬15個分組去接收數據。分組結構可以使一個報文同時被多個節點接收。
另外,每個神經元芯片有一個獨一無二的48位ID地址。這個地址由廠方規定,一般只在網絡安裝和配置時使用,可以作為產品的序列號。
通道并不影響網絡的地址結構,域、子網和分組都可以跨越多個通道。
6.LonTalk的報文服務
LonTalk協議提供了四種類型的報文服務:
·應答方式或端對端的應答服務:當一個節點發送報文到另一個節點或分組時,每個接收到報文的節點都分別向發送方應答。如果發送方在應答時間內沒有收到全部應答,則重新發送該報文。重發次數和應答時間都是可選的。報文應答服務由網絡處理器完成,不必由應用程序來干預。報文ID號確保節點不會收到重復的報文。
·請求/響應方式:當一個節點發送報文到另一個節點或分組時,每個接收到報文的節點都分別向發送方響應。如果發送方在響應時間內沒有收到全部響應,則重新發送該報文。重發次數和響應時間都是可選的。報文響應服務由應用處理器完成,可以包含數據,是由應用處理器完成的,適合遠程過程調用和客戶/服務器的應用。
·非應答重發方式:當一個節點發送報文到另一個節點或分組時,不需每個接收到報文的節點向發送方應答或響應,而是重復多次發送同一報文,使報文盡量可靠地被接收方收到。這種方式適于節點較多的分組的廣播發送,從而避免因節點響應而使網絡過載。
·非應答方式:當一個節點發送報文到另一個節點或分組時,不需每個接收到報文的節點向發送方應答或響應,也不必重復多次發送同一報文,只發一次即可。這種方式適合對可靠性要求不高,但報文長度較長、需要速度較高的報文。
7.LonTalk網絡認證
LonTalk支持報文認證。收發雙方在網絡安裝時約定一個6字節的認證字,接收方在接收時判斷報文是否經過發送方認證,只有經過發送方認證的報文方可接收。
8.碰撞檢測
Lon支持在通信介質上的硬件碰撞檢測(如雙絞線)。LonTalk可以將正在發送的碰撞報文自動取消,重新再發。如果沒有碰撞檢測,若碰撞發生,只有到響應或應答超時時才會重發報文。
四、LonWorks與現場總線
按照國際電工委員會(IEC)的敘述,把低級或底層的工業數據總線定名為現場總線。其基本要求包括:以串行通信的方式取代傳統的4~20mA的信號傳輸,并且一條現場總線可為眾多的可尋址的現場設備實現多點連接;支持底層的現場智能設備與高層的系統利用公用介質交換信息;現場總線的協議在物理層和鏈路層與OSI模型有相同的含義。目前,一些公司、廠商所推出的現場總線產品,其基本要求大體與上述內容類似。
從前面對LonWorks的分析介紹可以看出,LonWorks的性能覆蓋了IEC關于現場總線的推薦規范,而且應用更加靈活。
①神經元芯片是一個很好的低成本的現場總線處理器。它處理現場互聯的全部任務,還能處理現場傳感器、執行器的動作,以及簡單的數字邏輯運算等現場任務。
②以IEEE P1118(ver 3.0)制定的現場總線功能要求為例,與LonWorks的性能做一比較 :在物理層上的比較見表2,在鏈路層上的比較見表3,在應用層上的比較見表4。
③LonTalk是OSI參考模型面向現場對象應用的一個子集。它比現場總線歷來推薦的功能覆蓋面更廣,如支持多介質、大網絡。這為工廠制造自動化的測、控、管一體化提供了全局性的解決方案,而且都可通過固化有LonTalk協議的神經元芯片實現,只需用一個神經元和某種網絡的專用控制器相連構成的橋接器同生產管理級、廠級互聯。另外,它比現場總線以往提供的應用服務更友好、更方便,用戶只需按對象來定義和連接網絡變量。
④LonWorks支持各種拓撲結構,不限于總線,選擇不同的收發器可構成星形、環形、樹形或混合形結構;而尋址由協議來解決,這樣現場互聯更加靈活。
綜上所述,LonWorks是一種全新的現場總線。它為全分散式的現場設備提供了可互操作的控制網絡,已獲得世界上140多個公司、組織的確認,并組成LonMark協會。目前,有1500家組織選擇它,在各行各業成功地構成了應用系統。