《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 一種無線傳感器開發(fā)系統(tǒng)的設(shè)計方法
一種無線傳感器開發(fā)系統(tǒng)的設(shè)計方法
摘要: 本文介紹了一種無線傳感器開發(fā)系統(tǒng)的設(shè)計方法.包括節(jié)點和開發(fā)板,。節(jié)點具有功耗低,、通用性好的特點,帶有多種傳感器,,可以感知溫度,、濕度和光等,,并帶有擴展口。開發(fā)板用于配置節(jié)點和下載程序,。開發(fā)板具有友好的上位機用戶界面,,并支持多種編譯系統(tǒng)生成的不同目標文件格式。
Abstract:
Key words :

微電子和無線通信技術(shù)的飛速發(fā)展,,使得低功耗,、低成本、體積微小的傳感器網(wǎng)絡(luò)的研制成為可能,。
  
本文介紹了一種無線傳感器開發(fā)系統(tǒng)的設(shè)計方法.包括節(jié)點和開發(fā)板,。節(jié)點具有功耗低、通用性好的特點,,帶有多種傳感器,,可以感知溫度、濕度和光等,,并帶有擴展口,。開發(fā)板用于配置節(jié)點和下載程序。開發(fā)板具有友好的上位機用戶界面,,并支持多種編譯系統(tǒng)生成的不同目標文件格式,。
  
1 節(jié)點的硬件設(shè)計
  
傳感器節(jié)點的硬件結(jié)構(gòu)主要由傳感模塊、處理模塊,、通信模塊和電源模塊組成,。傳感器節(jié)點一般采用電池供電,由于節(jié)點放置在危險或不易到達的區(qū)域,,更換電池幾乎是不可能,,因此節(jié)能成為設(shè)計的關(guān)鍵技術(shù),此外,,還要控制成本和體積,。設(shè)計的節(jié)點硬件框圖如圖1所示。

 

1.1 微處理器模塊


微處理器選用ATMEL公司的ATMELGAl28L,。該芯片功耗低,,且有多種睡眠模式;多個中斷源,,53個10口,,可以連接多個傳感器擴展口;內(nèi)帶8路 10位A/D轉(zhuǎn)換器,,可以將傳感器送來的模擬信號轉(zhuǎn)換為數(shù)據(jù)信號,;雙向I2C串行總線接口,;主/從SPI串行接口;可編程串行通信接口,;JTAG和SPI 在線編程方式等,。該芯片的豐富資源可以滿足節(jié)點數(shù)據(jù)處理和傳輸?shù)囊螅绕涫橇N不同的睡眠模式,,特別適合有能量限制的應(yīng)用,。
  
存儲器存放待處理或接收的數(shù)據(jù).選用Mierochip公司的25AAl024。該芯片的存儲量為1024KB,,功耗低,,讀寫方式為SPI,占用10口少,。節(jié)點索引號產(chǎn)生器選用MAXIM公司的DS2411,,用來產(chǎn)生48位隨機數(shù),作為節(jié)點的惟一標識號,。
  
1.2 射頻模塊
  
射頻芯片的選取直接影響節(jié)點的功耗,,因為節(jié)點消耗能量的近2/3都用于無線收發(fā)。選用的射頻芯片為NORDIC公司的nRF24L01,。該芯片功耗低,。在相同工作模式下,比Chipcon公司的CC2420芯片節(jié)省近l/3的能量,;工作于2.4G~2.5GHz ISM頻段,;支持高速跳頻;體積很??;外圍器件少,配置簡單,,且使用兩層PCB板,,節(jié)省成本。nRF24L0l配置框圖如圖2所示,。

 

  
nRF24L01與微處理器相連只需6根信號線,,其中4根是SPI信號線,與ATMELGAl28L的SPI口相連,;其余一根為片選,,另一根用于中斷請求。
  
射頻電路要取得好的RF性能,,PCB設(shè)計必須合理,。nRF24L01的供電電源必須經(jīng)過良好的濾波,并且與數(shù)字電路分開,;避免長距離走線,;在射頻信號輸出部分,,根據(jù)發(fā)送功率設(shè)置濾波網(wǎng)絡(luò),以實現(xiàn)阻抗匹配,,使到達天線的信號最強,。要防止高頻信號泄漏,否則會對發(fā)射信號造成很大干擾,。由于天線要散播電磁能量,需選用Q我較小的器件,。制作PCB板時,,在器件周圍覆銅,以提高抗干擾性能,。
  
