當(dāng)前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]摘要:簡(jiǎn)要介紹了TinyOS操作系統(tǒng)基本架構(gòu)和ncsC語言組件編程方法,并剖析了SHTxx溫濕度傳感器的物理特性、溫濕度計(jì)算原理、硬件電路設(shè)計(jì);詳細(xì)介紹了在TinyOS2.x操作系統(tǒng)下,SHTxx型溫濕度傳感器底層組件驅(qū)動(dòng)程序的

摘要:簡(jiǎn)要介紹了TinyOS操作系統(tǒng)基本架構(gòu)和ncsC語言組件編程方法,并剖析了SHTxx溫濕度傳感器的物理特性、溫濕度計(jì)算原理、硬件電路設(shè)計(jì);詳細(xì)介紹了在TinyOS2.x操作系統(tǒng)下,SHTxx型溫濕度傳感器底層組件驅(qū)動(dòng)程序的設(shè)計(jì)過程,并在集成有CC2530的硬件平臺(tái)上驗(yàn)證了此驅(qū)動(dòng)的可行性以及溫濕度傳感器的數(shù)據(jù)采集的系統(tǒng)方法。
關(guān)鍵詞:操作系統(tǒng);底層驅(qū)動(dòng);溫濕度;采集;系統(tǒng)方法

引言
    無線傳感網(wǎng)絡(luò)可以用一個(gè)簡(jiǎn)單的數(shù)學(xué)等式概括:傳感器+片上系統(tǒng)+無線通信=寬廣應(yīng)用。傳感器將檢測(cè)到的信號(hào)按一定規(guī)律變換成為電信號(hào)或其他信息形式傳輸至無線傳感網(wǎng)絡(luò),以滿足信息的傳輸、處理、存儲(chǔ)、顯示、記錄和控制等要求。本文研究了在TinyOS2.x操作系統(tǒng)上,SHTxx型溫濕度傳感器底層驅(qū)動(dòng)的應(yīng)用研究,并且通過硬件平臺(tái)的設(shè)計(jì),驗(yàn)證了應(yīng)用的可行性。

1 TinyOS系統(tǒng)與nesC語言
1.1 TinyOS系統(tǒng)
    TinyOS是美國加州大學(xué)伯克利分校開發(fā)的一種基于事件驅(qū)動(dòng)的操作系統(tǒng),其目標(biāo)是用最少的硬件支持網(wǎng)絡(luò)傳感器的并發(fā)密集型操作。Tin yOS操作系統(tǒng)把底層硬件封裝成組件架構(gòu),通過組件的層遞結(jié)構(gòu)對(duì)應(yīng)用層提供與硬件無關(guān)的接口,它的這種分層架構(gòu)易于操作系統(tǒng)的移植。
    TinyOS構(gòu)建成一種自下而上的樹狀結(jié)構(gòu),如圖1所示。最底層的組件直接與硬件交互,同時(shí)向上層報(bào)告事件的發(fā)生,上層組件收到信號(hào)向下發(fā)送指令。TinyOS是專為低功耗微控制器設(shè)計(jì)的一種微型操作系統(tǒng)。此外,它還有非常環(huán)保的省電制度和機(jī)制。


1.2 nesC語言
    nesC(network embeded system C)語言由C語言擴(kuò)展而來,用來描述TinyOS的執(zhí)行模型和結(jié)構(gòu);nesC語言是TinyOS的編程語言,也是Tiny OS應(yīng)用程序的開發(fā)工具。nesC程序主要由配置組件、模塊組件和編譯文件組成,如圖2所示。


1.3 組件與程序
    TinyOS組件分為配置和模塊兩種組件。一般來說,上層組件可以調(diào)用底層組件的命令,下層組件通過觸發(fā)信號(hào)的方式通知上層組件及其事件的發(fā)生,最底層的組件直接和硬件交互,從而自上到下形成一種樹狀結(jié)構(gòu)。接口的提供者必須實(shí)現(xiàn)接口中的命令函數(shù),而接口的使用者必須實(shí)現(xiàn)接口的事件函數(shù),如圖3所示。一個(gè)組件可以使用或提供多個(gè)接口,以及實(shí)現(xiàn)同一個(gè)接口的多個(gè)命令。


    模塊提供應(yīng)用程序代碼,實(shí)現(xiàn)一個(gè)或多個(gè)接口;配置則是通過配線將其他組件裝配起來的組件,將各個(gè)組件所使用的接口與其他組件提供的接口連接在一起。

