李白華 秦 潔
(安徽農業大學經濟技術學院信息與計算機系 安徽 合肥 230000)
氣流式水平姿態傳感器的敏感元件是空氣擺,這樣氣流式水平姿態傳感器可以負擔高負載,反應時間短,溫度特性良好,體積小等優點,非常適用于量產及精細測控環境中。它可以測定角度,也可以測定角速度。 熱敏電阻是水平姿態傳感器的密切相關部分,環境溫度變化時,熱敏電阻的輸出電壓就不在完全是敏感元件的輸出電壓,測量精度也會降低。 為了提升姿態傳感器的實用性,需要減少環境溫度對測算精度的不良影響,這就必須對測量器件進行溫度補償。本文選用Z-Stack 協議,使用溫度傳感器、姿態傳感器和CC2530 組建傳感器網絡。 此時DS18B20 作為溫度傳感器,同步測量器件周圍溫度的數據。系統設計具備以下的優點:(1)環境溫度的變化可以及時感知。 (2)耗電少。 在溫度補償完成后,從實驗結果可以看到環境溫度變化引起的靈敏度變化基本為0。
圖1 顯示了氣流式水平姿態傳感器[1]的構造構成。 敏感元件由兩個熱敏電阻r1, r2組成,r1, r2是對稱的兩個電阻,阻值相等。 姿態傳感器發生傾斜時,空氣擺發生傾斜,熱敏電阻在空氣擺中的位置發生變化,阻值發生變化,轉換電橋輸出相應的電壓變化。當傾斜角度值很小時,可以近似認為θ=sinθ,輸出的結果也是近似與輸入角度近似成線性的關系;隨著傾斜角度加大,輸出信號與角度之間的線性關系發生變化,系統測量的誤差提高,非線性度數值提高。在這種情況下需要對輸出信號引入線性度補償。 總的補償公式(1)如下:

Vin 是電橋電路輸出的電壓值,V0是須要實時補償的電壓值,KT是要補償的靈敏度系數,LV是一個系數,用于代表需要補償的線性度大小。

圖1 姿態傳感器構造
在短距離無線通信技術中,Zigbee 稱為一個良好的選擇, 低功耗的特性滿足傳感網絡構建的需求,小型自組建網絡能量消耗設計很重要。 在ZigBee 的協議棧里界定了四個層,這四個層自下到上分別是:物理層、MAC 層、網絡層和應用層。 IEEE802.15.4 標準規范了 Zigbee 協議的底層和底層上面一層的數據封裝。Zigbee 聯盟標定其它兩個層的數據打包標準。
物理層[2]:負責管理工作波段的分配,信道的選擇以及為MAC 層提供兩種類型的服務,并與上層通信。 MAC 層:管理無線信道的如何使用。網絡層:提供保障,保障鏈路層能準確建立起由下向上的數據傳遞鏈路,并為它的上層提出一些接口,保障數據能上傳到協議頂端。應用層:主要為管理者服務,向下接受數據,為使用者的管理界面提供常用的組件,接受底層的數據。
ZigBee 網絡中為了管理系統的設備,對設備依據各自的功能進行分類。在這里面協調器只能有一個,負責創建和管理網絡。終端設備和路由設備可以是多個。 這三種類型的設備各有不同的功能,協調器是網絡的管理者,配置網絡的各種屬性數據,路由設備執行網絡發現的任務。 終端設備初始化時為參數配置數值,然后可選擇適當的個域網加入。 本文的Zigbee 網絡中,姿態傳感器和溫度傳感器相當于終端設備,分別采集姿態信號和溫度信號,CC2530 微控制器模塊建立個域網網絡,管理其他設備。
數字型溫度傳感器DSl8B20 負責測量環境溫度, 其外接元件少,耗電少,契合Zigbee 網絡中低功耗的要求,非常適用于充任WSN[3]的終端設備。 硬件連接里面,溫度傳感器的數據Data 輸出端口與CC2530的P0.0 口連接,占用 GPIO 的資源。
CC2530 是 SOC 芯片,是 TI 生產的 CC253X 系列的一款芯片,通訊協議符合 IEEE802.15.4,是建立 Zigbee 通訊時非常優秀的解決方法。 內部是8051 內核,具有無線發送/接收數據的功效,可用于近距離無線通訊[4]。 此外,CC2530 功耗低,睡眠電流小。 CC2530 芯片有許多外部設備,功能各不一樣,對開發者非常友好,方便進行新的系統功能拓展。
在姿態傳感器構造圖中,敏感電阻r1,r2組成的敏感元件在感應敏感信號,如加速度信號發生變化的時候,對應輸出一個與加速度信號變化成正比的電壓信號V0, 電壓信號會進行一個基本的信號處理,在起始階段開始消除噪聲的影響。 處理過后的信號送往CC2530 的P0口,占用P0 口的GPIO 資源。

