(海思生產部推薦閱讀)
核心提示:LON神經元芯片和單片機雙處理器結構的模擬量輸入型智能節(jié)點的硬件和軟件的設計,采用模數轉換芯片的數據采集系統(tǒng)、單片機和神經元芯片的接口及神經元芯片和物理網絡的接口。數據采集、并行slaveA模式的通信和利用網絡變量發(fā)送信息三方面的軟件程序設計。
關鍵詞:LonWorks,LonWorks產品,LonWorks節(jié)點,神經元芯片,單片機,AI輸入
一、引言
信息技術飛速發(fā)展為工業(yè)過程控制領域對測控系統(tǒng)的速度、精度、成本等方面更高的要求提供了解決方法。
Lonworks網絡技術作為一種監(jiān)控網絡系統(tǒng)的平臺,憑借單一的處理器(Neuron神經元芯片)已經很難勝任復雜的系統(tǒng)。大多數LON節(jié)點利用神經元芯片完成調度、通信等網絡控制任務,由于Neuron芯片是八位處理器,且只提供了11個通用 I/O 口,采用了基于事件巡檢的軟件調度機制,其控制功能較弱,無法完成實時性高的多進程、多任務的并行處理,常常不能滿足采集量和控制量要求較多的現(xiàn)場設備的要求。
為減少Neuron芯片在外部事件上的資源占用,以充分發(fā)揮它通訊上的優(yōu)勢,能使現(xiàn)場設備之間快速地交換信息,滿足系統(tǒng)實時監(jiān)控的要求,有必要設計一種雙處理器結構的LON節(jié)點,以提高網絡節(jié)點的控制能力。但是國內Lonworks開發(fā)隊伍人才少,門檻高。而單片機開發(fā)人才研發(fā)這樣的LON節(jié)點將對Lonworks技術起到重要的作用。在眾多類型的LON節(jié)點中,模擬量輸入(AI)型節(jié)點最具有代表性。
二、LON智能節(jié)點的整體設計
Lonworks技術給各種各樣的控制網絡應用提供了端到端的解決方案,為用戶方便實現(xiàn)網絡環(huán)境下的通信、控制、調度和輸入/輸出功能提供了技術支持。大多數LON點都是以神經元芯片為核心,采用標準的控制網絡協(xié)議LonTalk,將節(jié)點連接各種傳感器、執(zhí)行器、儀表等,構成分布式監(jiān)控網絡,并且通過雙絞線、電力線、無線電等各種通信媒體和不同廠商的Lonworks產品實現(xiàn)互操作。
Motoral公司的MC143150神經元芯片和ATMEL公司的AT89S51單片機作為節(jié)點的處理器,MC143150內部具有3個八位的CPU,分別用于介質訪問控制、網絡控制、應用處理,11個可編程的I/O口可以配制成34種對象,另外它還可以擴展外部存儲器,這樣可以擴大芯片的內部資源。
LON節(jié)點在控制網絡中主要負責測控和通信兩大任務,AT89S51單片機完成節(jié)點的測控任務,即模擬信號和數字信號的采集處理和輸出處理;利用MC143150芯片完成節(jié)點的通信任務。兩處理器的數據傳輸的速度要求較高,因此采用并行slaveA模式進行通信。
三、LON節(jié)點的硬件設計
1.LON節(jié)點測控單元設計
LON節(jié)點在現(xiàn)場底層利用ADC0809芯片采集模擬信號。ADC0809的數據口直接與單片機的P0口相連,并用74LS373鎖存A/D芯片的地址信息。啟動信號START由片選線P2.7與寫信號WR或非產生,當P2.7為低電平時,或非門敞開,允許寫信號通過,即一條向AD0809寫操作指令來啟動轉換。ALE與START相連,即按打入的通道地址接通模擬量通道并啟動轉換。輸出允許信號OE由讀信號RD與片選信號P2.7或非產生,即一條ADC0809的讀操作將數據輸出。時鐘信號由ALE輸出,采用74LS74觸發(fā)器進行分頻,P3.3與轉換結束引腳EOC相連,單片機通過通過查詢此引腳的高低電平檢驗是否完成一次A/D轉換。
LON節(jié)點由于應用在節(jié)點數不超過64個的網絡上,且各節(jié)點使用普通電源供電,電路板所支持的數據傳輸速率最高不超過1.25Mb/s,因此網絡配置選擇直接驅動接口是較為理想。直接驅動接口使用神經元芯片的內部收發(fā)器,并配有外接電阻、保護二極管和ESD(靜電放電)保護裝置。另外,為了使收發(fā)器的輸入管腳具有ESD保護,電路配置使用了2kΩ的電阻,并用51Ω的線路平衡電阻來預防短路和實現(xiàn)過壓保護。
3.MC143150與AT89S51接口設計
LON節(jié)點中MC143150與AT89S51的連接采用并行slave A模式。單片機作為主處理器,神經元芯片作為通信端口與網絡進行數據通信。單片機的P1口與神經元芯片MC143150的IO0~IO7相連作為8位數據總線,P2口的 P2.3、P2.4、P2.5作為MC143150的片選信號CS、讀/寫信號R/ W及握手信號HS,分別與神經元芯片MC143150 的IO8~IO10相連接。HS信號由神經元芯片MC143150的內部固件控制,當HS為高電平時,表示神經元芯片MC143150正在讀寫數據、處于忙狀態(tài),當HS為低電平時,表示神經元芯片MC143150數據處理完畢,可以進行下一次通信。在總線上AT89S51和MC143150之間不斷交換一個虛擬的寫令牌,令牌的擁有者有寫數據或傳遞數據的權力。當單片機AT89S51判斷到HS信號為低時,在CS信號的下降沿將數據寫入數據總線,在CS信號的上升沿數據被神經元芯片MC143150的輸入緩沖區(qū)截取,同時導致HS 端變?yōu)楦唠娖剑敂祿x取結束時,HS被置低,等待下次通信。
四、LON節(jié)點的軟件設計
LON節(jié)點的軟件部分包括單片機AT89S51程序設計和神經元芯片MC143150程序設計,AT89S51用C51語言編制,MC143150用Neuron C語言編制。
ADC0809 七個模擬通道的地址為7FF8H~7FFFH,單片機AT89S51通過查詢引腳EOC的高低電平檢驗是否完成一次A/D 轉換。然后AT89S51向神經元芯片MC143150 傳輸數據,要將數據發(fā)送給MC143150,AT89S51必須模擬并行slaveA 模式的虛擬令牌傳輸協(xié)議,才能保證通信正常,MC143150由固件自動執(zhí)行令牌傳遞協(xié)議,在任何給定的時間內,僅有一個設備擁有令牌,該令牌是一虛擬令牌,它決定著哪一設備擁有寫總線權,若 AT89S51 擁有令牌,它有權將準備好的數據發(fā)送給或將令牌交給MC143150,若MC143150 擁有令牌,它可將準備好的數據發(fā)送給AT89S51或交出令牌,因而令牌在AT89S51與 MC143150之間以乒乓方式來回傳遞。最后MC143150通過Lontalk協(xié)議將信息發(fā)送到網絡上,具體實現(xiàn)采用網絡變量這一形式。應用程序賦值給輸出網絡變量,然后Lontalk協(xié)議透明地將修改后的值構成網絡變量消息并將該消息傳遞到網絡層,網絡層將地址信息附加到消息中后傳遞到MAC(介質訪問控制)層,MAC層再附加上更多的信息到網絡變量消息中,并將消息傳遞到通道上能與之共享該網絡變量數據的其它節(jié)點,實現(xiàn)控制信息的傳輸。以下代碼為節(jié)點程序的關鍵語句。
/*單片機應用程序*/
#include
#include
#define ADC0809 XBYTE[0x7ff8]
adc0809
sbie eoc=P3^3; sbit cs=P2^3;
sbit hs=P2^5; sbit rw=P2^4;
void adc0809(unsigned char *ad)
{ unsigned char i;
unsigned char *ad_adr;
ad_adr=& ADC0809;
for(i=0;i<8;i++)
{ *ad_adr=0;
While(eoc==0);
ad[i]=* ad_adr;
ad_adr++;}}
void main ( )
{ unsigned char j;
unsigned char AD[8];
adc0809(AD);
while(hs==0);
rw=0;
for(j=0;j<8;j++)
{ cs=0;
P1=AD[j];
cs=1; }
}
/*神經元芯片應用程序*/
#define data_size 255
IO_0 parallel slave pbus;
Struct parallel_io_interface
{ unsigned int length;
unsigned int data[data_size];}piofc;
Network output SNVT_temp_f nvovar;
When(io_in_ready(pbus))
{ piofc.length=10;
nvovar=io_in(pbus,& piofc);
}
另外,根據實際測控網絡的應用要求,還可以對節(jié)點的配置屬性進行聲明,包括心跳和時限閾,配置屬性聲明的格式如下:
nv_properties
{ nciMinSendT,
nciMaxSendT }
(本文節(jié)選自網絡,不保證其正確性與完整性)