2 SHTxx溫濕度傳感器介紹
    SHTxx系列單芯片傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。SHTxx傳感器包括一個(gè)電容式聚合體測(cè)濕元件和一個(gè)能隙式測(cè)溫元件,并與一個(gè)14位的A/D轉(zhuǎn)換器以及串行接口電路在同一芯片上實(shí)現(xiàn)無縫連接。
2.1 SHTxx溫濕度傳感器的硬件接口
    SHTxx的串行接口與I2C總線相似,但與I2C總線接口并不兼容,圖4為SHTxx溫濕度傳感器的硬件接口電路圖。SCK用于微處理器與SHTxx之間的時(shí)鐘同步通信。由于SHTxx內(nèi)部接口包含了完全靜態(tài)邏輯,因此不存在最小SCK頻率。DATA為三態(tài)邏輯門,主要用于數(shù)據(jù)的讀取。DATA在SCK時(shí)鐘下降沿之后改變狀態(tài),并僅在SCK時(shí)鐘上升沿有效。數(shù)據(jù)傳輸期間,在SCK時(shí)鐘高電平時(shí),DATA必須保持穩(wěn)定。為避免信號(hào)沖突,微處理器應(yīng)驅(qū)動(dòng)DATA在低電平。需要一個(gè)外部的上拉電阻(例如10 kΩ)將信號(hào)提拉至高電平。


2.2 SHTxx溫濕度傳感器的工作時(shí)序
    SHTxx溫濕度傳感器用一組“啟動(dòng)傳輸”時(shí)序來表示數(shù)據(jù)傳輸?shù)某跏蓟?。?dāng)SCK時(shí)鐘為高電平時(shí),DATA翻轉(zhuǎn)為低電平,緊接著SCK變?yōu)榈碗娖剑S后在SCK時(shí)鐘為高電平時(shí),DATA翻轉(zhuǎn)為高電平。
    SHTxx溫濕度傳感器通信命令中高3位表示地址位(目前只支持“000”)、低5位表示命令位(如表1所列)。SHTxx溫濕度傳感器在第8個(gè)SCK時(shí)鐘的下降沿之后,將DATA下拉為低電平(ACK位);在第9個(gè)SCK時(shí)鐘的下降沿之后,釋放DATA(恢復(fù)高電平)表示已正確地接收到指令。


    SHTxx溫濕度傳感器的測(cè)量輸出包括溫度濕兩種測(cè)量值,為了補(bǔ)償濕度傳感器的非線性以獲取準(zhǔn)確數(shù)據(jù),使用式(1)修正SHTxx濕度輸出數(shù)值,對(duì)于高于99%RH的濕度測(cè)量值則表示空氣已經(jīng)完全飽和,必須處理為100%RH。


    濕度轉(zhuǎn)換系數(shù)具體取值如表2所列,其中C1、C2和C3為修正系數(shù),SORH為相對(duì)濕度測(cè)量值。
   
    SHTxx的溫度傳感器是由能隙材料PTAT(正比于絕對(duì)溫度)組成,該材料具有極好的線性度??蓪?shù)字輸出轉(zhuǎn)換為溫度值:
    T=d1+d2×SOT        (2)
    其中,d1、d2為溫度轉(zhuǎn)換系數(shù);SOT為溫度數(shù)字輸出。具體取值可參考表3、表4。


2.3 SHTxx溫濕度傳感器節(jié)點(diǎn)硬件設(shè)計(jì)
   
圖5為溫濕度傳感器節(jié)點(diǎn)的電路圖,其中SHTxx的DATA和SCK引腳分別與CC2530的P0.1和P1.7腳相連,供電電壓為3.3 V。



3 SHTxx的TinyOS底層驅(qū)動(dòng)設(shè)計(jì)
3.1 SHTxx溫濕度傳感器底層接口驅(qū)動(dòng)設(shè)計(jì)
   
