彭勝敏
(福州職業技術學院,福建 福州 350000)
景區采用的標簽自助式導覽系統可為游客提供全方位、個性化的導覽服務,增強觀眾的參觀體驗.目前,大多數景點采用無源式或主動式有源標簽等方式,為游客提供導覽服務.但是,隨著標簽導覽系統在景點的大量應用發現,游客使用無源標簽時需要被動的在指定位置近距離感應標簽,人性化差,而主動式標簽則因其電池使用壽命較短,需頻繁更換電池工不僅作量大而且給景區日常維護增加了負擔.主動式標簽的電池電量主要消耗在無線信號的發射上,標簽全天每隔一定的時間向外發射無線信號,而標簽僅在景區開放的8小時內,且有參觀者靠近一定范圍內才是有效工作時間,其余則是無意義的等待時間,白白耗費電能[1].針對以上問題,本文設計了一款低頻喚醒半主動式標簽,該標簽采用低頻喚醒,高頻數據收發,且關閉了標簽非工作時間無線信號的發射,能有效降低標簽的耗電量,增加電池的使用壽命.
標簽固定放置在景區各參觀點位置,當游客攜帶識別器靠近景點標簽一定范圍時,標簽被激活.標簽收發信息給游客攜帶的識別器,當景點附近沒有游客時,標簽處于睡眠省電狀態.標簽設計總體要求體積小、成本低,功耗小.因此,該標簽采用低頻喚醒、高頻響應的雙頻通訊方式設計.低頻喚醒功能主要是為了減少標簽工作電流,降低標簽功耗,從而延長電池壽命.高頻響應主要是為高速收發數據用.該標簽結構由主控MCU、低頻接收模塊和高頻收發模塊組成,如圖1所示.具體工作過程是系統上電,配置好低頻和高頻模塊后,該標簽處于睡眠省電狀態,當游客來到該標簽一定范圍時,攜帶的識別器收發的低頻信號喚醒標簽,標簽通過高頻收發相關信息數據給游客攜帶的識別器,達到景點識別的目的.

圖1 半主動標簽結構圖
半主動式標簽的硬件系統主要由3個模塊組成:主控模塊、低頻接收喚醒模塊和高頻收發模塊.
綜合考慮標簽體積、成本和功耗,主控模塊MCU采用Microchip公司的PIC16F690嵌入式微處理器.該處理器是20引腳8位 CMOS閃存單片機,具有超低功耗喚醒(ULPWU)功能,待機電流在3.0 V輸入電壓下小于1 mA,具有256 Byte的EEData,擦寫次數達百萬次,可用于存儲掉電后仍需要保存的數據,芯片集成8 M內部振蕩器,可以減少外部振蕩器的使用.本系統采用QFN封裝,體積僅為4 mm × 4 mm × 0.9 mm,并且集成同步串行端口,可用于與低頻模塊傳輸數據交互.標簽的工作溫度范圍為 -40 -85 ℃,即使標簽固定在露天陽光下也可正常工作.該模塊在整個系統中主要負責初始化低頻接收模塊和高頻收發模塊以及接收低頻喚醒、判斷距離與高頻nRF2401 數據收發等功能.
為了能夠檢測到從各個方向發來的低頻信號及時喚醒主控MCU,在設計低頻輸入模塊時要求靈敏度要高.為此本模塊采用Austriamicro公司3D-LF 喚醒接收器AS3933.此接收器芯片加載X、Y、Z三通道低頻天線,可以檢測到工作頻率范圍19 KHz-150 KHz及喚醒靈敏度80 μVrms的低頻信號.AS3933在同類器件中首次提供了內置自動天線調諧器,可將天線調諧到所需的載波頻率[2].其低功耗下的電流只有6 μA,工作溫度范圍為 -40-85 ℃ ,可以在戶外正常工作,16管腳QFN(4 mmx4 mm)封裝,便于標簽小型化.
該模塊電路圖設計,如圖2所示.此接收器芯片選用的外部晶振的頻率為32.768 KHz,能精確產生芯片時鐘信號.WAKE喚醒管腳接到主控MCU外部中斷INT管腳上,喚醒時電平由低電平變成高電平,用于喚醒主控MCU. 此接收器芯片與主控MCU通過SPI串行方式通訊,用于配置AS3933和從AS3933獲取數據.3路低頻天線X、Y、Z分別與AS3933的LP2P、LP1P、LP3P管腳相連接.天線采用并聯諧振方式,由電阻、電容、電感組成[3].天線布局及走線會影響系統整體的效果,故X、Y、Z軸天線在布局時需要相互垂直.根據并聯諧振相關公式計算好C、R值后,使用Antenna Tuning功能調整諧振點時,必須要調整到125 KHz.采用3.0 V電源直接供電,電源紋波對AS3933芯片影響很大,需配濾波電容.