1.3 傳患器模塊和擴展口
  
板上設(shè)有一光敏電阻感應(yīng)光信號,,由于是模擬信號,需接入ATMELGAl28L的AD引腳進行AD轉(zhuǎn)換后才可處理,。板上還裝有一數(shù)字型溫濕度傳感芯片SHT15,,可感知溫度和濕度,精確度較高,,且功耗低,,采用I2C讀寫,占有IO口很少,。
  
為了讓節(jié)點具有更廣泛的應(yīng)用,,節(jié)點板上接有擴展口,其中有I2C口,、AD口和中斷口等,,用來連接其他傳感器。
  
1.4 電源橫塊和電能消耗
  
節(jié)點有兩種供電方式,,在實驗室調(diào)試和測試時通過開發(fā)板供電,,在外界環(huán)境中工作時,用2個AA電池供電,。為了防止2個電源之間的干擾,,在板上加有一個手動開關(guān)。
  
因為電能的消耗決定了傳感器節(jié)點的使用壽命,,在節(jié)點的軟,、硬件設(shè)計時,必須充分考慮能源的有效性,。節(jié)點在各種運行模式下,,必須關(guān)閉不必要的模塊以節(jié)省能量。當(dāng)通信采用節(jié)點定時關(guān)閉和打開的協(xié)議且關(guān)閉與打開的時間比為1:99時,,使用2節(jié)1000毫安時(mAhr)的AA電池供電,,節(jié)點耗能如表1所示,。

 

在上述工作模式下,如果用2節(jié)1000mA-hr的AA電池供電,,則節(jié)點壽命為12.55個月,。此值是在最大發(fā)送功率情況下計算的。當(dāng)發(fā)送功率和收發(fā)速率變小時,,耗能更少,,傳感器的壽命會更長。
  
2 開發(fā)板的硬件設(shè)計
  
開發(fā)板的硬件系統(tǒng)框圖如圖3所示,。
 



節(jié)點CPU的JTAG口接在開發(fā)板上,。如果使用JTAG口下載和調(diào)試程序,則需要JTAG下載器,。為此,,設(shè)計了另一種下載方式,即串行下載,。CPU通過 USB口接收上位機的代碼,,然后通過SPI口下載到節(jié)點CPU的FLASH。CPU為中心控制模塊,,接收上位機的各種命令并進行相應(yīng)處理,。CPU芯片選用 ATMEL公司的ATMELGAl6L,該芯片帶有可編程UART口和工作于主機,,從機模式的SPI口,。

USB轉(zhuǎn)換芯片實現(xiàn)上位機端的USB數(shù)據(jù)與下位機端的UART數(shù)據(jù)之間的轉(zhuǎn)換。選用芯片為FT232BM,。由于編程板CPU,、ATMELGAl28都要通過USB口與上位機通信,為了防止不同輸入輸出信號間的干擾,,設(shè)計時用了兩個帶有使能控制的BUFFER來控制不同CPU串口通信的通斷,。

為了更方便地配置傳感器節(jié)點,在板上集成了一塊E2PROM,。目標代碼可以先存儲在EZPROM中,。當(dāng)需要向節(jié)點下載時,通過按鈕激發(fā)外部中斷即可將E2PROM的代碼通過SPI口寫入節(jié)點CPU,。操作方便簡單,,擺脫了上位機的限制。
  
節(jié)點連接器是17針的節(jié)點與開發(fā)板和擴展傳感器之間的接口,,除了編程口和串口,,還有連接傳感器的擴展口,包括I2C口、中斷口和AD口等,。
  
節(jié)點CPU SPI編程共需4根信號線,,其中3根SPI通信線與開發(fā)板CPU的SPI口相連,節(jié)點CPU的RESET信號 由開發(fā)板CPU的IO口控制即可,。
  
3 開發(fā)板軟件設(shè)計
  
3.1 上位機程序設(shè)計
  
用C++ Builder 6.0編寫上位機程序,,制作了用戶操作界面,并將不同編譯系統(tǒng)生成的多種目標文件格式轉(zhuǎn)換成上,、下位機約定的文件格式,,傳送給下位機。
  
為提高向ATMELGAl28L的FLASH和E2PROM寫代碼的效率和便于從E2PROM向FLASH寫代碼,,上位機傳送給下位機的代碼采用圖4所示的格式,。

 

  
圖4中,地址指該段代碼要寫入FLASH的初始地址,,包括2字節(jié)的頁地址和l字節(jié)的頁內(nèi)地址;序列號表示該段代碼是全部代碼中的第幾段,;長度指該段代碼的字節(jié)數(shù),,不包括地址和序列號。每一地址段代碼都采用表2的格式,。
  
