加快物聯(lián)網(wǎng)應(yīng)用的藍牙? 連接的設(shè)計
在討論 ATBTLC1000-XPro 低功耗藍牙® 擴展板前,我們先快速了解一下該板所用的 ATBTLC1000 無線微控制器。 這款 SoC 器件由一個 ARM Cortex-M0 微控制器、一個 2.4 GHz 無線收發(fā)器、128 kB RAM、128 kB ROM 以及 AES-128 和 SHA-256 硬件加速計組成。 此外,該器件提供的是全系列 GPIO 和串行主/從 SPI、I2C 主/從和 UART 接口連接。 該器件同時具有集成 DC/DC 轉(zhuǎn)換器和電源管理單元 (PMU),組合在一起幫助 SoC 實現(xiàn)眾多超低功耗規(guī)范模式。 同時包括一個單通道 11 位 ADC、四個 PWM 端口以及通用定時器。 另外,還使用 ROM 來存儲了合適的智能藍牙協(xié)議堆棧(藍牙 4.1),具體包括 L2CAP 服務(wù)層協(xié)議、安全管理器、屬性協(xié)議 (ATT)、通用屬性協(xié)議 (GATT) 和通用訪問規(guī)范 (GAP)。 應(yīng)用特定規(guī)范包括接近、溫度計、心率和血壓。 圖 1 展示了這一 SoC 器件的框圖。
該器件能夠通過 1.8 至 4.3 VDC 的電池工作,使用 3.6 V 電源時,在保持 RAM 和 RTC 運行的休眠模式消耗的電流低至 1.1 μA,且在接收模式時峰值電流為 4.0 mA。
圖 1:ATBTLC1000 框圖。
許多物聯(lián)網(wǎng)應(yīng)用將要求電池供電型設(shè)備使用期間只需很少的電池更換次數(shù)。 郊區(qū)環(huán)境通常不是很方便,不是很遠就是可能有危險,當(dāng)在這些地方使用物聯(lián)網(wǎng)傳感器時,通常會因為電池壽命短而產(chǎn)生高額費用,對傳感器制造商的品牌也會造成潛在傷害。 憑借創(chuàng)新的電源架構(gòu),ATBTLC1000 消除了外部穩(wěn)壓器和片外元件的需要。 該 PMU 塊具有典型值達 83% 的高能效,包括 DC/DC 降壓轉(zhuǎn)換器和低壓降穩(wěn)壓器 (LDO),可轉(zhuǎn)換電池電壓,向 BLE 內(nèi)核和 RF 收發(fā)器供電。
圖 2:Atmel ATBTLC1000 Xplained Pro 擴展板。
如開始一個基于新微控制器的設(shè)計,Atmel 的 Xplained Pro 板系列便是一種超快、超便利的方法。 Xplained Pro 板以 Atmel 的集成開發(fā)環(huán)境平臺 Atmel Studio 為支持平臺,配備 Atmel Software Framework (ASF)、全套板支持驅(qū)動器、代碼示例和文檔;且 Atmel 的所有基于 AVR 和 ARM 的微控制器產(chǎn)品系列均提供該板。 如圖 2 中所示,ATBTLC1000 擴展板使用標(biāo)準(zhǔn)連接器針座,可方便地將各種連接形式合并在一起,包括有線和無線、電容式觸摸控制、擴展 IO 和一系列基于 MEMS 的傳感器。 設(shè)計時考慮到了工程師的需求,不僅讓工程師加快了產(chǎn)品上市速度,而且還通過為每塊板提供完善的文檔材料和應(yīng)用說明,讓工程師設(shè)計時更有信心。
ATBTLC1000 Xplained Pro 在一個模塊化封裝中合并了 FCC 和 ETSI 預(yù)認(rèn)證無線 SoC、數(shù)字溫度傳感器、調(diào)試器針座支持(UART、I2C 和電流計量)以及一個 32 kHz 的晶體。 它可以連接到多個主機 MCU Xplained Pro 板。 為簡化處理,該擴展板與 Atmel SAML21 Xplained Pro 板是作為一個完整套件提供的,您也可以單獨購買 MCU 板。
入門任何 Xplained Pro 平臺都極其簡單。 開始前您需要從 Atmel 網(wǎng)站免費下載 Atmel Studio(當(dāng)前為第 7 版)。 下載的包中包含了 Atmel Software Framework,因此您也可以隨時使用代碼示例。 安裝后,啟動 Atmel Studio 并將擴展板連接到您的微控制器板即可。 Atmel Studio 會自動檢測連接到了哪一種 MCU 和擴展板,并顯示該組合的登錄頁。登錄頁提供了相關(guān)文檔和規(guī)格書供您選擇,以啟動 Atmel Software Framework 來訪問實例應(yīng)用。
如前所述,ATBTLC1000 SoC 具有智能藍牙鏈路控制器,促使主機微控制器執(zhí)行所有標(biāo)準(zhǔn)藍牙服務(wù)器和客戶端操作,如 GAP 和 GATT。 該 SoC 通過片載固件提供了所有 BLE 4.1 鏈路層和應(yīng)用規(guī)范功能。 Atmel 提供了一個適配器 API 來實現(xiàn)與鏈路層固件的通信。
圖 3:ATBTLC1000 智能鏈路控制器主機連接圖。
Atmel 的 API 采用一個直接編程模型,該模型通常包含三個操作組,即平臺/鏈路控制器初始化、設(shè)備配置以及事件處理與監(jiān)視。 圖 4 所示為一個簡單的應(yīng)用流程圖。 at_ble-init() 函數(shù)調(diào)用啟動了鏈路控制器。 接著需要設(shè)備配置來設(shè)置設(shè)備地址并命名任何相關(guān)廣告數(shù)據(jù)。 該 API 采用請求、響應(yīng)工作機制。 一個 API 調(diào)用可觸發(fā)一個或多個事件消息,返回到調(diào)用應(yīng)用。 在 Atmel 的《低功耗藍牙 API:軟件開發(fā)用戶指南》1 和 Atmel 軟件框架2 中可找到完整的可用 API 清單。
圖 4:API 編程模型 – 應(yīng)用流程。
利用一個計劃圖可完美地展示該 API 的工作原理:見圖 5。 在此示例中,設(shè)置 GAP 廣告的過程意味著外設(shè)將以無線方式發(fā)送一個單向廣播數(shù)據(jù),以便讓另一藍牙設(shè)備發(fā)現(xiàn)。 除了這個必需的廣告數(shù)據(jù),如設(shè)備名稱和 ID,可通信的其它信息可幫助建立連接。
圖 5:GAP 廣告過程計劃圖。
這一其它數(shù)據(jù)就是調(diào)用響應(yīng)數(shù)據(jù)。 函數(shù) at_ble-init() 初始化后,在對廣告函數(shù)作出調(diào)用前,需要在 at_ble_adv_data_set 函數(shù)中設(shè)置廣告數(shù)據(jù)。 如果目的是廣告,然后建立連接,則要調(diào)用 at_ble_adv_start(可連接)。 圖 6 中的代碼實例只展示了啟動此過程的應(yīng)用的第一部分,從定義和設(shè)置設(shè)備名稱、初始化設(shè)備、設(shè)置廣告響應(yīng)數(shù)據(jù),到開始廣告。 這只是一個通過在設(shè)計應(yīng)用時使用 Atmel 藍牙 API 實現(xiàn)的簡潔性實例。