圖2 AS3933低頻接收電路
為了提高傳輸數據量和速度,該高頻收發模塊采用nRF2401芯片.nRF2401是單片射頻收發芯片,工作于2.4 GHz-2.5 GHz的ISM頻段,輸出功率和通信頻道可通過程序進行配置.該芯片功耗低,以-5 dBm的功率發射時,工作電流只有10.5 mA[4],在接收模式時工作電流只有18 mA,在關機模式下,工作電流為900 nA左右. 該芯片電源電壓范圍為1.9 V-3.6 V,且芯片內部設置有專門的穩壓電路.nRF2401芯片把頻率合成器、調制器和數模轉換器等集成在芯片內部,所以外圍電路簡單.
該模塊電路圖設計,如圖3所示.nRF2401芯片的PWR_UP 、CE、DATA、CLK1和CS與主控MCU相接.nRF2401芯片有2個通道,按照景點標簽設計要求只使用通道1收發數據,所以CLK2時鐘腳接地.上電后,該模塊先處于關機模式,當模塊需要收發數據時,通過配置PWR_UP、CE、CS管腳狀態,使nRF2401處于配置模式,然后通過配置命令使nRF2401處于收發模式,此時模塊才可收發數據.為了使標簽設計小型化及降低標簽成本,該模塊不采用外接單體天線,采用PCB天線,布局采用倒F型天線IFA.IFA天線布局把3D天線設計成了PCB板上的2D走線,既能降低成本,也能滿足收發數據距離要求.

圖3 高頻收發電路
景點標簽軟件設計包含三個部分,主要是系統初始化、低頻AS3933喚醒、高頻nRF2401數據收發.標簽主流程圖,如圖4所示.

圖4 標簽主流程圖
系統上電后,初始化所有模塊,主要包括主控MCU16F690管腳端口設置、nRF2401高頻模塊初始化、低頻AS3933模塊初始化,接著是主控MCU處于睡眠模式、高頻收發模塊處于關機模式、AS3933低頻模塊處于監聽模式.此時,如果游客攜帶識別器進入到一定范圍內,低頻模塊AS3933收到喚醒數據,拉高WAKE管腳電壓,主控MCU被喚醒,開始處理數據信息,并根據RSSI的值判斷距離,如果在5 m以內,喚醒nRF2401模塊,收發標簽數據信息,發送完畢后,系統再次進入睡眠模式.
低頻喚醒芯片AS3933上電初始化完成后,按照系統配置要求處在監聽模式,如果收到固定設置的低頻模式數據,AS3993判斷正確,則AS3933拉高WAKE管腳電壓喚醒主控MCU,主控MCU通過SPI方式讀取RSSI值判斷距離的遠近,距離在5 m以內時,準備收發高頻數據.AS3933的初始化和RSSI數據的獲取都是主控MCU通過SPI方式與AS3933芯片 R0-R19共20個寄存器交互來完成的.
AS3933處在監聽模式后,其被喚醒的模式有兩種,方式一是載波信號(Carriner Burst)+數據(Data)+喚醒信號(WAKE管腳電壓拉高);方式二是載波信號(Carriner Burst)+前導(Preamble)+模式(Pattern)+數據(Data)+喚醒信號(WAKE管腳電壓拉高).由于本系統景點標簽放置在戶外,信號錯雜,系統為了防止標簽被誤喚醒,故采用方式二.詳細喚醒過程,如圖5所示.

圖5 AS3933方式二喚醒格式
在系統設計中發現,要正確喚醒AS933需要注意以下事項:
1) AS3933使用的是外部32.768 Hz時鐘,載波信號設置為125 KHz,Tclk=1s/32.768 KHz = 30.5 μs,Tcarr= 1 s/125 k= 8 μs.因此,載波信號長度需要滿足:16 Tclk + 16 Tcarr = 16*30.5 μs + 16*8 μs = 616 μs < 載波信號長度<155 Tclk= 4727.5 μs.
2) 要在載波信號(Carrier Burst)和前導(Preamble)之間插入一位數據(Separation bit),其長度是半個曼徹斯特碼元的長度,不能遺漏.
3) 前導(Preamble)和模式(Pattern)總長度有限制.當模式(Pattern)為16位時,總長度不能大于30個曼徹斯特碼元,即PAT_16bit_time≤30*8us=240μs;當模式(Pattern)為32位時,總長度不能大于46個曼徹斯特碼元,即 PAT_32bit_time ≤46*8us=368μs.
4) 曼徹斯特編碼收發:1為下降沿跳變,0為上升沿跳變.
確定好系統頻率和喚醒方式后,AS3933寄存器的初始化達到設計要求是關鍵.本系統AS3933寄存器初始化設置如表1所示.

