基于雙口RAM的LonWorks智能通信節(jié)點設計
摘要:介紹一種基于雙口RAM的LonWorks現(xiàn)場總線智能通信節(jié)點的設計方法,并給出詳細的設計步驟、硬件及軟件實現(xiàn)。通過此LonWorks智能通信節(jié)點,能夠完成RS-232-C/RS-485標準與LonTalk協(xié)議間的轉換提供RS-232-C/RS-485網(wǎng)絡到LonWorks網(wǎng)絡的接口,因此,具有很高的應用價值。 關鍵詞:現(xiàn)場總線 LonWorks 智能節(jié)點 神經(jīng)元芯片 雙口RAM 引言 LonWorks(Local Operating Networks,局部操作網(wǎng)絡)總線是由美國Echelon公司推出的一種現(xiàn)場總線技術。由于LonWorks控制網(wǎng)絡的開放性、高速性和互操作性,它已廣泛用于工業(yè)、樓宇、家庭、辦公設備、交通運輸、能源等自動化領域。EIA RS-232-C/RS-485通信網(wǎng)絡在控制系統(tǒng)中應用最為普及,許多設備大都只提供RS-232或RS-485/422接口,不能直接接入LonWorks網(wǎng)絡。因此,需要將現(xiàn)場LON網(wǎng)絡介質上的信息轉換為RS-232-C/RS-485標準的信號,或將RS-232-C/RS-485標準信號轉換為包含LonTalk協(xié)議的數(shù)據(jù),從而實現(xiàn)不同網(wǎng)絡間的數(shù)據(jù)傳輸,同時也為上位PC機、底層工作站提供轉換接口。本文所設計的LonWorks智能通信節(jié)點方便地與EIA RS-232-C/RS-485標準的串行I/O設備進行通信,輕松實現(xiàn)現(xiàn)場節(jié)點與上位PC機或其它RS-232-C/RS-485控制設備之間的可靠、準確、快捷數(shù)據(jù)傳遞。 1 LonWorks智能通信節(jié)點的硬件結構 1.1 節(jié)點硬件電路設計 智能節(jié)點以Neuron神經(jīng)元處理器芯片為核心,其硬件電路還包括收發(fā)器、EEPROM、雙口RAM、譯碼電路和service電路等。以神經(jīng)元芯片構成網(wǎng)絡接口,由它通過LonTalk協(xié)議與網(wǎng)上的其它智能節(jié)點通信,并通過雙口RAM的訪問實現(xiàn)與其它網(wǎng)絡系統(tǒng)的數(shù)據(jù)交換。節(jié)點中用雙口RAM充當不同網(wǎng)絡通信過程中現(xiàn)場信息的接收、發(fā)送緩沖區(qū),完成最近發(fā)送到達的交換數(shù)據(jù)的存儲轉發(fā)功能,緩解和避免系統(tǒng)緩存緊張和瓶頸的產(chǎn)生。用非易失性存儲器EEPROM存放LonTalk網(wǎng)絡協(xié)議固件、多任務調度程序、網(wǎng)絡適配器通信管理程序以及網(wǎng)絡配置信息等。節(jié)點的硬件組成結構如圖1所示。 在應用中分別對雙口RAM 1KB的存儲空間進行定義,即CY7C130的同一存儲單元對于Neuron3150芯片及8051單片機系統(tǒng)各有一個地址,這樣兩個系統(tǒng)均能對其進行存取操作。在智能節(jié)點中,Neuron3150芯片對1KB空間的地址為D000H~D3FFH。8051單片機系統(tǒng)對它的定義為0000H~03FFH。值得注意的是,CY7C130芯片3FFH和3FEH兩個單元被用作固定用途:當左端Neuron3150芯片向3FFH單元寫入數(shù)據(jù)時,將產(chǎn)生中斷信號INTR;同理,當右端8051單片機向3FEH單元寫入數(shù)據(jù)時,將產(chǎn)生中斷信號INTL。利用這兩個信號,可以將系統(tǒng)設置為中斷工作方式,達到節(jié)省通信時間的目的。由于雙向數(shù)據(jù)信息的交換,可以這樣來劃分雙口RAM存儲區(qū)間:000H~01FFH單元存入Neuron 3150芯片向8051傳送的信息,而200H~3FFH單元存放由8051向Neuron 3150發(fā)送的信息,并將同類但不同次的信息放在固定的存儲單元,每次都以新的數(shù)據(jù)覆蓋上次的數(shù)據(jù)。這樣就不必進行標志的判斷,只需要固定單元取數(shù)據(jù)就可以進行處理,既節(jié)省時間,又安全可靠。 1.2 硬件的抗干擾 Lon Works設備往往工作在復雜的電磁環(huán)境中,其自身各部分與周圍其它電子設備之間,都不可避免地存在各種形式的電磁干擾和靜電放電。為了保證通信的準確無誤,延長硬件使用壽命,該通信節(jié)點在設計上結合LonWorks電路自身特點,采用有關接地、屏蔽和濾波的適當處理,有效減小了電磁干擾的影響。針對收發(fā)器FTT-10A,設計抗干擾電路時,應主要圍繞印刷電路板上星形地結構和火花隙的設計。對于靜電放電(ESD),在印刷電路板(PCB)設計中,采用火花放電隙,能夠削弱到達收發(fā)器和后續(xù)緩沖器電路的ESD能量,使用箝位二極管,能大大增強節(jié)點承受來自網(wǎng)絡連接端的ESD能力。對于電磁干擾,應盡量保證強噪聲源(如DC/DC變換器、時鐘電路等)遠離收發(fā)器FTT-10A。 2 LonWorks智能通信節(jié)點的軟件設計 在LON網(wǎng)程序設計中使用Neuron C語言。Neuron C是一種基于ANSI C且?guī)в芯W(wǎng)絡通信和高級硬件設備接口擴展語句的高級不應該。它增加了對I/O、事件處理、消息傳遞和分散數(shù)據(jù)目標的支持,擴充了包括軟件定時器、網(wǎng)絡變量、顯示消息、一個多任務調度程序以及其它各具特點的函數(shù)等。采用Neuron C語言開發(fā)的應用程序,可直接在Lonbuilder神經(jīng)元仿真器上進行調試,因此應用程序的開發(fā)可獨立于硬件設計進行。智能節(jié)點通信流程如圖3所示。 //*****包含文件***** #include<string.h> #include<control.h> //*****公共變量聲明***** #define Tlon_485 0xd000 //定義從LON網(wǎng)上所接收數(shù)據(jù)在雙口RAM存儲單元首址 #defin T485_lon 0xd0200 //定義從單片機側所接收數(shù)據(jù)在雙口RAM存儲單元首址 IO_6 input bit INTL;//定義IO_6,IO_7為比特類型的輸入變量 IO_7 input bit BUSYL; Msg_tag tag_out1; //定義輸出消息標簽 //****系統(tǒng)主程序********priority when(msg_arrives)//顯示網(wǎng)絡消息事件 {unsigned int *p; //存儲從LON網(wǎng)上接收的數(shù)據(jù) int i; p=(unsigned int*)(Tlon_485); for(i=0;I<30;i++) {*p=msg_in.data[i]; p++; } } } when(io_in(INTL)= =0)//當單片機側有數(shù)據(jù)時申請中斷 {when(io_in(BUSYL)= =1) {unsigned int*u; int j; u=(unsigned int*)(T485_lon); msg_out.code=1; msg_out.tag=tag_out1; for(j=0;j<30;j++) {msg_out.data[j]=*u; u++; } msg_send();//向LON網(wǎng)其它相關節(jié)點發(fā)送數(shù)據(jù) } } 實際運用證明,該智能通信節(jié)點能實現(xiàn)與其它多種常規(guī)智能節(jié)點(如模擬量I/O節(jié)點、開關量I/O節(jié)點等)構成現(xiàn)場總線控制網(wǎng)絡,實現(xiàn)了RS-232-C/RS-485到LonWorks網(wǎng)絡網(wǎng)關的關鍵技術,保證了網(wǎng)絡接口的高速數(shù)據(jù)傳送。特別在當前樓宇自動化DCS控制系統(tǒng)中,基于控制器串口的小型主從式RS-485控制網(wǎng)絡系統(tǒng)仍然應用得相當普遍。將Lonworks和RS-485兩種控制網(wǎng)絡進行網(wǎng)絡集成,就可以充分發(fā)揮LonWorks技術在通信上的優(yōu)勢,構成節(jié)點的主從式RS-485網(wǎng)絡的分級混合控制網(wǎng)絡設計方案,因此有很高的推廣應用價值。 | |
|