上位機程序支持的目標文件格式有:TinyOS,、AVRGCC和IAR生成的Intel hex文件。Intel hex是Intel公司提出的一種文件標準,,是最常用的目標文件格式之一,。上位機程序還支持TI(德州儀器)公司提出的msp430-txt格式,該格式及說明如表2所示,。

 

上位機程序?qū)⒉煌幾g系統(tǒng)生成的不同格式的目標文件轉(zhuǎn)換成圖4所示的格式,,再發(fā)給下位機。上位機操作界面提供了各種命令按鈕,,用戶點擊命令按鈕后,,上位機即按制定的該命令模式處理協(xié)議發(fā)送命令和數(shù)據(jù)。在傳送文件時,,為確保數(shù)據(jù)傳送不出差錯,,采用了停止-等待傳輸協(xié)議。上位機發(fā)送約定長度的數(shù)據(jù)后停止發(fā)送,,等接收到下位機發(fā)來的確認標志后再開始發(fā)送,。上位機總程序框圖如圖5所示。

 

  
3.2 下位機程序設(shè)計
  
下位機接收上位機的命令,,完成讀寫FLASH,、E2PROM、鎮(zhèn)定位、熔絲位和USB口使用權(quán)的切換等功能,。由于實現(xiàn)的功能較多,,采用了模塊化、自下向上的結(jié)構(gòu)化設(shè)計方法,。首先按照ATMELCAl28L數(shù)據(jù)手冊提供的SPI編程算法,,用C語言實現(xiàn)了讀寫FLASH、鎖定位和熔絲位等模塊,。
  
程序設(shè)計的一個難點是將接收的上位機發(fā)送的文件寫入FLASH或E2PROM,,因為涉及到接收數(shù)據(jù)和寫FLASH或EZPROM的交互。解決方法是采用停止一等待傳輸協(xié)議進行數(shù)據(jù)傳送,。下位機開辟約定數(shù)量的緩沖區(qū),,利用中斷接收上位機數(shù)據(jù)至緩沖區(qū)滿,處理完緩沖區(qū)數(shù)據(jù)后發(fā)送確認標志,,上位機收到確認后再開始下一次發(fā)送,。
  
按制定的協(xié)議寫ATMELGA128L的FIASH的流程圖如圖6所示。

 

6.jpg

下載 (76 KB)
2010-7-15 10:51


  
寫EZPROM與寫FLASH類似,,只是要將接收的地址,、序列號、長度也寫入E2PROM,。代碼在E2PROM中存放時仍保持表2所示的格式,,即段初始地址、序列號,、該段長度,、數(shù)據(jù)的格式,以便將E2PROM中存儲的代碼寫入FLASH,。
  
編寫下位機程序時,,依據(jù)各模塊分別用子函數(shù)實現(xiàn)、模塊間接口清晰,、主程序簡單的原則,,實現(xiàn)了讀寫FLASH和E2PROM、讀寫鎖定位和鎖定位,、從 E2PROM寫FLASH等幾大模塊,,主函數(shù)接收到命令調(diào)用相應(yīng)模塊即可。當(dāng)按下中斷按鈕時,,中斷程序先檢測FLASH連接,,如果檢測成功,則調(diào)用從 E2PROM寫FLASH模塊,;否則紅燈閃爍指示操作失敗,。
  
使用本文設(shè)計的開發(fā)板對節(jié)點下載程序,,程序運行正常,節(jié)點間通信狀態(tài)良好,,且功耗低,,實現(xiàn)了預(yù)計的功能并滿足性能要求。
  
從設(shè)計過程和使用可以看出,,本開發(fā)系統(tǒng)具有以下優(yōu)點:
   
(1)節(jié)點功耗低,,體積小,射頻芯片靈敏度高,;
   
(2)節(jié)點通用性好,,可以連接多種傳感板;
   
(3)開發(fā)工具用戶界面友好,,支持多種目標文件格式,;
   
(4)代碼可存儲在E2PROM中,需要下載時按下按鈕便寫入FLASH,,配置節(jié)點方便,。
  
本文所設(shè)計的傳感器開發(fā)系統(tǒng)便于研究者做更深入的實踐研究,推動了傳感器更廣泛的應(yīng)用,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。