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