圖2 軟件補償流程
在軟件程序的設計中, 使用的CC2530 的關鍵資源是GPIO 口中斷。CC2530 有18 個中斷源,軟件設計中的中斷一共有兩次中斷產生,采集環境溫度的時候產生一次中斷, 采集完成X、Y 軸電壓信號值的時候產生第二次中斷。 軟件設計中的兩次中斷發生的時候,需要設置相應的中斷控制器, 并針對中斷的信號來源設計相應的中斷服務程序。 當相應的中斷信號位置位成高電平的時候,進入相應的中斷服務函數執行程序。
在CC2530 的使用中,I/O 口資源是最常用的。 單片機初始化的設置中,也需要完成與I/O 相關的寄存器設置。 寄存器的設置包括I/O 口功能選擇、方向設置等工作。 為了建立硬件設計與軟件程序之間的映射關系,需要在程序中對 P0.1 和 P0.2 口進行重定義。
補償的算法主要包括溫度補償和線性度補償,上圖2 顯示出了整個補償的流程。 軟件工作環境選擇Keil。
(1)首先是單片機的初始化設置,這里要設置相應的定時器T0,P0 口初始化,開啟總中斷等初始化工作。
(2)姿態傳感器輸出的電壓信號是模擬信號,溫度傳感器輸出的信號也是模擬信號, 需要在運行相應的補償算法前啟動ADC 轉換。ADC 轉換程序設計中主要完成ADC 轉換器的初始化, 轉換信道的選擇等工作。 CC2530 內部自帶高精度的8 位ADC 轉換器,保證信號轉換的準確度。
(3)采集環境溫度數據。 實時采集環境溫度是程序的中斷1,也是補償程序關鍵的一步。 溫度傳感器模塊作為終端節點,將采集的溫度值按照Zigbee 協議打包后,使用電磁波通信的方式發送溫度數據值給系統中的微控制器CC2530,姿態傳感器輸出與之對應的電壓數值,以此建立溫度值與電壓值的對應關系表。這個對應關系表格是實際環境的溫度-電壓對應表格,依據測量得到的關鍵數據點,運用數據擬合法建立各個溫度點和電壓值的表格, 并保存在中斷1 服務子程序中,供后續的中斷查詢使用。 其中擬合方法的選擇對表格的精確度有重要作用,本文選用拉格朗日原理建立溫度與電壓間的數據曲線。
(4)測量溫度為0°C 時姿態傳感器的輸出電壓,定義為零位電壓。測量溫度為VT,產生中斷1,調用中斷1 服務子程序,查詢已經建立的溫度-電壓表格,依據表格計算輸出溫度補償過后的電壓值。然后采集X 軸、Y 軸的輸入角度,創立起輸入角度與輸出電壓值的對應關系,產生中斷2.中斷2 是線性度補償子程序,主要完成線性度的補償,提高系統測量的線性度。 在中斷1 和中斷2 調用完成后,用表達式1 算出經過調理后的電壓值。
本文中設計的硬件系統與PC 機之間通信時需要使用相應的JLINK 仿真器,保證程序沒有錯誤后可以在整個系統中運行。
經過溫度補償和線性補償后,姿態傳感器輸出電壓與輸入傾角之間的線性關系得到改善,非線性小于0.9%;因為環境溫度引起的測量誤差降低,提升了系統的精確度,氣流式水平姿態傳感器傳感器與單片機的結合也提高了傳感器的適用范圍。Zigbee 協議的引入也為傳感器數據的傳輸提供了新的通道,極大降低系統的功耗。