基于Lonworks技術(shù)的網(wǎng)絡(luò )打印服務(wù)器設計
1 NPS硬件設計
如圖2所示,NPS采用1塊TMPN315081AF神經(jīng)元芯片,配置1片64K8位Flash存儲器作為程序存儲器和1片128K8位RAM作為數據存儲器;神經(jīng)元芯片的CP0~CP4雙向通信接口和78kbps的收發(fā)器構成Lon-works網(wǎng)絡(luò )接口;TMPN315081AF神經(jīng)元芯片I/O引腳的功能可通過(guò)程序靈活配置。在此,I/00~I/07引腳接打印機接口的8位數據線(xiàn),I/08引腳接打印機選通線(xiàn)(STRB),I/09接打印機的“Busy”信號線(xiàn),并要在應用程序中用如下Neuron C語(yǔ)句配置:
IO_0 output byte PrintData;
IO_8 output bit PrintStb;
IO_9 output bit PrintBusy;。
2 NPS應用程序設計
NPS與各個(gè)智能節點(diǎn)之間為主從方式,通過(guò)查詢(xún)完成工作。網(wǎng)絡(luò )尋址為domain:subnet:node方式。網(wǎng)絡(luò )通信采用顯示報文格式。
2.1 應用程序運行機制
TMPN315081AF神經(jīng)元芯片固化了LonTalk的全部七層協(xié)議[2],位于應用層的調度程序(Scheduler)負責目標應用程序的啟動(dòng)、任務(wù)調度運行,并且任務(wù)運行必須有一個(gè)特定的事件來(lái)觸發(fā)。根據這個(gè)調度機制,本文在NPS的應用程序中實(shí)現了以下事件(Events)及其對應任務(wù)的功能。
(1) reset事件
完成NPS的網(wǎng)絡(luò )地址設置,建立Lonworks網(wǎng)絡(luò )的域和地址,并完成打印機初始化工作。
(2)timer_expires事件
在程序中定義了3個(gè)周期性定時(shí)器:
stimer repeating sNetUpDTr=12;
mtimer repeating mAddrTr=300;
mtimer repeating mPollTr=1000;。
秒級定時(shí)器sNetUpDTr啟動(dòng)網(wǎng)絡(luò )更新,毫秒級定時(shí)器mAddrTr事件對應的任務(wù)通過(guò)廣播報文查詢(xún)網(wǎng)絡(luò )上的節點(diǎn)地址,并更新程序中的所有節點(diǎn)列表。節點(diǎn)結構定義如下:
typedef struct
{ unsigned int ID_num;//唯一ID
char ID_descrip[32];//描述網(wǎng)絡(luò )地址,定義在Neu-ron C的addrdefs.h文件中msg_out_addr ID_dest_addr;
}ID_INFO;
毫秒級定時(shí)器mPollTr事件激發(fā)查詢(xún)任務(wù),詢(xún)問(wèn)網(wǎng)絡(luò )上的節點(diǎn)是否有打印信息。
(3)msg_arrives事件
當收到報文時(shí),此事件為真,其對應的任務(wù)接收報文,根據報文類(lèi)型字段,可以區分是命令報文還是欲打印數據報文。
(4)iO_in()事件
在程序中對應when(iO_in(Print_Busy)==0){…},就是當打印機一旦空閑,就啟動(dòng)打印任務(wù),把程序中打印緩沖區的數據輸出到打印機。整個(gè)NPS應用程序的運行機制如圖3所示,每個(gè)任務(wù)在執行時(shí)都調用相應的函數來(lái)完成預定功能,函數代碼不在此詳述。
2.2 應用程序通信協(xié)議
之所以單獨提出這個(gè)問(wèn)題,是因為通訊協(xié)議對網(wǎng)絡(luò )應用程序至關(guān)重要。本文中,NPS和其他智能節點(diǎn)間的應用層通信協(xié)議為兩級協(xié)議:第一層,顯式報文嚴格按照Neu-ron C定義的格式、填寫(xiě)報文的個(gè)字段;第二層,對顯式報文中的數據段,應該定義自己的用戶(hù)數據規約。
最后,應用程序在NodeBuider環(huán)境下編譯、連接后生成可執行文件,寫(xiě)入到Flash存儲器,經(jīng)變電站現場(chǎng)調試和測試,NPS能夠可靠地完成網(wǎng)絡(luò )打印功能。
3 結 論
Lonworks網(wǎng)絡(luò )技術(shù)是一種高抗干擾性、高性?xún)r(jià)比的現場(chǎng)總線(xiàn)網(wǎng)技術(shù),本文NPS設計之所以采用這種技術(shù)就是考慮到工業(yè)現場(chǎng)往往具有很強的電磁干擾。從硬件、編程和開(kāi)發(fā)工具對NPS的設計進(jìn)行較詳盡地描述,希望對從事Lonworks網(wǎng)絡(luò )技術(shù)開(kāi)發(fā)應用的讀者能稍有裨益。本裝置與變電站測控單元、保護單元配套,經(jīng)過(guò)現場(chǎng)驗證,工作穩定可靠。
評論