,,
(空軍預警學院, 武漢 430019)
藍牙[1]是一種標準無線通信協議,基于設備低成本的收發器芯片,傳輸距離近、功耗低,可實現固定設備、移動設備和樓宇個人域網之間的短距離數據交換。無線藍牙耳機、藍牙USB軟件狗等都是藍牙產品的典型代表,未來的物聯網將是藍牙技術應用的新藍海[2]。
藍牙技術發展迅速,到現在擁有3種類別和4個版本,傳輸速率從1 Mbps發展到接近54 Mbps。在傳輸速率上與WiFi類似,然而,藍牙通信系統最致命的弱點在于功耗大。因為,一旦打開藍牙設備,它就會持續進行搜索并試圖與設備保持連接,這個過程的功耗是很大的,所以,未來的藍牙技術發展就在于保持高速傳輸速率的前提下,降低設備功耗。總體來說,低功耗、高傳輸率、高集成度、高性價比和更長的通信距離的簡化藍牙技術設計是當前一個熱點問題[4-5]。
參考文獻[3]提出了一種基于藍牙4.2的無線通信的設計方法。該方法在降低系統功耗上有一定的探索,并取得了較好的效果,但其電路結構復雜,成本昂貴,不易實現。本文針對傳統藍牙通信系統設計中存在的電路設計復雜、功耗大、速率低和性價比低等問題,提出了一種基于藍牙4.2協議的BlueNRG-1芯片藍牙通信系統設計方案。試驗的結果表明,該方案降低了功耗,簡化了電路,具有體小便攜、功耗低、性價比高、傳輸速率高和使用壽命長等優點。
BlueNRG-1芯片是ST公司生產的一款藍牙低功耗(BLE)單模式系統級芯片(SoC),符合藍牙4.2規范[3]。該芯片繼承了Award-winning BlueNRG網絡處理器的特點,使用嵌入式Cortex-M0的內核運行應用程序代碼,具有多功能定時器、看門狗、ADC、RTC和DMA控制器,此外,ADC與模擬傳感器連接,用于讀取測量電池電量。該芯片在提供優良的射頻性能的同時,也集成了高效率DC/DC轉換器,并且能保持超低功耗特性,優化了在睡眠模式電流的消耗,使供電電池的壽命進一步提高。
BlueNRG-1芯片作為一種BLE單芯片,還具有如下特性:
① 符合BLE4.2規范,集成Stack、Profile等,所有應用軟件的執行可在一片IC內完成。
② 內含16或32 MHz Cortex-M0內核,160 KB Flash,24 KB RAM。
③ 具有豐富外設:UART、SPI、I2C、GPIO、ADC、Timer、RTC、Watchdog,易于擴展。
④ 供電電壓范圍較寬:1.7~3.6 V,溫度要求較寬:-40~105 ℃,可提供汽車級BLE芯片。
⑤ 低功耗:睡眠模式電流為0.35 μA,高發射功率為8 dBm。
⑥ 提供QFN32及WLCSP34超小封裝、STM32的軟件架構,便于更寬泛的應用及便捷的開發。
圖1是它的內部結構框圖。

圖1 BlueNRG-1芯片內部框圖
低功耗設計主要針對核心器件的選擇和電路的設計。在核心器件的選擇上,選用ST公司生產的低功耗藍牙單芯片BlueNRG-1。BlueNRG-1芯片包括一個完全集成的低功耗的16/32 MHz的晶體振蕩器和一個嵌入式幅度調節環,其中,16 MHz晶振為高速晶振,32 MHz晶振為低速晶振,在正常工作時,16 MHz高速晶振運行,在低功耗模式時處于睡眠狀態,32 MHz低速晶振運行。通過選擇石英晶振來實現低功耗和快速啟動。為了實現低功耗運行和良好的晶振頻率穩定度,必須對相對于石英的負載電容C及其外圍電路進行優化設計。
電路的總功耗由工作狀態和睡眠狀態兩種狀態的功耗組成。
P=PR+PS
PR=VDDIR
PS=VDDIS
式中,PR為正常工作時的電路功耗,IR為正常工作時的電路電流;PS為睡眠狀態時的電路功耗,IS為睡眠狀態時的電路電流。
從上式可以看出,能反映電路功耗的主要參數是電路電流。出于可控性因素考慮,低功耗設計方法的原則主要在降低電路電流上。筆者提出采用的核心器件藍牙單芯片BlueNRG-1使電路在無外部中斷事件發生時,能長期工作在睡眠狀態,電路電流極低,并且在有外部中斷事件發生時,電路能在很短時間內啟動,執行動作;結束后,電路又迅速進入睡眠狀態。這樣,電路始終保持低功耗狀態。
2.2.1 結構框圖
系統設計包括硬件電路設計和控制軟件設計。其硬件電路結構框圖如圖2所示,核心控制器采用ST公司的BlueNRG-1芯片,通過搭載濾波電容、晶振、藍牙的濾波網絡和板載藍牙天線即可實現藍牙通信系統的開發。
2.2.2 電路設計
基于BlueNRG-1芯片的藍牙通信系統硬件電路設計需要的元器件相對較少,外圍器件只需要電源濾波電容、晶振、濾波網絡和天線即可以滿足要求。

圖2 藍牙通信系統結構框圖
硬件電路圖如圖3所示,硬件電路的設計包括電源濾波、晶振設計、天線濾波網絡、天線設計4個部分。圖3中,C1、C5、C15、C18組成電源濾波電路;XTAL1、C6、C7、L1以及XTAL2、C16、C17、L2組成系統晶振電路;C8~C13和L1~L3組成的天線濾波網絡,此天線濾波網絡也可以利用BALF-NRG-01D3芯片(ST公司專門開發的一款濾波器,體積小,抗干擾能力強)實現,能達到更強的抗干擾效果,并且電路設計更簡單,但成本會提高。此外,可以直接在板子上做個RF射頻連接插座外接天線,這樣的好處是發射信號好,缺點是占用體積更大。如果體積受限,可以選擇做一個簡易的板載天
線,具體的設計如圖4所示。

