《現(xiàn)場總線及其應(yīng)用技術(shù)》課件-第5章 LonWorks智能控制網(wǎng)絡(luò)_第1頁
《現(xiàn)場總線及其應(yīng)用技術(shù)》課件-第5章 LonWorks智能控制網(wǎng)絡(luò)_第2頁
《現(xiàn)場總線及其應(yīng)用技術(shù)》課件-第5章 LonWorks智能控制網(wǎng)絡(luò)_第3頁
《現(xiàn)場總線及其應(yīng)用技術(shù)》課件-第5章 LonWorks智能控制網(wǎng)絡(luò)_第4頁
《現(xiàn)場總線及其應(yīng)用技術(shù)》課件-第5章 LonWorks智能控制網(wǎng)絡(luò)_第5頁
已閱讀5頁,還剩149頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章LonWorks智能控制網(wǎng)絡(luò)5.1概述美國Echelon公司于1992年成功推出了LonWorks智能控制網(wǎng)絡(luò)。LON(LocalOperatingNetworks)總線是該公司推出的局部操作網(wǎng)絡(luò),Echelon公司開發(fā)了LonWorks技術(shù),為LON總線設(shè)計和成品化提供了一套完整的開發(fā)平臺。其通信協(xié)議LonTalk支持OSI/RM的所有七層模型,這是LON總線最突出的特點。LonTalk協(xié)議通過神經(jīng)元芯片(NeuronChip)上的硬件和固件(firmware)實現(xiàn)。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)可以是總線形、星形、環(huán)形和混合形,可實現(xiàn)自由組合。另外,通信介質(zhì)支持雙絞線、同軸電纜、光纖、射頻、紅外線和電力線等。應(yīng)用程序采用面向?qū)ο蟮脑O(shè)計方法,通過網(wǎng)絡(luò)變量把網(wǎng)絡(luò)通信的設(shè)計簡化為參數(shù)設(shè)置,大大縮短了產(chǎn)品開發(fā)周期。通信速率可達(dá)1.25Mbps,此時有效距離為130m;78kbps的雙絞線,直線通信距離長達(dá)2700m。LonWorks網(wǎng)絡(luò)控制技術(shù)在一個測控網(wǎng)絡(luò)上的節(jié)點數(shù)可達(dá)32000個。提供強(qiáng)有力的開發(fā)工具平臺:LonBuilder與Nodebuilder。LonWorks技術(shù)核心元件:Neuron芯片內(nèi)部裝有3個8位微處理器和34種I/O對象及定時器/計數(shù)器,另外還具有RAM、ROM、EEPROM、LonTalk通信協(xié)議等。Neuron芯片具備通信和控制功能。改善了CSMA,采用可預(yù)測P堅持CSMA,這樣,在網(wǎng)絡(luò)負(fù)載很重的情況下,不會導(dǎo)致網(wǎng)絡(luò)癱瘓。LonWorks技術(shù)包括以下幾個組成部分:LonWorks節(jié)點和路由器;LonTalk協(xié)議;LonWorks收發(fā)器;LonWorks網(wǎng)絡(luò)和節(jié)點開發(fā)工具。5.2神經(jīng)元芯片(NeuronChip)5.2.1神經(jīng)元芯片概述LonWorks技術(shù)的核心是神經(jīng)元芯片(NeuronChip)。神經(jīng)元芯片主要有3120和3150兩大系列,生產(chǎn)廠家最早的有Motorola公司和TOSHIBA公司,目前生產(chǎn)神經(jīng)元芯片的廠家是TOSHIBA公司和美國的Cypress公司。TOSHIBA公司生產(chǎn)的神經(jīng)元芯片型號為TMPN3120和TMPN3150兩個系列。TMPN3120不支持外部存儲器,它本身帶有EEPROM;TMPN3150支持外部存儲器,適合功能較為復(fù)雜的應(yīng)用場合。Cypress公司生產(chǎn)的神經(jīng)元芯片型號為CY7C53120和CY7C53150兩個系列。神經(jīng)元芯片的主要性能特點:高度集成,所需外部器件較少。內(nèi)有三個CPU,分別實現(xiàn)不同的功能,輸入時鐘可選范圍:625kHz~10MHz。11個可編程I/O口引腳可設(shè)置為34種預(yù)編程工作方式,其中IO4~IO7有可編程上拉電阻,IO0~IO3具有大電流吸收能力(20mA)。兩個16位定時/計數(shù)器,15個軟定時器。網(wǎng)絡(luò)通信端口可設(shè)置為單端、差分、專用工作方式。在外部存儲器中可固化LonTalk協(xié)議、I/O驅(qū)動程序、事件驅(qū)動多任務(wù)調(diào)度程序等固件。提供用于遠(yuǎn)程識別和診斷的服務(wù)引腳。48位的內(nèi)部NeuronID,用于惟一識別Neuron芯片。5.2.2神經(jīng)元芯片TMPN3150B1AF1.引腳介紹TMPN3150B1AF的引腳如圖5-2所示。

圖5-2TMPN3150B1AF引腳圖2.CPU結(jié)構(gòu)在神經(jīng)元芯片內(nèi)部有三個處理器:MAC處理器、網(wǎng)絡(luò)處理器和應(yīng)用處理器,三個處理器和存儲器結(jié)構(gòu)的框圖如圖5-3所示。

圖5-3Neuron芯片內(nèi)部三個微處理器結(jié)構(gòu)框圖3.存儲器TMPN3150片內(nèi)沒有ROM,尋址空間為64K,其中包括58K的外部存儲器及6K的片內(nèi)存儲器。4.時鐘信號Neuron芯片有一振蕩器使用外接晶體或陶瓷共振器電路來產(chǎn)生輸入時鐘CLK1。對低功耗的應(yīng)用,Neuron芯片輸入時鐘頻率范圍可在625kHz到10MHz之間。5.休眠/喚醒電路(1)休眠電路Neuron芯片在軟件控制下可進(jìn)入低功耗的休眠狀態(tài)。在這種狀態(tài)下,振蕩器、系統(tǒng)時鐘、通信端口以及所有的定時器/計數(shù)器都關(guān)閉,但所有的狀態(tài)信息包括片上RAM的內(nèi)容仍然保留。(2)喚醒電路當(dāng)檢測到喚醒事件時,Neuron芯片將允許振蕩器起振并等待進(jìn)入穩(wěn)定狀態(tài),完成內(nèi)部維護(hù)后恢復(fù)操作。6.看門狗定時器Neuron芯片有三個看門狗定時器,每個CPU一個。用途是防止存儲器故障或軟件出錯。7.復(fù)位復(fù)位引腳是漏極開路、雙向且低有效的I/O引腳,內(nèi)部有一個電流源充當(dāng)上拉電阻。使復(fù)位引腳有效的方法有兩種:外部信號驅(qū)動產(chǎn)生低電平輸出;內(nèi)部控制產(chǎn)生低電平輸出。引起復(fù)位引腳復(fù)位的內(nèi)部控制有以下幾種:軟件(應(yīng)用程序或網(wǎng)絡(luò)復(fù)位消息);看門狗定時器時間溢出;低壓檢測。當(dāng)復(fù)位引腳回到高電平,Neuron芯片開始初始化,初始化程序的啟動地址是0x0001。在設(shè)定初值的過程中,所有的輸出引腳處在高阻狀態(tài),直到初值設(shè)定完成才開始處理應(yīng)用程序。8.服務(wù)引腳服務(wù)引腳輸入和漏極開路輸出交替,頻率是76Hz,波形占空比是50%。當(dāng)其作為輸出時,它能吸收20mA電流用于驅(qū)動一LED;當(dāng)其用作輸入時,它有一個可選的片內(nèi)上拉電阻使輸入能被拉高為高電平而進(jìn)入無效狀態(tài)。9.定時器/計數(shù)器Neuron芯片上有兩個16位的定時器/計數(shù)器,即定時器/計數(shù)器1和定時器/計數(shù)器2。定時器/計數(shù)器1又可稱為多路復(fù)用定時器/計數(shù)器,因為該定時器/計數(shù)器的輸入引腳可通過一個可編程多路轉(zhuǎn)換器MUX在IO4~IO7中選擇。它的輸出連接引腳IO0。定時器/計數(shù)器2稱為專用定時器/計數(shù)器。它的輸入連接引腳IO4,輸出連接引腳IO1。5.2.3網(wǎng)絡(luò)通信端口神經(jīng)元芯片支持多種通信介質(zhì),應(yīng)用較廣泛的有雙絞線、電力線,另外還有無線(RF)、紅外、光纖、同軸電纜等。幾種典型的收發(fā)器類型如表5-4所示。

表5-4典型收發(fā)器類型收發(fā)器類型波特率RS-485300bps~1.25Mbps自由拓?fù)湫魏涂偩€形雙絞線帶變壓器(可選通過雙絞線供48V電源)78kbps/1.25Mbps電力線(載波)4kbps電力線(擴(kuò)頻)10kbps無線(300MHz)1200bps無線(450MHz)4800bps無線(900MHz)39kbps紅外78kbps光纖1.25Mbps同軸電纜1.25Mbps5.2.4收發(fā)器1.雙絞線收發(fā)器雙絞線收發(fā)器是最通用的收發(fā)器類型。在許多設(shè)計中,雙絞線收發(fā)器配置可以獲得較高的性能價格比。雙絞線與Neuron芯片接口有以下三種基本類型:(1)直接驅(qū)動接口直接驅(qū)動接口使用Neuron芯片內(nèi)部收發(fā)器,外接電阻和二極管以限流和ESD保護(hù),如圖5-12所示。

圖5-12簡單直接網(wǎng)絡(luò)驅(qū)動接口(用于直驅(qū)差分工作方式)(2)RS-485要實現(xiàn)RS-485網(wǎng)絡(luò),Neuron芯片通信端口應(yīng)采用單端工作方式。為確保網(wǎng)絡(luò)節(jié)點的互操作性,LonMark指標(biāo)建議擁有RS-485收發(fā)器的節(jié)點使用39kbps的數(shù)據(jù)速率。RS-485典型電路如圖5-13所示。

圖5-13RS-485典型電路該電路能支持32個節(jié)點,節(jié)點數(shù)據(jù)速率為39kbps,傳輸距離最遠(yuǎn)可達(dá)600m。(3)變壓器耦合接口對于需要高性能、高隔離度、高抗干擾能力的應(yīng)用最好

