32位和8位單片機(jī)的無線傳感器網(wǎng)絡(luò)系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:采用STM32F10X系列的芯片為主芯片、SH79F32為輔芯片,溫度傳感器DS18B20做采集工具,PTR8000無線模塊做通信工具,實(shí)現(xiàn)無線傳感器網(wǎng)絡(luò)功能。通過Altium Designer Release 10進(jìn)行原理圖設(shè)計(jì)及PCB板的繪制,并制作電路板、焊接電路板,之后利用Keil軟件設(shè)計(jì)程序,實(shí)現(xiàn)不同單片機(jī)之間的無線傳感器網(wǎng)絡(luò)通信,并完成了無線通信平臺(tái)的設(shè)計(jì)與制作。
引言
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)是由分布在監(jiān)測(cè)區(qū)域內(nèi)的大量的傳感器節(jié)點(diǎn),通過無線通信的方式形成的多跳自組織網(wǎng)絡(luò),可以組成區(qū)域內(nèi)的無線傳感器網(wǎng)絡(luò),廣泛應(yīng)用于環(huán)境監(jiān)測(cè),如溫度、濕度、壓力、短距離無線通信等。
無線傳感器網(wǎng)絡(luò),其主題是低成本、低功耗、多功能的集成化傳感器網(wǎng)絡(luò)。這些傳感器具有無線通信、數(shù)據(jù)采集和處理、協(xié)同合作的功能。無線傳感器網(wǎng)絡(luò)能夠通過各類集成化的傳感器協(xié)作地實(shí)時(shí)監(jiān)測(cè)、感知和采集各種環(huán)境或監(jiān)測(cè)對(duì)象的信息,通過嵌入式系統(tǒng)對(duì)信息進(jìn)行處理,并通過隨機(jī)自組織無線通信網(wǎng)絡(luò)以多跳中繼方式將所感知信息傳送到用戶終端,使用戶完全掌握監(jiān)測(cè)區(qū)域的情況并作出反應(yīng)。
1 無線傳感器網(wǎng)絡(luò)通信平臺(tái)系統(tǒng)的設(shè)計(jì)
無線傳感器網(wǎng)絡(luò)通信平臺(tái)系統(tǒng)由主機(jī)和從機(jī)組成,如圖1、2所示。從機(jī)的處理器為SH79F32單片機(jī),外掛128×64液晶顯示模塊、nRF905無線模塊、數(shù)字溫度傳感器DS18B20等。主機(jī)的處理器為芯片STM32F103R8T6,是基于ARM的32位微控制器俗稱單片機(jī),外掛LCM045段式液晶顯示模塊、nRF905無線模塊等。
1.1 處理器
主機(jī)和從機(jī)分別采用兩種芯片,分別是STM32F103R8T6和SH79F32。STM32F103R8T6是基于ARM核的32位微控制器的增強(qiáng)型單片機(jī),64引腳,閃存存儲(chǔ)器容量為64 KB,最后一位“6”說明此款芯片的工業(yè)級(jí)溫度范圍是-40~85℃。中穎單片機(jī)SH79F32作為從機(jī)主芯片(單片機(jī))。 SH79F3是一顆整合了低功耗時(shí)鐘和存儲(chǔ)周期的高速8051可兼容單片機(jī)。在同樣的振蕩頻率下,較之傳統(tǒng)的8051芯片,它有著運(yùn)行更快速的特性。
為了達(dá)到高可靠性和低功耗,SH79F32內(nèi)建PLL時(shí)鐘、SLP(Super Low Power)LCD驅(qū)動(dòng)器、看門狗定時(shí)器、低電壓復(fù)位功能、低電壓檢測(cè)功能。此外SH79F32還提供了低功耗省電模式。
1.2 LCM045顯示模塊
設(shè)計(jì)需要將無線通信中傳遞的數(shù)據(jù)顯示出來以便于終端進(jìn)行數(shù)據(jù)采集和處理,并利用這些數(shù)據(jù)對(duì)監(jiān)控區(qū)域進(jìn)行調(diào)控,本設(shè)計(jì)選用北京青云創(chuàng)新科技生產(chǎn)的LCM045段式液晶顯示模塊產(chǎn)品。
1.3 128×64顯示屏
節(jié)點(diǎn)顯示采用KS0108控制器系列的128×64點(diǎn)陣液晶顯示模塊。它的特性有:工作電壓為+5 V±10%,可自帶驅(qū)動(dòng)LCD所需的負(fù)電壓;全屏幕點(diǎn)陣,點(diǎn)陣數(shù)為128(列)×64(行),可顯示8×4個(gè)(16×16點(diǎn)陣)漢字,也可完成圖形、字符的顯示,不帶字庫;與CPU接口采用5條位控制總線和8位并行數(shù)據(jù)總線輸入/輸出,適配M6800系列時(shí)序;內(nèi)部有顯示數(shù)據(jù)鎖存器;具有簡(jiǎn)單的操作指令,如顯示開關(guān)設(shè)置,顯示起始行設(shè)置,地址指針設(shè)置和數(shù)據(jù)讀/寫等指令。
1.4 溫度傳感器
溫度傳感器選用Maxim公司出產(chǎn)的DS18B20,其可以提供9位溫度讀數(shù),指示器件的溫度。DS18B20有兩種供電方式,可以使用寄生電源供電,也可以使用外部電源供電。如果使用寄生電源,不用外部電源,則當(dāng)總線為高時(shí)由DQ端提供電源,同時(shí)向內(nèi)部電容充電,以求在總線拉低時(shí)為DS18B20提供電量。上電后,DS18B20進(jìn)入空閑狀態(tài),要啟動(dòng)溫度測(cè)量和模擬到數(shù)字的轉(zhuǎn)換,處理器須向其發(fā)出Convert T[44h]的命令。轉(zhuǎn)換完成后,DS18B20回到空閑狀態(tài)。溫度數(shù)據(jù)是以帶符號(hào)位的16位補(bǔ)碼形式存儲(chǔ)在溫度寄存器中。
2 無線傳感通信平臺(tái)硬件設(shè)計(jì)
本設(shè)計(jì)主機(jī)采用STM32F103R8T6單片機(jī)。
2.1 基于STM32芯片的主機(jī)通信單元
PTR8000無線通信模塊的核心是nRF905芯片,該芯片工作在433/868/915 MHz的ISM頻段。nRF905的RF工作頻率由配置寄存器中的CH_NO和HFREQ_PLL設(shè)置。在本次設(shè)計(jì)中寫配置寄存器第一字節(jié)設(shè)置工作頻率為433.0 MHz。配置各字節(jié)寄存器內(nèi)容為write_nrf(0x0c),即不重發(fā)數(shù)據(jù)、正常模式、+10 dBm輸出功率、433 MHz頻段;write_nrf(0x44),即4字節(jié)TX地址寬度、4字節(jié)RX地址寬度;write_nrf(0x20),即32字節(jié)RX有效數(shù)據(jù)寬度;write_nrf(0x20),即32字節(jié)TX有效數(shù)據(jù)寬度;write nrf(‘s’),RX地址第0字節(jié);write_nrf(‘l’),RX地址第1字節(jié);write_nrf(‘a’),RX地址第2字節(jié);write_nrf(‘l’),RX地址第3字節(jié);write nrf(0x5b),8位CRC校驗(yàn)位、允許、晶體16 MHz、沒有外部時(shí)鐘。無線通信模塊PTR8000電路如圖3所示。
2.2 基于STM32主機(jī)的顯示單元
LCM045液晶模塊無論是寫命令還是讀/寫數(shù)據(jù)都是根據(jù)其本身的格式和時(shí)序完成的,它有三種時(shí)序,分別是讀數(shù)據(jù)RAM時(shí)序、寫命令/數(shù)據(jù)時(shí)序和連續(xù)寫數(shù)據(jù)時(shí)序。對(duì)應(yīng)的三種格式,即讀數(shù)據(jù)格式、寫命令格式和寫數(shù)據(jù)格式。
2.3 基于SH79F32節(jié)點(diǎn)電源單元
電源單元工作原理:首先外部220 V標(biāo)準(zhǔn)電壓經(jīng)變壓器轉(zhuǎn)換為12 V交流電壓,12 V交流點(diǎn)在經(jīng)過由二極管組成的橋式全波整流電路后變?yōu)?2 V直流電壓,然后12 V的直流經(jīng)LM7805芯片轉(zhuǎn)換為單片機(jī)可用的+5 V電壓,再經(jīng)過LM117T電壓芯片轉(zhuǎn)換輸出穩(wěn)定的+3.3 V工作電壓,+3.3 V電壓為無線模塊供電,+5 V電壓為單片機(jī)和其他模塊電路供電,其中各個(gè)電容起到濾波的作用。
2.4 基于SH79F32節(jié)點(diǎn)處理單元
如圖4所示,為SH79F32單片機(jī)的接口電路,所選取的晶振頻率為6 MHz,圖中J4為向芯片燒入程序的接口,通過向TCK、TMS、TDO、TDI四個(gè)引腳灌入特定的序列進(jìn)入燒寫模式。P0口的8條數(shù)據(jù)線接液晶模塊的數(shù)據(jù)口,P1.2~P1.7接液晶模塊的控制口,P4口、P2.6、P2.7、P3.7和無線模塊接口相連,P3.0與P3.1引出的兩條線屬于串口通信線,通過MAX202電壓轉(zhuǎn)換芯片,直接與PC機(jī)進(jìn)行通信??刂艱S18B20測(cè)溫只需要一條數(shù)據(jù)線即可,本設(shè)計(jì)由P3.3口控制溫度采集并讀取溫度值。
3 無線通信軟件設(shè)計(jì)
nRF905有兩個(gè)激活(收發(fā))模式和兩種省電模式,nRF905模式?jīng)Q定于trx_ce、tx_en和pwp_up的設(shè)置。典型的ShockBurstTM TX的流程圖如圖5所示,當(dāng)應(yīng)用單片機(jī)的遠(yuǎn)程節(jié)點(diǎn)的數(shù)據(jù)、接收節(jié)點(diǎn)地址(TX地址)和有效載荷數(shù)據(jù)(TX載荷)送入nRF905通過SPI接口。然后單片機(jī)置trx_ce和tx_en高,這激活了nRF905 ShockBurst TM傳輸。然后接收機(jī)自動(dòng)開機(jī),數(shù)據(jù)包完成(CRC計(jì)算)和傳播(100 kbps,GFSK,曼徹斯特編碼),DR設(shè)置為高,傳輸完成。
典型的ShockBurstTM RX接收流程圖見圖6。首先,ShockBurstTM RX是通過設(shè)置高和低trx_ce、tx_en實(shí)現(xiàn)的。當(dāng)nRF905的檢測(cè)到載波,載波檢測(cè)(CD)引腳設(shè)置高。當(dāng)一個(gè)有效的地址收到,地址匹配(AM)引腳設(shè)置高。當(dāng)一個(gè)有效的數(shù)據(jù)包已經(jīng)收到(正確CRC發(fā)現(xiàn)),數(shù)據(jù)準(zhǔn)備(DR)引腳設(shè)置高。當(dāng)nRF905的數(shù)據(jù)準(zhǔn)備(DR)和地址匹配(AM)低了。該芯片是現(xiàn)在準(zhǔn)備進(jìn)入單片機(jī)TX或RX,掉電模式。
4 性能測(cè)試
測(cè)試結(jié)果如圖7所示,圖中左邊是主機(jī)電路,顯示被測(cè)溫度為30.7℃;圖中右邊為節(jié)點(diǎn)(從機(jī))電路,其顯示屏為128×64液晶屏,其上顯示第1行字樣temperature;第2行字樣030.7;第3行字樣為“TX:0041”(即節(jié)點(diǎn)發(fā)送第41次)。節(jié)點(diǎn)的溫度由DS18B20拾取,顯示在節(jié)點(diǎn)機(jī)的液晶屏上,同時(shí),由在從機(jī)上的無線模塊以無線信號(hào)發(fā)出去。
主機(jī)上的無線模塊接收信號(hào),并把溫度值也顯示在主機(jī)屏上。經(jīng)測(cè)試,主從機(jī)之間的距離達(dá)到500 m時(shí),溫度傳感、通信成功。
結(jié)語
本文通過主機(jī)和傳感器節(jié)點(diǎn)硬件的設(shè)計(jì)以及軟件系統(tǒng)的部署,設(shè)計(jì)電路,焊接電路,編程,調(diào)試等,用兩種不同單片機(jī)分別作為主從機(jī)的處理器,外掛無線通信模塊PTR8000、數(shù)字溫度傳感器DS18820,實(shí)現(xiàn)了溫度傳感器系統(tǒng)平臺(tái)的功能,通信距離可以達(dá)到500m。