彭勝敏
(福州職業(yè)技術(shù)學(xué)院,福建 福州 350000)
景區(qū)采用的標(biāo)簽自助式導(dǎo)覽系統(tǒng)可為游客提供全方位、個性化的導(dǎo)覽服務(wù),增強(qiáng)觀眾的參觀體驗.目前,大多數(shù)景點采用無源式或主動式有源標(biāo)簽等方式,為游客提供導(dǎo)覽服務(wù).但是,隨著標(biāo)簽導(dǎo)覽系統(tǒng)在景點的大量應(yīng)用發(fā)現(xiàn),游客使用無源標(biāo)簽時需要被動的在指定位置近距離感應(yīng)標(biāo)簽,人性化差,而主動式標(biāo)簽則因其電池使用壽命較短,需頻繁更換電池工不僅作量大而且給景區(qū)日常維護(hù)增加了負(fù)擔(dān).主動式標(biāo)簽的電池電量主要消耗在無線信號的發(fā)射上,標(biāo)簽全天每隔一定的時間向外發(fā)射無線信號,而標(biāo)簽僅在景區(qū)開放的8小時內(nèi),且有參觀者靠近一定范圍內(nèi)才是有效工作時間,其余則是無意義的等待時間,白白耗費電能[1].針對以上問題,本文設(shè)計了一款低頻喚醒半主動式標(biāo)簽,該標(biāo)簽采用低頻喚醒,高頻數(shù)據(jù)收發(fā),且關(guān)閉了標(biāo)簽非工作時間無線信號的發(fā)射,能有效降低標(biāo)簽的耗電量,增加電池的使用壽命.
標(biāo)簽固定放置在景區(qū)各參觀點位置,當(dāng)游客攜帶識別器靠近景點標(biāo)簽一定范圍時,標(biāo)簽被激活.標(biāo)簽收發(fā)信息給游客攜帶的識別器,當(dāng)景點附近沒有游客時,標(biāo)簽處于睡眠省電狀態(tài).標(biāo)簽設(shè)計總體要求體積小、成本低,功耗小.因此,該標(biāo)簽采用低頻喚醒、高頻響應(yīng)的雙頻通訊方式設(shè)計.低頻喚醒功能主要是為了減少標(biāo)簽工作電流,降低標(biāo)簽功耗,從而延長電池壽命.高頻響應(yīng)主要是為高速收發(fā)數(shù)據(jù)用.該標(biāo)簽結(jié)構(gòu)由主控MCU、低頻接收模塊和高頻收發(fā)模塊組成,如圖1所示.具體工作過程是系統(tǒng)上電,配置好低頻和高頻模塊后,該標(biāo)簽處于睡眠省電狀態(tài),當(dāng)游客來到該標(biāo)簽一定范圍時,攜帶的識別器收發(fā)的低頻信號喚醒標(biāo)簽,標(biāo)簽通過高頻收發(fā)相關(guān)信息數(shù)據(jù)給游客攜帶的識別器,達(dá)到景點識別的目的.
圖1 半主動標(biāo)簽結(jié)構(gòu)圖
半主動式標(biāo)簽的硬件系統(tǒng)主要由3個模塊組成:主控模塊、低頻接收喚醒模塊和高頻收發(fā)模塊.
綜合考慮標(biāo)簽體積、成本和功耗,主控模塊MCU采用Microchip公司的PIC16F690嵌入式微處理器.該處理器是20引腳8位 CMOS閃存單片機(jī),具有超低功耗喚醒(ULPWU)功能,待機(jī)電流在3.0 V輸入電壓下小于1 mA,具有256 Byte的EEData,擦寫次數(shù)達(dá)百萬次,可用于存儲掉電后仍需要保存的數(shù)據(jù),芯片集成8 M內(nèi)部振蕩器,可以減少外部振蕩器的使用.本系統(tǒng)采用QFN封裝,體積僅為4 mm × 4 mm × 0.9 mm,并且集成同步串行端口,可用于與低頻模塊傳輸數(shù)據(jù)交互.標(biāo)簽的工作溫度范圍為 -40 -85 ℃,即使標(biāo)簽固定在露天陽光下也可正常工作.該模塊在整個系統(tǒng)中主要負(fù)責(zé)初始化低頻接收模塊和高頻收發(fā)模塊以及接收低頻喚醒、判斷距離與高頻nRF2401 數(shù)據(jù)收發(fā)等功能.
為了能夠檢測到從各個方向發(fā)來的低頻信號及時喚醒主控MCU,在設(shè)計低頻輸入模塊時要求靈敏度要高.為此本模塊采用Austriamicro公司3D-LF 喚醒接收器AS3933.此接收器芯片加載X、Y、Z三通道低頻天線,可以檢測到工作頻率范圍19 KHz-150 KHz及喚醒靈敏度80 μVrms的低頻信號.AS3933在同類器件中首次提供了內(nèi)置自動天線調(diào)諧器,可將天線調(diào)諧到所需的載波頻率[2].其低功耗下的電流只有6 μA,工作溫度范圍為 -40-85 ℃ ,可以在戶外正常工作,16管腳QFN(4 mmx4 mm)封裝,便于標(biāo)簽小型化.
該模塊電路圖設(shè)計,如圖2所示.此接收器芯片選用的外部晶振的頻率為32.768 KHz,能精確產(chǎn)生芯片時鐘信號.WAKE喚醒管腳接到主控MCU外部中斷INT管腳上,喚醒時電平由低電平變成高電平,用于喚醒主控MCU. 此接收器芯片與主控MCU通過SPI串行方式通訊,用于配置AS3933和從AS3933獲取數(shù)據(jù).3路低頻天線X、Y、Z分別與AS3933的LP2P、LP1P、LP3P管腳相連接.天線采用并聯(lián)諧振方式,由電阻、電容、電感組成[3].天線布局及走線會影響系統(tǒng)整體的效果,故X、Y、Z軸天線在布局時需要相互垂直.根據(jù)并聯(lián)諧振相關(guān)公式計算好C、R值后,使用Antenna Tuning功能調(diào)整諧振點時,必須要調(diào)整到125 KHz.采用3.0 V電源直接供電,電源紋波對AS3933芯片影響很大,需配濾波電容.
圖2 AS3933低頻接收電路
為了提高傳輸數(shù)據(jù)量和速度,該高頻收發(fā)模塊采用nRF2401芯片.nRF2401是單片射頻收發(fā)芯片,工作于2.4 GHz-2.5 GHz的ISM頻段,輸出功率和通信頻道可通過程序進(jìn)行配置.該芯片功耗低,以-5 dBm的功率發(fā)射時,工作電流只有10.5 mA[4],在接收模式時工作電流只有18 mA,在關(guān)機(jī)模式下,工作電流為900 nA左右. 該芯片電源電壓范圍為1.9 V-3.6 V,且芯片內(nèi)部設(shè)置有專門的穩(wěn)壓電路.nRF2401芯片把頻率合成器、調(diào)制器和數(shù)模轉(zhuǎn)換器等集成在芯片內(nèi)部,所以外圍電路簡單.
該模塊電路圖設(shè)計,如圖3所示.nRF2401芯片的PWR_UP 、CE、DATA、CLK1和CS與主控MCU相接.nRF2401芯片有2個通道,按照景點標(biāo)簽設(shè)計要求只使用通道1收發(fā)數(shù)據(jù),所以CLK2時鐘腳接地.上電后,該模塊先處于關(guān)機(jī)模式,當(dāng)模塊需要收發(fā)數(shù)據(jù)時,通過配置PWR_UP、CE、CS管腳狀態(tài),使nRF2401處于配置模式,然后通過配置命令使nRF2401處于收發(fā)模式,此時模塊才可收發(fā)數(shù)據(jù).為了使標(biāo)簽設(shè)計小型化及降低標(biāo)簽成本,該模塊不采用外接單體天線,采用PCB天線,布局采用倒F型天線IFA.IFA天線布局把3D天線設(shè)計成了PCB板上的2D走線,既能降低成本,也能滿足收發(fā)數(shù)據(jù)距離要求.
圖3 高頻收發(fā)電路
景點標(biāo)簽軟件設(shè)計包含三個部分,主要是系統(tǒng)初始化、低頻AS3933喚醒、高頻nRF2401數(shù)據(jù)收發(fā).標(biāo)簽主流程圖,如圖4所示.
圖4 標(biāo)簽主流程圖
系統(tǒng)上電后,初始化所有模塊,主要包括主控MCU16F690管腳端口設(shè)置、nRF2401高頻模塊初始化、低頻AS3933模塊初始化,接著是主控MCU處于睡眠模式、高頻收發(fā)模塊處于關(guān)機(jī)模式、AS3933低頻模塊處于監(jiān)聽模式.此時,如果游客攜帶識別器進(jìn)入到一定范圍內(nèi),低頻模塊AS3933收到喚醒數(shù)據(jù),拉高WAKE管腳電壓,主控MCU被喚醒,開始處理數(shù)據(jù)信息,并根據(jù)RSSI的值判斷距離,如果在5 m以內(nèi),喚醒nRF2401模塊,收發(fā)標(biāo)簽數(shù)據(jù)信息,發(fā)送完畢后,系統(tǒng)再次進(jìn)入睡眠模式.
低頻喚醒芯片AS3933上電初始化完成后,按照系統(tǒng)配置要求處在監(jiān)聽模式,如果收到固定設(shè)置的低頻模式數(shù)據(jù),AS3993判斷正確,則AS3933拉高WAKE管腳電壓喚醒主控MCU,主控MCU通過SPI方式讀取RSSI值判斷距離的遠(yuǎn)近,距離在5 m以內(nèi)時,準(zhǔn)備收發(fā)高頻數(shù)據(jù).AS3933的初始化和RSSI數(shù)據(jù)的獲取都是主控MCU通過SPI方式與AS3933芯片 R0-R19共20個寄存器交互來完成的.
AS3933處在監(jiān)聽模式后,其被喚醒的模式有兩種,方式一是載波信號(Carriner Burst)+數(shù)據(jù)(Data)+喚醒信號(WAKE管腳電壓拉高);方式二是載波信號(Carriner Burst)+前導(dǎo)(Preamble)+模式(Pattern)+數(shù)據(jù)(Data)+喚醒信號(WAKE管腳電壓拉高).由于本系統(tǒng)景點標(biāo)簽放置在戶外,信號錯雜,系統(tǒng)為了防止標(biāo)簽被誤喚醒,故采用方式二.詳細(xì)喚醒過程,如圖5所示.
圖5 AS3933方式二喚醒格式
在系統(tǒng)設(shè)計中發(fā)現(xiàn),要正確喚醒AS933需要注意以下事項:
1) AS3933使用的是外部32.768 Hz時鐘,載波信號設(shè)置為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)和前導(dǎo)(Preamble)之間插入一位數(shù)據(jù)(Separation bit),其長度是半個曼徹斯特碼元的長度,不能遺漏.
3) 前導(dǎo)(Preamble)和模式(Pattern)總長度有限制.當(dāng)模式(Pattern)為16位時,總長度不能大于30個曼徹斯特碼元,即PAT_16bit_time≤30*8us=240μs;當(dāng)模式(Pattern)為32位時,總長度不能大于46個曼徹斯特碼元,即 PAT_32bit_time ≤46*8us=368μs.
4) 曼徹斯特編碼收發(fā):1為下降沿跳變,0為上升沿跳變.
確定好系統(tǒng)頻率和喚醒方式后,AS3933寄存器的初始化達(dá)到設(shè)計要求是關(guān)鍵.本系統(tǒng)AS3933寄存器初始化設(shè)置如表1所示.
表1 系統(tǒng)AS3933寄存器初始表
當(dāng)主控MCU被喚醒后,MCU先通過低頻信號獲取發(fā)送來的ID,當(dāng)判斷此ID與系統(tǒng)ID匹配后,系統(tǒng)接著讀取AS3933寄存器R10、R11、R12三個通道數(shù)字RSSI(接收信號強(qiáng)度指示)值,根據(jù)值的大小判斷距離,RSSI與距離之間的關(guān)系滿足式(1):
d=10(ABS(RSSI)-A)/(10*N)(N為傳播常數(shù))
(1)
由于環(huán)境、器件、生產(chǎn)等原因,會造成每個標(biāo)簽RSSI的值在同等距離下稍有不同,需要修正.這就要求在生產(chǎn)標(biāo)簽時,把標(biāo)簽固定在標(biāo)定位置1 m處,學(xué)習(xí)RSSI的值作為標(biāo)定值,然后把標(biāo)定值存儲在主控MCU的EEData中.
由于參觀者游覽景點時速度比較慢,對于標(biāo)簽獲取RSSI的值可以采用式(2)多次測量求平均值來提高測量精度,式(2)如下:
(2)
程序?qū)崿F(xiàn)代碼如下:
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); // 返回平均值
高頻收發(fā)模塊用于傳輸景點ID等信息.此部分軟件主要有兩個,一個是主控MCU對nRF2401 芯片寄存器的初始化配置,另一個是數(shù)據(jù)收發(fā)模塊.nRF2401有兩種通信模式:Direct Mode(直接模式)和ShockBurstTM Mode(突發(fā)模式).本系統(tǒng)采用ShockBurstTM Mode(突發(fā)模式),此模式使用芯片內(nèi)部的先入先出堆棧區(qū),數(shù)據(jù)可從低速微控制器送入,高速發(fā)射出去.其發(fā)射的地址和校驗碼由硬件自動添加.因此,程序編制更加簡單,并且穩(wěn)定性更高[5].
nRF2401的初始化是通過CS、CLK1和DATA三個引腳配合及SPI接口傳輸配置18個寄存器后完成的.在配置模式下,注意保證CE=0(低電平),PWR_UP =1(高電平).配置字從MSB最高位開始,依次送入nRF2401.
高頻收發(fā)的數(shù)據(jù),系統(tǒng)定義了協(xié)議,協(xié)議設(shè)計如表2所示:
表2 高頻數(shù)據(jù)收發(fā)協(xié)議
數(shù)據(jù)收發(fā)模塊發(fā)射流程如下:
1) 配置 CONFIG 寄存器.
2) 主控MCU把CE管腳設(shè)置高電平(時間大于10 μs),使nRF2401可進(jìn)行Enhanced Shock Burst TM發(fā)射.
3) MUC通過SPI接口傳輸需要收發(fā)的數(shù)據(jù)包給nRF2401.
4) 主控配置nRF2401的CE管腳為低電平,此時nRF2401開始無線收發(fā)數(shù)據(jù).
5) 發(fā)射完成后,nRF2401 進(jìn)入空閑狀態(tài).
半主動式標(biāo)簽采用CR2302紐扣電池供電.為了減少更換電池周期,功耗控制尤為重要.主要采取的措施有:
1)系統(tǒng)上電,初始化所有模塊后,主控CPU處于睡眠模式,高頻收發(fā)模塊處于關(guān)機(jī)模式,低頻處于監(jiān)聽模式.
2)在有效距離內(nèi)低頻喚醒主控MCU后,需要高頻收發(fā)數(shù)據(jù)時才打開高頻模塊,收發(fā)完畢后,關(guān)閉高頻模塊.
3)主控MCU在睡眠情況下,開啟外部INT中斷后,其他未用的IO全部設(shè)置成輸出狀態(tài).
4)AS3933低頻接收模塊3D天線耗電量比較大,在不影響客戶體驗情況下,讓3D天線間歇工作,盡可能節(jié)約電源.
隨意選取8個標(biāo)簽,測試其低頻喚醒距離、高頻數(shù)據(jù)收發(fā)距離和休眠下功耗.測試數(shù)據(jù)如表3所示.
表3 標(biāo)簽測試數(shù)據(jù)表
表3中測試數(shù)據(jù)說明,低頻AS3933喚醒距離可以穩(wěn)定達(dá)到5 m以上,高頻nRF2401 的傳輸距離可以穩(wěn)定達(dá)到85 m以上,完全滿足景點標(biāo)簽的距離要求.標(biāo)簽在休眠狀態(tài)下功耗電流小于11 μA,能極大節(jié)省電池電量.
本系統(tǒng)設(shè)計的標(biāo)簽采用AS3933低頻喚醒、高頻nRF2401數(shù)據(jù)收發(fā)完成交互功能.測試后該標(biāo)簽低頻可靠喚醒達(dá)5 m,休眠狀態(tài)下功耗電流低于11 μA,大大延長了標(biāo)簽使用時間.通過對標(biāo)簽的綜合測試,驗證了該標(biāo)簽軟硬件設(shè)計合理,達(dá)到了所預(yù)期的系統(tǒng)功能的要求.