無線傳感器已成為不可缺少的器件,對(duì)于無線傳感器,,大家已有所耳聞。往期文章中,,小編對(duì)無線傳感器基礎(chǔ)知識(shí)有所介紹,。為增進(jìn)大家對(duì)無線傳感器的認(rèn)識(shí),本文將對(duì)無線傳感器的應(yīng)用無線溫度傳感器加以探討,,主要在于闡述它的設(shè)計(jì)方案,。
目前,大多采用的是有線多點(diǎn)溫度采集系統(tǒng),,通過安裝溫度節(jié)點(diǎn)來實(shí)現(xiàn)對(duì)室內(nèi)外溫度監(jiān)控,。這種傳統(tǒng)的多點(diǎn)采集系統(tǒng)需要用導(dǎo)線與每個(gè)溫度采集節(jié)點(diǎn)連接,其技術(shù)成熟,,制作成本相對(duì)較低,。但是,在許多場合需要將傳感器節(jié)點(diǎn)直接放置在目標(biāo)地點(diǎn)進(jìn)行現(xiàn)場的數(shù)據(jù)采集,,這就要求傳感器節(jié)點(diǎn)具有無線通信的能力,。同時(shí),由于無線傳感器通常使用電池作為能源,,所以,,它對(duì)能耗要求非常高。
本設(shè)計(jì)主要是基于433 MHz ISM頻段,,無需申請(qǐng)就可以使用,。該設(shè)計(jì)方案有許多明顯的優(yōu)點(diǎn):傳輸速度快、距離遠(yuǎn),、數(shù)據(jù)穩(wěn)定;采用低功耗模式,,延長電池使用時(shí)間;能保證任何時(shí)候數(shù)據(jù)不丟失,提高系統(tǒng)的強(qiáng)健度,。
1系統(tǒng)硬件設(shè)計(jì)
所設(shè)計(jì)的無線溫度傳感器主要由以下幾部分組成:溫度測量,、發(fā)射部分、接收部分,、LCD顯示部分以及操控部分。系統(tǒng)結(jié)構(gòu)圖如圖1所示,。
1.1 溫度測量電路
在溫度測量電路中采用Dallas公司生產(chǎn)的1-Wire總線數(shù)字溫度傳感器DS18B20,。溫度測量電路如圖2所示。
DS18B20是3引腳TO-92小體積封裝形式;溫度測量范圍為-55~125℃,,可編程為9-12位A/D轉(zhuǎn)換精度,,測溫分辨率可達(dá)0.062 5℃,被測溫度以帶符號(hào)擴(kuò)展的16位數(shù)字方式串行輸出,。
DS18B20內(nèi)部結(jié)構(gòu)主要由4部分組成:64位ROM,、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和 TL及配置寄存器。ROM中的64位序列號(hào)是出廠前被光刻好的,,它可以看作是該DS18B20的地址序列碼,,每個(gè)DS18B20的64位序列號(hào)均不相同。 ROM的作用是使每一個(gè)DS18B20都各不相同,,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS181E0的目的,。
DS18B20中的溫度傳感器完成對(duì)溫度的測量,用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式提供,,以0.062 5℃/LSB形式表達(dá),。例如+25.062 5℃的數(shù)字輸出為0191H,-25.062 5℃的數(shù)字輸出為FF6FH,。
高低溫報(bào)警觸發(fā)器TH和TL,、配置寄存器均由一個(gè)字節(jié)的E2PROM組成,使用一個(gè)存儲(chǔ)器功能命令可對(duì)TH,,TL或配置寄存器寫入,。其中配置寄存器的格式如下:
R1和R0決定溫度轉(zhuǎn)換的精度位數(shù):R1R0=“00”,9位精度,,最大轉(zhuǎn)換時(shí)間為93.75 ms;R1R0=“01”,,10位精度,最大轉(zhuǎn)換時(shí)間為187.5 ms;R1R0=“10”,,11位精度,,最大轉(zhuǎn)換時(shí)間為375 ms;R1R0;“11”,12位精度,,最大轉(zhuǎn)換時(shí)間為750 ms;未編程時(shí)默認(rèn)為12位精度,。設(shè)計(jì)取R1R0=“11”。
1.2 無線收發(fā)電路
1.2.1 IA4421與單片機(jī)的接口
IA4421支持SPI通信協(xié)議,,本設(shè)計(jì)選擇了美國ATMEL公司出品的高性能單片機(jī)ATmega324p,,其內(nèi)置增強(qiáng)型SPI接口,并且有32 kB的FLASH,,能夠滿足在系統(tǒng)中的LCD上顯示中文字符,。IA4421與單片機(jī)的接口電路示意圖如圖3所示。
ATmega324p內(nèi)置的增強(qiáng)型串行外設(shè)接口SPI提供訪問一個(gè)全雙工同步串行總線的能力,。SPI所使用的4個(gè)信號(hào)為MOSI,,MISO,SCK 和SS,。MOSI用于從主器件到從器件的串行數(shù)據(jù)傳輸;MISO用于從器件到主器件的串行數(shù)據(jù)傳輸;SCK用于同步主器件和從器件之間在MOSI和 MISO線上的串行數(shù)據(jù)傳輸,。
1.2.2 無線發(fā)送時(shí)序
IA4421的發(fā)送方式為發(fā)送寄存器緩沖數(shù)據(jù)傳輸方式,由配置設(shè)置命令的第7位el來使能,,圖1可以看出,,IA4421共有2個(gè)8位的數(shù)據(jù)寄存器,發(fā)送的數(shù)據(jù)首先被鎖存到其中一個(gè)數(shù)據(jù)寄存器中,當(dāng)電源管理命令的第5位et被置1,,則發(fā)送器開始以設(shè)置的碼率從第一個(gè)寄存器向外發(fā)送數(shù)據(jù),。
每次發(fā)送數(shù)據(jù)必須以0xAA作為發(fā)送數(shù)據(jù)的前導(dǎo)碼,否則外部接收裝置無法接收數(shù)據(jù),。若是采用同步模式,,則要用0x2DD4作為同步模式的標(biāo)志碼,然后才能開始傳輸數(shù)據(jù),。引腳nIRQ可以用來檢測寄存器是否準(zhǔn)備好從微處理器接收下一個(gè)字節(jié)來發(fā)送,,若是引腳nIRQ變?yōu)榈碗娖剑瑒t表示寄存器準(zhǔn)備好了,。
1.2.3 無線接收時(shí)序
IA4421的接收方式有兩種:一種是一直接收;另一種是FIFO模式,。前一種方式并不推薦,會(huì)引起較高的誤碼率,。本設(shè)計(jì)采用后一種模式,。在相應(yīng)的控制字都設(shè)置好之后,數(shù)據(jù)已進(jìn)入緩沖器中,,若引腳nIRQ變成低電平,,則表示IA4421準(zhǔn)備好接收數(shù)據(jù),這時(shí)發(fā)送FIFO讀命令字,,開始接收,。
1.3 外圍天線設(shè)計(jì)
IA4421的支持天線直接驅(qū)動(dòng),設(shè)計(jì)相當(dāng)簡單方便并且通信距離長,。一個(gè)50 Ω的外接螺旋天線和對(duì)應(yīng)的差分電路就可以實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和接收,。本系統(tǒng)設(shè)計(jì)的天線是用1.17 cm的單芯銅導(dǎo)線實(shí)現(xiàn),導(dǎo)線的直徑是0.6 mm,,用螺絲刀的金屬棒饒制7圈成螺旋狀,。經(jīng)過實(shí)驗(yàn),實(shí)際有效的通信距離能達(dá)到200 m左右,,滿足了系統(tǒng)需要,。
2 系統(tǒng)軟件設(shè)計(jì)
2.1 單片機(jī)軟件設(shè)計(jì)
單片機(jī)軟件部分主要包括主程序、中斷子程序,、測溫子程序,、LCD的轉(zhuǎn)換顯示,蜂鳴器報(bào)警子程序,,按鍵子程序以及SPI子程序等。為了降低功耗,,使用中斷來喚醒單片機(jī)進(jìn)行測溫等工作,,因此主程序部分比較簡單,主要負(fù)責(zé)系統(tǒng)各部分初始化和中斷的調(diào)用,在系統(tǒng)初始化完成后就直接進(jìn)入睡眠模式,,當(dāng)中斷到來時(shí)單片機(jī)退出睡眠模式,,調(diào)用中斷子程序?qū)崿F(xiàn)測溫、轉(zhuǎn)換顯示,、溫度數(shù)據(jù)的傳輸?shù)裙δ?。單片機(jī)控制程序流程圖如圖4所示。
2.2 IA4421應(yīng)用程序設(shè)計(jì)
本系統(tǒng)是基于無線收發(fā)芯片IA4421和單片機(jī)ATmega324p的增強(qiáng)型串行外設(shè)接口SPI來實(shí)現(xiàn)無線數(shù)據(jù)的傳輸,,在核心協(xié)議棧上編寫自己的上層應(yīng)用程序,。發(fā)送接收數(shù)據(jù)的程序流程圖如圖5所示。
2.3 低功耗設(shè)計(jì)
作為無線傳感器,,低功耗運(yùn)行可以最大限度地延長設(shè)備的有效使用時(shí)間,,本系統(tǒng)是采用電池供電,功耗肯定就是一個(gè)不得不考慮的問題,。為了獲得最佳性能,,設(shè)計(jì)時(shí)在電源損耗和可用性方面必須根據(jù)情況權(quán)衡使用,除了選用低功耗器件外,,還從以下幾個(gè)方面設(shè)計(jì)電源管理程序以盡量減少無線溫度傳感器的功耗:
(1)由于無線溫度傳感器負(fù)責(zé)向控制終端傳輸數(shù)據(jù),,因此何時(shí)進(jìn)行數(shù)據(jù)采集、何時(shí)進(jìn)行數(shù)據(jù)傳輸可以由上位機(jī)的控制終端決定,,非常適合使用休眠模式和呼吸模式,,通過減少IA4421在微微網(wǎng)中的活動(dòng)達(dá)到節(jié)電的目的。把控制終端作為主設(shè)備,,將電源管理程序設(shè)計(jì)在終端的應(yīng)用控制層中,,并由控制終端完成設(shè)備的查詢、配對(duì),、建鏈等工作,,當(dāng)無線傳感器與控制終端配對(duì)成功并連接后進(jìn)入休眠模式,此時(shí)主從設(shè)備仍然保持著信道,,只是不能發(fā)送和接收數(shù)據(jù),。當(dāng)需要進(jìn)行數(shù)據(jù)傳輸時(shí),退出休眠模式進(jìn)入呼吸模式,,通過呼吸時(shí)隙發(fā)送數(shù)據(jù),,呼吸間隔可設(shè)為20~40 ms,間隔過大會(huì)帶來明顯延遲,,當(dāng)數(shù)據(jù)傳輸結(jié)束后再次進(jìn)入休眠模式,,從而盡可能地降低能耗。
(2)應(yīng)用單片機(jī)的睡眠模式達(dá)到節(jié)能目的,。當(dāng)IA4421退出待機(jī)狀態(tài),,發(fā)送指令進(jìn)行數(shù)據(jù)采集時(shí),,IA4421的中斷請(qǐng)求標(biāo)志位nIRQ產(chǎn)生低電平,通過中斷標(biāo)志位上電平的變化產(chǎn)生外部中斷來喚醒單片機(jī)進(jìn)入工作狀態(tài),。