1 系統(tǒng)概述
目前在2.4 GHz頻段的集成射頻芯片有多種,,性能各有差異,表1列出了幾種常用芯片的性能特點,。
本系統(tǒng)采用MSP430F247單片機和EMC公司的EMl98810芯片進行設計,。MSP430系列單片機是一個16位精簡指令集(RISC)微處理器,。它具有豐富的尋址方式(7種源操作數尋址,4種目的操作數尋址),,簡潔的27條內核指令以及大量的模擬指令,;大量的寄存器以及片內數據存儲器都可參加多種運算;具有高效的查表處理指令,;有較高的處理速度,,在8 MHz晶振驅動下指令周期為125 ns;中斷源較多,,并且可以任意嵌套,;當系統(tǒng)處于省電的備用狀態(tài)時,用中斷請求喚醒只用6μs,。MSP430系列單片機的電源電壓采用1.8~3.6 V,,其在1 MHz的時鐘條件下運行時,芯片的電流為200~400μA左右,,時鐘關斷模式最低只有O.1 μA,。
EMl98810芯片內建2.4 GHz GFSK射頻收發(fā)器,帶有8位數據幀無線收發(fā)功能,,前導區(qū)可以設置為1~8字節(jié),,支持1~4個字地址(最多可達64位),最大數據傳輸速率為1 Mbps,,允許長數據包傳送,;頻率范圍為2 400~2 482 MHz(81信道),傳輸距離100 m(PCB天線),,RF" title="RF">RF輸出功率2 dBm,,接收靈敏度在-85 dBm以上,采用SPI數字編程接口,,接口電壓為2.5~3.7 V,。該芯片發(fā)射功率可數字編程調節(jié),通過寄存器的設置很容易實現低功耗模式,;內建多種糾檢錯功能,,采用各種有效載荷數據格式來消除直流漂移量;支持FEC的1/3,、2/3糾檢錯功能和CRC16檢錯功能,。內部具有FIFO和DIRECT兩種工作模式:FIFO模式簡單易用,對MCU要求不高,,發(fā)射和接收各有64字節(jié)的緩沖區(qū),,一次發(fā)送、接收可以最多處理64字節(jié)數據;DIRECT模式對MCU要求較高,,需要MCU處理各種糾檢錯功能,。
2 系統(tǒng)設計
2.1 系統(tǒng)硬件設計
圖1是MSP430F247單片機和EMl98810的連接示意圖,通過SPI總線與RF芯片相連,。實際電路連接如圖2所示,。
2.2 系統(tǒng)軟件設計
數據包格式如下:
其中,前導區(qū)可配置為1~8字節(jié),,同步字可配置為16,、32、48或64位,;前導尾區(qū)可配置為4,、6、8……18位,;數據區(qū)可為NRZ碼,、Manch-ester碼、8/10位碼,、帶FEC的數據4種格式,。
系統(tǒng)上電后,先使EMl98810的RESET_n引腳為低電平,,以保證芯片有效復位,;再使此引腳為高電平,BRCLK腳會產生12 MHz的時鐘,;然后進行相關寄存器初始化,。初始化程序流程如圖3所示。
其中,,Reg48為數據幀格式配置寄存器,,需要設置前導區(qū)的長度(默認為3字節(jié)),同步字長度默認為64位,,前導尾默認長度為4位,數據默認為NRZ格式,。該寄存器的第2位為1則配置為睡眠模式,,第3位為1則配置為待機模式。Reg49~51用于設置發(fā)射和接收的延遲時間,。Reg52~55用于設置同步控制字,,默認全部為0000H。Reg57用于配置是否啟用CRC校驗,、包長度控制方式等,。Reg48~57詳細配置數據如下:
Reg0~28主要是配置發(fā)射功率、VCO、RSSI,、接收延時,、通道選擇與控制、AMS測試及控制,、BPF和AGC控制,、發(fā)射與接收數據控制、直流漂移控制,、PLL同步控制,、數據收發(fā)的時序控制、N/VCO參數控制,、時鐘等,。Reg0~28詳細配置數據如下:
Reg0~28初始化完成后再延時2 ms,就可以直接進行數據的收發(fā)了,。特別要注意的是,,幀寄存器Reg48~57必須在RFIC寄存器Reg0~28之前初始化。所有寄存器讀寫和收發(fā)的數據都是通過SPI接口進行的,,并且只支持從模式,,SPI操作時序如圖4所示。在芯片第28腳LDO_TUNE接地時(R1斷開,,R2接O Ω電阻),,其數據在SPI_CLK時鐘的上升沿有效;當LDO_TUNE接VDD時(R2斷開,,R1接0 Ω電阻),,數據在SPI_CLK時鐘的下降沿有效。只要SPI_SS為高電平,,寄存器中的數據就保持不變,;只有SPI_SS為低電平時,才能重新改寫寄存器中的內容,。
EMl98810有兩種檢測收發(fā)數據包長度的方法:一種是自動在數據幀內檢測出來,,最大幀長度不能超過255字節(jié)。先設置Reg57的第13位為1,,則發(fā)送或接收數據區(qū)中的第1個字節(jié)就代表數據的長度,,幀控制器會自動控制收發(fā)開始與停止。另外一種是保持發(fā)射或接收的狀態(tài)不變,,通過外接MSP430F247來控制數據包的正確發(fā)送與接收,。
發(fā)送數據流程如圖5所示。在發(fā)射數據時,,先設置Reg7的第8位為1,,允許在內部狀態(tài)機控制下進入數據發(fā)射狀態(tài),,再設置Reg7的O~6位為所選通道。在發(fā)送前導尾區(qū)數據前,,MSP430F247必須將數據放人FIFO中,,如果數據長度超過63字節(jié),應該分多次寫入,。FIFO_flag=1表示FIFO為空,,MSP430F247利用此信號作為中斷請求,保證發(fā)送數據寫入FIF0的實時性,,在數據發(fā)送完成后PKT_flag=1,。
如果設置Reg7[7]=1和Reg7[O~6]為與發(fā)射相同的通道,則芯片進入自動接收狀態(tài),,接收數據流程如圖6所示,。當檢測到同步字后會自動進行數據包的接收解碼,接收完成后進入待機模式,。如果接收數據超過63字節(jié),,則有FIFO_flag=1,MSP430F247利用此信號作中斷請求以保證讀出數據的實時性,。
在進行超低功耗設計時,,MSP430F247可以設置定時器中斷。平常處于LPM3或LPM4模式,,要發(fā)送數據時產生定時器中斷,,同時控制EMl98-810處于待機或睡眠模式。MSP430F247工作在LPM3模式下電流為O.8μA左右,,LPM4模式下電流為0.1μA左右,。EMl98810正常情況下發(fā)射電流26 mA,接收電流25 mA,,待機電流1.9mA,;睡眠模式下為3.5μA。若將EMl98810設置為睡眠模式,,將MSP430F247設置為LPM3模式,,則系統(tǒng)耗電僅為4.3μA,使用干電池供電完全可行,。
MSP430F247通過SPI接口與EMl98810相連,,進入LPM3模式和退出LPM3模式的程序如下:
將EMl98810的Reg48的第2位設置為1,并將SPI_SS設為高電平,,則進入睡眠模式,;如再將SPI_SS設為低電平,,則EMl98810會自動喚醒,,退出睡眠模式。
結語
經過實際電路連接后測試,數據發(fā)送端在進行500kbps速率下連續(xù)發(fā)送數據時,,整個系統(tǒng)電流為28.2 mA,,接收數據端的電流為26.1 mA;當發(fā)射端進入到睡眠模式時電流為5.2μA,;當接收端進入待機狀態(tài)LPM3后,,整個系統(tǒng)電流為l.9 mA。按照2節(jié)干電池容量1 300 mAh計算,,間隔1 min發(fā)送100字節(jié)數據,,考慮單片機模式切換時間,則在500 kbps速率下:
發(fā)送數據所需時間為5 ms,,1小時耗能:
28.2mA×5ms×60次=8460(mA·ms)
睡眠模式下1小時耗能:
5.2μA×3600S×1000ms=18720(mA·ms)
發(fā)送狀態(tài)下可以工作的時間為:
(1300mA×3600S×1000ms)/(18720+8460)=172185h
即2節(jié)干電池供電時可以工作20年,。同樣,可以計算出接收狀態(tài)下可以工作683小時(大約28天),。因此本設計可以適合長期進行低功耗無線數據采集方面的應用,。