使用變壓器耦合接口。變壓器耦合收發(fā)器設(shè)計的數(shù)據(jù)速率可達(dá)到1.25Mbps。變壓器的類型很多,設(shè)計人員可以開發(fā)自己的變壓器耦合電路,如2線或4線的變壓器。Echelon公司提供有78kbps和1.25Mbps數(shù)據(jù)速率的收發(fā)器,如表5-6所示。

表5-6Echelon公司的收發(fā)器產(chǎn)品Echelon的收發(fā)器最突出的一點是靈活的拓?fù)浣Y(jié)構(gòu)(FTT-10/LPT-10),不僅支持總線、環(huán)形,還支持星形拓?fù)浣Y(jié)構(gòu)。產(chǎn)

品速率/(kbps)拓

撲節(jié)點數(shù)距離/m類

型TPT/XF-7878總線拓?fù)?41400變壓器隔離TPT/XF-12501250總線拓?fù)?4130變壓器隔離FTT-1078總線拓?fù)?42700變壓器隔離FTT-1078自由拓?fù)?28500變壓器隔離LPT-1078總線拓?fù)?282200電力線LPT-1078自由拓?fù)?28500電力線2.PLT-22電力線收發(fā)器Ehelon公司提供有一組適用于北美、歐洲及全球市場的電力線收發(fā)器,工作性能很好。當(dāng)Neuron芯片與電力線收發(fā)器接口時,其通信端口應(yīng)工作在單端工作方式,通信速率最高可達(dá)10kbps。PLT-22是可在全球應(yīng)用的電力線收發(fā)器。(1)PLT-22技術(shù)特點為了確保在電力線上的可靠工作,PLT-22電力線收發(fā)器具有如下技術(shù)特點:帶有數(shù)字信號處理技術(shù)的BPSK技術(shù):Echelon把噪聲抑制和氣表糾正的專利算法技術(shù)應(yīng)用到數(shù)字信號處理內(nèi)核中。這些性能使得收發(fā)器可以糾正電力線信號中多種多樣的干擾,包括脈沖噪聲,連續(xù)音頻噪聲、相位畸變等。雙載波頻率:當(dāng)首選載波頻率被噪聲阻塞的時候,獨特的雙載波頻率功能自動的選擇第二載波頻率傳送。前向糾錯:許多噪聲源主要是通過損壞數(shù)據(jù)包的辦法來干擾電力線信號。PLT-22在循環(huán)冗余校驗碼的基礎(chǔ)上,采用高效低消耗的前向糾錯碼算法來克服錯誤包。強(qiáng)大的輸出放大器:能發(fā)出7V峰峰值信號。更寬的動態(tài)范圍:動態(tài)范圍和接收器的靈敏度有關(guān)。PLT-22的動態(tài)范圍達(dá)到>80dB。在一條低噪聲的傳輸線上收發(fā)器可以接收衰減達(dá)104的信號。(2)PLT-22的工作原理PLT-22的內(nèi)部框圖如圖5-14所示。它包含接收與A/D轉(zhuǎn)換器、數(shù)字信號處理單元、發(fā)送放大和濾波等電路。

圖5-14PLT-22內(nèi)部結(jié)構(gòu)框圖(3)與神經(jīng)元芯片的連接神經(jīng)元芯片擁有多功能的通信端口,它有5個引腳CP0~CP4可以配置與多種網(wǎng)絡(luò)收發(fā)器相連接,以適應(yīng)不同的編碼方案和不同的波特率。在使用PLT-22收發(fā)器時,傳輸速率達(dá)到5kbps,TMPN3150和PLT-22電力線收發(fā)器之間的連接關(guān)系如圖5-15所示。設(shè)計中主要解決了以下幾個問題:圖5-15TMPN3150和PLT-22連接圖3.PL3120和PL3150電力線智能收發(fā)器新一代PL3120和PL3150智能收發(fā)器把神經(jīng)元芯片的核心和電力線收發(fā)器集成在一起,使之成為家電、音頻/視頻、照明、暖通、安防、抄表和灌溉等應(yīng)用十分理想的選擇。該智能收發(fā)器在有消費類電子產(chǎn)品、電力線對講設(shè)備、發(fā)電機(jī)、電子鎮(zhèn)流器、調(diào)光器以及其他通常的噪聲干擾場合能可靠運行。智能收發(fā)器可以通過低成本的外部耦合電路在任何AC或者DC輸電干線上(或無動力的雙絞線)通信。創(chuàng)建一個完整的基于PL3120和PL3150電力線智能收發(fā)器的節(jié)點,僅需要很少的、廉價的外部器件,如圖5-18所示。圖5-18PL3120和PL3150電力線智能收發(fā)器節(jié)點結(jié)構(gòu)圖4.FT3120和FT3150智能收發(fā)器LonWorks收發(fā)器是LonWorks智能設(shè)備中一個重要組成部分。FT3120和FT3150智能收發(fā)器將神經(jīng)元芯片3120及3150的核心與自由拓?fù)涞氖瞻l(fā)器數(shù)字信號處理電路合成在一起,生成一個低成本的智能收發(fā)器芯片。該收發(fā)器符合ANSI/EIA709.3標(biāo)準(zhǔn),速率為78kbit/s,支持雙絞線自由拓?fù)浜涂偩€型拓?fù)洌驗樵诓季€上非常靈活,使系統(tǒng)安裝簡便,降低系統(tǒng)成本,同時提高系統(tǒng)的可靠性。此外,該收發(fā)器在性能上有了極大的提高,尤其是在對電磁場的干擾隔離方面特別明顯,可用在惡劣的環(huán)境中,它能夠防御來自電動機(jī)和開關(guān)電源等方面的磁場干擾,并且在一些典型的工業(yè)和交通現(xiàn)場,在出現(xiàn)了強(qiáng)大的共模干擾時也能可靠地工作。該芯片只需要極少的外部電路和軟件配合工作,因此降低了開發(fā)成本和時間,并且還可以與其他的主處理器相聯(lián),比如可同時與Echelon公司的ShortStack微服務(wù)器以及其他主處理器芯片一起運用,形成一個基于主機(jī)的設(shè)備。FT3120和FT3150智能收發(fā)器是Echelon公司第三代產(chǎn)品中的一個重要產(chǎn)品。FT3120和FT3150智能收發(fā)器和Echelon公司的高性能通信變壓器配套使用,從封裝到功能完全和TP/FT-10兼容,可以直接同使用TP/FT-10或LPT-10收發(fā)器的設(shè)備通信并存于同一信道。該芯片具有神經(jīng)元3120和3150相同的控制功能,其內(nèi)嵌的2KBRAM用于緩存網(wǎng)絡(luò)數(shù)據(jù)和網(wǎng)絡(luò)變量,也帶有34個可編程標(biāo)準(zhǔn)I/O模式的11個I/O引腳:在每個芯片中也有唯一的48位ID。FT3120智能收發(fā)器支持40MHz主頻,同時內(nèi)置的EEPROM為4KB,給應(yīng)用提供了更多的空間。FT3120或FT3150智能收發(fā)器結(jié)構(gòu)如圖5-19所示。

圖5-19FT3120或FT3150智能收發(fā)器結(jié)構(gòu)

5.無線收發(fā)器在LonWorks技術(shù)中使用無線通信技術(shù)可達(dá)到的目的有兩個:應(yīng)用范圍更廣;可選頻率范圍寬。對低成本、低發(fā)射功率的應(yīng)用,可設(shè)計一個簡單的350MHz收發(fā)器;對需要大發(fā)射功率的應(yīng)用,Motorola公司提供有相應(yīng)的產(chǎn)品,頻率范圍在450MHz內(nèi)。與無線收發(fā)器接口的Neuron芯片通信端口應(yīng)工作在單端工作方式,能達(dá)到的數(shù)據(jù)速率最大是4800bps。5.3神經(jīng)元芯片應(yīng)用I/O神經(jīng)芯片通過11個引腳(IO0~IO10)連接到特定應(yīng)用外部電路。這些引腳可以以各種方式配置并提供具有最小外擴(kuò)電路的靈活的I/O功能。引腳IO4~IO7具有可編程的上拉電阻,引腳IO0~IO3具有大電流(20mA)輸出能力。所以,引腳具有TTL電平,且IO0~IO7具有低電平檢測能力。神經(jīng)芯片有2個片上16位定時/計數(shù)器。NeuronC模型允許程序員將一個或多個引腳聲明為I/O對象。在程序運行中,用戶程序在io_in()和io_out()的系統(tǒng)調(diào)用中對這些對象執(zhí)行實際的I/O操作。某些事件與輸入值變化有關(guān),于是任務(wù)調(diào)度器在變化發(fā)生時執(zhí)行相應(yīng)的應(yīng)用代碼,并且11個可編程I/O引腳具有34種可選的工作方式。表5-8到表5-11列出了34種可定義的I/O對象,各種不同的對象可同時使用。表5-8直接I/O對象對

