




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、【W(wǎng)ord版本下載可任意編輯】 PXA310平臺的溫濕度傳感器設(shè)計與實現(xiàn)方法 摘 要: 在嵌入式應(yīng)用領(lǐng)域,需要測量周圍環(huán)境的質(zhì)量對生產(chǎn)和工作開展監(jiān)控和預(yù)警。通過比較設(shè)計方案,提出在嵌入式Linux 下,基于PXA310 平臺溫濕度傳感器的設(shè)計與實現(xiàn)方法。在Linux 操作系統(tǒng)下通過對驅(qū)動程序接口調(diào)用,完成溫濕度數(shù)據(jù)讀取和預(yù)警,并對Linux 驅(qū)動程序編寫開展比較。實驗說明,本方案硬件和軟件設(shè)計切實可行,提高了環(huán)境測量的準(zhǔn)確度和系統(tǒng)性能的實時性。 1 引言 在工業(yè)控制和工業(yè)生產(chǎn)領(lǐng)域中,傳感器對于工業(yè)控制和生產(chǎn)環(huán)境的監(jiān)控作用不言而喻。傳統(tǒng)的傳感器監(jiān)控系統(tǒng)大都采用單片機控制,其監(jiān)控的準(zhǔn)確度和實時性不
2、太令人滿意。本文尋找到一套切實可行的傳感器設(shè)計方案,其利用溫濕度傳感器芯片,基于PXA310硬件平臺和Linux 操作系統(tǒng),能有效監(jiān)控現(xiàn)場溫濕度變化。在周圍環(huán)境發(fā)生變化,不能滿足工作要求時,可以獲取監(jiān)控數(shù)據(jù)并提出預(yù)警,提高生產(chǎn)和工作環(huán)境檢測的可靠性及實時性。 2 溫濕度傳感器電路設(shè)計 比較了一些傳感器應(yīng)用設(shè)計方案后,選用SHT10芯片為嵌入式溫濕度傳感器的部件。它外圍電路簡便,相比其他傳感器芯片(DS18B20)有其獨到優(yōu)勢。 STH10 每秒可開展3 次溫濕度測量,數(shù)據(jù)精度14 bit并且工作穩(wěn)定。其測量采用CMOSens ,所以在測量效率和精度上要好于DS18B20.DS18B20 采用單
3、總線控制方案(1-wire),大約每秒測量,9 位數(shù)字式溫度數(shù)據(jù);只提供溫度測量。其在生產(chǎn)環(huán)境檢測要求嚴(yán)格時,就顯得精度和功能有些缺陷。 2.1 SHT10 簡介 SHT10 是一款高度集成的溫濕度傳感器芯片,提供全量程標(biāo)定數(shù)字輸出。傳感器包括一個電容性聚合體濕度敏感元件和一個用能隙材料制成的溫度敏感元件,他們與一個14 位A/D 轉(zhuǎn)換器以及一個串行接口電路設(shè)計在同一個芯片上面。其通過標(biāo)定得到校準(zhǔn)系數(shù)以程序形式儲存在芯片OTP 內(nèi)存中,并利用兩線制串行接口與內(nèi)部電壓調(diào)整,使外圍系統(tǒng)集成變得快速而簡單。 2.2 SHT10 工作原理 SHT10 芯片電源3.3V .傳感器上電后,等待11ms 來
4、完成休眠狀態(tài)。通信復(fù)位和啟動傳輸命令后,發(fā)送一組測量命令(00000101表示相對濕度RH,00000011表示溫度T),控制器要等待測量結(jié)束。這個過程需要大約11/55/210ms ,分別對應(yīng)8/12/14bit 測量。SHT10 通過下拉DATA 至低電平,表示測量結(jié)束??刂破饔|發(fā)SCK 時鐘前,必須等待這個數(shù)據(jù)備妥信號才能將測量數(shù)據(jù)正確讀入。 測量和通訊結(jié)束后,SHT10 自動轉(zhuǎn)入休眠模式。數(shù)據(jù)傳送采用兩線制串行接口(與I2C 接口不兼容)。 2.3 SHT10 電路原理圖 SHT10 采用LCC 封裝,其DATA 和SCK 引腳分別連接到PXA310 的GPIO78 和GPIO79.P
5、XA310通過模擬時序方式實現(xiàn)對外圍溫濕度傳感器的控制和數(shù)據(jù)讀寫操作。由于SHT10 對于溫濕度靈敏度很高,在系統(tǒng)集成時應(yīng)盡量遠離發(fā)熱源(如MCU、LCD 等),否則測量結(jié)果會有所偏離;為SHT10 布線時,周圍應(yīng)盡量鋪地減少周圍器件對其的干擾。SHT10 電路原理圖如圖1 所示。 圖1 SHT10 電路原理圖 3 Linux溫濕度傳感器驅(qū)動程序?qū)崿F(xiàn) 單片機控制的傳感器設(shè)備中,單片機通常是單線程運行。在開展溫濕度測量時,單片機需要等待測試結(jié)果返回,其方法阻礙了其他測試和操作的同步執(zhí)行。 在嵌入式Linux 系統(tǒng)中,驅(qū)動程序?qū)y試任務(wù)送入任務(wù)隊列,交出CPU 控制權(quán),繼而開展其他實時任務(wù)運行,待
6、內(nèi)核空閑再進入任務(wù)隊列完成傳感器的測量,以此提高系統(tǒng)執(zhí)行的效率和實時性。 3.1 Linux 溫濕度傳感器設(shè)備加載 溫濕度傳感器使用Linux 內(nèi)核的Miscdevice 數(shù)據(jù)構(gòu)造在驅(qū)動程序初始化時將設(shè)備注冊到內(nèi)核。 Miscdevice 是字符設(shè)備,其主設(shè)備號為10,設(shè)備及設(shè)備接口函數(shù)定義如下所示。 驅(qū)動程序加載設(shè)備時將調(diào)用內(nèi)核的注冊函數(shù)。在Linux2.4 和2.6 內(nèi)核中,幾乎所有Linux 驅(qū)動程序都依靠如下函數(shù)加載模塊。 驅(qū)動程序初始化完成后,上層應(yīng)用程序可以調(diào)用sht10_fops 中的sht10_read 函數(shù)開展溫濕度的讀取操作。 3.2 Linux 溫濕度傳感器設(shè)備操作 開展
7、數(shù)據(jù)讀取前,首先要在驅(qū)動程序中開辟4 個字節(jié)的數(shù)據(jù)空間,用于存放溫度和濕度測量值。這里定義全局變量數(shù)據(jù)緩沖區(qū)為unsigned char buf. 讀取SHT10 溫濕度數(shù)據(jù)前,需要開展端口初始化和SHT10 復(fù)位操作,然后將任務(wù)送于任務(wù)隊列并阻塞線程,當(dāng)任務(wù)完成返回后再喚醒線程,將讀到數(shù)據(jù)傳遞給上層應(yīng)用程序做進一步處理。程序流程圖和實現(xiàn)函數(shù)如圖2 所示。 圖2 驅(qū)動程序流程圖。 上述函數(shù)中start_trans; write_byte; read_data; read_byte 分別利用PXA310 引腳模擬時序完成啟動傳輸、寫字節(jié),讀一位數(shù)據(jù)和讀字節(jié)的操作。 內(nèi)核tasklet_sched
8、ule() 調(diào)度執(zhí)行指定的tasklet,在獲得運行時機之前只會調(diào)度,如果在運行時被調(diào)度, 則完成后會被再次運行。 wait_for_completion()這個函數(shù)開展一個不可打斷的等待,如果有代碼調(diào)用它,并且沒有完成這個任務(wù),結(jié)果會是一個不可殺死的進程。copy_to_user()將內(nèi)核空間數(shù)據(jù)傳向上層用戶空間,并讓上層測試程序做進一步處理。 3.3 Linux 溫濕度傳感器設(shè)備阻塞操作 由于溫濕度傳感器測量需要一定時間,為提高系統(tǒng)運行效率和實時性,在驅(qū)動程序中阻塞線程,交出內(nèi)核控制權(quán),等待操作完成后喚醒線程,提高系統(tǒng)利用率。complete()在函數(shù)中就是喚醒一個等待的讀取線程。任務(wù)隊列
9、實現(xiàn)函數(shù)如下所示。 Tasklet可以使測量操作在系統(tǒng)負(fù)荷不重時被調(diào)用,或是被立即執(zhí)行,但始終不會晚于下一個CPU clock. Tasklet 始終在中斷期間運行,并且在調(diào)度他的同一CPU 上運行。比照單片機系統(tǒng),在單線程情況下,一般在sht10_read()中調(diào)用2 次measure_ sht10()來等待測量完成,測量效率依賴2 次測量消耗的時間;但在Linux 驅(qū)動程序中,使用Tasklet 方式操作,2 次測量過程不會對其他線程產(chǎn)生影響,在有其他實時事件需要及時處理時(如網(wǎng)絡(luò),視頻),可以更有效提高驅(qū)動運行效率,降低對其他實時處理產(chǎn)生的影響。 4 溫濕度傳感器測試與驗證 驅(qū)動程序完成
10、以后,需要相應(yīng)測試程序驗證驅(qū)動程序編寫的正確性。由于驅(qū)動程序中不能對數(shù)據(jù)開展浮點數(shù)運算,所以測試程序必須將驅(qū)動程序傳遞來的數(shù)據(jù)開展浮點數(shù)運算才能得到相應(yīng)的溫濕度值。 4.1 溫濕度傳感器測試環(huán)境 在實驗室常溫下,測試程序多次調(diào)用驅(qū)動程序中讀溫濕度的函數(shù)接口獲得測試數(shù)據(jù),來驗證設(shè)計的正確和可靠。并考慮實驗室內(nèi)常溫下,相對濕度與溫度具有非線性關(guān)系,計算濕度值時需要考慮溫度的補償關(guān)系,其關(guān)系如圖3 所示。 圖3 SORH 轉(zhuǎn)換到相對濕度。 為補償濕度傳感器的非線性以獲取準(zhǔn)確數(shù)據(jù),并考慮實際溫度與測試參考溫度(25)不同,使用如下公式修正讀數(shù)。 RHlinear 是溫度修正系數(shù),RHtrue 是相對濕
11、度,SORH是傳感器返回的濕度值。開展12bit 濕度檢測時,參數(shù)取值如下表所示。 表1 濕度轉(zhuǎn)換系數(shù)與溫度補償系數(shù) 由于能隙材料研發(fā)的溫度傳感器具有極好線性,14bit 溫度值參考如下公式。 Temperature = d1+d2 x SOT 溫度轉(zhuǎn)換系數(shù)取值如下表所示,SOT 是傳感器返回的溫度值。 表2 溫度轉(zhuǎn)換系數(shù) 利用上述溫濕度轉(zhuǎn)換公式和系數(shù)可以得出溫濕度測量值。 4.2 溫濕度傳感器測試途徑與效率驗證 在測試程序中,考慮上述測量環(huán)境下溫濕度之間的非線性,調(diào)用驅(qū)動程序的sht10_read 函數(shù)將讀到的溫濕度數(shù)據(jù)返回上層測試程序開展浮點數(shù)運算,將計算值通過串口輸出,到達測試驗證的目的
12、。測試程序的實現(xiàn)如下所示。 static void calc_sht10(float *humi, float*temp) float rh=*humi; float t=*temp; float rh_line; float rh_true; t=t*d2+d1; /溫度轉(zhuǎn)換公式 rh_line=C3*rh*rh+C2*rh+C1; /相對濕度轉(zhuǎn)換公式 rh_true=(t-25)*(t1+t2*rh)+rh_line; /相對濕度溫度補償 if(rh_true100)rh_true=100; /超出范圍 if(rh_true0.1)rh_true=0.1; printf(Humidity
13、is: %.2f%RHn,rh_true); printf(Temperature is: %.2fCn,t); int main(int argc, char *argv) /主函數(shù) int fd; float temp,humi; /溫濕度數(shù)據(jù) char buffer; /數(shù)據(jù)緩沖 fd = open(/dev/sht10, 0); /打開文件 if (fd 0) /打開失敗,退出 perror(open device /dev/sht10); exit(1); read(fd,buffer,sizeof(buffer);/ 讀取溫濕度值 temp=(float)(buffer8)|buf
14、fer); humi=(float)(buffer8)|buffer); calc_sht10(&humi, &temp); /溫濕度數(shù)值轉(zhuǎn)換 close(fd); /關(guān)閉文件 return 0; /退出 測試完成后,考察驅(qū)動程序運行效率,即在驅(qū)動程序的tasklet_schedule 和copy_to_user 前分別對PXA310 的OSCR 時間計數(shù)存放器開展時間讀取,計算此次溫濕度測量所用時間。計算公式如下所示。 Time=(OSCR2-OSCR1)/OSCR_FREQ OSCR2 是喚醒線程后的時間,OSCR1 是進入任務(wù)隊列前的時間。OSCR_FREQ 是PXA310 內(nèi)部時鐘頻率
15、3.25MHz.這樣就可以計算出每次溫濕度讀取消耗的時間,以此比照SHT10 開發(fā)文檔中理論測量時間值,確定實際驅(qū)動程序運行的效率。 5 實驗結(jié)果與分析 超級終端中插入驅(qū)動模塊,運行測試程序,可以在終端上看到測試結(jié)果(如圖4)。 圖4 超級終端測試結(jié)果 系統(tǒng)功能實現(xiàn)后,利用上述Time 計算公式計算驅(qū)動程序中溫濕度測量消耗的時間,實際測試結(jié)果如下表3 所示。 表3 驅(qū)動程序中實際測量消耗的時間 上表的測試結(jié)果不僅和傳感器的響應(yīng)速度有關(guān),而且還與系統(tǒng)中其他運行的線程有關(guān)。當(dāng)系統(tǒng)中有高任務(wù)到來或其他實時事件需要處理時,實際測量時間會大于上表中的測量時間,并且隨著任務(wù)的增加測量時間也會相應(yīng)的增加,完成的時間也受到外界中斷的影響。內(nèi)核會在任務(wù)不繁忙時完成測量操作。上表測試結(jié)果并未受到系統(tǒng)中其他驅(qū)動程序和中斷的影響。比照開發(fā)手冊中理論測量時間可以看到,使用任務(wù)隊列的方法對改善系統(tǒng)處理能力與實時性效果明顯。 此外,實現(xiàn)溫濕度傳感器驅(qū)動程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 防洪堤加固工程施工合同
- 2023-2024學(xué)年天津市中小學(xué)生mixly創(chuàng)意編程 第11課 自動變速風(fēng)扇-教學(xué)設(shè)計
- 個人與家政公司服務(wù)合同范本
- 2023-2024學(xué)年人教版高中信息技術(shù)必修二第三章第二節(jié)《 信息系統(tǒng)中的通信網(wǎng)絡(luò)》教學(xué)設(shè)計
- 8《我們受到特殊保護》(第2課時)(教學(xué)設(shè)計)2024-2025學(xué)年統(tǒng)編版道德與法治六年級上冊
- 股東投資合伙合同樣本
- 標(biāo)準(zhǔn)房產(chǎn)買賣合同范本解析
- 戰(zhàn)略合作合同樣本Top10
- 11 我是一張紙 第二課時 教學(xué)設(shè)計-2023-2024學(xué)年道德與法治二年級下冊統(tǒng)編版
- Module 2 Unit 2 It will show in Harbin(教學(xué)設(shè)計)-2023-2024學(xué)年外研版(三起)英語六年級下冊
- 光伏電氣設(shè)備試驗方案
- 經(jīng)濟法律法規(guī)基礎(chǔ)知識單選題100道及答案
- 新蘇教版三年級科學(xué)下冊全冊課件【全套】
- 2024-2030年中國精細化工行業(yè)發(fā)展分析及發(fā)展前景與投資研究報告
- 2024年(學(xué)習(xí)強國)思想政治理論知識考試題庫與答案
- DL∕T 540-2013 氣體繼電器檢驗規(guī)程
- 數(shù)控機床技術(shù)先進性
- 2024年黑龍江交通職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及1套參考答案
- 愛國主義教育基地組織管理制度
- 2024屆遼寧省沈陽市名校中考化學(xué)模擬試題含解析
- 2023版《思想道德與法治》(緒論-第一章)緒論 擔(dān)當(dāng)復(fù)興大任 成就時代新人;第一章 領(lǐng)悟人生真諦 把握人生方向 第3講 創(chuàng)造有意義的人生
評論
0/150
提交評論