摘要:本文主要敘述了基于LonWorks的智能網(wǎng)絡(luò)測(cè)控系統(tǒng)的設(shè)計(jì)思想,其中包括電源電路、MC143150與AT89C52的接口、神經(jīng)元芯片3150的存儲(chǔ)器擴(kuò)展等硬件電路的設(shè)計(jì)及AT89C52單片機(jī)程序和Neuron芯片的應(yīng)用程序兩部分的流程圖,最后對(duì)系統(tǒng)的硬件和軟件的抗干擾性措施作了簡(jiǎn)單的介紹。
關(guān)鍵詞:LonWorks;智能節(jié)點(diǎn);智能網(wǎng)絡(luò)測(cè)控
現(xiàn)場(chǎng)總線控制系統(tǒng)FCS是針對(duì)傳統(tǒng)的DCS系統(tǒng)的不足之處提出來(lái)的,它跨越了電子、控制、儀器儀表、自動(dòng)化、計(jì)算機(jī)和網(wǎng)絡(luò)等領(lǐng)域,因此具有一定的學(xué)術(shù)意義。在眾多總線中,LonWorks現(xiàn)場(chǎng)總線以其完全支持ISO/OSI七層協(xié)議,支持多種通信媒介,可靠性高,可互操作,兼容性和靈活性好等獨(dú)特的優(yōu)點(diǎn)成為現(xiàn)場(chǎng)總線的主流。
本文對(duì)基于LonWorks的高可靠性、全開(kāi)放的智能網(wǎng)絡(luò)進(jìn)行研究和應(yīng)用,通過(guò)大量的實(shí)驗(yàn),開(kāi)發(fā)和設(shè)計(jì)智能測(cè)控系統(tǒng)。
1 LonWorks智能節(jié)點(diǎn)的設(shè)計(jì)概述
基于神經(jīng)元芯片的開(kāi)發(fā)可以分為兩種:
(1)基于控制模塊的硬件設(shè)計(jì)方法;(2)基于收發(fā)器的硬件設(shè)計(jì)方法。
控制模塊中通常包括神經(jīng)元芯片、Flash、程序存儲(chǔ)器、收發(fā)器以及RAM等,用戶(hù)只需設(shè)計(jì)自己的應(yīng)用電路,可縮短產(chǎn)品的開(kāi)發(fā)周期。而基于收發(fā)器的設(shè)計(jì)方法除了考慮應(yīng)用電路設(shè)計(jì),還必須考慮神經(jīng)元芯片與Flash存儲(chǔ)器以及RAM的接口電路。采用這種方法時(shí),電路板設(shè)計(jì)加工以及生產(chǎn)工藝要求較高,但可以降低產(chǎn)品成本,提高設(shè)備的市場(chǎng)競(jìng)爭(zhēng)力。為了學(xué)習(xí)和以后研究的需要,本文采用第二種設(shè)計(jì)方案。LonWorks技術(shù)是一種控制網(wǎng)絡(luò)層次上的技術(shù),故節(jié)點(diǎn)的開(kāi)發(fā)離不開(kāi)對(duì)網(wǎng)絡(luò)的整體考慮,根據(jù)控制策略的不同,節(jié)點(diǎn)的開(kāi)發(fā)會(huì)有所不同,但對(duì)于一個(gè)控制網(wǎng)而言,不外乎由傳感器、執(zhí)行器、獲取和傳輸數(shù)據(jù)局的網(wǎng)絡(luò)、執(zhí)行控制邏輯的控制和程序等構(gòu)成。而對(duì)于組成網(wǎng)絡(luò)重要部分的節(jié)點(diǎn)而言,所完成的任務(wù)無(wú)非是獲取和傳輸數(shù)據(jù),并根據(jù)所獲取的數(shù)據(jù)信息來(lái)執(zhí)行相應(yīng)的控制邏輯。故此,一個(gè)通用節(jié)點(diǎn)可由圖1表示。
下面將討論LonWorks節(jié)點(diǎn)的硬件設(shè)計(jì)和開(kāi)發(fā)以及LonWorks節(jié)點(diǎn)的邏輯編程。
2 LonWorks智能節(jié)點(diǎn)的硬件電路設(shè)計(jì)
2.1 電源電路設(shè)計(jì)
交流電源電壓經(jīng)過(guò)全波整流后,采用7805芯片變成節(jié)點(diǎn)電路需要的5V的直流電源。設(shè)計(jì)如圖2所示。
2.2 MC143150與AT89C52的接口
該節(jié)點(diǎn)采用AT89C52作為主處理器,與神經(jīng)元芯片接成并行I/O對(duì)象的操作模式。神經(jīng)元芯片的并行I/O對(duì)象允許以最高為3.3Mbps的速率雙向傳輸數(shù)據(jù)。并行I/O對(duì)象的物理接口通過(guò)神經(jīng)元芯片的11個(gè)I/O引腳完成。應(yīng)用在并行I/O狀態(tài)下的神經(jīng)元芯片不再能有其他的I/O對(duì)象來(lái)處理物理接口,神經(jīng)元芯片固件還可實(shí)現(xiàn)令牌傳遞和握手協(xié)議來(lái)實(shí)現(xiàn)同步和防止總線競(jìng)爭(zhēng)。為增加設(shè)計(jì)的靈活性,神經(jīng)元芯片提供幾種并行I/O對(duì)象的操作模式:主模式,從A模式和從B模式。本節(jié)點(diǎn)中神經(jīng)元芯片與單片機(jī)AT89C52的連接采用從A模式,其接口電路如圖3所示。
由于神經(jīng)元芯片3150的握手信號(hào)HS是集電極開(kāi)路的,因此需要接上一個(gè)10kΩ的上拉電阻。在Slave A模式中,神經(jīng)元芯片3150是在主處理器的控制下工作的,對(duì)主處理器來(lái)說(shuō),神經(jīng)元芯片3150是含8個(gè)數(shù)據(jù)位和3個(gè)控制位的并行I/O設(shè)備。單片機(jī)的P0口與神經(jīng)元芯片3150的IO0~IO7相連作為8位數(shù)據(jù)總線,P1.7與神經(jīng)元芯片3150的IO10相連接作為握手信號(hào)端,P1.5與IO8相連作為CS信號(hào)端。HS信號(hào)由神經(jīng)元芯片3150的內(nèi)部固件控制,當(dāng)HS為高電平時(shí),表示神經(jīng)元芯片3150正在讀寫(xiě)數(shù)據(jù)、處于忙狀態(tài),當(dāng)HS為低電平時(shí),表示神經(jīng)元芯片3150數(shù)據(jù)處理完畢,可以進(jìn)行下一次通信了。在總線上主處理器和從處理器之間不斷交換一個(gè)虛擬的寫(xiě)令牌,令牌的擁有者有寫(xiě)數(shù)據(jù)或傳遞數(shù)據(jù)的權(quán)力。主處理器寫(xiě)時(shí),當(dāng)AT89C52單片機(jī)判斷到HS信號(hào)為低時(shí),在CS信號(hào)的下降沿將數(shù)據(jù)寫(xiě)入數(shù)據(jù)總線,在CS信號(hào)的上升沿?cái)?shù)據(jù)被神經(jīng)元芯片3150的輸入緩沖區(qū)截取,同時(shí)導(dǎo)致HS端變?yōu)楦唠娖剑?dāng)數(shù)據(jù)讀取結(jié)束時(shí),HS被置低,等待下次通信。
2.3 神經(jīng)元芯片3150的存儲(chǔ)器擴(kuò)展
本節(jié)點(diǎn)中,系統(tǒng)的固件存儲(chǔ)在片外的EPROM中,地址為0x0000~0x3FFFH;應(yīng)用程序也存儲(chǔ)在片外的EPROM中,地址為0x4000~0x7FFFH;片外RAM的地址為0x8000~0xDFFFH。地址空間的分配如圖4所示。圖4是神經(jīng)元芯片外接32kB EPROM和24kB RAM的電路原理圖。由于系統(tǒng)固件的存儲(chǔ)地址要求從0x0000H開(kāi)始,所以32kB EPROM的地址應(yīng)設(shè)計(jì)成0x0000H~0x7FFFH;而RAM的地址是0x8000H~0xDFFFH(24kB)。將地址線A15直接作為EPROM的選片信號(hào)線。當(dāng)A15為低電平時(shí),EPROM被激活,因此保證了EPROM的地址從0x0000H到0x7FFFH。
地址線A13和A14進(jìn)行與非邏輯再和A15與非后作為RAM存儲(chǔ)器的選片信號(hào)線,這樣,當(dāng)?shù)刂沸盘?hào)線最高三位是100、101及110時(shí),RAM存儲(chǔ)器的選片信號(hào)才為低電平,所以RAM存儲(chǔ)器的地址為1000 0000 0000 0000 ~ 1101 1111 11111111,即0x8000H~0xDFFFH,一共為24kB。
2.4 主處理器AT89C52外圍電路設(shè)計(jì)
圖5為主處理器外圍接口電路圖。該節(jié)點(diǎn)采用27256擴(kuò)展了32kB的RAM,用于存儲(chǔ)各模擬通道輸入和輸出數(shù)據(jù)。
2.5 硬件抗干擾性措施
LonWorks設(shè)備工作在復(fù)雜的電磁環(huán)境中,其自身各部分及與周?chē)渌娮釉O(shè)備之間不可避免地存在各種形式的電磁干擾EMI,此外靜電放電ESD產(chǎn)生的脈沖電壓、電流也是瞬態(tài)干擾因素,因此在產(chǎn)品開(kāi)發(fā)時(shí)應(yīng)增強(qiáng)設(shè)備自身的抗干擾能力,切斷內(nèi)外干擾。為有效地避免因外界EMI和ESD導(dǎo)致自身工作性能的降低,同時(shí)結(jié)合LonWorks電路自身特點(diǎn),要考慮的主要問(wèn)題有:寄生耦合問(wèn)題、電源分配及VCC解耦、傳輸介質(zhì)、ESD的防護(hù)措施。
3 LonWorks智能節(jié)點(diǎn)的軟件設(shè)計(jì)
3.1據(jù)采集模塊的軟件設(shè)計(jì)
智能節(jié)點(diǎn)的數(shù)據(jù)采集部分采用MAXIM公司的12位DAS芯片MAX197位必須一致(即D2、D1、D0位必須一致)。MAX197提供了一個(gè)標(biāo)準(zhǔn)的中斷信號(hào),轉(zhuǎn)換結(jié)束后輸出數(shù)據(jù)準(zhǔn)備就緒時(shí),中斷信號(hào)INT變?yōu)榈碗娖?,本程序中通過(guò)輪詢(xún)P1.7口的狀態(tài)來(lái)判斷轉(zhuǎn)換是否結(jié)束。
AT89C52單片機(jī)可根據(jù)定時(shí)常數(shù)來(lái)決定什么時(shí)候去觸發(fā)數(shù)據(jù)采集開(kāi)始,因此定時(shí)常數(shù)有2個(gè),前M次采樣的定時(shí)常數(shù)為T(mén)sd+T,后N-M次的定時(shí)常數(shù)為T(mén)s,采樣得到的數(shù)據(jù)保存在擴(kuò)展的RAM中。
綜上所述,編寫(xiě)的數(shù)據(jù)采集子程序流程圖如圖6所示。
3.2 LonWorks通信模塊的軟件設(shè)計(jì)
本裝置的主處理器是AT89C52,從處理器是MC143150,主處理器負(fù)責(zé)將測(cè)得的數(shù)據(jù)發(fā)送給MC143150,而MC143150則負(fù)責(zé)將測(cè)得的參數(shù)實(shí)時(shí)發(fā)送到LonWorks網(wǎng)絡(luò)上。Neuron芯片程序的編寫(xiě)使用Neuron C語(yǔ)言。
本裝置中主機(jī)在完成參量的采集、處理和存儲(chǔ)后通過(guò)并行通信方式將測(cè)量結(jié)果發(fā)送給Neuron芯片,由Neuron芯片將測(cè)得的數(shù)據(jù)發(fā)送到LonWorks網(wǎng)絡(luò)上。因此通信模塊包括了80C196KC與Neuron芯片的通信和Neuron芯片的網(wǎng)絡(luò)通信兩各部分。Neuron芯片以并行從B方式與主機(jī)通信,在該方式下Neuron芯片的IO0~IO7為雙向數(shù)據(jù)總線(其中IO0為數(shù)據(jù)的低位和握手信號(hào)共用位)、IO8作為片選信號(hào)CS、IO9為讀寫(xiě)控制信號(hào)R/W、IO10作為選擇輸入A0。主機(jī)與Neuron芯片的通信程序流程圖如圖7所示。
本裝置Neuron芯片的應(yīng)用程序可以通過(guò)分別定義包含各電參量當(dāng)前測(cè)量值的網(wǎng)絡(luò)變量實(shí)現(xiàn)測(cè)量數(shù)據(jù)的網(wǎng)路共享。網(wǎng)絡(luò)變量定義的格式如下:
network input | output [netvar-modifier] [class] type [connection-info] identifier
[=initial-value]
程序中的網(wǎng)絡(luò)變量應(yīng)為輸出型的網(wǎng)絡(luò)變量,為便于數(shù)據(jù)格式的通用性,類(lèi)型(type)定義為標(biāo)準(zhǔn)網(wǎng)絡(luò)變量SNVT_count_inc,該類(lèi)型網(wǎng)絡(luò)變量的數(shù)據(jù)類(lèi)型為有符號(hào)長(zhǎng)整形數(shù),長(zhǎng)度為2個(gè)字節(jié)。Neuron芯片與80C196KC之間采用并行(Parallel)通信方式,工作方式為Slave A方式,對(duì)Parallel I/O對(duì)象進(jìn)行顯式配置的Neuron C語(yǔ)句和說(shuō)明為:
IO_0 parallel slave | slave_a | master io_object_name
Parallel I/O對(duì)象雖然使用全部11個(gè)管腳,但只需說(shuō)明管腳IO_0即可,slave| slave_a | master 用于說(shuō)明Neuron芯片的工作模式。io_object_name為用戶(hù)給I/O對(duì)象指定的名字。本程序?qū)arallel I/O對(duì)象的說(shuō)明為:
IO_0 parallel slave_b ele_par
為使用Neuron芯片的Parallel I/O 對(duì)象,io_in()和io_out()函數(shù)需要一個(gè)指向parallel_io_interface結(jié)構(gòu)的指針:
struct parallel_io_interface
若想實(shí)現(xiàn)測(cè)量數(shù)據(jù)的網(wǎng)絡(luò)共享,還需將網(wǎng)絡(luò)變量互連,該過(guò)程稱(chēng)為捆綁(binding),可以通過(guò)網(wǎng)絡(luò)管理工具來(lái)完成,比如LonBuilder、LonManager軟件包中的LonMaker或Echelon公司的客戶(hù)/服務(wù)器網(wǎng)絡(luò)構(gòu)架LNS。連接過(guò)程實(shí)際上就是發(fā)送一組包含節(jié)點(diǎn)的地址、報(bào)文類(lèi)型等信息的網(wǎng)絡(luò)管理報(bào)文到需要連接的節(jié)點(diǎn),然后這些節(jié)點(diǎn)再將地址表和網(wǎng)絡(luò)變量配置表寫(xiě)入Neuron芯片的E2PROM中。經(jīng)過(guò)LonMaker工具配置后網(wǎng)絡(luò)變量就與LonWorks網(wǎng)絡(luò)建立了連接,輸出網(wǎng)絡(luò)變量的更新將引起與之相連的輸入網(wǎng)絡(luò)變量的更新,從而將測(cè)量的電參量傳送到了LonWorks網(wǎng)絡(luò)上。
3.3 軟件抗干擾措施
本裝置應(yīng)用的場(chǎng)所工作環(huán)境比較惡劣、干擾嚴(yán)重,因此需要周密考慮和解決抗干擾的問(wèn)題。常用的軟件抗干擾措施有指令冗余和軟件陷阱?!爸噶钊哂唷边m用于當(dāng)CPU受到干擾后把操作數(shù)當(dāng)作指令碼來(lái)執(zhí)行從而引起程序的混亂,此時(shí)指令冗余可使程序恢復(fù)正常。另一種軟件抗干擾措施,即所謂“軟件陷阱”。“軟件陷阱”是一條引導(dǎo)指令,強(qiáng)行將捕獲的程序引向一個(gè)指令的地址,在那里有一段專(zhuān)門(mén)處理錯(cuò)誤的程序?!败浖葳濉币话惆才旁谙铝兴姆N地方:未使用的中斷向量區(qū)、未使用的大片EPROM空間、表格、程序區(qū)。
本裝置還采用了看門(mén)狗定時(shí)器來(lái)監(jiān)視系統(tǒng)的運(yùn)行,大大提高了程序的抗干擾能力。
4 結(jié)束語(yǔ)
本文主要敘述了基于LonWorks的智能網(wǎng)絡(luò)測(cè)控系統(tǒng)的設(shè)計(jì)思想,其中包括了AT89C52單片機(jī)程序和Neuron芯片的應(yīng)用程序兩部分的流程圖。主機(jī)程序用MCS-51系列單片機(jī)匯編語(yǔ)言來(lái)編寫(xiě),Neuron芯片應(yīng)用程序用Neuron C來(lái)編寫(xiě)。
LonWorks技術(shù)發(fā)展方興未艾,應(yīng)用領(lǐng)域不斷拓展,具有較理想的應(yīng)用價(jià)值和市場(chǎng)前景。
我國(guó)目前對(duì)LonWorks技術(shù)的應(yīng)用剛剛起步,隨著業(yè)內(nèi)人士的更多了解,相信會(huì)有更廣泛的應(yīng)用前景。
參考文獻(xiàn)
[1]凌志浩.從神經(jīng)元芯片到控制網(wǎng)絡(luò)[M].北京: 北京航空航天大學(xué)出版社,2002.
[2]楊育紅,等.LON網(wǎng)絡(luò)程序設(shè)計(jì)[M].西安: 西安電子科技大學(xué)出版社,2001.
[3]楊育紅,等.LON網(wǎng)絡(luò)控制技術(shù)及應(yīng)用[M]. 西安: 西安電子科技大學(xué)出版社,1999.
[4]馬莉.智能控制與Lon網(wǎng)絡(luò)開(kāi)發(fā)技術(shù)[M]. 北京: 北京航空航天大學(xué)出版社,2003.
[5]段曙彬,高安邦. LON智能節(jié)點(diǎn)開(kāi)發(fā)與組網(wǎng)研究[J].哈爾濱理工大學(xué)學(xué)報(bào),2006(1).
[6]智淑亞,高安邦,楊帥.LonWorks現(xiàn)代智能測(cè)控系統(tǒng)的開(kāi)發(fā)應(yīng)用設(shè)計(jì)[J].電腦學(xué)習(xí)2006(1).
[7]智淑亞,段曙彬,高安邦.基于Neuron芯片的智能調(diào)光節(jié)點(diǎn)開(kāi)發(fā)[J].電腦學(xué)習(xí),2005(6).
[8]智淑亞,高安邦,李忠華. 基于LON測(cè)控網(wǎng)絡(luò)的自動(dòng)抄表系統(tǒng)設(shè)計(jì)[J].電腦學(xué)習(xí),2005(5).
[9]穆遠(yuǎn)詳. LonWorks:全新的現(xiàn)代智能測(cè)控技術(shù)淺析[J].電腦學(xué)習(xí),2004(3).
[10]穆遠(yuǎn)詳. 基于LonWorks技術(shù)的現(xiàn)代智能測(cè)控系統(tǒng)[J].電腦學(xué)習(xí),2004(2).
[11]Echelon Co. LonMaker for Windows User’s Guide, 2000.
[12]Echelon Co. LonPoint User’s Guide, 1996.
[13]Echelon Co. Lnsdde Sever User’s Guide, 1996.
[14]Echelon Co. Troubleshooting LonWorks Devices and Twisted Pair Networks, 1996.
[15]Echelon Co. Neuron C Programmer’s Guide,1995.