象用到的引腳輸入/輸出值位(bit)輸入IO0~IO100,1二進(jìn)制數(shù)據(jù)位(bit)輸出IO0~IO100,1二進(jìn)制數(shù)據(jù)字節(jié)(B)輸入IO0~IO70~255二進(jìn)制數(shù)據(jù)字節(jié)(B)輸出IO0~IO70~255二進(jìn)制數(shù)據(jù)電平檢測(leveldetect)輸入IO0~IO7邏輯0電平檢測半字節(jié)(nibble)輸入IO0~IO7任意相鄰的4個引腳0~15二進(jìn)制數(shù)據(jù)半字節(jié)(nibble)輸出IO0~IO7任意相鄰的4個引腳0~15二進(jìn)制數(shù)據(jù)表5-9并行雙向I/O對象I/O對象應(yīng)用引腳輸入/輸出值多總線(Muxbus)I/OIO0~IO10有著多種尋址選擇的并行雙向I/O端口并行(parallel)I/OIO0~IO10執(zhí)行令牌傳遞/握手協(xié)議的并行雙向I/O端口表5-10串行I/O對象I/O對象應(yīng)用引腳輸入/輸出值位移(bitshift)I/O任意相鄰的一對引腳(IO7、IO8除外)最多16比特定時數(shù)據(jù)I2C(需要特許)IO8+IO9最多255字節(jié)的雙向串行數(shù)據(jù)磁卡(magcard)輸入IO8+IO9+IO0~IO7磁卡閱讀機(jī)輸出的數(shù)據(jù)流編碼標(biāo)準(zhǔn)ISO7811track2磁跡1(magtrack1)輸入IO8+IO9+IO0~IO7磁卡閱讀機(jī)輸出的數(shù)據(jù)流編碼標(biāo)準(zhǔn)ISO7811track1半雙工異步串行(serial)輸入IO88比特字符,傳輸速率可為600,1200,2400或4800bps半雙工異步串行(serial)輸出IO108比特字符,傳輸速率可為600,1200,2400或4800bpsDallas接觸(Touch)I/OIO0~IO7最多2048比特的輸入或輸出Wiegand輸入IO0~IO7任意相鄰的一對引腳來自Wiegand卡閱讀器的編碼數(shù)據(jù)流全雙工同步串行(Neurowire)I/OIO8+IO9+IO10+IO0~IO7最多255比特雙向串行數(shù)據(jù)表5-11定時器/計數(shù)器輸入/輸出對象I/O對象應(yīng)用引腳輸入信號/輸出信號雙斜率(dualslope)輸入IO0+IO1+IO4~IO7雙積分A/D轉(zhuǎn)換電路的比較器輸出邊沿記錄(edgelog)輸入IO4有跳變的輸入數(shù)據(jù)流紅外(infrared)輸入IO4~IO7來自紅外線解調(diào)器的編碼數(shù)據(jù)流定期(Ontime)輸入IO4~IO7脈寬0.2μs~1.678s周期(period)輸入IO4~IO7信號周期0.2μs~1.678μs脈沖記數(shù)(pulsecount)輸入IO4~IO70.839s期間0~65,535輸入邊沿正交(quadrature)輸入IO4+IO5+IO6+IO7±16,383二進(jìn)制葛萊碼轉(zhuǎn)換總數(shù)(Totalcount)輸入IO4~IO70~65535輸入邊沿分頻(Edgedivide)輸出IO0,IO1+IO4~IO7輸出頻率=輸入頻率/用戶指定的一個數(shù)字頻率(frequency)輸出IO0,IO10.3Hz~2.5MHz的方波單步(Oneshot)輸出IO0,IO1脈寬0.2μs~1.678s脈沖計數(shù)(Pulsecount)輸出IO0,IO10~65535脈沖脈寬(pulsewidth)輸出IO0,IO10~100%占空比脈沖串可控硅(Triac)輸出IO0,IO1+IO4~IO7相對輸入邊沿輸出脈沖的延時時間觸發(fā)計數(shù)(Triggeredcount)輸出IO0,IO1+IO4~IO7計數(shù)輸入邊沿數(shù)從而觸發(fā)輸出端輸出脈沖IO4、IO5、IO6和IO7均有上拉電流源供選擇用作上拉電阻,應(yīng)用程序中若加入NeuronC編譯器的指令(#pragmaendble_io_pullups),上拉電阻使能。引腳IO0、IO1、IO2及IO3均有20mA(0.8V)的電流吸收能力。其它引腳電流吸收能力為標(biāo)準(zhǔn)值1.4mA(0.4V)。引腳IO0~IO7具有低電平檢測鎖存器。5.3.1I/O時序神經(jīng)芯片I/O時序既相互獨立,又受結(jié)構(gòu)重疊的3個部分的影響:調(diào)度器、I/O功能模塊固件和芯片硬件。由于調(diào)度對I/O時序的影響在相對高的功能級上,因此調(diào)度器對所有34個I/O功能模塊的時序影響是近似均勻的。固件和硬件對I/O功能模塊的影響則隨I/O功能模塊類型不同而變化(即bitI/O和NeurowireI/O)。調(diào)度器作為神經(jīng)芯片固件的一部分,對測試用戶定義的事件提供了方便、有序的工具。由NeuronC語言提供的When子句用來確定這些事件。5.3.2直接I/O對象直接I/O對象主要包括Bit(位)I/O對象、Byte(字節(jié))I/O對象、Leveldetect(電平檢測)

輸入對象和Nibble(半字節(jié))I/O對象。1.位輸入/輸出IO0~IO10中的每個引腳均可配置成單個的位輸入或輸出端口,如圖5-20所示。要求輸入信號的電平為TTL電平,而輸出的是CMOS電平。其中,IO0~IO3所具有的高電流吸收能力可使這幾個引腳直接驅(qū)動多個I/O設(shè)備。圖5-20位I/O對象引腳分配圖這種I/O對象類型用于讀或控制單個引腳的邏輯狀態(tài),0相當(dāng)于低電位,而1相當(dāng)于高電位。對于位輸入,io_in()函數(shù)返回值的數(shù)據(jù)類型為unsignedint;對于位輸出,輸出值被作為布爾類型,所以任何非零值均被當(dāng)作1。若希望使用Neuron芯片的內(nèi)部上拉電阻,則應(yīng)該在NeuronC程序中加入編譯指令“#pragmaenable_io_pullups”。對位I/O對象進(jìn)行顯式配置的NeuronC語句和說明如下:pininputbitio-object-name;pinoutputbitin-object-name[=intial-output-level];pin:指定Neuron芯片的11個I/O引腳IO_0~IO_10中的一個。位輸入/輸出可以使用11個引腳中的任何一個引腳。io-object-name:是用戶為該I/O對象指定的名字,是ANSIC格式的變量標(biāo)識符。initial-output-level:為一個常數(shù)表達(dá)式,是ANSIC字符格式的初始值,用于在I/O對象的初始化過程中設(shè)置該輸出引腳的狀態(tài)。初始狀態(tài)可以是0或1。使用方法:unsignedintinput-value;unsignedintoutput-value;input-value=io_in(io-object-name);io_out(io-object-name,output-value);2.字節(jié)輸入/輸出IO0~IO7允許配置為如圖5-21所示的字節(jié)輸入或輸出端口,該I/O對象類型用于同時讀取或控制8個引腳。

圖5-21字節(jié)I/O對象引腳分配圖對于字節(jié)輸入/輸出,io_in()函數(shù)返回值的數(shù)據(jù)類型和io_out()函數(shù)輸出值的數(shù)據(jù)類型為unsignedint,其輸入、輸出的數(shù)據(jù)范圍為0~255B。對字節(jié)I/O對象進(jìn)行顯式配置的NeuronC語句和說明如下:IO_0inputbyteio-object-name;IO_0outputbytein-object-name[=intial-output-level];IO_0:指定IO_0為字節(jié)的最低有效位。字節(jié)輸入/輸出使用引腳IO_0到IO_7。說明中指定的引腳是該I/O對象使用的引腳中編號最小的引腳,且必須是IO_0。io-object-name:是用戶指定的該I/O對象的名字,它為ANSIC格式的變量標(biāo)識符。initial-output-level:是一個常數(shù)表達(dá)式,為ANSIC格式的初始值,用于在初始化時設(shè)置該I/O對象輸出引腳的狀態(tài)。初始狀態(tài)可以是0~255,缺省為0。使用方法:unsignedintinput-value;unsignedintoutput-value;input-value=io_in(io-object-name);in_out(io-object-name,output-value);3.電平檢測(Leveldetect)輸入IO0~IO7可分別配置為電平檢測(Leveldetect)輸入端口。該I/O對象類型用于檢測某一個輸入引腳上輸入的邏輯電平“0”。Leveldetect輸入對象引腳配置和定時圖如圖5-22所示。

圖5-22電平檢測輸入對象引腳配置和定時圖對電平檢測輸入對象進(jìn)行顯式配置的NeuronC語句和說明如下:pin[input]leveldetectio-object-name;pin:指定一個Neuron芯片I/O引腳。Leveldetect輸入可以指定IO_0到IO_7引腳中的任一引腳。io-object-name:是用戶指定的該I/O對象的名字。它為ANSIC格式的變量標(biāo)識符。使用方法:unsignedintinput-value;input-value=io_in(io-object-name);4.半字節(jié)(Nibble)輸入/輸出IO0~IO7中任意4個相鄰的引腳均可配置為Nibble(半字節(jié))輸入或輸出端口,如圖5-23所示。

圖5-23半字節(jié)I/O對象引腳分配圖對半字節(jié)輸入/輸出對象進(jìn)行顯式配置的NeuronC語句和說明如下:pininputnibbleio-object-name;pinoutputnibbleio-object-name[=intial-output-level];pin:指定一個Neuron芯片I/O引腳。Nibble輸入/輸出需要4個相鄰引腳。引腳說明中指定的是這4個相鄰引腳中編號最小的一個引腳。該引腳可以是IO_0到IO_4中的一個。編號最小的引腳被定義為半字節(jié)數(shù)據(jù)的最低有效位。io-object-name:是用戶為該I/O對象指定的名字,是ANSIC格式的變量標(biāo)識符。initial-output-level:常數(shù)表達(dá)式,為ANSIC格式的初始值。用于在初始化時設(shè)置該I/O對象的輸出引腳狀態(tài)。初始狀態(tài)可以是0~15的任何一個值,缺省值為0。使用方法:unsignedintinput-value;unsignedintoutput-value;input-value=io_in(io-object-name);io-out(io-object-name,output-value);5.3.3串行I/O對象Neuron芯片提供的串行I/O對象有ShiftI/O對象、I2CI/O對象、Magcard輸入對象、Magtrack1輸入對象、串行I/O對象、DallasTouchI/O對象、Wiegand輸入對象、NeurowireI/O對象等。在半雙工異步串行(Serial)輸入/輸出對象中,Neuron芯片的IO_8引腳可配置為異步串行數(shù)據(jù)輸入線,IO_10引腳可配置為異步串行數(shù)據(jù)輸出線,如圖5-24所示。a)串行I/O引腳配置b)串行輸入定時圖c)串行輸出定時圖

圖5-24SerialI/O對象5.3.4定時器/計數(shù)器I/O對象Neuron芯片上有兩個16位的定時器/計數(shù)器,即定時器/計數(shù)器1和定時器/計數(shù)器2。定時器/計數(shù)器1又稱為多路復(fù)用定時器/計數(shù)器,因為該定時器/計數(shù)器的輸入引腳可通過一個可編程多路轉(zhuǎn)換器MUX在IO4~IO7中選擇,而它的輸出連接引腳為IO0。定時器/計數(shù)器2稱為專用定時器/計數(shù)器,它的輸入連接引腳為IO4,而輸出引腳連接IO1。定時器/計數(shù)器與其應(yīng)用的外部硬件的連接圖如圖5-25所示。

