摘要
介紹了一種基于無(wú)線數(shù)字
溫度傳感器的多點(diǎn)溫度測(cè)量系統(tǒng),給出了系統(tǒng)的硬件結(jié)構(gòu)及軟件流程圖。實(shí)際使用表明,在煙草、糧食等倉(cāng)庫(kù)中效果良好。
?。薄⑾到y(tǒng)硬件組成
本文所設(shè)計(jì)的測(cè)量系統(tǒng)由若干個(gè)處于各測(cè)量點(diǎn)的無(wú)線數(shù)字溫度傳感器和一臺(tái)帶無(wú)線收發(fā)電路的主機(jī)(單片機(jī))系統(tǒng)組成,其結(jié)構(gòu)如圖1所示。上位機(jī)與各下位機(jī)之間采用主從式異步無(wú)線串行通信方式。
圖1系統(tǒng)組成框圖
?。?1 無(wú)線數(shù)字溫度傳感器
無(wú)線數(shù)字溫度傳感器由溫度測(cè)量、無(wú)線收發(fā)和微控制器組成。電路圖如圖2所示。
圖2無(wú)線數(shù)字溫度傳感器
溫度測(cè)量采用單片溫度監(jiān)控系統(tǒng)集成電路AD7416,其芯片內(nèi)部包含有溫度傳感器和10位模數(shù)轉(zhuǎn)換器,可將感應(yīng)溫度轉(zhuǎn)換為0.25℃量化間隔的數(shù)字信號(hào)。測(cè)溫范圍-55~125℃,精度為±2℃。AD7416采用I2C串行總線和數(shù)據(jù)傳輸協(xié)議來(lái)實(shí)現(xiàn)與微控制器的數(shù)據(jù)傳輸,數(shù)據(jù)輸入/輸出線SDA及時(shí)鐘信號(hào)線SCL與微控制器PIC16C54的RB7和RB6相連。當(dāng)SCL保持高電平時(shí),SDA從高電子到低電平的跳變?yōu)閿?shù)據(jù)傳輸?shù)拈_(kāi)始信號(hào),隨后傳送AD7416的地址信息和讀眉控制位。其地址信息的格式為:1001A2A1A0R/W。讀/寫控制位為1時(shí),表示對(duì)AD7416進(jìn)行讀操作,為0時(shí),則表示進(jìn)行寫操作。當(dāng)每個(gè)字節(jié)傳送結(jié)束時(shí),必須在收到接收數(shù)據(jù)一方的確認(rèn)信號(hào)ACK后方可開(kāi)始下一步的操作。然后在地址信息和讀屑控制位之后傳送片內(nèi)寄存器地址和數(shù)據(jù)。zui后,在SCL保持高電平的情況下,當(dāng)SDA從低電平跳變到高電平時(shí)將終止數(shù)據(jù)的傳輸操作。地址編碼開(kāi)關(guān)用于傳感器的編號(hào)。AD7416片內(nèi)溫度傳感器可按預(yù)先設(shè)置的工作方式對(duì)環(huán)境溫度進(jìn)行實(shí)時(shí)測(cè)量,并將結(jié)果轉(zhuǎn)化為數(shù)字量存人到溫度值寄存器中地址00H。AD7416預(yù)先設(shè)置的工作方式分自動(dòng)測(cè)溫方式和低功耗方式兩種,本設(shè)計(jì)采用低功耗方式。當(dāng)需要對(duì)環(huán)境溫度進(jìn)行測(cè)量時(shí),通過(guò)I2C串行接口總線來(lái)寫入操作命令,此時(shí),芯片將由睡眠狀態(tài)轉(zhuǎn)入測(cè)溫狀態(tài)。當(dāng)溫度量化轉(zhuǎn)換結(jié)束后,芯片將重新轉(zhuǎn)人睡眠狀態(tài)。
無(wú)線收發(fā)電路采用nRF403單片射頻收發(fā)芯片。芯片內(nèi)包含有發(fā)射功率放大器,低噪聲接收放大器,晶體振蕩器,鎖相環(huán),壓控振蕩器,混頻器等電路。工作頻率433MHz,FSK調(diào)制解調(diào),采用晶體振蕩和PLL頻率合成技術(shù),接收靈敏度為—105dBm,發(fā)射功率為10dBm,待機(jī)狀態(tài)電流消耗僅10μA。在接收模式中,射頻輸人信號(hào)被低噪聲放大器放大,經(jīng)由混頻器變換,這個(gè)被變換的信號(hào)在送人解調(diào)器之前被放大和濾波,經(jīng)解調(diào)器解調(diào),解調(diào)后的數(shù)字信號(hào)在DOUT端輸出。在發(fā)射模式中,壓控振蕩器的輸出信號(hào)是直接送人到功率放大器,DIN端輸入的數(shù)字信號(hào)被頻移鍵控后饋送到功率放大器輸出。在接收模式中,射頻輸入信號(hào)被低噪聲放大器放大,經(jīng)由混頻器變換,這個(gè)被變換的信號(hào)在送人解調(diào)器之前被放大和濾波,經(jīng)解調(diào)器解調(diào),解調(diào)后的數(shù)字信號(hào)在DOUT端輸出。在發(fā)射模式中,壓控振蕩器的輸出信號(hào)是直接送人到功率放大器,DIN端輸入的數(shù)字信號(hào)被頻移鍵控后饋送到功率放大器輸出。
芯片引腳9腳DIN輸人數(shù)字信號(hào),與微控制器的RB0相連,需要發(fā)射的數(shù)字信號(hào)通過(guò)DIN輸入;10腳DOUT輸出數(shù)字信號(hào),與微控制器的RBl相連,解調(diào)出來(lái)的信號(hào)經(jīng)過(guò)DOUT輸出進(jìn)入微控制器;18腳PWR-UP電源開(kāi)關(guān)控制,與微控制器的RB2相連:PWR-UP=“1”為工作模式,PWR_UP=“0”為待機(jī)模式,待機(jī)模式電路進(jìn)入待機(jī)睡眠狀態(tài),工作電流8μA,在待機(jī)睡眠狀態(tài)電路不接收和發(fā)射數(shù)據(jù)。19腳TXEN為發(fā)射允許控制,與微控制器的RB3相連:TXEN=“1”為發(fā)射模式;TXEN=“0”為接收模式。接收模式轉(zhuǎn)換為發(fā)射模式的轉(zhuǎn)換時(shí)間至少1ms;發(fā)射模式轉(zhuǎn)換為接收模式的轉(zhuǎn)換時(shí)間至少3ms。
微控制器采用PIC16C54。系統(tǒng)采用LP低頻低功耗晶體振蕩方式,地址編碼開(kāi)關(guān)用于傳感器的編號(hào),RB口分別與AD7416和nRF403的引腳相連,用于溫度和無(wú)線收發(fā)控制。由于無(wú)線溫度傳感器采用電池供電,整個(gè)電路采用低功耗設(shè)計(jì)。
?。?2 主機(jī)系統(tǒng)
主機(jī)(上位機(jī))采用AT98C51單片機(jī),外接nRF403無(wú)線收發(fā)電路、健盤顯示及微型打印機(jī)等電路。電路組成如圖3所示。
圖3主機(jī)系統(tǒng)組成框圖
?。?、系統(tǒng)工作原理及軟件設(shè)計(jì)
在這個(gè)多點(diǎn)溫度測(cè)量系統(tǒng)中,系統(tǒng)采用查詢方式對(duì)各點(diǎn)的溫度進(jìn)行測(cè)量,使用了多臺(tái)PIC單片機(jī)作為下位機(jī),并按照上位機(jī)的要求將采得的溫度數(shù)據(jù)傳送給上位單片機(jī)AT89C51系統(tǒng)。上位機(jī)與各下位機(jī)之間采用主從式的異步串行通訊方式,即下位機(jī)接到上位機(jī)的通信信號(hào)時(shí)才做出響應(yīng),否則將一直處于睡眠狀態(tài)。
限于篇幅,這里主要是設(shè)計(jì)下位機(jī)即PIC16C54單片機(jī)與上位機(jī)即AT98C51單片機(jī)的通信程序,而AT98C51單片機(jī)與顯示器件,打印機(jī)及通信程序是大家所熟知的,這里不作討論。
下位機(jī)型號(hào)為PICl6C54,它體積小,功能強(qiáng),功耗低。它沒(méi)有專門的串行通訊口及相關(guān)的控制字和標(biāo)志位,采用普通I/O口和特定的通信協(xié)議,實(shí)現(xiàn)了主從式的多機(jī)串行通訊,實(shí)際應(yīng)用中取得良好效果。
鑒于上位機(jī)對(duì)下位機(jī)發(fā)送的命令只有2種:呼叫、發(fā)送溫度測(cè)量數(shù)據(jù)。呼叫命令即是上位機(jī)欲與之通信的下位機(jī)的編號(hào),而發(fā)送命令只要不與呼叫命令重復(fù),即可以將下位機(jī)的地址編號(hào),同樣作為數(shù)據(jù)命令來(lái)發(fā)送。具體方法是,在單片機(jī)的程序中,設(shè)置一個(gè)標(biāo)志寄存器FLAG,將它的某一位如第7位,即FLAG7作為控制位,先將其設(shè)為0。各下位機(jī)在接收到上位機(jī)命令之后,首先查看FLAG7為1還是為0,如果FLAG7為1,則轉(zhuǎn)入溫度測(cè)量程序和發(fā)送溫度測(cè)量數(shù)據(jù)段;若為0則將接收到的命令與本機(jī)地址相比較,若不同,則返回睡眠狀態(tài),FLAG7仍為0;若相同這種情況說(shuō)明:上位機(jī)此時(shí)確實(shí)發(fā)送的是呼叫命令則將FLAG7置:為1,表示已得知上位機(jī)要與自己通信,同時(shí)將本機(jī)地址傳給上位機(jī)作為回應(yīng)。當(dāng)上位機(jī)再次發(fā)來(lái)命令時(shí),即可實(shí)現(xiàn)一對(duì)一的通信,程序流程圖如圖4所示。
圖4下位機(jī)與上位機(jī)的通信程序框圖
?。场⒔Y(jié)束語(yǔ)
所設(shè)計(jì)的無(wú)線多點(diǎn)溫度測(cè)量系統(tǒng)采用集成電路,電路結(jié)構(gòu)簡(jiǎn)單,工作穩(wěn)定可靠。設(shè)計(jì)中充分利用了各芯片的低功耗特性,有效地延長(zhǎng)了電池的使用時(shí)間;無(wú)線數(shù)據(jù)傳輸方便靈活,在煙草、糧食等倉(cāng)庫(kù)中應(yīng)用效果良好。