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