圖5-25Neuron芯片定時器/計數(shù)器外部連接5.4LonWorks智能控制網(wǎng)絡(luò)的組成5.4.1LonWorks智能控制網(wǎng)絡(luò)結(jié)構(gòu)LonWorks智能控制網(wǎng)絡(luò)結(jié)構(gòu)包括五個部分:網(wǎng)絡(luò)協(xié)議(LonTalk)、網(wǎng)絡(luò)傳輸介質(zhì)、網(wǎng)絡(luò)設(shè)備、執(zhí)行機(jī)構(gòu)和管理軟件。智能控制網(wǎng)絡(luò)結(jié)構(gòu)框圖如圖5-26所示。

圖5-26LonWorks智能控制網(wǎng)絡(luò)結(jié)構(gòu)圖1.LonWorks節(jié)點LonWorks節(jié)點是指同物理上與之相連的I/O設(shè)備進(jìn)行控制或信息交換并且在LON網(wǎng)絡(luò)上使用LonTalk協(xié)議與其它節(jié)點相互通信的一類對象。LON節(jié)點有兩種類型,一種節(jié)點中Neuron芯片是惟一的處理器,適合I/O設(shè)備較簡單、處理任務(wù)不復(fù)雜的系統(tǒng),稱之為基于Neuron芯片的節(jié)點(NeuronChip-BasedNode)。一個典型的基于Neuron芯片的節(jié)點包括以下幾個組成部分:神經(jīng)元芯片、I/O處理單元、收發(fā)器和電源。如圖5-27所示。

圖5-27LonWorks現(xiàn)場控制節(jié)點結(jié)構(gòu)框圖另一種節(jié)點中Neuron芯片僅僅作為通信協(xié)處理器,充當(dāng)著LON網(wǎng)的網(wǎng)絡(luò)接口,節(jié)點應(yīng)用程序則由主處理器執(zhí)行。2.路由器路由器是LonWorks技術(shù)的一個主要部分,用來連接不同通信介質(zhì)的LON網(wǎng)絡(luò)。在LonWorks技術(shù)中,路由器包括以下幾種:中繼器、橋接器和路由器。路由器除連接不同媒介的LON網(wǎng)絡(luò)外,還能控制網(wǎng)絡(luò)交通,增加信息通量和網(wǎng)絡(luò)速度。3.網(wǎng)絡(luò)協(xié)議設(shè)備在運行程序的適當(dāng)時刻發(fā)布信息。由于這些程序不是同步運行,也可能有多個設(shè)備試圖同時對話。因此,設(shè)備間的信息傳遞需要以一系列的規(guī)則和進(jìn)程的形式加以組織。這些規(guī)則和進(jìn)程稱為通信協(xié)議,通常簡稱協(xié)議。

協(xié)議定義了設(shè)備間傳遞的信息格式,并且定義了一個設(shè)備對另一設(shè)備在發(fā)送信息時所期望對方采取的操作。協(xié)議通常采用嵌入軟件形式并駐留在設(shè)備內(nèi),或通過網(wǎng)絡(luò)管理工具下載到設(shè)備中。LonWorks技術(shù)采用LonTalk協(xié)議。4.通信媒介通信媒介是節(jié)點(設(shè)備)之間信息傳輸?shù)奈锢斫橘|(zhì),包括雙絞線、電力線、紅外線、光纖和同軸電纜等。5.網(wǎng)絡(luò)管理工具一個典型的現(xiàn)場控制節(jié)點主要包括以下幾個功能塊:應(yīng)用CPU、I/O處理單元、通信處理器、收發(fā)器和電源。當(dāng)單個節(jié)點建成之后,節(jié)點之間需要互相通信,這就需要一個網(wǎng)絡(luò)工具為網(wǎng)絡(luò)上的節(jié)點分配邏輯地址,同時也要將每個節(jié)點的網(wǎng)絡(luò)變量和顯式報文連接起來。一旦網(wǎng)絡(luò)建成并正常運行后,需要對其進(jìn)行維護(hù)。網(wǎng)絡(luò)系統(tǒng)中的上位機(jī)需要了解所有節(jié)點的網(wǎng)絡(luò)變量和顯式報文變化的情況。網(wǎng)絡(luò)管理工具的主要功能有:(1)網(wǎng)絡(luò)安裝:網(wǎng)絡(luò)安裝可通過ServicePin按鈕或手動的方式設(shè)定設(shè)備的地址,然后將網(wǎng)絡(luò)變量互聯(lián)起來,并且可以設(shè)置四種報文方式:發(fā)送無響應(yīng)、重復(fù)發(fā)送、應(yīng)答和請求響應(yīng)。(2)網(wǎng)絡(luò)維護(hù):網(wǎng)絡(luò)維護(hù)主要是在系統(tǒng)正常運行情況下,增加刪除設(shè)備以改變網(wǎng)絡(luò)變量和顯式報文的內(nèi)部連接。網(wǎng)絡(luò)維護(hù)還是一個錯誤設(shè)備的檢測和替換的過程。檢測過程可以查出設(shè)備出錯是應(yīng)用層的問題(例如一個執(zhí)行器由于馬達(dá)故障而不能開閉)還是通信層問題(例如設(shè)備脫離網(wǎng)絡(luò))。由于采用動態(tài)分配地址方式,只需將數(shù)據(jù)庫中提取的舊設(shè)備的網(wǎng)絡(luò)信息下載到新設(shè)備即可,而不必修改網(wǎng)絡(luò)上其它設(shè)備。(3)網(wǎng)絡(luò)監(jiān)控:應(yīng)用設(shè)備只能得到本地的網(wǎng)絡(luò)信息,即網(wǎng)絡(luò)傳送給它的數(shù)據(jù)。然而在許多大型的控制設(shè)備中,往往有一個設(shè)備需要查看網(wǎng)絡(luò)所有設(shè)備的信息。例如,在過程控制中需要一個超級用戶,用戶可以在網(wǎng)上,甚至以遠(yuǎn)程的方式(如Internet)監(jiān)控整個系統(tǒng)。通過節(jié)點、路由器和網(wǎng)絡(luò)管理這三部分的有機(jī)結(jié)合就可以構(gòu)成一個帶有多種介質(zhì)和完整的網(wǎng)絡(luò)。5.4.2LonWorks的技術(shù)支持LonWorks技術(shù)的目標(biāo)是提供建造開放控制系統(tǒng)所需的便捷、具有優(yōu)良性價比的開發(fā)平臺。該平臺提供一套完整的設(shè)計、創(chuàng)建和安裝智能控制設(shè)備的工具。LonWorks技術(shù)的關(guān)鍵部件包括:1.神經(jīng)芯片(NeuronChip)神經(jīng)芯片是一種專用于價格低廉的控制設(shè)備使之具有智能和網(wǎng)絡(luò)功能的半導(dǎo)體器件。神經(jīng)芯片包括通信功能,含有用戶代碼的應(yīng)用處理功能和由設(shè)備開發(fā)商提供的I/O設(shè)備。2.神經(jīng)芯片應(yīng)用程序LonWorks應(yīng)用程序用NeuronC編寫。一旦編寫完畢,NeuronC代碼就被編譯成機(jī)器碼形式并下載到或連接到芯片上。NeuronC是以ANSIC為基礎(chǔ),并具有三項重要擴(kuò)展功能:新的語句類型:When語句,引入了“事件”并定義了任務(wù)執(zhí)行順序;對顯式和隱式報文格式的集成信息處理機(jī)制;新的對象類:網(wǎng)絡(luò)變量,簡化了節(jié)點間的數(shù)據(jù)共享。3.收發(fā)器(Transceivers)收發(fā)器提供神經(jīng)芯片與LonWorks網(wǎng)絡(luò)的物理通信接口。收發(fā)器簡化了可互操作的LonWorks節(jié)點的開發(fā)并用于許多類型的通信介質(zhì)的拓?fù)浣Y(jié)構(gòu),具有不同收發(fā)器類型的產(chǎn)品需要通過路由器實現(xiàn)節(jié)點之間的互操作。4.LonWorks節(jié)點每個連接到網(wǎng)絡(luò)上的LonWorks設(shè)備稱為節(jié)點。節(jié)點包括一個神經(jīng)芯片和收發(fā)器。根據(jù)節(jié)點的功能,節(jié)點可以嵌入傳感器、執(zhí)行器、I/O外圍電路等。節(jié)點的應(yīng)用程序不僅接收和發(fā)送網(wǎng)絡(luò)上的信息,而且可以進(jìn)行傳感信號和控制邏輯的數(shù)據(jù)處理,例如PID控制、數(shù)據(jù)采集和調(diào)度。5.路由器(Routers)路由器支持多種通信介質(zhì),路由器也可以控制網(wǎng)絡(luò)流量,增加網(wǎng)絡(luò)的吞吐率。一個路由器通常由兩個互聯(lián)的神經(jīng)節(jié)點構(gòu)成,每個節(jié)點的收發(fā)器類型與路由器所連接的信道兼容。6.開發(fā)工具(DevelopmentTools)開發(fā)工具包括多節(jié)點開發(fā)環(huán)境、調(diào)試應(yīng)用程序環(huán)境、安裝和配置節(jié)點的網(wǎng)絡(luò)管理器和監(jiān)視網(wǎng)絡(luò)流量的協(xié)議分析儀。開發(fā)工具使產(chǎn)品開發(fā)商便于設(shè)計基于LON控制網(wǎng)絡(luò)的節(jié)點。其中LonBuilder工具是一個開發(fā)多節(jié)點的集成工具,包括許多可選的工具,而NodeBuilder是單節(jié)點開發(fā)工具;LonMakerforWindows是網(wǎng)絡(luò)設(shè)計和系統(tǒng)管理工具。7.網(wǎng)絡(luò)適配器(NetworkAdapters)網(wǎng)絡(luò)適配器是網(wǎng)絡(luò)接口設(shè)備,它并不連接傳感器和執(zhí)行器,而是外部主機(jī)(例如PC機(jī))的物理接口。該設(shè)備的應(yīng)用程序提供通信協(xié)議和API(應(yīng)用程序接口),使得基于主機(jī)的程序(例如網(wǎng)絡(luò)工具)可以訪問LON網(wǎng)絡(luò)。Echelon公司PCLTA-1網(wǎng)絡(luò)適配器就是一個網(wǎng)絡(luò)接口設(shè)備,把它插入PC機(jī)內(nèi)部的ISA總線槽,就可以用網(wǎng)絡(luò)工具(LNS和LonMaker)訪問LON網(wǎng)絡(luò)。8.網(wǎng)絡(luò)操作系統(tǒng)(NetworkOperatingsystem,NOS)網(wǎng)絡(luò)操作系統(tǒng)提供一個公共的、支持診斷、控制、安裝和配置的面向網(wǎng)絡(luò)的系列服務(wù)。網(wǎng)絡(luò)操作系統(tǒng)考慮了單個或多個用戶使用的多個工具之間的并發(fā)服務(wù)問題,它支持訪問LonMark對象和配置屬性的LonMark服務(wù),支持多生產(chǎn)廠家生產(chǎn)的每個設(shè)備配置標(biāo)準(zhǔn)插入(plug-ins)。5.5LonTalk通信協(xié)議與LonMark對象LonTalk協(xié)議是LonWorks系統(tǒng)的核心。該協(xié)議提供一系列通信服務(wù),使得一個設(shè)備的應(yīng)用程序可以在不了解網(wǎng)絡(luò)拓?fù)?、名稱、地址或其它設(shè)備功能的情況下發(fā)送和接收網(wǎng)絡(luò)上其它設(shè)備的報文。LonTalk協(xié)議能提供端到端報文確認(rèn),報文認(rèn)證、打包業(yè)務(wù)和優(yōu)先傳送服務(wù),提供網(wǎng)絡(luò)管理服務(wù)的支持,并允許遠(yuǎn)程網(wǎng)絡(luò)管理工具與網(wǎng)絡(luò)設(shè)備進(jìn)行交互。5.5.1LonTalk協(xié)議介紹LonTalk協(xié)議符合ISO/OSI參考模型的七層體系結(jié)構(gòu),即含有物理層、鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層和應(yīng)用層,是一套完整、安全、有效的通信協(xié)議系統(tǒng)。1.LonTalk協(xié)議特點(1)LonTalk協(xié)議采用分級編址方式,即域、子網(wǎng)和節(jié)點地址。(2)LonTalk協(xié)議支持多種通信介質(zhì),包括雙絞線、電力線、同軸電纜、無線電和紅外線、光纖傳輸介質(zhì)等。(3)互操作性強(qiáng)。網(wǎng)絡(luò)上任一節(jié)點可以對其它節(jié)點進(jìn)行操作,傳輸控制信息。(4)響應(yīng)時間快,通信安全可靠。2.LonTalk協(xié)議的功能LonTalk協(xié)議符合ISO制訂的開放系統(tǒng)互聯(lián)OSI標(biāo)準(zhǔn),具有完備的七層協(xié)議。LonTalk提供的服務(wù)包括:物理信息管理;命名機(jī)制、數(shù)據(jù)包尋址和路由選擇;通信的高可靠性;優(yōu)先級管理和外部幀和數(shù)據(jù)表示等。3.LonTalk協(xié)議標(biāo)準(zhǔn)LonTalk協(xié)議是一個分層的、基于數(shù)據(jù)包的對等通信協(xié)議。像Ethernet網(wǎng)絡(luò)和Internet協(xié)議一樣,它是一個公認(rèn)的標(biāo)準(zhǔn)并遵循OSI模型分層規(guī)則。為了確保滿足控制網(wǎng)絡(luò)的可靠和魯棒的通信標(biāo)準(zhǔn),LonTalk協(xié)議為控制應(yīng)用提供了一個高可靠、高性能、高抗干擾性強(qiáng)的通信機(jī)制。神經(jīng)元芯片使用全部的3個CPU來執(zhí)行一個完整的網(wǎng)絡(luò)協(xié)議。LonTalk協(xié)議所提供的服務(wù)與7層OSI參考模型之間的對應(yīng)關(guān)系,以及各層與三個CPU之間的分配關(guān)系如表5-12所示。表5-12LonTalk協(xié)議的分層OSI層用