由SHTxx溫濕度傳感器測(cè)量時(shí)序可知,SHTxx溫濕度傳感器測(cè)量時(shí)序包括啟動(dòng)傳輸、發(fā)送命令、2字節(jié)數(shù)據(jù)傳輸以及CRC校驗(yàn)傳輸?shù)葧r(shí)序部分。SHTxx溫濕度傳感器的TinyOS驅(qū)動(dòng)代碼包括SHT接口的定義SHT.nc、SHT配置組件SHTC.nc和模塊組件SHTP.nc三部分。
    (1)SHT溫濕度傳感器接口定義
    在SHT溫濕度傳感器接口中,定義了read命令函數(shù)和ReadDone事件函數(shù)。read命令函數(shù)負(fù)責(zé)啟動(dòng)SHTxx溫濕度傳感器的測(cè)量過程,ReadDo ne事件函數(shù)則是當(dāng)SHTxx溫濕度傳感器測(cè)量完成后觸發(fā)該事件。具體代碼如下:
   
    (2)SHT溫濕度傳感器配置組件
    在SHT溫濕度傳感器配置組件中,利用MainC組件的初始化命令完成對(duì)SHT溫濕度傳感器的初始化操作。HplCC2530GenerallOC組件對(duì)SHT溫濕度傳感器端口進(jìn)行配置,定時(shí)器組件定義兩次測(cè)量的時(shí)間間隔,部分代碼如下:
   
    (3)SHT溫濕度傳感器模塊組件
    SHT溫濕度傳感器模塊組件完成SHT溫濕度傳感器數(shù)據(jù)讀取的底層驅(qū)動(dòng),完成對(duì)SHT溫濕度傳感器的時(shí)序模擬以及實(shí)現(xiàn)SHT接口函數(shù)。在數(shù)據(jù)讀取完成后,觸發(fā)ReadDone事件函數(shù),下面主要介紹SHT溫濕度傳感器驅(qū)動(dòng)模塊中的幾個(gè)與時(shí)序相關(guān)的函數(shù)。
    復(fù)位時(shí)序模擬函數(shù)如下:
   
    數(shù)據(jù)讀取時(shí)序模擬函數(shù)如下:
    recvByte(uint8_t ack)函數(shù)模擬讀取數(shù)據(jù)時(shí)的時(shí)序。微處理器在讀取SHTxx溫濕度傳感器的數(shù)據(jù)時(shí),有兩種不同的應(yīng)答信號(hào)。在讀取轉(zhuǎn)換數(shù)據(jù)時(shí),由微處理器將DATA線拉為低電平作為應(yīng)答信號(hào);而在讀取CRC數(shù)據(jù)時(shí),需要將DATA線拉為高電平應(yīng)答信號(hào),所以在recvByte(uint8 _t ack)函數(shù)中,ack作為兩種應(yīng)答信息參數(shù)進(jìn)行傳遞。該函數(shù)返回讀取的數(shù)據(jù)。
   
    SHTxx溫濕度傳感器寫數(shù)據(jù)主要為寫命令字和SHTxx溫濕度傳感器的狀態(tài)寄存器,在寫命令字完成后,SHTxx溫濕度傳感器將控制DATA數(shù)據(jù)線,并將數(shù)據(jù)線上拉為高電平作為應(yīng)答信號(hào)。寫數(shù)據(jù)時(shí)序模擬函數(shù)略——編者注。
3.2 SHTxx溫濕度傳感器TinyOS驅(qū)動(dòng)程序設(shè)計(jì)
    SHTxx溫濕度傳感器驅(qū)動(dòng)測(cè)試程序通過SHTxx溫濕度底層驅(qū)動(dòng)將采集SHTxx的溫濕度值,顯示在開發(fā)平臺(tái)中的LCD屏上,程序文件包括模塊組件TestSHTM.nc、配置組件TestSHTC.nc以及編譯文件makefile。
    TestSHTC.nc的配置文件部分代碼略——編者注。SHTxx溫濕度傳感器驅(qū)動(dòng)測(cè)試程序的組件關(guān)聯(lián)圖略——編者注。

4 系統(tǒng)測(cè)試及結(jié)論
   
通過Cygwin平臺(tái)對(duì)應(yīng)用程序進(jìn)行編譯和鏈接,生成hex文件,下載程序到目標(biāo)硬件平臺(tái)運(yùn)行。LCD顯示溫濕度采集結(jié)果,通過測(cè)試發(fā)現(xiàn),該系統(tǒng)能完成預(yù)期的數(shù)據(jù)采集功能。根據(jù)SHTxx溫濕度傳感器驅(qū)動(dòng)的設(shè)計(jì)方法完成其他傳感器的驅(qū)動(dòng)設(shè)計(jì)。當(dāng)然也可以利用該驅(qū)動(dòng)程序,通過網(wǎng)絡(luò)實(shí)時(shí)監(jiān)控周圍環(huán)境的溫濕度參數(shù)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