紅外通信技術(shù)在溫濕度變送器上的運用
紅外接收部分電路框圖如圖2所示,在本系統(tǒng)中我們采用紅外一體化接收頭HS0038,HS0038是黑色環(huán)氧樹脂封裝,不受日光、熒光燈等光源干擾,內(nèi)附磁屏蔽,功耗低,靈敏度高。在用小功率發(fā)射管發(fā)射信號情況下,其接收距離可達(dá)35m,它能與TTL、COMS電路兼容。HS0038為直立側(cè)面收光型,它接收紅外信號頻率為38kHz,周期約26μs,同時能對信號進(jìn)行放大、檢波、整形,得到TTL 電平的編碼信號。三個管腳分別是地、+5V電源、解調(diào)信號輸出端。
PIC16F73經(jīng)過解碼得到SHT75的溫度和濕度數(shù)據(jù)后,通過溫濕度處理程序進(jìn)行線性補償?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)上電后首先進(jìn)行系統(tǒng)初始化操作,初始化主要完成對芯片內(nèi)部晶振的設(shè)定,所用芯片管腳的定義,雙向管腳輸入輸出方向的設(shè)定,對定時器的初始化,PWM模塊的初始化,中斷的初始化等。對芯片管腳的定義要做到資源的合理調(diào)配,比如說每個IO在各個時間段用作什么功能要分配好,中斷初始化是因為在主程序運行起來后就要隨時等待中斷信號,實現(xiàn)系統(tǒng)的各部分功能,中斷初始化主要是定義中斷的觸發(fā)方式、中斷形式、中斷服務(wù)程序等。初始化完成后,系統(tǒng)開始正常運轉(zhuǎn),進(jìn)行溫濕度檢測、編碼、紅外發(fā)射、接收、解碼、轉(zhuǎn)換、計算等,除此之外還要進(jìn)行PWM輸出等操作。
溫濕度數(shù)據(jù)處理程序主要包括對溫度值和濕度值的檢測、計算、對結(jié)果進(jìn)行線性補償?shù)?。SHT75的相對濕度數(shù)字輸出特性曲線如圖3所示,由圖3可以看出,濕度輸出特性呈一定的非線性,因而要采用公式(1)進(jìn)行修正,其中SORH 為傳感器相對濕度測量值,各系數(shù)如表1所示。
表1 線性補償系數(shù)
圖3 濕度輸出特性
濕度值還與當(dāng)前溫度值相關(guān),因此還要對其進(jìn)行溫度補償,補償公式如公式(2)所示,各系數(shù)如表2所示。
表2 溫度補償系數(shù)
除此之外,溫濕度處理程序還具有以下功能:一是設(shè)定溫度濕度測量的分辨率,默認(rèn)的測量分辨率分別為14bit(溫度)、12bit(濕度),也可分別降至12bit和8bit,通常在高速或超低功耗的應(yīng)用中采用該功能;二是“電量不足監(jiān)測功能,該功能可監(jiān)測到Vdd電壓低于2.47V(SHT75正常工作電壓范圍是2.4V~5.5V)的狀態(tài),精度為±0.05V;三是可以通過程序控制芯片上集成的可通斷加熱元件,接通后可將SHT75的溫度提高大約5℃(9H),功耗增加8mA@5V,此功能主要為了比較加熱前后的溫度和濕度值,可以綜合驗證兩個傳感器元件的性能,在高濕(>95%RH)環(huán)境中,加熱傳感器還可以預(yù)防結(jié)露,同時縮短響應(yīng)時間,提高精度。
LED共4位,每位8段,共占用12個IO通道。LED用于實時顯示當(dāng)前溫度值或濕度值。4位LED中第一位用于區(qū)分溫度值和濕度值,如果該位不顯示或者是一個負(fù)號(-)就代表溫度,如果該位顯示(H)就代表濕度。后三位顯示相應(yīng)的數(shù)值,其中最后一位是小數(shù)。
結(jié)合93C46存儲芯片修改溫度和濕度上下限報警值。在測量過程中,如果溫度值或者濕度值達(dá)到報警值,蜂鳴器就會發(fā)出聲音。
5.CRC校驗
在現(xiàn)代工業(yè)中,利用微控制器進(jìn)行數(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值一致,則可以認(rèn)為信息傳送正確。使用CRC雖然不能保證100%檢測到錯誤,但它可以極大地增加發(fā)現(xiàn)錯誤的機(jī)會,而且它只需要極少的硬件消耗就能實現(xiàn),所以CRC被廣泛用作校驗手段。
SHT75采用的CRC碼(又稱為多項式碼)為,它能檢測出下列錯誤:所有的雙錯、奇數(shù)位錯、突發(fā)長度小于等于8的突發(fā)錯、絕大部分突發(fā)長度較長的突發(fā)錯。測量完溫度(或濕度)后,根據(jù)測量的信息生成一個CRC值,然后一同發(fā)送到微控制器中去。微控制器根據(jù)接收到的信息按照同樣的方法生成一個CRC值,若與接收到的CRC值一致,則可以認(rèn)為信息傳送正確;否則要求傳感器重新測量數(shù)據(jù)然后再按同樣的方式發(fā)送。
評論