途提供的服務(wù)CPU7應(yīng)用層應(yīng)用兼容性LonMark對象、配置屬性、標(biāo)準(zhǔn)網(wǎng)絡(luò)變量類型(SNVT)、文件傳輸應(yīng)用CPU6表示層數(shù)據(jù)解釋網(wǎng)絡(luò)變量、應(yīng)用報文、外來幀的傳輸、網(wǎng)絡(luò)接口網(wǎng)絡(luò)CPU5會話層遠(yuǎn)程操作請求/響應(yīng)、證實、網(wǎng)絡(luò)服務(wù)網(wǎng)絡(luò)CPU4傳輸層端到端(End-to-End)通信可靠性確認(rèn)和非確認(rèn)報文、通用排序、雙重檢測網(wǎng)絡(luò)CPU3網(wǎng)絡(luò)層目標(biāo)尋址單點和多點尋址、路由選擇信息網(wǎng)絡(luò)CPU2鏈路層介質(zhì)訪問和成幀成幀、數(shù)據(jù)編碼、CRC(循環(huán)冗余校驗)錯誤檢測、可預(yù)測的CSMA(載波監(jiān)聽多路訪問)、沖突避免、優(yōu)先級、沖突檢測介質(zhì)訪問控制CPU1物理層電氣互連特定介質(zhì)的接口和調(diào)制方案介質(zhì)訪問控制CPU(1)物理層:物理層定義了在通信信道上位流的傳輸。物理層確保一個源設(shè)備發(fā)送的位流準(zhǔn)確地被目的設(shè)備所接收。LonTalk協(xié)議是基于傳輸介質(zhì)的,多個物理層協(xié)議支持不同的通信介質(zhì)(如雙絞線、電力線等)。(2)數(shù)據(jù)鏈路層:數(shù)據(jù)鏈路層定義介質(zhì)訪問方法和確保有效利用單一信道的數(shù)據(jù)編碼。物理層的位流被分割成數(shù)據(jù)幀,數(shù)據(jù)鏈路層定義源設(shè)備發(fā)送數(shù)據(jù)幀的時刻,目的設(shè)備如何接收數(shù)據(jù)幀以及檢測傳輸錯誤,同時還定義了優(yōu)先級機(jī)制以確保重要信息的傳送。(3)網(wǎng)絡(luò)層:網(wǎng)絡(luò)層定義了來自源設(shè)備的報文是如何選擇路由到達(dá)一個或多個目的設(shè)備的。網(wǎng)絡(luò)層定義設(shè)備名稱和地址,還定義了當(dāng)源設(shè)備和目的設(shè)備不在同一信道上時,如何確定報文路由。(4)傳輸層:傳輸層確保可靠的報文傳輸。報文可以用一種確認(rèn)服務(wù)方式來進(jìn)行數(shù)據(jù)交換,即源設(shè)備等待來自接收設(shè)備的確認(rèn)信號并且當(dāng)未收到確認(rèn)信息時重發(fā)報文。同時,傳輸層還定義了由于丟失確認(rèn)報文重發(fā)時,如何排除重發(fā)報文。(5)會話層:會話層對較低層數(shù)據(jù)交換加以控制。它支持遠(yuǎn)程操作,使得客戶可以對遠(yuǎn)程服務(wù)提出請求,并接收對請示的響應(yīng);它還定義了一個認(rèn)證協(xié)議,使得報文接收者確認(rèn)發(fā)送者是否有權(quán)發(fā)送該報文。(6)表示層:表示層定義報文數(shù)據(jù)的編碼。報文被編碼為網(wǎng)絡(luò)變量、應(yīng)用報文或外部幀。用標(biāo)準(zhǔn)化網(wǎng)絡(luò)變量類型SNVTS支持網(wǎng)絡(luò)變量的互操作。(7)應(yīng)用層:應(yīng)用層定義為一種低層交換數(shù)據(jù)的公共語義解釋,使不同的應(yīng)用程序中網(wǎng)絡(luò)變量改變時,均能自動將更新的網(wǎng)絡(luò)變量值下傳(發(fā)送)或上傳(接收)。應(yīng)用層還定義了一個文件傳輸協(xié)議,用來傳輸應(yīng)用程序間的傳輸流。5.5.2LonTalk提供的服務(wù)1.物理信道管理LonTalk協(xié)議支持一種或多種不同傳輸介質(zhì)構(gòu)成的網(wǎng)絡(luò)。這些傳輸介質(zhì)包括雙絞線、電力線、無線射頻、同軸電纜和光纖等。2.LonTalk協(xié)議的命名機(jī)制和尋址方式(1)神經(jīng)芯片命名:神經(jīng)芯片具有一個特有的48位標(biāo)識(NeuronID),NeuronID由芯片生產(chǎn)廠家惟一確定,并且終生不變。由此,NeuronID作為神經(jīng)芯片的名字,可以惟一地區(qū)別于其它神經(jīng)芯片。(2)地址:地址是一個對象或一組對象的特有標(biāo)識,與名字不同,地址是可以改變的。LonTalk地址惟一地確定一個LonTalk數(shù)據(jù)包的源節(jié)點或目標(biāo)節(jié)點,路由器則利用這些地址在信道之間選擇數(shù)據(jù)包的傳輸路徑。盡管NeuronID也可以作為地址,但它不能作為尋址的惟一方式,這是因為該尋址方式只支持一對一的傳輸,將需要過于龐大的節(jié)點路由表以優(yōu)化網(wǎng)絡(luò)流量。僅僅當(dāng)網(wǎng)絡(luò)安裝和配置時,才使用芯片的NeuronID尋址方式。(3)尋址方式:該方式由域地址、子網(wǎng)地址和節(jié)點地址等方式組成。(4)尋址格式:節(jié)點有五種尋址方式。尋址格式確定了地址格式的字節(jié)數(shù)。每種尋址格式的字節(jié)數(shù)如表5-13所示。表5-13

LonTalk協(xié)議的五種地址格式地址格式目

