一種基于ZigBee協(xié)議的動(dòng)態(tài)數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)
1.4 節(jié)點(diǎn)軟件
在此節(jié)點(diǎn)采用目前應(yīng)用最廣泛的TinyOs嵌入式網(wǎng)絡(luò)操作系統(tǒng)。TinyOS的程序采用模塊化設(shè)計(jì),程序核心都很小,一般來說核心代碼和數(shù)據(jù)在400 B左右。TinyOS的組件有4個(gè)相互關(guān)聯(lián)的部分:1組命令處理程序句柄、1組事件處理程序句柄、1個(gè)經(jīng)過封裝的私有數(shù)據(jù)幀和一組簡單任務(wù)。任務(wù)、命令和事件處理程序在幀的上下文中執(zhí)行并切換幀的狀態(tài)。為了易于實(shí)現(xiàn)模塊化,每個(gè)組件還聲明了自己使用的接口及其要用信號通知的事件,這些聲明將用于組件的相互連接。如圖4所示為一個(gè)支持多跳無線通信的組件集合與這些組件之間的關(guān)系,上層組件對下層組件發(fā)命令,下層組件對上層組件發(fā)信號通知事件的發(fā)生,最低層的組件直接和硬件打交道。
2 系統(tǒng)軟件測試
在軟件系統(tǒng)設(shè)計(jì)上,移植無線傳感器專門的嵌入式操作系統(tǒng)TinyOS到MSP430微處理器,使用nesC語言編寫應(yīng)用程序。系統(tǒng)以溫度作為采集變量,建立了一個(gè)具有采集溫度數(shù)據(jù)、預(yù)處理、打包無線傳輸功能的動(dòng)態(tài)數(shù)據(jù)采集系統(tǒng)終端節(jié)點(diǎn)的設(shè)計(jì)。
在驗(yàn)證應(yīng)用程序代碼時(shí),因使用熱敏電阻調(diào)試麻煩,選用精密可調(diào)電阻代替熱敏電阻,如圖5所示,電阻值容易控制和調(diào)整,使結(jié)果具有更大可觀察性。
如上圖所示,采集的模擬信號量是電阻R110兩端的電壓值,為了觀察的方便,在測試程序中對數(shù)據(jù)進(jìn)行標(biāo)度變換等初步處理,使得在PC上顯示的數(shù)據(jù)信息直觀地表示為R110兩端的電壓值。由于精密電阻值最大為10 kΩ,R110=10 kΩ。Vcc=3.1 V,AD參考電平為2.5 V,使得R110兩端電壓只能在1.5~2.5 V之間測量,選擇的測量范圍為1.6~2.4 V。
只要知道當(dāng)前可調(diào)電阻R_adj的電阻值,如下公式所示就可以得到ADC5的電壓值:
VADC5=Vccin[10 kΩ/(10 kΩ+R_adj)] (1)
由于終端設(shè)計(jì)是采用無線模塊發(fā)送的,PC必須通過網(wǎng)關(guān)才能得到PC顯示結(jié)果(PC上可以觀察范圍為1.5~2.5 V)。在終端機(jī)上,同樣用3個(gè)LED來表示電壓量的變化,選擇參考電平為1.6 V為參考零點(diǎn),變化時(shí)LED顯示變化一次。如表1所示,需要注意的是只有測量值在1.6~2.4V之間LED指示值才正確。
在無線模塊數(shù)據(jù)信息的發(fā)送中,設(shè)定每隔1 000 ms發(fā)送一次。因此每過1 000 ms,串口收發(fā)指示燈將指示一次,同時(shí)在PC上更新一次數(shù)據(jù)信息。
評論