,,
(空軍預(yù)警學(xué)院, 武漢 430019)
藍(lán)牙[1]是一種標(biāo)準(zhǔn)無線通信協(xié)議,基于設(shè)備低成本的收發(fā)器芯片,傳輸距離近、功耗低,可實(shí)現(xiàn)固定設(shè)備、移動設(shè)備和樓宇個人域網(wǎng)之間的短距離數(shù)據(jù)交換。無線藍(lán)牙耳機(jī)、藍(lán)牙USB軟件狗等都是藍(lán)牙產(chǎn)品的典型代表,未來的物聯(lián)網(wǎng)將是藍(lán)牙技術(shù)應(yīng)用的新藍(lán)海[2]。
藍(lán)牙技術(shù)發(fā)展迅速,到現(xiàn)在擁有3種類別和4個版本,傳輸速率從1 Mbps發(fā)展到接近54 Mbps。在傳輸速率上與WiFi類似,然而,藍(lán)牙通信系統(tǒng)最致命的弱點(diǎn)在于功耗大。因?yàn)?,一旦打開藍(lán)牙設(shè)備,它就會持續(xù)進(jìn)行搜索并試圖與設(shè)備保持連接,這個過程的功耗是很大的,所以,未來的藍(lán)牙技術(shù)發(fā)展就在于保持高速傳輸速率的前提下,降低設(shè)備功耗。總體來說,低功耗、高傳輸率、高集成度、高性價比和更長的通信距離的簡化藍(lán)牙技術(shù)設(shè)計是當(dāng)前一個熱點(diǎn)問題[4-5]。
參考文獻(xiàn)[3]提出了一種基于藍(lán)牙4.2的無線通信的設(shè)計方法。該方法在降低系統(tǒng)功耗上有一定的探索,并取得了較好的效果,但其電路結(jié)構(gòu)復(fù)雜,成本昂貴,不易實(shí)現(xiàn)。本文針對傳統(tǒng)藍(lán)牙通信系統(tǒng)設(shè)計中存在的電路設(shè)計復(fù)雜、功耗大、速率低和性價比低等問題,提出了一種基于藍(lán)牙4.2協(xié)議的BlueNRG-1芯片藍(lán)牙通信系統(tǒng)設(shè)計方案。試驗(yàn)的結(jié)果表明,該方案降低了功耗,簡化了電路,具有體小便攜、功耗低、性價比高、傳輸速率高和使用壽命長等優(yōu)點(diǎn)。
BlueNRG-1芯片是ST公司生產(chǎn)的一款藍(lán)牙低功耗(BLE)單模式系統(tǒng)級芯片(SoC),符合藍(lán)牙4.2規(guī)范[3]。該芯片繼承了Award-winning BlueNRG網(wǎng)絡(luò)處理器的特點(diǎn),使用嵌入式Cortex-M0的內(nèi)核運(yùn)行應(yīng)用程序代碼,具有多功能定時器、看門狗、ADC、RTC和DMA控制器,此外,ADC與模擬傳感器連接,用于讀取測量電池電量。該芯片在提供優(yōu)良的射頻性能的同時,也集成了高效率DC/DC轉(zhuǎn)換器,并且能保持超低功耗特性,優(yōu)化了在睡眠模式電流的消耗,使供電電池的壽命進(jìn)一步提高。
BlueNRG-1芯片作為一種BLE單芯片,還具有如下特性:
① 符合BLE4.2規(guī)范,集成Stack、Profile等,所有應(yīng)用軟件的執(zhí)行可在一片IC內(nèi)完成。
② 內(nèi)含16或32 MHz Cortex-M0內(nèi)核,160 KB Flash,24 KB RAM。
③ 具有豐富外設(shè):UART、SPI、I2C、GPIO、ADC、Timer、RTC、Watchdog,易于擴(kuò)展。
④ 供電電壓范圍較寬:1.7~3.6 V,溫度要求較寬:-40~105 ℃,可提供汽車級BLE芯片。
⑤ 低功耗:睡眠模式電流為0.35 μA,高發(fā)射功率為8 dBm。
⑥ 提供QFN32及WLCSP34超小封裝、STM32的軟件架構(gòu),便于更寬泛的應(yīng)用及便捷的開發(fā)。
圖1是它的內(nèi)部結(jié)構(gòu)框圖。
圖1 BlueNRG-1芯片內(nèi)部框圖
低功耗設(shè)計主要針對核心器件的選擇和電路的設(shè)計。在核心器件的選擇上,選用ST公司生產(chǎn)的低功耗藍(lán)牙單芯片BlueNRG-1。BlueNRG-1芯片包括一個完全集成的低功耗的16/32 MHz的晶體振蕩器和一個嵌入式幅度調(diào)節(jié)環(huán),其中,16 MHz晶振為高速晶振,32 MHz晶振為低速晶振,在正常工作時,16 MHz高速晶振運(yùn)行,在低功耗模式時處于睡眠狀態(tài),32 MHz低速晶振運(yùn)行。通過選擇石英晶振來實(shí)現(xiàn)低功耗和快速啟動。為了實(shí)現(xiàn)低功耗運(yùn)行和良好的晶振頻率穩(wěn)定度,必須對相對于石英的負(fù)載電容C及其外圍電路進(jìn)行優(yōu)化設(shè)計。
電路的總功耗由工作狀態(tài)和睡眠狀態(tài)兩種狀態(tài)的功耗組成。
P=PR+PS
PR=VDDIR
PS=VDDIS
式中,PR為正常工作時的電路功耗,IR為正常工作時的電路電流;PS為睡眠狀態(tài)時的電路功耗,IS為睡眠狀態(tài)時的電路電流。
從上式可以看出,能反映電路功耗的主要參數(shù)是電路電流。出于可控性因素考慮,低功耗設(shè)計方法的原則主要在降低電路電流上。筆者提出采用的核心器件藍(lán)牙單芯片BlueNRG-1使電路在無外部中斷事件發(fā)生時,能長期工作在睡眠狀態(tài),電路電流極低,并且在有外部中斷事件發(fā)生時,電路能在很短時間內(nèi)啟動,執(zhí)行動作;結(jié)束后,電路又迅速進(jìn)入睡眠狀態(tài)。這樣,電路始終保持低功耗狀態(tài)。
2.2.1 結(jié)構(gòu)框圖
系統(tǒng)設(shè)計包括硬件電路設(shè)計和控制軟件設(shè)計。其硬件電路結(jié)構(gòu)框圖如圖2所示,核心控制器采用ST公司的BlueNRG-1芯片,通過搭載濾波電容、晶振、藍(lán)牙的濾波網(wǎng)絡(luò)和板載藍(lán)牙天線即可實(shí)現(xiàn)藍(lán)牙通信系統(tǒng)的開發(fā)。
2.2.2 電路設(shè)計
基于BlueNRG-1芯片的藍(lán)牙通信系統(tǒng)硬件電路設(shè)計需要的元器件相對較少,外圍器件只需要電源濾波電容、晶振、濾波網(wǎng)絡(luò)和天線即可以滿足要求。
圖2 藍(lán)牙通信系統(tǒng)結(jié)構(gòu)框圖
硬件電路圖如圖3所示,硬件電路的設(shè)計包括電源濾波、晶振設(shè)計、天線濾波網(wǎng)絡(luò)、天線設(shè)計4個部分。圖3中,C1、C5、C15、C18組成電源濾波電路;XTAL1、C6、C7、L1以及XTAL2、C16、C17、L2組成系統(tǒng)晶振電路;C8~C13和L1~L3組成的天線濾波網(wǎng)絡(luò),此天線濾波網(wǎng)絡(luò)也可以利用BALF-NRG-01D3芯片(ST公司專門開發(fā)的一款濾波器,體積小,抗干擾能力強(qiáng))實(shí)現(xiàn),能達(dá)到更強(qiáng)的抗干擾效果,并且電路設(shè)計更簡單,但成本會提高。此外,可以直接在板子上做個RF射頻連接插座外接天線,這樣的好處是發(fā)射信號好,缺點(diǎn)是占用體積更大。如果體積受限,可以選擇做一個簡易的板載天
線,具體的設(shè)計如圖4所示。
圖3 系統(tǒng)硬件電路
圖4 系統(tǒng)天線設(shè)計
基于BlueNRG-1芯片的藍(lán)牙通信系統(tǒng)軟件設(shè)計的開發(fā)平臺有兩種:MDK5.0和IAR8.0[6-7]。這兩種開發(fā)平臺都是ST公司發(fā)布的,并且提供大量的例程。由于BlueNRG-1芯片面世不久,筆者建議利用MDK5.0平臺開發(fā)。
圖5描述了BlueNRG-1芯片初始化和軟件設(shè)計的流程圖。
圖5 系統(tǒng)軟件設(shè)計流程
① 初始化BlueNRG-1芯片。系統(tǒng)初始化和系統(tǒng)時鐘初始化的語句描述為:
SystemInit();Clock_Init();
其中,SystemInit()設(shè)置芯片要用到的晶振頻率、設(shè)備的中斷、中斷向量表地址等,Clock_Init()是初始化藍(lán)牙和其它設(shè)備要用的時鐘。
分為如下幾步操作:
a. 設(shè)置重載寄存器;
b. 為系統(tǒng)時鐘中斷設(shè)置優(yōu)先級;
c. 加載系統(tǒng)寄存器的數(shù)據(jù)值;
d. 使能系統(tǒng)時鐘中斷Enable SysTick IRQ。
② 初始化藍(lán)牙堆棧。語句描述為:
BlueNRG_Stack_Initialization(&BlueNRG_Stack_Init_params);
語句功能是初始化藍(lán)牙堆棧的Flash起始地址(一般默認(rèn)是2 KB)、安全數(shù)據(jù)庫(大小為1 KB)和服務(wù)器數(shù)據(jù)庫大小(1 KB)、堆棧內(nèi)部存儲區(qū)參數(shù)、GATT堆棧數(shù)據(jù)庫的RAM緩沖區(qū)的起始地址、分配給堆棧的總緩沖區(qū)大小、屬性記錄的最大數(shù)目、GATT服務(wù)的最大數(shù)量、屬性值存儲區(qū)域的大小。
③ 初始化藍(lán)牙設(shè)備。語句描述為:
CHAT_DeviceInit();
具體操作為:首先,配置公共地址需要用到的語句aci_hal_write_config_data();其次,設(shè)置天線的發(fā)射功率,通常情況下,功率設(shè)置為-2 dBm;再次,進(jìn)行GATT的初始化,aci_gatt_init()以及GAP的初始化aci_gap_init();然后,server的名稱初始化;最后,加載服務(wù)程序Add_Chat_Service()。服務(wù)程序里面主要是要加載藍(lán)牙的UUIDS,語句為aci_gatt_add_char()。通過以上的操作,即可完成整個藍(lán)牙設(shè)備的初始化工作。
④ 編寫藍(lán)牙應(yīng)用層程序。語句描述為:
app_tick;
主要功能就是當(dāng)藍(lán)牙設(shè)備發(fā)現(xiàn)有可連接標(biāo)志位時,就發(fā)送心跳,用語句Make_Connection()實(shí)現(xiàn)。具體步驟為:首先,設(shè)置藍(lán)牙的server物理地址;然后,設(shè)置local_name,通常20個字節(jié)以內(nèi);最后,啟動藍(lán)牙發(fā)送心跳數(shù)據(jù),使用語句aci_gap_set_discoverable()實(shí)現(xiàn)。
⑤ 讓程序進(jìn)入大循環(huán)。語句描述為:
While(1) /*main loop*/{
/*BLE Stack Tick*/
BTLE_StackTick();
/*Application Tick*/
APP_Tick();
/*Power Save management*/
BlueNRG_Sleep(
SLEEPMODE_RUNNING,0,0);
}
其功能為反復(fù)去定時清理處理藍(lán)牙堆棧,執(zhí)行語句:BTLE_StackTick(),也叫做棧勾。
其中,應(yīng)用程序描述為:
APP_Tick();
即應(yīng)用程序標(biāo)識檢查,當(dāng)藍(lán)牙設(shè)備連接正常時,系統(tǒng)發(fā)送藍(lán)牙數(shù)據(jù),執(zhí)行該應(yīng)用。
為驗(yàn)證本文提出的設(shè)計方法的可行性和正確性,對整個系統(tǒng)進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)電路參數(shù)如下:C8=130 nF,C9=22 μF,C10=4.7 μF,C11=220 μF,C12=330 μF,L1=22 μH,L2=1 μH,L3=3.3 μH。實(shí)驗(yàn)過程中,系統(tǒng)電路采用日月UNMOON3.6 V鋰電池供電,在電路中串接15 Ω電阻,使用示波器測量電阻兩端電壓,如圖6(a)為發(fā)送兩次廣播的電壓脈沖,圖6(b)為電壓脈沖展開圖,圖6(c)為傳統(tǒng)藍(lán)牙通信時廣播電壓脈沖圖。
圖6 試驗(yàn)波形圖和電路實(shí)物圖
由實(shí)驗(yàn)結(jié)果圖6(a)可以看出,兩次廣播的脈沖間隔為2 s,脈沖幅值約為90 mV;由圖6(b)可以得出,脈沖寬度約為2.5 ms,其脈沖幅值也約為90 mV,并且,啟動時間很短,幾乎可以忽略。通過計算,可知系統(tǒng)在2 s內(nèi)發(fā)一次廣播的平均電流為7.5 μA,而從圖6(c)可以 看出,傳統(tǒng)藍(lán)牙通信時,藍(lán)牙芯片發(fā)送廣播之前有較長時間的啟動時間,大約為13ms,并且發(fā)送廣播后,系統(tǒng)電流不能迅速降低,大約耗時5ms。通過計算可知,傳統(tǒng)工作方式下,藍(lán)牙通信發(fā)送一次廣播的平均電流為30μA左右。通過比較可知,本設(shè)計方案將功耗降低了4倍,延長了電池使用壽命。同時可以看出,本產(chǎn)品體積小,易于開發(fā)便攜式藍(lán)牙通信產(chǎn)品。
參考文獻(xiàn)
[1] 田林青.基于藍(lán)牙技術(shù)的推送系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].重慶:重慶理工大學(xué),2017.
[2] 薛士然.物聯(lián)網(wǎng),藍(lán)牙技術(shù)應(yīng)用的新藍(lán)海[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2016(5):85-86.
[3] 胡志健,張中煒.基于藍(lán)牙4.2的傳感器通用接口研究與探索[J].微型機(jī)與應(yīng)用,2016,35(17):97-100.
[4] 華海亮.基于WiFi和藍(lán)牙的室內(nèi)定位技術(shù)研究[D].錦州:遼寧工業(yè)大學(xué),2016.
[5] 駱倩,施炯,李君.基于低功耗藍(lán)牙的室內(nèi)定位系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2017,7(10):15-17.
[6] 黃嘉成,艾蘇高,黃曲昆,等.基于stm32的藍(lán)牙智能飲水機(jī)設(shè)計[J].裝備制造技術(shù),2017(9):121-124.
[7] 吳凡.基于腦電波的人機(jī)交互應(yīng)用系統(tǒng)[J].信息與電腦:理論版,2017(20):99-101.