基于TinyOS2.x的溫濕度傳感器的底層驅動與應用
3 SHTxx的TinyOS底層驅動設計
3.1 SHTxx溫濕度傳感器底層接口驅動設計
由SHTxx溫濕度傳感器測量時序可知,SHTxx溫濕度傳感器測量時序包括啟動傳輸、發(fā)送命令、2字節(jié)數據傳輸以及CRC校驗傳輸等時序部分。SHTxx溫濕度傳感器的TinyOS驅動代碼包括SHT接口的定義SHT.nc、SHT配置組件SHTC.nc和模塊組件SHTP.nc三部分。
(1)SHT溫濕度傳感器接口定義
在SHT溫濕度傳感器接口中,定義了read命令函數和ReadDone事件函數。read命令函數負責啟動SHTxx溫濕度傳感器的測量過程,ReadDo ne事件函數則是當SHTxx溫濕度傳感器測量完成后觸發(fā)該事件。具體代碼如下:
(2)SHT溫濕度傳感器配置組件
在SHT溫濕度傳感器配置組件中,利用MainC組件的初始化命令完成對SHT溫濕度傳感器的初始化操作。HplCC2530GenerallOC組件對SHT溫濕度傳感器端口進行配置,定時器組件定義兩次測量的時間間隔,部分代碼如下:
(3)SHT溫濕度傳感器模塊組件
SHT溫濕度傳感器模塊組件完成SHT溫濕度傳感器數據讀取的底層驅動,完成對SHT溫濕度傳感器的時序模擬以及實現SHT接口函數。在數據讀取完成后,觸發(fā)ReadDone事件函數,下面主要介紹SHT溫濕度傳感器驅動模塊中的幾個與時序相關的函數。
復位時序模擬函數如下:
數據讀取時序模擬函數如下:
recvByte(uint8_t ack)函數模擬讀取數據時的時序。微處理器在讀取SHTxx溫濕度傳感器的數據時,有兩種不同的應答信號。在讀取轉換數據時,由微處理器將DATA線拉為低電平作為應答信號;而在讀取CRC數據時,需要將DATA線拉為高電平應答信號,所以在recvByte(uint8 _t ack)函數中,ack作為兩種應答信息參數進行傳遞。該函數返回讀取的數據。
SHTxx溫濕度傳感器寫數據主要為寫命令字和SHTxx溫濕度傳感器的狀態(tài)寄存器,在寫命令字完成后,SHTxx溫濕度傳感器將控制DATA數據線,并將數據線上拉為高電平作為應答信號。寫數據時序模擬函數略——編者注。
3.2 SHTxx溫濕度傳感器TinyOS驅動程序設計
SHTxx溫濕度傳感器驅動測試程序通過SHTxx溫濕度底層驅動將采集SHTxx的溫濕度值,顯示在開發(fā)平臺中的LCD屏上,程序文件包括模塊組件TestSHTM.nc、配置組件TestSHTC.nc以及編譯文件makefile。
TestSHTC.nc的配置文件部分代碼略——編者注。SHTxx溫濕度傳感器驅動測試程序的組件關聯圖略——編者注。
4 系統(tǒng)測試及結論
通過Cygwin平臺對應用程序進行編譯和鏈接,生成hex文件,下載程序到目標硬件平臺運行。LCD顯示溫濕度采集結果,通過測試發(fā)現,該系統(tǒng)能完成預期的數據采集功能。根據SHTxx溫濕度傳感器驅動的設計方法完成其他傳感器的驅動設計。當然也可以利用該驅動程序,通過網絡實時監(jiān)控周圍環(huán)境的溫濕度參數。本文引用地址:http://m.butianyuan.cn/article/159296.htm linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂) 風速傳感器相關文章:風速傳感器原理 土壤濕度傳感器相關文章:土壤濕度傳感器原理 溫濕度控制器相關文章:溫濕度控制器原理
評論