嚴冬 黃麗 劉宇 龍國強
【摘 要】本文介紹了一種使用工業現場總線協議——Modbus協議進行數據傳輸的溫濕度傳感器節點。主要是傳感器節點的硬件電路的設計,包含數據采集和處理電路等;軟件設計,包含溫濕度數據的采集和Modbus通信協議。最后對設計的傳感器節點進行了射頻性能和傳感器精度的測試驗證。
【關鍵詞】Modbus協議;溫濕度傳感器;無線傳感器
0 引言
無論是在工業現場還是日常生活中,我們都需要對環境的溫濕度參數進行監測。傳感器節點作為溫濕度監測的終端,直接接觸被測環境,是整個監測系統的重要組成部分。精度高、成本低、使用時限長、安裝方便是我們在設計中需要考慮的因素[1]。
本文綜合以上各個因素設計了一款使用Modbus通信協議和433MHz無線頻段的無線溫濕度傳感器節點。考慮到傳感器節點成本和精度的因素,使用瑞士Sensirionn公司生產的SHT10傳感器,它可以同時測量溫度和濕度,且有較高的測量精度和簡潔的外圍電路。為了便于安裝,使用433MHz無線頻段作為傳感器節點的通信媒介,有較遠的通信距離和穿墻能力,避免了有線通信電纜安裝的不便。
1 總體結構
溫濕度傳感器節點的總體結構如圖1所示,主要包含傳感器數據采集、電源供電、主控芯片數據處理、無線通信數據收發幾個部分。傳感器數據采集負責采集環境溫濕度的值,電源供電則是為傳感器數據采集、主控和無線通信芯片提供3.3V電壓電源,主控芯片主要是對采集到的數據進行數據分析和處理以得到實際的溫度和濕度的值,無線通信部分實現的是433MHz的通信頻段。
圖1 溫濕度傳感器節點的總體結構
2 硬件設計
無線溫濕度傳感器節點的硬件設計包含電源供電,數據采集,數據處理,數據收發幾個部分。電源供電部分主要是把3.7V電池電壓轉換為3.3V,作為各個部分的供電電源,以及5V電源給電池充電兩個部分,使用Maxim公司的MAX8881作為3.7V轉3.3V的降壓芯片,MAX1555作為5VDC電源給電池充電的芯片;數據采集主要是對環境溫濕度參數的采集,使用Sensirionn公司生產的SHT10傳感器;數據處理主要是對采集到的數據進行計算求值等,使用ST公司的STM32F103芯片;無線數據通信則是為傳感器節點提供一個數據通信的通道,使用TI公司的CC1101芯片。這里主要對數據采集部分進行詳細的闡述。
數據采集部分使用SHT10傳感器,它傳感器把傳感元件和信號處理電路集成在了一塊微型電路板中,輸出為完全標定的數字信號。傳感器內部包含一個電容性聚合體測濕敏感元件,一個用能隙材料制成的測溫元件,14位的A/D轉換器,串行接口電路。由此,傳感器具有極高的可靠性和長期的穩定性,并且響應速度快、性價比高等優點。SHT10溫濕度傳感器測量溫度的范圍在-40~+123.8°C,測量濕度的范圍在0~100%RH;測量溫度的精度典型值為±4.5%RH,測量濕度的精度典型值為±0.5°C[2]。
圖2 SHT10典型電路
溫濕度傳感器SHT10一共有4個接口,分別是地(GND),雙向串行數據接口(DATA),串行時鐘輸入口(SCK)以及電源接口(VDD)。傳感器的電源供電電壓范圍為2.4-5.5V,這里使用3.3V電源。電源和地(即VDD,GND)之間需要加一個去耦濾波的電容,電容值為100nF。傳感器的典型應用電路如圖2所示,傳感器的外圍電路采用I2C的總線形式,數據接口DATA接一個10KΩ的上拉電阻再與主控芯片相連進行雙向通信,時鐘輸入口的信號來自主控芯片。
3 軟件設計
軟件設計部分包含溫濕度數據的采集、處理,無線數據收發和Modbus通信協議幾個部分。這里把數據的采集、處理以及收發統一到數據監測,一并進行闡述。
3.1 數據監測
數據監測的整個過程是無線溫濕度傳感器節點上電初始化后,等待無線部分接受數據采集命令,收到采集命令后進行數據采集、處理,最后通過無線部分轉發出去,即完成了一次數據采集,整個過程的程序流程圖如圖3所示。
圖3 數據監測的程序流程圖
3.2 Modbus通信協議
Modbus通信協議是一種工業現場通用協議,主要規定了應用層報文傳輸的格式,使得不同生產廠商的設備可以連成網絡,集中監控[3]。
Modbus協議可分為在TCP/IP上的實現與串行鏈路上的實現,即Modbus-TCP和Modbus-RTU。傳感器節點內部實現的是Modbus-RTU協議。Modbus協議使用的是客戶機/服務器(C/S)的通信模式,主站向從站發送請求的模式有兩種:單播和廣播,本文實現的是單播的模式。
Modbus通用幀即ADU應用數據單元分為附加地址、功能碼、數據和差錯校驗4個部分,其中功能碼和數據部分為PDU協議數據單元。從站地址和功能碼各一個字節,數據段最多252個字節,差錯校驗2個字節。RTU幀還應該注意的是不同的幀與幀之間至少3.5個字符的空閑,同一幀內兩字符之間最多1.5個字符的空閑[4]。
傳感器內部具體的Modbus通信協議的封包解包過程如圖4所示。
圖4 Modbus協議通信過程
4 測試結果
無線溫濕度傳感器節點射頻性能的測試結果如表1,每次發送1000個數據包,有效傳輸距離可達到120米的情況下0%的丟包率,穿越兩層樓達到0%的丟包率(注:排除433MHz頻段其他設備的干擾)。
傳感器精度的測試,在同一環境情況下,使用市場上購買的手持紅外溫度儀與本文設計的傳感器節點進行環境監測數據的對比,溫度值的誤差保持在±0.5°C以內。例如,傳感器節點監測值為21.2°C,手持紅外溫度儀為21.5°C,誤差為-0.3°C。傳感器精度測試結果如表2所示。
表1 射頻性能測試結果
表2 傳感器精度性能測試結果
5 結束語
本文設計了一種使用Modbus通信協議的溫濕度傳感器節點,給出了傳感器節點硬件與軟件的設計方法,詳盡的介紹了傳感器數據采集的軟硬件設計和Modbus通信協議的程序實現過程,最后進行了傳感器設備的測試。從測試結果看,設計的該款傳感器具有較遠的通信距離和穿墻能力,并且具有較低的測量值誤差。
【參考文獻】
[1]李品,孫周.SHT10傳感器在溫濕度監測系統中的應用[J].傳感器與微系統,2012,31(9):136-138.
[2]瑞士Sensirionn公司.SHT10數據手冊[S].
[3]互動百科[OL].Modbus.
[4]GB/T19582.2-2008,基于Modbus協議的工業自動化網絡規范第2部分:Modbus協議在串行鏈路上的實現指南[S].2008.
[責任編輯:劉帥]