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