1. 概述
在工農(nóng)業(yè)生產(chǎn),、氣象、環(huán)保,、國防,、科研、航天等部門經(jīng)常需要對環(huán)境溫度和濕度進行測量,。隨著科學技術(shù)的發(fā)展,,人們越來越重視濕度和溫度的檢測及控制并進行了大量的研究工作,尤其是在現(xiàn)場環(huán)境惡劣的情況下,,如何實時對溫濕度進行準確有效的測量,,顯得尤為重要。因而,,針對手持式的近距離測量以及長距離布線傳送可操作性不高的狀況,,本文提出了利用紅外通信技術(shù),結(jié)合高精度的溫濕度一體化傳感器,,設(shè)計出基于紅外通信的溫濕度一體化變送器,。
紅外通信是一種無線、非接觸控制技術(shù),,具有抗干擾能力強,,信息傳輸可靠,功耗低,,成本低,,易實現(xiàn)等顯著優(yōu)點,,已被諸多電子設(shè)備廣泛采用,并越來越多的應(yīng)用到計算機系統(tǒng)中,。
紅外通信主要由發(fā)送和接收兩個部分組成,。發(fā)送端采用單片機將待發(fā)送的二進制信號編碼調(diào)制為一系列的脈沖串信號,通過紅外發(fā)射管發(fā)射紅外信號,。紅外接收端接收紅外信號,,同時對信號進行放大、檢波,、整形后得到TTL電平的編碼信號,,再送給單片機,經(jīng)單片機解碼并做出相關(guān)處理,。
2. 二進制信號的調(diào)制解調(diào)
紅外通信發(fā)射的指令是用二進制數(shù)表示的,,通常發(fā)射指令時都用方波載波信號將這些二進制數(shù)調(diào)制成一系列的脈沖串信號,常用的調(diào)制方法是脈沖寬度(PWM)調(diào)制和脈沖位置(PPM)調(diào)制兩種,。
本文采用PWM調(diào)制碼,,它的組成為9ms高電平和4ms低電平引導(dǎo)脈沖,16位系統(tǒng)識別碼,,8位數(shù)據(jù)正碼和8位數(shù)據(jù)反碼,,我們要提取的就是數(shù)據(jù)碼。一個PWM碼的“0”是由一個0.58ms的低電平和一個0.58ms的高電平組成,,“1”是由一個0.58ms的低電平地和一個1.58ms的高電平組成,。
二進制信號的調(diào)制由紅外發(fā)射電路的單片機來完成,它把編碼后的二進制信號調(diào)制成頻率為38KHz(本文選用HS0038作為紅外接收頭,,接收頻率為38kHz)的間斷脈沖串,,相當于用二進制信號的編碼乘以頻率為38KHz的脈沖信號得到的間斷脈沖串,即是調(diào)制后用于紅外發(fā)射二極管發(fā)送的信號,。
二進制信號的解調(diào)由一體化紅外接收頭HS0038來完成,,在輸入有脈沖串時,輸出端輸出低電平,,否則輸出高電平,。
二進制信號的解碼由紅外接收電路單片機來完成,它把紅外接收頭送來的二進制編碼波形通過解碼,,還原出發(fā)送端發(fā)送的數(shù)據(jù),。
3.系統(tǒng)硬件設(shè)計
紅外發(fā)射部分電路框圖如圖1所示,主要由單片機PIC16F73及外部電路構(gòu)成,。PIC16F73單片機是由美國Microchip公司生產(chǎn)的8位單片機,,采用Harvard結(jié)構(gòu),這種結(jié)構(gòu)使指令執(zhí)行和取指操作可重疊進行,從而達到很高的執(zhí)行速度,。它只有35條單字節(jié)指令,,除了跳轉(zhuǎn)指令是2周期指令外,其它指令都是單周期指令,。相對于其它的8位單片機節(jié)省了1/2的程序空間,并具有4:1的速度優(yōu)勢,。
圖1 紅外發(fā)射電路
圖1中SE303是紅外發(fā)射二極管,,當PB0 = 1時,三極管9013導(dǎo)通,,SE303通電發(fā)射紅外線,,實際上發(fā)射的是頻率為38KHz的脈沖串;反之,,三極管9013截止,,SE303截止,不發(fā)射,。
圖1中SHT75是瑞士Sensirion公司推出的基于CMOSens技術(shù)的新型溫濕度傳感器,。它是一種全新的基于智能設(shè)計理念的傳感器,該傳感器將溫度檢測,、濕度檢測,、信號處理、數(shù)字變換,、串行數(shù)字通信接口,、數(shù)字校準全部集成到一個高集成度、體積極小的芯片當中,,利用它可以同時測量目標對象的溫度和濕度,,并實現(xiàn)數(shù)字式輸出。
CMOSens技術(shù)不僅將溫濕度傳感器結(jié)合在一起,,而且還將信號放大器,、模/數(shù)轉(zhuǎn)換器、校準數(shù)據(jù)存儲器等電路全部集成在一個芯片內(nèi),。由于將傳感器與電路部分結(jié)合在一起,,因此,該傳感器具有比其它類型的濕度傳感器優(yōu)越得多的性能,。首先是傳感器信號強度的增加,,增強了傳感器的抗干擾性能,保證了傳感器的長期穩(wěn)定性,,而A/D轉(zhuǎn)換的同時完成,,則降低了傳感器對干擾的敏感程度。其次在傳感器芯片內(nèi)裝載的校準數(shù)據(jù)保證了每一只濕度傳感器都具有相同的功能,即具有100%的互換性,。
圖2 紅外接收電路
紅外接收部分電路框圖如圖2所示,,在本系統(tǒng)中我們采用紅外一體化接收頭HS0038,HS0038是黑色環(huán)氧樹脂封裝,,不受日光,、熒光燈等光源干擾,內(nèi)附磁屏蔽,,功耗低,,靈敏度高。在用小功率發(fā)射管發(fā)射信號情況下,,其接收距離可達35m,,它能與TTL、COMS電路兼容,。HS0038為直立側(cè)面收光型,,它接收紅外信號頻率為38kHz,周期約26μs,,同時能對信號進行放大,、檢波、整形,,得到TTL 電平的編碼信號,。三個管腳分別是地、+5V電源,、解調(diào)信號輸出端,。
PIC16F73經(jīng)過解碼得到SHT75的溫度和濕度數(shù)據(jù)后,通過溫濕度處理程序進行線性補償?shù)忍幚?,隨后將結(jié)果送LED顯示,,同時也將結(jié)果通過PWM以及硬件電路,輸出工程上常用的4-20mA或者0-10V,。
4.系統(tǒng)各部分功能的實現(xiàn)
系統(tǒng)軟件用C語言編寫,,采用模塊化設(shè)計方法。分為發(fā)射部分程序和接收部分程序,。發(fā)射部分包括主程序,、編碼程序、發(fā)射程序等,;接受部分包括主程序,、解碼程序、溫濕度數(shù)據(jù)處理程序,、LED顯示程序,、93C46讀寫程序,、定時驅(qū)動程序、中斷服務(wù)程序,、PWM輸出程序等,。
主程序是控制和管理的核心。系統(tǒng)上電后首先進行系統(tǒng)初始化操作,,初始化主要完成對芯片內(nèi)部晶振的設(shè)定,,所用芯片管腳的定義,雙向管腳輸入輸出方向的設(shè)定,,對定時器的初始化,,PWM模塊的初始化,中斷的初始化等,。對芯片管腳的定義要做到資源的合理調(diào)配,比如說每個IO在各個時間段用作什么功能要分配好,,中斷初始化是因為在主程序運行起來后就要隨時等待中斷信號,,實現(xiàn)系統(tǒng)的各部分功能,中斷初始化主要是定義中斷的觸發(fā)方式,、中斷形式,、中斷服務(wù)程序等。初始化完成后,,系統(tǒng)開始正常運轉(zhuǎn),,進行溫濕度檢測、編碼,、紅外發(fā)射,、接收、解碼,、轉(zhuǎn)換,、計算等,除此之外還要進行PWM輸出等操作,。
溫濕度數(shù)據(jù)處理程序主要包括對溫度值和濕度值的檢測,、計算、對結(jié)果進行線性補償?shù)?。SHT75的相對濕度數(shù)字輸出特性曲線如圖3所示,,由圖3可以看出,濕度輸出特性呈一定的非線性,,因而要采用公式(1)進行修正,,其中SORH 為傳感器相對濕度測量值,各系數(shù)如表1所示,。
表1 線性補償系數(shù)
圖3 濕度輸出特性
濕度值還與當前溫度值相關(guān),,因此還要對其進行溫度補償,補償公式如公式(2)所示,各系數(shù)如表2所示,。
表2 溫度補償系數(shù)
除此之外,,溫濕度處理程序還具有以下功能:一是設(shè)定溫度濕度測量的分辨率,默認的測量分辨率分別為14bit(溫度),、12bit(濕度),,也可分別降至12bit和8bit,通常在高速或超低功耗的應(yīng)用中采用該功能,;二是“電量不足監(jiān)測功能,,該功能可監(jiān)測到Vdd電壓低于2.47V(SHT75正常工作電壓范圍是2.4V~5.5V)的狀態(tài),精度為±0.05V,;三是可以通過程序控制芯片上集成的可通斷加熱元件,,接通后可將SHT75的溫度提高大約5℃(9℉),功耗增加8mA@5V,,此功能主要為了比較加熱前后的溫度和濕度值,,可以綜合驗證兩個傳感器元件的性能,在高濕(>95%RH)環(huán)境中,,加熱傳感器還可以預(yù)防結(jié)露,,同時縮短響應(yīng)時間,提高精度,。
LED共4位,,每位8段,共占用12個IO通道,。LED用于實時顯示當前溫度值或濕度值,。4位LED中第一位用于區(qū)分溫度值和濕度值,如果該位不顯示或者是一個負號(-)就代表溫度,,如果該位顯示(H)就代表濕度,。后三位顯示相應(yīng)的數(shù)值,其中最后一位是小數(shù),。
結(jié)合93C46存儲芯片修改溫度和濕度上下限報警值,。在測量過程中,如果溫度值或者濕度值達到報警值,,蜂鳴器就會發(fā)出聲音,。
5.CRC校驗
在現(xiàn)代工業(yè)中,利用微控制器進行數(shù)據(jù)通訊的工業(yè)控制越來越廣泛,。由于傳輸距離,、現(xiàn)場狀況等諸多可能出現(xiàn)不確定因素的影響,微控制器與傳感器之間的通訊數(shù)據(jù)常會發(fā)生難以預(yù)測的錯誤,。為了保證數(shù)據(jù)傳輸?shù)目煽啃?,SHT75內(nèi)部集成了循環(huán)冗余校驗(CRC-cyclicredundancy check)硬件電路,。CRC是一種強有力的錯誤檢測技術(shù),在傳送信息時,,發(fā)送方根據(jù)所發(fā)送信息的具體內(nèi)容計算出一個稱為CRC的值,,并連同信息串一起發(fā)送;而接收方則根據(jù)接收到的信息串用同樣的方法生成一個CRC值,,若與收到的CRC值一致,,則可以認為信息傳送正確。使用CRC雖然不能保證100%檢測到錯誤,,但它可以極大地增加發(fā)現(xiàn)錯誤的機會,,而且它只需要極少的硬件消耗就能實現(xiàn),所以CRC被廣泛用作校驗手段,。
SHT75采用的CRC碼(又稱為多項式碼)為,,它能檢測出下列錯誤:所有的雙錯、奇數(shù)位錯,、突發(fā)長度小于等于8的突發(fā)錯,、絕大部分突發(fā)長度較長的突發(fā)錯。測量完溫度(或濕度)后,,根據(jù)測量的信息生成一個CRC值,,然后一同發(fā)送到微控制器中去,。微控制器根據(jù)接收到的信息按照同樣的方法生成一個CRC值,,若與接收到的CRC值一致,則可以認為信息傳送正確,;否則要求傳感器重新測量數(shù)據(jù)然后再按同樣的方式發(fā)送,。
SHT75的CRC值生成算法是根據(jù)SHT75的硬件生成電路來模擬的,硬件生成電路結(jié)構(gòu)如圖4所示:
圖4CRC值硬件生成電路
CRC算法如下:
(1)將CRC寄存器的值初始化為SHT75狀態(tài)寄存器的值(0000 3 2 1 0 s s s s ),,缺省值為00H,;
(2)將每一位數(shù)據(jù)與bit7比較;
(3)如果該數(shù)據(jù)位與bit7相同,,將CRC寄存器中的值向右移位,,令bit0=‘0’;否則將CRC寄存器中的值向右移位,,然后將bit4和bit5反相,,再令bit0=‘1’;
(4)接收新的數(shù)據(jù)位,,然后重復(fù)(2),;
(5)SHT75生成的CRC值必須倒轉(zhuǎn)(bit0=bit7,bit1=bit6,,. . . ,,bit7=bit0)后才能與最終計算結(jié)果對比,。
6. 實驗及結(jié)果
完成開發(fā)調(diào)試工作后,對產(chǎn)品進行了長時間的穩(wěn)定性測試,,對存在的問題進行了改進,。為了該變送器能更好地應(yīng)用在實際項目中,還將其送到賽寶計量檢測中心進行計量,。結(jié)果如表3 所示,。
7. 結(jié)語和展望
該溫濕度一體化變送器結(jié)構(gòu)緊湊、性能穩(wěn)定,、測量精度高,、輸出信號線性度好、調(diào)試及標定方便,、產(chǎn)品一致性好,,經(jīng)過了計量單位的計量認證,并且成功地應(yīng)用在玻璃廠生產(chǎn)線上,?;谝陨咸攸c,這種基于紅外通信技術(shù)的溫濕度一體化變送器具有非常廣泛的應(yīng)用前景,。
在接下來的工作中,,要不斷完善、改進本產(chǎn)品,。為了將實時采集的各點溫濕度值保存下來,,以便于對歷史數(shù)據(jù)查閱和繪制出實時或歷史溫濕度值變化曲線,計劃將93C46換成存儲容量更大的FM24C256,,該存儲器容量為32Kbyte,。另外,為了便于按采集的日期及時間保存溫濕度值,,可以擴展實時日歷時鐘芯片,,可與FM24C256掛在同一條I 2 C總線上。