1. 引言
LonWorks網(wǎng)絡(luò)控制技術(shù)是近年來迅速發(fā)展起來的現(xiàn)場總線控制技術(shù),其集計算機、網(wǎng)絡(luò)、控制于一體,集成了ISO/OSI的全部七層協(xié)議,同時具有通信和控制功能,并支持雙絞線、同軸電纜、電力線、射頻、紅外線、光纖等多種通訊媒介,且工作溫度范圍寬(-40℃~85℃),組網(wǎng)靈活,開放性好,已在工業(yè)、樓宇、運輸、能源等自動化領(lǐng)域得到廣泛應(yīng)用。本文設(shè)計的智能節(jié)點就是運用LonWorks技術(shù)的種種優(yōu)勢在電力線上實現(xiàn)數(shù)據(jù)的可靠、準確、快捷的傳輸。該方式節(jié)省了通訊線路的基建投資和日常的維護費用,也不占用日益緊張的頻率資源,具有一定的經(jīng)濟可行性,應(yīng)用前景十分廣泛。
2. 節(jié)點硬件設(shè)計
LonWorks技術(shù)是一種控制網(wǎng)絡(luò)層次上的技術(shù),因此節(jié)點的開發(fā)離不開對網(wǎng)絡(luò)的整體考慮。根據(jù)控制策略的不同,節(jié)點的開發(fā)會有所不同。但對于一個控制網(wǎng)而言,不外乎由傳感器、執(zhí)行器、獲取和傳輸數(shù)據(jù)的網(wǎng)絡(luò)、執(zhí)行控制邏輯的控制和程序等構(gòu)成。而對于組成網(wǎng)絡(luò)重要部分的節(jié)點而言,所完成的任務(wù)無非是獲取和傳輸數(shù)據(jù),并根據(jù)所獲取的數(shù)據(jù)信息來執(zhí)行相應(yīng)的控制邏輯。因此,一個典型的LonWorks現(xiàn)場總線節(jié)點就是以神經(jīng)元芯片為核心,外加收發(fā)器,擴展內(nèi)存(只適用于3150芯片),外圍I/O電路,復(fù)位及服務(wù)電路和電源供應(yīng)電路等。其組成結(jié)構(gòu)如圖1所示。

2.1神經(jīng)元芯片及內(nèi)存擴展
節(jié)點的核心——神經(jīng)元芯片(Neuron chip)是一個帶有多個處理器、讀寫/只讀存儲器(RAM和ROM)以及通信和I/O接口的單芯片系統(tǒng)。在每個神經(jīng)元芯片的ROM中包含一個能夠執(zhí)行LonTalk協(xié)議的神經(jīng)元芯片固件,節(jié)點就依照固件中的LonTalk協(xié)議與網(wǎng)絡(luò)上其它的節(jié)點進行通信。現(xiàn)在市場上的Neuron芯片主要分為3120與3150兩個系列,其中3150系列因可進行內(nèi)存擴展設(shè)計方便而廣為使用。東芝公司的Neuron 3150,其內(nèi)部只有512字節(jié)EEPROM和2KROM,現(xiàn)使用一片32K\8FLASH內(nèi)存芯片作為3150的全部擴展內(nèi)存。FLASH芯片的低16K裝入系統(tǒng)固件,并必須使用EPROM 編程器寫入。而其高16K用來裝入應(yīng)用代碼和數(shù)據(jù)。圖2給出內(nèi)存擴展電路。