標(biāo)地址長度(字節(jié)數(shù))域(子網(wǎng)=0)域內(nèi)所有節(jié)點3域、子網(wǎng)子網(wǎng)內(nèi)所有節(jié)點3域、子網(wǎng)、節(jié)點子網(wǎng)內(nèi)的特定節(jié)點4域、組組內(nèi)所有節(jié)點3域、Nueron特定節(jié)點93.網(wǎng)絡(luò)管理與網(wǎng)絡(luò)設(shè)備(1)網(wǎng)絡(luò)管理:一個LonWorks網(wǎng)絡(luò)是否需要一個網(wǎng)絡(luò)管理節(jié)點,取決于實際應(yīng)用的需求。一個網(wǎng)絡(luò)管理節(jié)點具有以下功能:尋找未配置的節(jié)點并下載網(wǎng)絡(luò)地址;停止、啟動和復(fù)位應(yīng)用程序;訪問節(jié)點通信統(tǒng)計;配置路由器;下載新的應(yīng)用程序;提取運行網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。在一個開發(fā)環(huán)境中,網(wǎng)絡(luò)管理節(jié)點的應(yīng)用相當(dāng)于LonBuilder開發(fā)平臺的網(wǎng)絡(luò)管理器,其任務(wù)包括定義、配置、下載和控制LonWorks網(wǎng)絡(luò)。LonBuilder協(xié)議分析儀具有監(jiān)視、采集和顯示網(wǎng)絡(luò)通信流量以及性能統(tǒng)計等功能。(2)路由器:一個路由器連接兩個信道并且在信道間轉(zhuǎn)發(fā)數(shù)據(jù)包。路由器可以用以下4種路由算法之一配置。中繼器:中繼器是一個最簡單的路由器,數(shù)據(jù)包只能前向傳輸。利用中繼器,一個子網(wǎng)可以跨越多個信道。網(wǎng)橋:網(wǎng)橋在兩個信道間前向轉(zhuǎn)發(fā),并與本域的所有數(shù)據(jù)包相匹配。利用網(wǎng)橋,子網(wǎng)可以跨越多個信道。學(xué)習(xí)路由器:一個學(xué)習(xí)路由器監(jiān)視網(wǎng)絡(luò)流量并在域/子網(wǎng)級感知網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),學(xué)習(xí)路由器利用所學(xué)知識在信道間為數(shù)據(jù)包選擇路徑。配置路由器:與學(xué)習(xí)路由器相似,配置路由器借助其內(nèi)部的路由表在信道間為數(shù)據(jù)包選擇路徑。和學(xué)習(xí)路由器不同的是,其內(nèi)部路由表的內(nèi)容由網(wǎng)絡(luò)管理工具定義。網(wǎng)絡(luò)管理工具可以為子網(wǎng)和組尋址定義路由表以優(yōu)化網(wǎng)絡(luò)流量。4.LonTalk提供的通信服務(wù)(1)網(wǎng)絡(luò)效率:網(wǎng)絡(luò)的響應(yīng)時間、安全性和可靠性是相互關(guān)聯(lián)的。例如,應(yīng)答服務(wù)方式是最可靠的,但它與非應(yīng)答方式和非應(yīng)答重發(fā)方式相比需要較大的網(wǎng)絡(luò)帶寬;它具有優(yōu)先權(quán)的報文實時發(fā)送,對其它報文的發(fā)送是不利的;使用報文認(rèn)證服務(wù)可使安全性增加,但要傳送的報文數(shù)量將是無報文認(rèn)證服務(wù)的兩倍。(2)LonTalk報文服務(wù):LonTalk協(xié)議提供以下4種可選擇的報文服務(wù)。確認(rèn)服務(wù)(Acknowledged):這是最可靠的服務(wù)方式。以這種方式發(fā)送報文,發(fā)送方必須收到每個接收節(jié)點的確認(rèn)信號。請求/應(yīng)答服務(wù)(Request/response):請求/應(yīng)答服務(wù)與確認(rèn)服務(wù)有相同的可靠性,發(fā)送方需要接收到每個接收節(jié)點的應(yīng)答信號,也包括重發(fā)次數(shù)和事務(wù)定時。應(yīng)答信號包含數(shù)據(jù),所以該方式適用于遠(yuǎn)程過程調(diào)用或客戶機(jī)/服務(wù)器應(yīng)用。非確認(rèn)重發(fā)服務(wù)(Unacknowledgedrepeated):這是一種比較可靠的方式,報文向一個或一組節(jié)點發(fā)送多次,而不等待應(yīng)答信號。這種報文方式適合于向節(jié)點數(shù)較多的組進(jìn)行廣播傳送,這時如果組內(nèi)節(jié)點都產(chǎn)生應(yīng)答,網(wǎng)絡(luò)就會過載。非確認(rèn)服務(wù)(Unacknowledged):非確認(rèn)服務(wù)是最不可靠的一種服務(wù),它不需要等待接收節(jié)點的應(yīng)答信號。它適用于對網(wǎng)絡(luò)效率要求很高而網(wǎng)絡(luò)帶寬有限,且對報文的丟失不敏感的應(yīng)用場合。

(3)沖突檢測:LonTalk協(xié)議的沖突退避的算法是特有的,稱為預(yù)測P-堅持CSMA(PredictiveP-presistenceCSMA)。(4)報文認(rèn)證:LonTalk協(xié)議支持報文認(rèn)證服務(wù),即允許報文的接收者確定報文的發(fā)送方是否有權(quán)發(fā)送。5.LonTalk協(xié)議中的定時器在使用LonTalk協(xié)議服務(wù)之前,需正確設(shè)置以下幾個定時器:事務(wù)定時器(TransactionTimer);重發(fā)定時器(RepeatTimer);組接收定時器(GroupReceiveTimer);非組接收定時器(Non-GroupReceiveTimer);緩沖器釋放定時器(FreeBufferWaitTimer)。6.網(wǎng)絡(luò)接口LonTalk協(xié)議包含一個可選擇的網(wǎng)絡(luò)接口協(xié)議,該協(xié)議支持在任一主處理器上運行的LonWorks應(yīng)用。主處理器可以是微處理器、微控制器或PC機(jī)。主處理器管理LonTalk協(xié)議的第6和7層,并且使用LonTalk網(wǎng)絡(luò)接口管理協(xié)議的1~5層。LonTalk網(wǎng)絡(luò)接口定義網(wǎng)絡(luò)接口和主處理器之間的數(shù)據(jù)交換格式。7.?dāng)?shù)據(jù)表示LonTalk協(xié)議采用面向數(shù)據(jù)的應(yīng)用協(xié)議。在這種方式下,節(jié)點間以標(biāo)準(zhǔn)工程單位或其它預(yù)定義的單位交換諸如溫度、壓力、狀態(tài)和文字串等應(yīng)用數(shù)據(jù),而命令語句封裝在接收節(jié)點的應(yīng)用程序中且不將命令在網(wǎng)上傳送。以這種方式,同一工程量可送到多個節(jié)點,然而每個節(jié)點對該數(shù)據(jù)有不同的應(yīng)用程序?!皵?shù)據(jù)表示”由基于芯片節(jié)點的芯片固件完成;在基于主機(jī)的節(jié)點中,“數(shù)據(jù)表示”由主處理器完成。(1)網(wǎng)絡(luò)變量:網(wǎng)絡(luò)變量是LonTalk協(xié)議中表示層的數(shù)據(jù)項,網(wǎng)絡(luò)變量可以是數(shù)據(jù)項或是一個結(jié)構(gòu),網(wǎng)絡(luò)變量用關(guān)鍵字Network定義。每個網(wǎng)絡(luò)變量由應(yīng)用程序表明其數(shù)據(jù)類型。對于基于芯片的節(jié)點來說,當(dāng)在一個應(yīng)用程序中通過賦值操作引起了輸出網(wǎng)絡(luò)變量的變化,神經(jīng)芯片固件自動地用LonTalk協(xié)議服務(wù)在網(wǎng)絡(luò)上傳播其更新的值。(2)顯式報文:將報文的目的地址、報文服務(wù)方式、數(shù)據(jù)長度和數(shù)據(jù)組成APDU(應(yīng)用層數(shù)據(jù)單元)下傳并發(fā)送,將發(fā)送結(jié)果上傳并激活相應(yīng)的發(fā)送結(jié)果處理進(jìn)程。當(dāng)收到信息時,能根據(jù)上傳APDU判斷是否是顯式報文,并根據(jù)報文代碼激活相應(yīng)的處理進(jìn)程。5.5.3介質(zhì)訪問控制和MAC層協(xié)議介質(zhì)訪問控制層(MediaAccessControl,MAC)是數(shù)據(jù)鏈路層的一部分。由于網(wǎng)絡(luò)介質(zhì)多種多樣,相應(yīng)的就有多種介質(zhì)訪問控制方法。所以,為了使數(shù)據(jù)幀傳輸獨立于所采用的物理介質(zhì)和介質(zhì)訪問的控制方法,將數(shù)據(jù)鏈路層分為兩個子層:邏輯鏈路控制LLC和介質(zhì)訪問控制MAC。LLC與介質(zhì)無關(guān),MAC則依賴于介質(zhì)。所謂MAC協(xié)議就是確定設(shè)備怎樣才可以安全地發(fā)送數(shù)據(jù)包,以減少沖突的控制算法。LonTalk在物理層協(xié)議上支持多種通信協(xié)議,也就是為適應(yīng)不同的通信介質(zhì)而支持不同的數(shù)據(jù)解碼和編碼。例如,通常雙絞線使用差分曼徹斯特編碼;電力線使用擴(kuò)頻;無線通信使用頻移鍵控(FSK)。由于LonTalk考慮對各種介質(zhì)的支持,LON總線可以允許使用非常廣泛的通信介質(zhì),如雙絞線、電力線、無線電、紅外線、同軸電纜、光纖甚至是用戶自定義的通信介質(zhì)。LonTalk支持在通信介質(zhì)上的硬件碰撞檢測。LonTalk可以自動地將正在發(fā)生碰撞的報文取消,重新再發(fā)。如果沒有碰撞檢測,當(dāng)碰撞發(fā)生時,只有到響應(yīng)或應(yīng)答時才會重發(fā)報文。1.LonTalkMAC子層LonTalk協(xié)議的MAC子層是鏈路層的一部分,使用OSI各層協(xié)議的標(biāo)準(zhǔn)接口和鏈路層的其它部分進(jìn)行通信,如圖5-28所示。局域網(wǎng)中存在多種介質(zhì)訪問控制協(xié)議,其中使用最廣泛的是載波多路監(jiān)聽(CSMA)。LonTalk的MAC是該協(xié)議的一種改進(jìn)。

圖5-28MAC子層通信框圖

