低功耗、便攜式無線設備市場正在經歷爆發式發展,其中低功耗藍牙4.0 規范在開發此類系統時起著關鍵作用。 本文將探討如何使用Laird Wireless、connectBlue 和Bluegiga 等制造商提供的支持藍牙4.0 規范的模塊,在象CSR 提供的開發環境中開發可穿戴和低功耗醫療設備。
隨著對可穿戴計算關注的不斷增加,低功耗藍牙4.0 低功耗連接正使得從便攜式健身系統到智能籃球之類廣泛的設備成為現實。
每天都有象手表、手鐲、手套、甚至是牙刷之類物品在使用藍牙無線技術更新升級,使它們能夠獲取數據并送回智能手機或平板電腦上的應用。2013 年售出的運動和健身追蹤器96% 由可穿戴設備組成,ABI Research 預計2014 年會有3 千2 百萬這種采用智能藍牙技術的設備售出。
從一塊小小的可充電電池供電是可穿戴設備和運動市場的關鍵。利用一塊電池運行嵌入式鏈路多年的能力,正促使智能藍牙不斷被采用。這需要對設計,無論是硬件還是軟件,做一些關健的考量。
智能藍牙的核心就是其能夠與現有智能手機或平板電腦的應用一起工作。 盡管低功耗藍牙使用與以前傳統藍牙相同的2.4 GHz ISM 頻帶,但它采用了更簡單的高斯頻移協議來降低功耗。 此外,它還采用了較小的2 MHz 信道和直接序列擴頻(DSSS) 調制功能。
這種組合意味著無法直接兼容低功耗和傳統規范。 然而,這對開發人員來說不是問題,因為獲得藍牙兼容性認證的所有芯片和模塊都能在適用于舊設備的傳統藍牙模式或具有DSSS 功能的智能藍牙模式下工作。 起初,“智能藍牙就緒”指的是雙模設備,一般是一臺筆記本電腦或是智能手機,硬件同時兼容傳統和低功耗藍牙外設,而“智能藍牙”標簽則只指低功耗藍牙設備。
智能藍牙通過采用四十個2 MHz 信道而獲得低功耗優勢,達到1 Mbit/s 鏈路比特率和270 kbit/s 應用吞吐率。 盡管這些指標低于傳統藍牙,但是將延遲從100 ms 縮短至6 ms,彌補了應用比特率方面的不足。 最大傳輸功耗也降至10 mW,覆蓋距離縮短至50 m 以內,這對于短程可穿戴和家庭應用來說綽綽有余。 同樣,這使得BLE4.0(低功耗藍牙)系統更易實現,因為幾乎不需要擔心總鏈路預算。
這種復雜性中的多數可以通過象Laird Wireless 這樣的模塊制造商來隱藏。Laird Wireless BL600 模塊將Nordic Semiconductor 的收發器與天線和接口集合在一起,全部器件封裝在一個緊湊的19 mm x 12.5 mm 外殼中。 該模塊包含了支持BLE 應用開發所需的全部硬件和固件,包括用于連接外設和傳感器的UART、SPI、I²C、ADC 和GPIO 接口。 經過這些接口連接單線、雙線或者多線鏈路會相對簡單。
圖1:利用Laird Wireless 的BL600 智能藍牙模塊能很容易在現有設計中添加連接。
從這些連接獲取數據由一系列規范來完成,具體規范包括血壓、心率、體溫計、接近和Find Me(找到我)。 這些規范稱作通用屬性規范(GATT),在操作系統中提供了一個客戶服務器應用編程接口(API),以及服務和描述符。
服務就是相關特征的集合,一起工作,執行特定功能。 體溫計服務包括溫度值測量特征和測量時間間隔特征。 描述符提供有關特征的詳細信息,如其單位指示(如攝氏度),以及傳感器可以測量的最大和最小值。
服務、特性和描述符的屬性由通用識別符(UUID) 集中識別。 藍牙SIG 為標準屬性預留了一個UUID 范圍(其格式為xxxxxxxx-0000-1000-8000-00805F9B34FB),這些通用識別符在協議中采用16 位或32 位短格式值表示,而非128 位,以保持較小代碼長度并減少復雜性。
GATT 操作
GATT 協議為客戶端提供了大量命令,用于發現與服務器有關的信息。 具體包括,發現所有主要服務的UUID,用已知UUID 查找服務,然后發現輔助服務,以及為已知服務查找全部特征。
指令用來將有關特征數據從服務器傳輸至客戶端(“讀取”),以及從客戶端傳輸至服務器(“寫入”)。 讀取某個值時,既可通過指定該特征的UUID 來讀取,也可以由來自信息發現指令的句柄值來讀取。 寫操作始終會通過句柄識別特征,但都可以選擇是否需要服務器做出響應。
GATT 也提供通知和指示。 客戶端可為來自服務器的特定特征請求一個通知,然后,只要相關的值進入有效狀態,服務器就會將其發送至客戶端。 例如,溫度傳感器服務器會在每次測量時通知其客戶端。 這樣可避免客戶端對服務器進行輪詢,從而省去了常規無線鏈路。 除需要客戶端做出響應以確認客戶端收到該信息外,指示和通知類似。
Laird 增加了一種可使模塊獨立運行的事件驅動型編程語言,因此能通過任何接口直接連接傳感器,而不必依賴外部處理器。 一個簡單的smartBASIC 應用包含了完整的傳感器數據讀取、寫入和處理的端到端過程,并隨后利用BLE 將其傳輸至任何藍牙4.0 設備——智能手機、平板或計算機。
除了擁有FCC 模塊、IC、CE 和MIC 認可,這些模塊可以算是擁有完全藍牙終端產品資質認可。 這能夠讓設計人員在其現有設備中集成這些模塊,無需作進一步的藍牙資質認可,大大提升了開發速度。
其它模塊制造商如Bluegiga 和connectBlue,均使用Texas Instruments 提供的BLE 硅器件,實現可支持藍牙4.0 的模塊。Bluegiga BLE112 模塊可以由標準3 V 鈕扣電池或兩節AAA 電池供電,適合從電子鎖匙扣至iPhone 配件之類的最小設計。 在最低功耗休眠模式下,其電流消耗僅500 nA,并會在幾百毫秒內喚醒,從而延長了電池壽命。 該connectBlue 模塊集成了溫度傳感器和加速計,用一個鈕扣電池即可連續工作達10 年之久。
ConnectBlue 的OLP425 模塊是一合格的控制器子系統,并支持由客戶開發的低功耗藍牙規范、服務和屬性。 該模塊基于同時運行應用和低功耗藍牙協議堆棧的TI CC2540 片上系統。 這包括對象代碼,帶有支持多個連接的最新BLE 協議堆棧、示例項目以及覆蓋廣泛規范集的應用,并提供源代碼。
該connectBlue OLP425 示例代碼包包括用于接入LED 、溫度傳感器和加速計的示例項目,帶有使用IAR 針對8051 芯片內核的Embedded Workbench 開發的嵌入式軟件。
收發器
CC2540 的設計分為三大類:CPU 相關模塊、與電源、測試和時鐘分配有關的模塊和無線電相關模塊(圖2)。
圖2:TI 的CC2540 智能藍牙4.0 收發器框圖。
CPU 和存儲器
從開發者角度看,SoC 的心臟就是兼容單周期8051 兼容的CPU 內核。 它擁有三個不同的存儲器訪問總線(SFR、DATA 和CODE/XDATA)、一個調試接口和一個18 輸入擴充中斷單元。
內存仲裁器是系統的心臟,因為它將CPU 和DMA 控制器通過SFR 總線與物理存儲器和所有外設相連。 它擁有四個存儲器訪問點,每個都可以映射到三個物理存儲器之一:SRAM、閃存和XREG/SFR 寄存器,并負責對相同物理存儲器執行同步存儲器訪問之間的仲裁和定序。
SFR 總線在圖2 中按概念繪制成將所有硬件外設連接到存儲器仲裁器的通用總線。 框圖中的SFR 總線也提供到無線電寄存器庫中無線電寄存器的訪問,即使這些寄存器確實是映射到XDATA 存儲器空間的。8 KB SRAM 映射到DATA 存儲器空間和部分XDATA 存儲器空間。 這是一個超低功耗SRAM,即使在數字零件斷電后(即電源模式2 和3)仍能保持其內容。128/256 KB 的閃存塊為設備提供了在線可編程非易失性程序存儲器,并映射到CODE 和XDATA 存儲器空間。
外設
閃存塊的寫入通過閃存控制器來執行,允許頁面智能擦除和4 B 智能編程,且系統提供一個通用五通道DMA 控制器。 它使用XDATA 存儲器空間訪問存儲器,并因此可以訪問所有物理存儲器。 每個通道(觸發器、優先級、傳輸模式、尋址模式、來源和目的地指針和傳輸計數)均配置有DMA 描述符,可以在存儲器任何位置定位。 許多硬件外設(AES 內核、閃存控制器、USART、定時器、ADC 接口等等)都可以與DMA 控制器一起使用,通過在單一SFR 或XREG 地址與閃存/SRAM 之間執行數據傳輸來實現高效運行。
每個CC2540 均包含唯一的48 位IEEE 地址,可以用作藍牙設備的公共設備地址。 設計人員可自由使用這個地址,或按照藍牙規范要求提供其自已的地址。
中斷控制器服務于總共十八個中斷源,分為六個中斷組,每個組關聯四個中斷優先級中的一個。 通過將CC2540 帶回活動模式,I/O 和睡眠定時器中斷請求即使在設備處于睡眠模式(電源模式1 和2)時仍有效。
調試接口實現了一個專屬的兩線接口,用于在線調試。 通過這個調試接口,有可能實現對整個閃存進行擦除或編程,控制啟用哪個振蕩器,停止和啟動用戶程序的執行,在8051 內核上執行指令,設置代碼斷點,以及單步執行代碼中的指令。 使用這些技術,可以悠哉悠哉地執行在線調試和外部閃存編程。
I/O 控制器負責所有通用I/O 引腳。CPU 可以將某些引腳配置成由外設模塊控制或由軟件來控制,而且當焊盤上接有上拉或下拉電阻時,每個引腳還可以配置成輸入或輸出。 每個連接到I/O 引腳的外設都可以選擇兩個不同的I/O 引腳位置,以確保在各種應用下的靈活性。
睡眠定時器是一種超低功耗定時器,既可以使用一個外部32.768 kHz 晶體振蕩器,也可以使用一個內部32.753 kHz RC 振蕩器。 睡眠定時器在除電源模式3 之外的所有工作模式下均是連續運行的。 此定時器的典型應用有:作為實時計數器,或作為喚醒定時器,以擺脫電源模式1 或2。
內置看門狗定時器允許CC2540 在固件掛起時將自身重置。 當看門狗定時器由軟件啟動時,必須定期清除,否則,它會在超時時重置設備。
定時器1 是一個16 位的定時器,帶有定時器/計數器/PWM 功能。 它帶有一個可編程預分頻器、一個16 位期間值和五個獨立的可編程計數器/捕獲通道,每個都有一個16 位的比較值。 每個計數器/捕獲通道都可以用作PWM 輸出,或用于捕獲輸入信號上的邊沿時間。 它還可以配置為IR 發生模式,此時對定時器3 的期間進行計數并將輸出與定時器3 的輸出進行“與”操作,以生成經過調制且只需最少CPU 交互的消費者IR 信號。
定時器2 是一個供低功耗藍牙堆棧使用的40 位定時器。 它帶一個提供可配置定時器期間的16 位計數器和一個可用來跟蹤已發生期間數的24 位溢出計數器。 也可以使用一個40 位捕獲寄存器來記錄收到/發出幀起始分隔符時的精確時間,或者傳輸結束時的精確時間。 有兩個16 位定時器比較寄存器和兩個24 位溢出比較寄存器,可以用來提供向無線電和一般中斷發出RX 或TX 開始的精確時間。
定時器3 和定時器4 均為8 位定時器,具有定時器/計數器/PWM 功能。 它們都有一個可編程預分頻器、一個8 位期間值和一個帶一個8 位比較值的可編程計數器通道。 每個計數器通道都可以用作PWM 輸出。
USART 0 和USART 1 每一個都可以配置成SPI 主/從設備或UART。 它們同時在RX 和TX 上提供雙緩沖以及硬件流量控制,因此非常適合高吞吐量全雙工應用。 每個USART 都其自己的高精度波特率發生器,因此可以將常規定時器留作它用。 當配置為SPI 從設備時,USART 直接使用SCK 取代某些過采樣方案對輸入信號進行采樣,因此非常適合高數據速率應用。
為獲得更安全的應用,允許用戶采用AES 加密/解密內核使用采用128 位密鑰的AES 算法進行數據加密和解密。AES 內核也支持ECB、CBC、CFB、OFB、CTR 和CBC-MAC,同時對CCM 提供硬件支持。
ADC 支持7 至12 位分辨率,分別對應帶寬范圍為30 kHz 至4 kHz。 可以進行高達8 輸入通道(I/O 控制器引腳)的DC 和音頻轉換。 輸入可以選擇為單端或差分形式。 基準電壓可以是內部、AVDD 或單端或差分外部信號。ADC 也有濕度傳感器輸入通道。ADC 可以按照通道順序使定期采樣或轉換自動進行。
運算放大器用來為ADC 提供前端緩沖和增益。 兩個輸入以及輸出均在引腳上提供,因此可以完全定制反饋網絡。 對于需要出色的高增益精度的應用,提供了斬波穩定模式。
超低功耗模塊比較器能夠讓應用根據模擬信號從PM2 或PM3 喚醒。 兩個輸入均提供到引腳;基準電壓必須外部提供。 比較器輸出連接到I/O 控制器的中斷檢測器,并可以由MCU 作為常規I/O 引腳中斷來處理。
另一個藍牙收發器和SoC 芯片制造商CSR 還提供一整套軟件開發工具,以支持使用其uEnergy 芯片的板設計和生產測試。 該芯片固定在一個基準模塊之上,帶有一個 USB 編程接口和用于斷開到應用特定傳感器和致動器的輸出I/O 的接口。 這種全許可型CSR xIDE 軟件開發環境包括了各種應用以簡化項目,具體如針對常見智能藍牙規范的示例應用以及針對iOS 和Android 智能手機的主機應用。 目標板通常由主機USB 連接供電,但也能從板載鈕扣電池獨立運行,以便進行功率測量。
圖3:CSR 智能藍牙開發系統。
將模塊集成到設計中相對容易,不過在使用電池向這些設備供電時需要做出幾項關鍵選擇。
來自Bluegiga 的BLE112 可以直接與鈕扣電池一起使用。 由于鈕扣電池具有相對較高的內阻,因此建議在該電池上并聯一個100 μF 電容器。 鈕扣電池的內阻初始值在10 歐姆以內,但會隨著容量的使用而急劇增大。
電容值越高,電池的有效容量就越高,且應用的使用壽命越長。 電容器的最小值取決于終端應用和所用的最高傳輸功率。 一個100 μF 電容器的漏泄電流為0.5 μA 至3 μA,一般情況下,陶瓷電容器的漏泄電流低于鉭電容器或者鋁電解電容器。
圖4:BlueGiga 的BLE112 智能藍牙模塊。 在電池上并聯電容器會延長電池壽命。
另一個選擇是使用DC/DC 轉換器來減少TX/RX 和數據處理期間的電流消耗。 當使用3 V 鈕扣電池時,有多種具有旁通模式的超低功耗DC/DC 轉換器能將正常傳輸期間的電流消耗減少約20%。 推薦使用鐵氧體磁珠過濾電源線路中的任何剩余噪聲,以確保無線電性能。
結論
全新一代便攜式、可穿戴和連網的家庭設備必定要利用到智能藍牙技術。 有了4.0 版的低功耗藍牙技術,現有設計可以輕松升級,能夠為廣泛的新應用而連接到智能手機和平板電腦。 擁有預先資質、支持高集成度硅器件的模塊和開發套件能夠幫助開發人員快速、輕松地增加這種能力。