2.2 收發(fā)器及服務(wù)、復(fù)位電路
電力線收發(fā)器PLT-22是美國Echelon公司為實現(xiàn)在電力線上進行數(shù)據(jù)傳輸而專門開發(fā)的調(diào)制解調(diào)芯片,其內(nèi)核為數(shù)字信號處理器(DSP),并采用了BPSK技術(shù)。PLT-22的數(shù)據(jù)傳輸采用雙頻模式,其中132.5KHz為主載,如果主頻被噪聲干擾,則會自動采用115KHz的付載頻傳輸數(shù)據(jù),從而利用雙載波頻率的自動調(diào)整解決因斷續(xù)的噪聲干擾、阻抗變化和信號衰減等原因造成的電力線通信的惡劣情況。這一點對于在干擾源多、噪聲大的電網(wǎng)上進行數(shù)據(jù)傳輸尤為適用。
在LonWorks節(jié)點的配置、安裝和維護中,服務(wù)管腳發(fā)揮著不可小視的作用。作為輸出它驅(qū)動一個LED,當節(jié)點有故障時,LED可以通過顯示一定的信號給予提示。對于LED所給出的信號以及其所表示的狀態(tài),常見的情況如下:
1.從上電起,若LED全亮或是全暗,則說明節(jié)點有硬件故障
2.在上電或復(fù)位時,若LED先亮后暗,然后持續(xù)亮,則可能是節(jié)點無應(yīng)用程序或是應(yīng)用程序和固件不匹配
3.LED閃動時,則意味著節(jié)點還沒有配置
對于一個節(jié)點而言,一個上電復(fù)位電路是必須的,此處用DS1233作為低壓保護器件LVI(Low Voltage Interrupt),并加了一個手動復(fù)位安鈕以便在網(wǎng)絡(luò)通信出現(xiàn)阻塞時用來復(fù)位。
2.3 外部I/O設(shè)備
Neuron芯片有11個雙向可編程I/O口、34種可選工作模式,支持電平、脈沖、頻率等信號,可與各種傳感器配合實現(xiàn)各種參數(shù)的測量和控制。其中包括串行I/O方式。數(shù)據(jù)速率可由軟件設(shè)置為600,1200,2400和4800bps,且其工作方式為半雙工。設(shè)計采用串行1200bps、半雙工的工作方式,其外部I/O設(shè)備分為顯示與溫度采集、轉(zhuǎn)換兩部分。
顯示部分:參考美國Echelon公司提出的典型節(jié)點設(shè)計選用MC14489B LED驅(qū)動芯片驅(qū)動四盞LED,Neuron芯片的IO3管腳作為MC14489的片選端口,IO8管腳為時鐘端口,IO9為控制字輸入端。圖3列出了顯示電路。

溫度采集、轉(zhuǎn)換部分:以LM35DZ用于溫度的采集,LM35DZ采集范圍是0~100度(攝氏度),每10mv/1度。A/D轉(zhuǎn)換采用MAX186 12位數(shù)據(jù)采集芯片。它集成了8通道多路開關(guān)、大帶寬跟蹤/保持電路和SPI串行接口,具有轉(zhuǎn)換速率高,功耗極低的特點。此器件可使用單一+5V電源或±5V電源進行工作,其模擬輸入可由軟件設(shè)置為單極性/雙極性和單端/差分工作方式,F(xiàn)采用主控模式(neurowire master),即Neuron芯片的IO8管腳作為時鐘信號,IO6控制字輸出端口(Data in),IO10是控制字輸入端口(Data out)。 電路如圖4所示。