對于常用的CSMA/CD,在輕負(fù)載的情況下具有很好的性能,但當(dāng)在重負(fù)載情況下,一包數(shù)據(jù)在發(fā)送,可能有許多網(wǎng)絡(luò)節(jié)點等待網(wǎng)絡(luò)空閑。一旦這包數(shù)據(jù)發(fā)送完畢,網(wǎng)絡(luò)空閑,這些等待發(fā)送的節(jié)點就會馬上發(fā)送報文,而同時發(fā)送必然產(chǎn)生碰撞。產(chǎn)生碰撞后,由避讓算法使之等待一段時間再發(fā),例如這段時間相同的話,重復(fù)的碰撞仍會發(fā)生,使得網(wǎng)絡(luò)效率大大降低。2.可預(yù)測P-堅持CSMALonTalkMAC子層協(xié)議使用改進(jìn)的CSMA介質(zhì)訪問控制協(xié)議,該協(xié)議稱為帶預(yù)測的P-堅持CSMA(PredictiveP-PresistentCSMA)。它在保留CSMA協(xié)議優(yōu)點的同時,注意克服它在控制網(wǎng)絡(luò)中的不足。帶預(yù)測的P-堅持CSMA,所有的節(jié)點根據(jù)網(wǎng)絡(luò)積壓參數(shù)等待隨機(jī)時間來訪問介質(zhì),這就有效地避免了網(wǎng)絡(luò)的頻繁碰撞。3.可預(yù)測P-堅持CSMA實現(xiàn)可預(yù)測P-堅持CSMA在保留P-堅持CSMA的優(yōu)點前提下,通過對網(wǎng)絡(luò)負(fù)載的預(yù)測,在網(wǎng)絡(luò)輕載時,給網(wǎng)上節(jié)點分配數(shù)目較少的隨機(jī)時隙以減少節(jié)點媒介訪問延時;在網(wǎng)絡(luò)重載時,給網(wǎng)上節(jié)點分配數(shù)目較多的隨機(jī)時隙以減少各節(jié)點因同時發(fā)送消息帶來的沖突。4.優(yōu)先級帶預(yù)測的P-堅持CSMA實驗表明,36個LonWorks節(jié)點互聯(lián),采用一般的P-堅持算法。當(dāng)每秒要傳輸?shù)膱笪倪_(dá)500~1000包時,碰撞率由10%上升到54%,而采用預(yù)測P-堅持算法在500以下時碰撞率很低,在500~1000包時穩(wěn)定在10%,可是預(yù)測P-堅持CSMA不能避免沖突,只能降低沖突至最小。5.5.4LonTalk協(xié)議的鏈路層及網(wǎng)絡(luò)層1.LonTalk協(xié)議的鏈路層LonTalk協(xié)議鏈路層提供在子網(wǎng)內(nèi),鏈路層協(xié)議數(shù)據(jù)單元(LPDU)幀順序的無響應(yīng)傳輸。它提供錯誤檢測能力,但不提供恢復(fù)錯誤的能力。當(dāng)一幀數(shù)據(jù)CRC校驗錯,該幀被丟掉。在直接互聯(lián)模式下物理層和鏈路層接口的編碼方案是曼徹斯特編碼,在專用模式下根據(jù)不同的電氣接口采用不同的編碼方案。CRC校驗碼加在NPDU(網(wǎng)絡(luò)層數(shù)據(jù)單元)幀的最后。2.LonTalk協(xié)議的網(wǎng)絡(luò)層LonTalk協(xié)議在網(wǎng)絡(luò)層給用戶提供一個簡單的通信接口,定義了如何接收、發(fā)送、響應(yīng)等。在網(wǎng)絡(luò)管理上有網(wǎng)絡(luò)地址分配、出錯管理、網(wǎng)絡(luò)認(rèn)證和流量控制,而路由器的機(jī)制也是在這一層實現(xiàn)。LonTalk協(xié)議定義了一種分層編址方法,這種方式使用了域(domain)地址、子網(wǎng)(subnet)地址、節(jié)點地址。為了進(jìn)一步簡化多個分散點的編址,LonTalk協(xié)議還定義了另一級地址,這就是組(Group)地址。(1)域地址:LonTalk編址的最頂層是域,是一個或多個通道上的節(jié)點的一個邏輯集合(一個通道是指在物理上能獨立發(fā)送報文而不需轉(zhuǎn)發(fā)的一段介質(zhì))。(2)子網(wǎng)地址:編址的第二層是子網(wǎng),子網(wǎng)是域中節(jié)點的一個邏輯集合。每個子網(wǎng)的節(jié)點數(shù)最多為127個,而每個域最多有255個子網(wǎng)。子網(wǎng)中的所有節(jié)點必須是在同一區(qū)段上,子網(wǎng)不能跨越智能路由器。(3)節(jié)點地址:編址的第三層是節(jié)點。子網(wǎng)中的每個節(jié)點都被賦予一個惟一的數(shù)值,該數(shù)是7位二進(jìn)制值,這樣每個子網(wǎng)最多可配置的節(jié)點數(shù)為127個。(4)組地址:一個組是一個域中的節(jié)點的邏輯集合。(5)神經(jīng)芯片標(biāo)識:已知神經(jīng)芯片的標(biāo)識符ID可用做地址,并且這個ID值只在網(wǎng)絡(luò)安裝及配置時用做網(wǎng)絡(luò)尋址。網(wǎng)絡(luò)管理工具用在節(jié)點安裝時,用它給安裝的節(jié)點配置屬于一個域還是兩個域,對應(yīng)用消息不使用這種編址格式。節(jié)點使用的編址格式有5種,不同的編址格式?jīng)Q定了源地址及目標(biāo)地址將占用的字節(jié)數(shù)。5.5.5LonTalk高層協(xié)議1.LonTalk協(xié)議的傳輸層和會話層LonTalk協(xié)議的核心部分是傳輸層和會話層。傳輸層管理著報文執(zhí)行的順序和報文的二次檢測。傳輸層是無連接的,它提供一對一節(jié)點、一對多節(jié)點的可靠傳輸。信息認(rèn)證也是在這一層實現(xiàn)的。會話層主要提供了請求/響應(yīng)的機(jī)制。它通過節(jié)點的連接,來進(jìn)行遠(yuǎn)程數(shù)據(jù)服務(wù)(remoteservers)。使用該機(jī)制可以遙控實現(xiàn)遠(yuǎn)端節(jié)點的過程建立。LonTalk協(xié)議的網(wǎng)絡(luò)功能雖然是在應(yīng)用層上來完成的,但實際上也是由提供會話層的請求/應(yīng)答機(jī)制來完成的。2.LonTalk協(xié)議的表示層和應(yīng)用層LonTalk協(xié)議的表示層和應(yīng)用層提供以下5類服務(wù)。(1)網(wǎng)絡(luò)變量服務(wù):在LonTalk協(xié)議表示層的數(shù)據(jù)項被稱為網(wǎng)絡(luò)變量(NV)。網(wǎng)絡(luò)變量可以是單個的數(shù)據(jù)項(NeuronC變量),也可以是數(shù)據(jù)結(jié)構(gòu)或數(shù)組,其最大長度可達(dá)31個字節(jié)。每個網(wǎng)絡(luò)變量都有一個數(shù)據(jù)類型,它在應(yīng)用程序中定義。當(dāng)定義的輸出網(wǎng)絡(luò)變量改變時,能自動地將網(wǎng)絡(luò)變量的值變成APPU(應(yīng)用層協(xié)議數(shù)據(jù)單元)下傳并發(fā)送,使所有把該變量定義為輸入的節(jié)點收到該網(wǎng)絡(luò)變量的改變。當(dāng)上傳信息時,能根據(jù)上傳的APDU判斷是否是網(wǎng)絡(luò)變量,以及是哪一個網(wǎng)絡(luò)變量并激活相應(yīng)的處理進(jìn)程。(2)顯式報文的服務(wù):將報文的目地地址、報文服務(wù)方式、數(shù)據(jù)長度和數(shù)據(jù)組成APDU(應(yīng)用層數(shù)據(jù)單元)下傳并發(fā)送,將發(fā)送結(jié)果上傳并激活相應(yīng)的發(fā)送結(jié)果處理進(jìn)程。當(dāng)收到信息,能根據(jù)上傳APDU是否是顯式報文,并根據(jù)報文代碼激活相應(yīng)的處理進(jìn)程。(3)網(wǎng)絡(luò)管理的服務(wù):LonTalk網(wǎng)絡(luò)管理提供地址分配服務(wù)。分配所有的節(jié)點地址單元,包括域號、子網(wǎng)號、節(jié)點號以及所屬的組名和組員號,值得注意的是NeuronID是不能分配的。網(wǎng)絡(luò)管理體制還包括設(shè)置路由器的配置表。(4)網(wǎng)絡(luò)跟蹤服務(wù):網(wǎng)絡(luò)跟蹤服務(wù)提供對節(jié)點的查詢和測試。查詢節(jié)點的工作狀態(tài)以及一些網(wǎng)絡(luò)的通信錯誤統(tǒng)計,包括通信CRC校驗錯誤、通信超時等。LonTalk協(xié)議還發(fā)送一些測試命令并對節(jié)點進(jìn)行測試。(5)通信服務(wù):LonTalk協(xié)議支持網(wǎng)絡(luò)的消息服務(wù)、沖突檢測和避免。消息服務(wù)提供了四種類型的報文服務(wù),包括確認(rèn)服務(wù)、請求/響應(yīng)、重發(fā)服務(wù)和非確認(rèn)服務(wù)。除此之外,還有沖突避免和沖突檢測。5.5.6LonMark對象LonWorks技術(shù)為產(chǎn)品開發(fā)者、系統(tǒng)集成商和最終用戶提供了用于研制、構(gòu)造、安裝和維護(hù)控制網(wǎng)絡(luò)所需要的所有東西。這種一步到位的解決方案有利于客戶把主要精力集中在應(yīng)用層的開發(fā)工作上。1.LonMark對象定義LonMark對象是一個或多個輸入網(wǎng)絡(luò)變量和輸出網(wǎng)絡(luò)變量(SNVTS)、網(wǎng)絡(luò)變量行為的語義定義和一系列配置屬性的封裝體。LonMark對象建立在網(wǎng)絡(luò)變量的基礎(chǔ)上,并結(jié)合特定應(yīng)用功能的語義提供了一個簡明的應(yīng)用層接口。LonMark對象不僅定義了使用哪一種標(biāo)準(zhǔn)網(wǎng)絡(luò)變量類型和標(biāo)準(zhǔn)結(jié)構(gòu)參數(shù)類型傳遞數(shù)據(jù),而且提供了通信信息的語義。LonMark對象描述了信息如何輸入節(jié)點,如何從節(jié)點輸出,如何與網(wǎng)絡(luò)上其它節(jié)點共享信息的標(biāo)準(zhǔn)格式。2.LonMark設(shè)備遵循LonMark可互操作規(guī)范標(biāo)準(zhǔn)的設(shè)備稱為LonMark設(shè)備,或稱為LonMark節(jié)點。一個LonMark節(jié)點包括一個或若干個LonMark對象。一個LonMark設(shè)備(節(jié)點)的應(yīng)用層接口包括若干元素,這些元素完整地描述了可互操作的節(jié)點與網(wǎng)絡(luò)的外部接口。這些組成互操作接口的關(guān)鍵元素有:(1)節(jié)點對象(object0):節(jié)點對象提供對LonMark節(jié)點內(nèi)各個對象的管理。節(jié)點對象提供了在一個節(jié)點內(nèi)詢問對象的模式或報告對象狀態(tài)的機(jī)制,除此之外,節(jié)點對象包括與該節(jié)點有關(guān)的網(wǎng)絡(luò)數(shù)量和配置屬性。(2)具有特定應(yīng)用的LonMark對象:LonMark對象描述了節(jié)點在網(wǎng)絡(luò)上與其它節(jié)點如何共享信息,如何以標(biāo)準(zhǔn)格式輸入和輸出節(jié)點信息,LonMark對象定義為一個或多個輸入網(wǎng)絡(luò)變量和輸出網(wǎng)絡(luò)變量的集合(SNVTS)、網(wǎng)絡(luò)變量行為的語義定義和一系列配置屬性。利用自環(huán)網(wǎng)絡(luò)變量,一個LonMark對象可以給自身發(fā)送信息,然而LonMark對象的主要目的是向網(wǎng)絡(luò)上其它節(jié)點發(fā)送信息。(3)通用的LonMark對象,例如傳感器、執(zhí)行器或控制器對象。(4)網(wǎng)絡(luò)變量。(5)配置屬性。應(yīng)用程序開發(fā)者在安裝過程中要選擇應(yīng)用程序的參數(shù),稱為配置屬性。配置網(wǎng)絡(luò)變量可用于相對少量的配置信息,這個方法較網(wǎng)絡(luò)變量有優(yōu)勢:自標(biāo)識、自文檔、外部接口文件支持和簡化的發(fā)送和接收數(shù)據(jù)的方法。(6)功能模塊:常用的LonMark對象包括開環(huán)傳感器、閉環(huán)傳感器、執(zhí)行器對象和控制器對象。由此形成了其它對象和功能模塊的模板。在通常情況下,對象定義十分接近常用的LonMark傳感器和執(zhí)行器對象,或許只需加入輸入或輸出信號的特定數(shù)據(jù)類型即可。然而,由于執(zhí)行器對象是松散定義的,故需要功能模塊提供與特定控制器功能相關(guān)的網(wǎng)絡(luò)變量和配置屬性的定義。5.6NeuronC-面向?qū)ο蟮木幊陶Z言5.6.1NeuronC概述NeuronC是專門為Neuron芯片設(shè)計的編程語言。它是從ANSIC中派生出來的,并對ANSIC進(jìn)行了增刪。對ANSIC的擴(kuò)展直接支持Neuron芯片的固件,使之成為開發(fā)LonWorks應(yīng)用的強(qiáng)有力工具。對ANSIC的擴(kuò)展包括以下幾點:一個內(nèi)部多任務(wù)調(diào)度程序:它允許程序員以自然的方式描述事件驅(qū)動的任務(wù),同時控制這些任務(wù)的優(yōu)先級的執(zhí)行。將I/O對象直接映射到處理器的I/O能力。網(wǎng)絡(luò)變量對象定義:提供一種簡單的實現(xiàn)節(jié)點之間數(shù)據(jù)共享的方法。when語句:引入事件并定義這些事件的臨時排序。顯式消息(explicitmessage)傳遞:用于直接對LonTalk協(xié)議的底層進(jìn)行訪問。秒及毫秒級軟件定時器對象:可隨意激活用戶的任務(wù)。函數(shù)庫:當(dāng)調(diào)用時,可以執(zhí)行事件檢查、管理輸入/輸出、網(wǎng)上發(fā)送或接收消息以及控制各種Neuron芯片的功能。有經(jīng)驗的C編程人員一定能發(fā)現(xiàn)NeuronC擴(kuò)充部分對所熟悉的C語言有一種很自然的銜接感。NeuronC提供有內(nèi)嵌的類型檢查為編程人員編出高效率的分布式LonWorks應(yīng)用程序提供了保證。5.6.2NeuronC編程對每個節(jié)點都有它自己的調(diào)度程序、定時器以及邏輯I/O設(shè)備。NeuronC包含有預(yù)定對象提供對這些設(shè)備的訪問。有關(guān)調(diào)度程序、定時器以及邏輯I/O設(shè)備的解釋如下:Neuron芯片的調(diào)度程序:負(fù)責(zé)Neuron芯片的任務(wù)調(diào)度。本節(jié)將敘述如何定義事件(任務(wù))、如何判斷非優(yōu)先級事件以及如何定義優(yōu)先級事件。Neuron芯片提供兩種定時器對象:毫秒級定時器以及秒級定時器。這些定時器可以用來干預(yù)任務(wù)的調(diào)度。NeuronC可以定義許多I/O對象:這些I/O對象以及與之相關(guān)的函數(shù)及事件已在5.3節(jié)中簡單敘述。5.6.3網(wǎng)絡(luò)變量網(wǎng)絡(luò)變量是一個節(jié)點中的一個對象,可以與一個或多個其他節(jié)點的網(wǎng)絡(luò)變量相連接。一個節(jié)點的網(wǎng)絡(luò)變量從網(wǎng)絡(luò)的觀點定義了它的輸入和輸出,同時允許在分布式應(yīng)用中共享數(shù)據(jù)。無論何時,如果一個程序更新了它的輸出網(wǎng)絡(luò)變量的值,則該值通過網(wǎng)絡(luò)傳給所有的與該輸出變量相連接的其他節(jié)點的輸入網(wǎng)絡(luò)變量。雖然網(wǎng)絡(luò)變量通過LonTalk報文傳播,但報文的傳送是透明的,應(yīng)用程序不需要任何顯式的指令來接收或發(fā)送更新后的網(wǎng)絡(luò)變量。網(wǎng)絡(luò)變量大大地簡化了開發(fā)和安裝分布式系統(tǒng)的過程,因為節(jié)點可以被獨立地定義,然后可以容易地重新連接到LonWorks應(yīng)用系統(tǒng)中。網(wǎng)絡(luò)變量通過被定義好的用于通信的接口來支持節(jié)點間的互操作性。一個節(jié)點可以被安裝在網(wǎng)絡(luò)上,并且可以與網(wǎng)絡(luò)上的其他節(jié)點進(jìn)行邏輯連接,但要求它們的數(shù)據(jù)類型相匹配。LonTalk協(xié)議提供的標(biāo)準(zhǔn)網(wǎng)絡(luò)變量類型(SNVT)和LonMark對象,是對互操作性的進(jìn)一步支持。SNVTs是具有相應(yīng)單位(如伏特、攝氏度、米等)的預(yù)定義類型的集合。LonMark對象為公共節(jié)點接口,如傳感器和執(zhí)行器,并定義了標(biāo)準(zhǔn)網(wǎng)絡(luò)變量和配置參數(shù)。5.6.4顯式報文節(jié)點之間進(jìn)行通信除了通過網(wǎng)絡(luò)變量外,還可以通過更加靈活的顯式報文來交換數(shù)據(jù)。每一種類型的網(wǎng)絡(luò)變量(實際上是一種隱式報文)的數(shù)據(jù)長度都是固定的,任何一種類型的網(wǎng)絡(luò)變量的長度不能超過31B;而顯式報文恰恰相反,它的數(shù)據(jù)長度是可變的。相同的報文碼(messagecode)在一個應(yīng)用中可能只包含1B的數(shù)據(jù),而在另一個應(yīng)用中包含25B的數(shù)據(jù)。在顯式報文中,數(shù)據(jù)的最大長度為228B。因此,在數(shù)據(jù)量較大的應(yīng)用(例如數(shù)據(jù)的長度大于31B)中,使用顯式報文比使用網(wǎng)絡(luò)變量更有效。顯式報文提供有四種服務(wù)方式:確認(rèn)方式;非確認(rèn)重復(fù)方式;非確認(rèn)方式;請求/應(yīng)答方式。顯式報文不像網(wǎng)絡(luò)變量那樣只須要簡單地賦值就可將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)中,它必須通過有關(guān)的函數(shù)顯式地發(fā)送與接收。NeuronC預(yù)定義了兩個對象:msg_out和msg_in來表示發(fā)送和接收的顯式報文。5.7LonWorks開發(fā)工具LonWorks技術(shù)包含了一系列的開發(fā)工具:節(jié)點開發(fā)工具NodeBuilder、節(jié)點和網(wǎng)絡(luò)安裝工具LonBuilder、網(wǎng)絡(luò)管理工具LonManager以及1997年開發(fā)出來的客戶/服務(wù)器網(wǎng)絡(luò)構(gòu)架——LNS技術(shù)。5.7.1LonBuilder開發(fā)工具LonBuilder開發(fā)包包括開發(fā)LON節(jié)點和LON網(wǎng)絡(luò)測試樣機(jī)所需的所有工具和部件。LonBuilder開發(fā)包包括:LonBuilder開發(fā)工具平臺:它是LonBuilder開發(fā)包的核心。LonBuilder開發(fā)工具平臺集中了三種工具——多節(jié)點開發(fā)系統(tǒng)、網(wǎng)絡(luò)管理器和協(xié)議分析器,是一套簡單、易用的開發(fā)環(huán)境。多節(jié)點開發(fā)系統(tǒng)提供了建立應(yīng)用軟件和測試兩個到上百個節(jié)點的開發(fā)網(wǎng)絡(luò)硬件的工具

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論