圖3 系統硬件電路

圖4 系統天線設計
基于BlueNRG-1芯片的藍牙通信系統軟件設計的開發平臺有兩種:MDK5.0和IAR8.0[6-7]。這兩種開發平臺都是ST公司發布的,并且提供大量的例程。由于BlueNRG-1芯片面世不久,筆者建議利用MDK5.0平臺開發。
圖5描述了BlueNRG-1芯片初始化和軟件設計的流程圖。

圖5 系統軟件設計流程
① 初始化BlueNRG-1芯片。系統初始化和系統時鐘初始化的語句描述為:
SystemInit();Clock_Init();
其中,SystemInit()設置芯片要用到的晶振頻率、設備的中斷、中斷向量表地址等,Clock_Init()是初始化藍牙和其它設備要用的時鐘。
分為如下幾步操作:
a. 設置重載寄存器;
b. 為系統時鐘中斷設置優先級;
c. 加載系統寄存器的數據值;
d. 使能系統時鐘中斷Enable SysTick IRQ。
② 初始化藍牙堆棧。語句描述為:
BlueNRG_Stack_Initialization(&BlueNRG_Stack_Init_params);
語句功能是初始化藍牙堆棧的Flash起始地址(一般默認是2 KB)、安全數據庫(大小為1 KB)和服務器數據庫大小(1 KB)、堆棧內部存儲區參數、GATT堆棧數據庫的RAM緩沖區的起始地址、分配給堆棧的總緩沖區大小、屬性記錄的最大數目、GATT服務的最大數量、屬性值存儲區域的大小。
③ 初始化藍牙設備。語句描述為:
CHAT_DeviceInit();
具體操作為:首先,配置公共地址需要用到的語句aci_hal_write_config_data();其次,設置天線的發射功率,通常情況下,功率設置為-2 dBm;再次,進行GATT的初始化,aci_gatt_init()以及GAP的初始化aci_gap_init();然后,server的名稱初始化;最后,加載服務程序Add_Chat_Service()。服務程序里面主要是要加載藍牙的UUIDS,語句為aci_gatt_add_char()。通過以上的操作,即可完成整個藍牙設備的初始化工作。
④ 編寫藍牙應用層程序。語句描述為:
app_tick;
主要功能就是當藍牙設備發現有可連接標志位時,就發送心跳,用語句Make_Connection()實現。具體步驟為:首先,設置藍牙的server物理地址;然后,設置local_name,通常20個字節以內;最后,啟動藍牙發送心跳數據,使用語句aci_gap_set_discoverable()實現。
⑤ 讓程序進入大循環。語句描述為:
While(1) /*main loop*/{
/*BLE Stack Tick*/
BTLE_StackTick();
/*Application Tick*/
APP_Tick();
/*Power Save management*/
BlueNRG_Sleep(
SLEEPMODE_RUNNING,0,0);
}
其功能為反復去定時清理處理藍牙堆棧,執行語句:BTLE_StackTick(),也叫做棧勾。
其中,應用程序描述為:
APP_Tick();
即應用程序標識檢查,當藍牙設備連接正常時,系統發送藍牙數據,執行該應用。
為驗證本文提出的設計方法的可行性和正確性,對整個系統進行了實驗。實驗電路參數如下: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。實驗過程中,系統電路采用日月UNMOON3.6 V鋰電池供電,在電路中串接15 Ω電阻,使用示波器測量電阻兩端電壓,如圖6(a)為發送兩次廣播的電壓脈沖,圖6(b)為電壓脈沖展開圖,圖6(c)為傳統藍牙通信時廣播電壓脈沖圖。

圖6 試驗波形圖和電路實物圖
由實驗結果圖6(a)可以看出,兩次廣播的脈沖間隔為2 s,脈沖幅值約為90 mV;由圖6(b)可以得出,脈沖寬度約為2.5 ms,其脈沖幅值也約為90 mV,并且,啟動時間很短,幾乎可以忽略。通過計算,可知系統在2 s內發一次廣播的平均電流為7.5 μA,而從圖6(c)可以 看出,傳統藍牙通信時,藍牙芯片發送廣播之前有較長時間的啟動時間,大約為13ms,并且發送廣播后,系統電流不能迅速降低,大約耗時5ms。通過計算可知,傳統工作方式下,藍牙通信發送一次廣播的平均電流為30μA左右。通過比較可知,本設計方案將功耗降低了4倍,延長了電池使用壽命。同時可以看出,本產品體積小,易于開發便攜式藍牙通信產品。

參考文獻
[1] 田林青.基于藍牙技術的推送系統的設計與實現[D].重慶:重慶理工大學,2017.
[2] 薛士然.物聯網,藍牙技術應用的新藍海[J].單片機與嵌入式系統應用,2016(5):85-86.
[3] 胡志健,張中煒.基于藍牙4.2的傳感器通用接口研究與探索[J].微型機與應用,2016,35(17):97-100.
[4] 華海亮.基于WiFi和藍牙的室內定位技術研究[D].錦州:遼寧工業大學,2016.
[5] 駱倩,施炯,李君.基于低功耗藍牙的室內定位系統[J].物聯網技術,2017,7(10):15-17.
[6] 黃嘉成,艾蘇高,黃曲昆,等.基于stm32的藍牙智能飲水機設計[J].裝備制造技術,2017(9):121-124.
[7] 吳凡.基于腦電波的人機交互應用系統[J].信息與電腦:理論版,2017(20):99-101.