2.4 硬件抗干擾
Lon Works網(wǎng)絡(luò)節(jié)點的工作現(xiàn)場往往是處在非常復(fù)雜的電磁環(huán)境中,節(jié)點各部分與周圍其它電子設(shè)備之間,都不可避免地存在各種形式的電磁干擾和靜電放電。為了保證通信的準確無誤,延長硬件使用壽命,該節(jié)點在設(shè)計上結(jié)合LonWorks電路自身特點,采用有關(guān)接地、屏蔽和濾波的適當處理,進而有效減小電磁干擾的影響。針對收發(fā)器PLT-22,設(shè)計時運用了一系列耦合電路,以隔離工頻電路。對于電磁干擾,盡量保證強噪聲源(如時鐘電路等)遠離收發(fā)器PLT-22。
3. 節(jié)點軟件設(shè)計
Neuron芯片中的軟件可以分為三個主要部分:系統(tǒng)映射(System Image)、應(yīng)用映射(Application Image)和網(wǎng)絡(luò)映射(Network Image)。系統(tǒng)映射包括Lontalk協(xié)議、NeuronC的應(yīng)用函數(shù)庫和任務(wù)調(diào)度程序(Task Scheduler)。在芯片3150中,系統(tǒng)映射儲存在擴展ROM中。因在芯片中,系統(tǒng)映射和網(wǎng)絡(luò)映射是由相應(yīng)的開發(fā)系統(tǒng)自動生成的。對開發(fā)人員而言,它們是隱性的,就可以使開發(fā)人員把主要的精力放在應(yīng)用程序的開發(fā)上,以減少系統(tǒng)開發(fā)的工作量。Neuron軟件的編寫采用的是一種專門為神經(jīng)元芯片設(shè)計的、基于標準C編程語言——Neuron C,其直接支持神經(jīng)元芯片的固件(Fireware),并具有一些新特點,如網(wǎng)絡(luò)變量(network variables)。
在節(jié)點的應(yīng)用程序中,網(wǎng)絡(luò)變量可由如下的語法聲明:
networkinput/output [netvar-modifier] [class] type [connection-info] identifie
當一個節(jié)點中的輸出網(wǎng)絡(luò)變量發(fā)生變化時,與其相聯(lián)的其他節(jié)點的所有輸入網(wǎng)絡(luò)變量也同時更新它們的值。這樣,節(jié)點與節(jié)點之間的通信就隱性的完成而不需要用戶的干預(yù)。網(wǎng)絡(luò)變量的使用大大簡化了分布式系統(tǒng)的開發(fā)工作。開發(fā)者不必考慮通信中信息緩存、節(jié)點尋址、請求、應(yīng)答、重試處理等一些低層次的細節(jié)工作。網(wǎng)絡(luò)變量的采用,使得網(wǎng)絡(luò)通信就像通常應(yīng)用程序調(diào)用其中的一個普通變量一樣,極大地方便了節(jié)點編程。此外在節(jié)點的應(yīng)用程序中,沒有C語言中常見的主函數(shù)(main function),而是由一種系列的when語句組成。When語句包含一個表達式,當其為TRUE時,則執(zhí)行相應(yīng)的任務(wù),如下所示:
when (timer-expires(led timer))
{//Turnofftheend
io-out ( io-led,OFF); }
在上面這個例子中,當時鐘led timer結(jié)束時,相應(yīng)的LED將被關(guān)閉。多個when語句可與單個任務(wù)相聯(lián),但when語句不可嵌套。When語句可以設(shè)定優(yōu)先級,優(yōu)先級高的when語句優(yōu)先進行條件判斷。它們的邏輯控制是由任務(wù)調(diào)度器完成。
現(xiàn)借用Neuron 芯片與MAX186接口程序片段管窺Neuron C新特點:
IO8 neuron ware master select(IO4)MAX186;// IO8時鐘引腳,IO6數(shù)據(jù)輸出,IO10數(shù)據(jù)輸入;主模式,片選信號IO4 //
IO4 output bit MAX186-CS = 1;//選擇IO4為位輸出 //
when ( timer_expires (clock_1) );// 定時/計數(shù)器clock_ 1滿事件驅(qū)動 //
Io_out (MAX186_cs, 0) ; // 選中 MAX186 //
Io_out (MAX186,10001111) ;// 送MAX186控制字:通道0,單極性,單端輸入,外部時鐘模式 //
In_put = io_in(MAX18612,&in_put,16);// 輸入轉(zhuǎn)換結(jié)果 //
Io_out (MAX186_cs,1) ; //MAX186cs無效,結(jié)束信號采集 //
系統(tǒng)程序流程圖如圖6所列。

4.結(jié)論
本文設(shè)計的節(jié)點實現(xiàn)了通過電力線對遠端節(jié)點現(xiàn)場溫度信息的監(jiān)視,并可在節(jié)點端進行本地溫度和遠端溫度的切換顯示。智能節(jié)點的開發(fā)設(shè)計是實現(xiàn)分散式智能控制網(wǎng)絡(luò)系統(tǒng)的重要環(huán)節(jié),根據(jù)用戶的不同要求可以實現(xiàn)很多功能如防火、防盜、人體感應(yīng)、門禁等報警功能,形成網(wǎng)絡(luò)監(jiān)控管理功能,實現(xiàn)家庭安防系統(tǒng)智能化,并能實現(xiàn)工業(yè)網(wǎng)絡(luò)儀表智能化。
轉(zhuǎn)自:http://www.pinqiju.cn
|