表1 系統AS3933寄存器初始表
當主控MCU被喚醒后,MCU先通過低頻信號獲取發送來的ID,當判斷此ID與系統ID匹配后,系統接著讀取AS3933寄存器R10、R11、R12三個通道數字RSSI(接收信號強度指示)值,根據值的大小判斷距離,RSSI與距離之間的關系滿足式(1):
d=10(ABS(RSSI)-A)/(10*N)(N為傳播常數)
(1)
由于環境、器件、生產等原因,會造成每個標簽RSSI的值在同等距離下稍有不同,需要修正.這就要求在生產標簽時,把標簽固定在標定位置1 m處,學習RSSI的值作為標定值,然后把標定值存儲在主控MCU的EEData中.
由于參觀者游覽景點時速度比較慢,對于標簽獲取RSSI的值可以采用式(2)多次測量求平均值來提高測量精度,式(2)如下:

(2)
程序實現代碼如下:
for(uint_8 i=0; i< n;i++)
{
if(Rsii[ch][i] >= Max) //判斷最大值
Max = Rsii[chx][i];
If(Rsii[ch][i] <= Min) //判斷最小值
Min = Rsii[chx][i];
Sum += Rsii[ch][i];
}
return (Sum - Max - Min)/(n-2); // 返回平均值
高頻收發模塊用于傳輸景點ID等信息.此部分軟件主要有兩個,一個是主控MCU對nRF2401 芯片寄存器的初始化配置,另一個是數據收發模塊.nRF2401有兩種通信模式:Direct Mode(直接模式)和ShockBurstTM Mode(突發模式).本系統采用ShockBurstTM Mode(突發模式),此模式使用芯片內部的先入先出堆棧區,數據可從低速微控制器送入,高速發射出去.其發射的地址和校驗碼由硬件自動添加.因此,程序編制更加簡單,并且穩定性更高[5].
nRF2401的初始化是通過CS、CLK1和DATA三個引腳配合及SPI接口傳輸配置18個寄存器后完成的.在配置模式下,注意保證CE=0(低電平),PWR_UP =1(高電平).配置字從MSB最高位開始,依次送入nRF2401.
高頻收發的數據,系統定義了協議,協議設計如表2所示:

表2 高頻數據收發協議
數據收發模塊發射流程如下:
1) 配置 CONFIG 寄存器.
2) 主控MCU把CE管腳設置高電平(時間大于10 μs),使nRF2401可進行Enhanced Shock Burst TM發射.
3) MUC通過SPI接口傳輸需要收發的數據包給nRF2401.
4) 主控配置nRF2401的CE管腳為低電平,此時nRF2401開始無線收發數據.
5) 發射完成后,nRF2401 進入空閑狀態.
半主動式標簽采用CR2302紐扣電池供電.為了減少更換電池周期,功耗控制尤為重要.主要采取的措施有:
1)系統上電,初始化所有模塊后,主控CPU處于睡眠模式,高頻收發模塊處于關機模式,低頻處于監聽模式.
2)在有效距離內低頻喚醒主控MCU后,需要高頻收發數據時才打開高頻模塊,收發完畢后,關閉高頻模塊.
3)主控MCU在睡眠情況下,開啟外部INT中斷后,其他未用的IO全部設置成輸出狀態.
4)AS3933低頻接收模塊3D天線耗電量比較大,在不影響客戶體驗情況下,讓3D天線間歇工作,盡可能節約電源.
隨意選取8個標簽,測試其低頻喚醒距離、高頻數據收發距離和休眠下功耗.測試數據如表3所示.

表3 標簽測試數據表
表3中測試數據說明,低頻AS3933喚醒距離可以穩定達到5 m以上,高頻nRF2401 的傳輸距離可以穩定達到85 m以上,完全滿足景點標簽的距離要求.標簽在休眠狀態下功耗電流小于11 μA,能極大節省電池電量.
本系統設計的標簽采用AS3933低頻喚醒、高頻nRF2401數據收發完成交互功能.測試后該標簽低頻可靠喚醒達5 m,休眠狀態下功耗電流低于11 μA,大大延長了標簽使用時間.通過對標簽的綜合測試,驗證了該標簽軟硬件設計合理,達到了所預期的系統功能的要求.