李白華 秦 潔
(安徽農(nóng)業(yè)大學(xué)經(jīng)濟(jì)技術(shù)學(xué)院信息與計算機(jī)系 安徽 合肥 230000)
氣流式水平姿態(tài)傳感器的敏感元件是空氣擺,這樣氣流式水平姿態(tài)傳感器可以負(fù)擔(dān)高負(fù)載,反應(yīng)時間短,溫度特性良好,體積小等優(yōu)點,非常適用于量產(chǎn)及精細(xì)測控環(huán)境中。它可以測定角度,也可以測定角速度。 熱敏電阻是水平姿態(tài)傳感器的密切相關(guān)部分,環(huán)境溫度變化時,熱敏電阻的輸出電壓就不在完全是敏感元件的輸出電壓,測量精度也會降低。 為了提升姿態(tài)傳感器的實用性,需要減少環(huán)境溫度對測算精度的不良影響,這就必須對測量器件進(jìn)行溫度補(bǔ)償。本文選用Z-Stack 協(xié)議,使用溫度傳感器、姿態(tài)傳感器和CC2530 組建傳感器網(wǎng)絡(luò)。 此時DS18B20 作為溫度傳感器,同步測量器件周圍溫度的數(shù)據(jù)。系統(tǒng)設(shè)計具備以下的優(yōu)點:(1)環(huán)境溫度的變化可以及時感知。 (2)耗電少。 在溫度補(bǔ)償完成后,從實驗結(jié)果可以看到環(huán)境溫度變化引起的靈敏度變化基本為0。
圖1 顯示了氣流式水平姿態(tài)傳感器[1]的構(gòu)造構(gòu)成。 敏感元件由兩個熱敏電阻r1, r2組成,r1, r2是對稱的兩個電阻,阻值相等。 姿態(tài)傳感器發(fā)生傾斜時,空氣擺發(fā)生傾斜,熱敏電阻在空氣擺中的位置發(fā)生變化,阻值發(fā)生變化,轉(zhuǎn)換電橋輸出相應(yīng)的電壓變化。當(dāng)傾斜角度值很小時,可以近似認(rèn)為θ=sinθ,輸出的結(jié)果也是近似與輸入角度近似成線性的關(guān)系;隨著傾斜角度加大,輸出信號與角度之間的線性關(guān)系發(fā)生變化,系統(tǒng)測量的誤差提高,非線性度數(shù)值提高。在這種情況下需要對輸出信號引入線性度補(bǔ)償。 總的補(bǔ)償公式(1)如下:
Vin 是電橋電路輸出的電壓值,V0是須要實時補(bǔ)償?shù)碾妷褐?KT是要補(bǔ)償?shù)撵`敏度系數(shù),LV是一個系數(shù),用于代表需要補(bǔ)償?shù)木€性度大小。
圖1 姿態(tài)傳感器構(gòu)造
在短距離無線通信技術(shù)中,Zigbee 稱為一個良好的選擇, 低功耗的特性滿足傳感網(wǎng)絡(luò)構(gòu)建的需求,小型自組建網(wǎng)絡(luò)能量消耗設(shè)計很重要。 在ZigBee 的協(xié)議棧里界定了四個層,這四個層自下到上分別是:物理層、MAC 層、網(wǎng)絡(luò)層和應(yīng)用層。 IEEE802.15.4 標(biāo)準(zhǔn)規(guī)范了 Zigbee 協(xié)議的底層和底層上面一層的數(shù)據(jù)封裝。Zigbee 聯(lián)盟標(biāo)定其它兩個層的數(shù)據(jù)打包標(biāo)準(zhǔn)。
物理層[2]:負(fù)責(zé)管理工作波段的分配,信道的選擇以及為MAC 層提供兩種類型的服務(wù),并與上層通信。 MAC 層:管理無線信道的如何使用。網(wǎng)絡(luò)層:提供保障,保障鏈路層能準(zhǔn)確建立起由下向上的數(shù)據(jù)傳遞鏈路,并為它的上層提出一些接口,保障數(shù)據(jù)能上傳到協(xié)議頂端。應(yīng)用層:主要為管理者服務(wù),向下接受數(shù)據(jù),為使用者的管理界面提供常用的組件,接受底層的數(shù)據(jù)。
ZigBee 網(wǎng)絡(luò)中為了管理系統(tǒng)的設(shè)備,對設(shè)備依據(jù)各自的功能進(jìn)行分類。在這里面協(xié)調(diào)器只能有一個,負(fù)責(zé)創(chuàng)建和管理網(wǎng)絡(luò)。終端設(shè)備和路由設(shè)備可以是多個。 這三種類型的設(shè)備各有不同的功能,協(xié)調(diào)器是網(wǎng)絡(luò)的管理者,配置網(wǎng)絡(luò)的各種屬性數(shù)據(jù),路由設(shè)備執(zhí)行網(wǎng)絡(luò)發(fā)現(xiàn)的任務(wù)。 終端設(shè)備初始化時為參數(shù)配置數(shù)值,然后可選擇適當(dāng)?shù)膫€域網(wǎng)加入。 本文的Zigbee 網(wǎng)絡(luò)中,姿態(tài)傳感器和溫度傳感器相當(dāng)于終端設(shè)備,分別采集姿態(tài)信號和溫度信號,CC2530 微控制器模塊建立個域網(wǎng)網(wǎng)絡(luò),管理其他設(shè)備。
數(shù)字型溫度傳感器DSl8B20 負(fù)責(zé)測量環(huán)境溫度, 其外接元件少,耗電少,契合Zigbee 網(wǎng)絡(luò)中低功耗的要求,非常適用于充任WSN[3]的終端設(shè)備。 硬件連接里面,溫度傳感器的數(shù)據(jù)Data 輸出端口與CC2530的P0.0 口連接,占用 GPIO 的資源。
CC2530 是 SOC 芯片,是 TI 生產(chǎn)的 CC253X 系列的一款芯片,通訊協(xié)議符合 IEEE802.15.4,是建立 Zigbee 通訊時非常優(yōu)秀的解決方法。 內(nèi)部是8051 內(nèi)核,具有無線發(fā)送/接收數(shù)據(jù)的功效,可用于近距離無線通訊[4]。 此外,CC2530 功耗低,睡眠電流小。 CC2530 芯片有許多外部設(shè)備,功能各不一樣,對開發(fā)者非常友好,方便進(jìn)行新的系統(tǒng)功能拓展。
在姿態(tài)傳感器構(gòu)造圖中,敏感電阻r1,r2組成的敏感元件在感應(yīng)敏感信號,如加速度信號發(fā)生變化的時候,對應(yīng)輸出一個與加速度信號變化成正比的電壓信號V0, 電壓信號會進(jìn)行一個基本的信號處理,在起始階段開始消除噪聲的影響。 處理過后的信號送往CC2530 的P0口,占用P0 口的GPIO 資源。
圖2 軟件補(bǔ)償流程
在軟件程序的設(shè)計中, 使用的CC2530 的關(guān)鍵資源是GPIO 口中斷。CC2530 有18 個中斷源,軟件設(shè)計中的中斷一共有兩次中斷產(chǎn)生,采集環(huán)境溫度的時候產(chǎn)生一次中斷, 采集完成X、Y 軸電壓信號值的時候產(chǎn)生第二次中斷。 軟件設(shè)計中的兩次中斷發(fā)生的時候,需要設(shè)置相應(yīng)的中斷控制器, 并針對中斷的信號來源設(shè)計相應(yīng)的中斷服務(wù)程序。 當(dāng)相應(yīng)的中斷信號位置位成高電平的時候,進(jìn)入相應(yīng)的中斷服務(wù)函數(shù)執(zhí)行程序。
在CC2530 的使用中,I/O 口資源是最常用的。 單片機(jī)初始化的設(shè)置中,也需要完成與I/O 相關(guān)的寄存器設(shè)置。 寄存器的設(shè)置包括I/O 口功能選擇、方向設(shè)置等工作。 為了建立硬件設(shè)計與軟件程序之間的映射關(guān)系,需要在程序中對 P0.1 和 P0.2 口進(jìn)行重定義。
補(bǔ)償?shù)乃惴ㄖ饕囟妊a(bǔ)償和線性度補(bǔ)償,上圖2 顯示出了整個補(bǔ)償?shù)牧鞒獭?軟件工作環(huán)境選擇Keil。
(1)首先是單片機(jī)的初始化設(shè)置,這里要設(shè)置相應(yīng)的定時器T0,P0 口初始化,開啟總中斷等初始化工作。
(2)姿態(tài)傳感器輸出的電壓信號是模擬信號,溫度傳感器輸出的信號也是模擬信號, 需要在運(yùn)行相應(yīng)的補(bǔ)償算法前啟動ADC 轉(zhuǎn)換。ADC 轉(zhuǎn)換程序設(shè)計中主要完成ADC 轉(zhuǎn)換器的初始化, 轉(zhuǎn)換信道的選擇等工作。 CC2530 內(nèi)部自帶高精度的8 位ADC 轉(zhuǎn)換器,保證信號轉(zhuǎn)換的準(zhǔn)確度。
(3)采集環(huán)境溫度數(shù)據(jù)。 實時采集環(huán)境溫度是程序的中斷1,也是補(bǔ)償程序關(guān)鍵的一步。 溫度傳感器模塊作為終端節(jié)點,將采集的溫度值按照Zigbee 協(xié)議打包后,使用電磁波通信的方式發(fā)送溫度數(shù)據(jù)值給系統(tǒng)中的微控制器CC2530,姿態(tài)傳感器輸出與之對應(yīng)的電壓數(shù)值,以此建立溫度值與電壓值的對應(yīng)關(guān)系表。這個對應(yīng)關(guān)系表格是實際環(huán)境的溫度-電壓對應(yīng)表格,依據(jù)測量得到的關(guān)鍵數(shù)據(jù)點,運(yùn)用數(shù)據(jù)擬合法建立各個溫度點和電壓值的表格, 并保存在中斷1 服務(wù)子程序中,供后續(xù)的中斷查詢使用。 其中擬合方法的選擇對表格的精確度有重要作用,本文選用拉格朗日原理建立溫度與電壓間的數(shù)據(jù)曲線。
(4)測量溫度為0°C 時姿態(tài)傳感器的輸出電壓,定義為零位電壓。測量溫度為VT,產(chǎn)生中斷1,調(diào)用中斷1 服務(wù)子程序,查詢已經(jīng)建立的溫度-電壓表格,依據(jù)表格計算輸出溫度補(bǔ)償過后的電壓值。然后采集X 軸、Y 軸的輸入角度,創(chuàng)立起輸入角度與輸出電壓值的對應(yīng)關(guān)系,產(chǎn)生中斷2.中斷2 是線性度補(bǔ)償子程序,主要完成線性度的補(bǔ)償,提高系統(tǒng)測量的線性度。 在中斷1 和中斷2 調(diào)用完成后,用表達(dá)式1 算出經(jīng)過調(diào)理后的電壓值。
本文中設(shè)計的硬件系統(tǒng)與PC 機(jī)之間通信時需要使用相應(yīng)的JLINK 仿真器,保證程序沒有錯誤后可以在整個系統(tǒng)中運(yùn)行。
經(jīng)過溫度補(bǔ)償和線性補(bǔ)償后,姿態(tài)傳感器輸出電壓與輸入傾角之間的線性關(guān)系得到改善,非線性小于0.9%;因為環(huán)境溫度引起的測量誤差降低,提升了系統(tǒng)的精確度,氣流式水平姿態(tài)傳感器傳感器與單片機(jī)的結(jié)合也提高了傳感器的適用范圍。Zigbee 協(xié)議的引入也為傳感器數(shù)據(jù)的傳輸提供了新的通道,極大降低系統(tǒng)的功耗。