協(xié)處理器模式概述
BlueNRG 系列芯片從最早的一代 BlueNRG-MS 開始就支持協(xié)處理器模式。在協(xié)處理器模式下,BLE 功能在 BlueNRG 芯片端完成,應(yīng)用部分在 MCU 端完成。與 AT 指令的模式類似,協(xié)處理器方式也具有高內(nèi)聚、低耦合的特點,但相比于 AT 指令模式,協(xié)處理器方式更為強大靈活,而且還兼顧了 MCU 間通信的睡眠和相互喚醒等方面的需求。
BlueNRG 系列的所有芯片都支持協(xié)處理器模式。在使用協(xié)處理器時,BlueNRG 需要燒錄一個 DTM 固件。DTM 原本是指 Direct Test Mode,而 ST 在這個固件的功能上進行了擴充。除了用于 RF 測試(包括 RF 發(fā)射功率、接收靈敏度、頻偏、諧波等方面的測試),BlueNRG 的 DTM 固件還可以用于協(xié)處理器模式。
BlueNRG GUI 工具是一個針對 BlueNRG 芯片協(xié)處理器應(yīng)用的工具。在使用協(xié)處理器時,協(xié)處理器可以搭配任何帶有串口或 SPI 接口的 MCU、MPU 或 PC 端使用。
協(xié)處理器軟件分層
BlueNRG GUI 工具的使用屬于一個 BlueNRG 芯片協(xié)處理器的應(yīng)用。協(xié)處理器可以搭配任意帶串口或者 SPI 的 MCU、MPU 或者 PC 端使用。
ACI 指令格式
Bluetooth LE 協(xié)議棧 ACI 指令利用并擴展了標(biāo)準(zhǔn) HCI 數(shù)據(jù)格式。
DTM 相關(guān)的工程介紹
BlueNRG SDK 中提供了很多個不同的 DTM 的工程,用戶難以分辨。為了簡化,絕大部分應(yīng)用,建議選擇功能最齊全的 DTM 工程下,“UART_WITH_UPDATER”工程配置或者“SPI_WITH_UPDATER”工程配置。
基于 STM32CubeMX 軟件包的協(xié)處理器模式
基于源碼移植的協(xié)處理器模式
如果使用的另外一端的 MCU 并非是 STM32,或者一些 ST 官方還沒有適配的型號(如 BlueNRG-LPS)則需要移植協(xié)處理器模式源碼到 MCU 上。
應(yīng)用處理器(MCU)端軟件處理主框架
主要處理流程分為兩大類:
- MCU 或者處理器主動發(fā)送數(shù)據(jù)
- BlueNRG 主動發(fā)送數(shù)據(jù)
交互時序圖
下文分別描述通過串口和 SPI 交互時的時序圖。了解雙方通信的時序,有助于理解雙發(fā)睡眠和喚醒,以及在定位問題時能夠更快速準(zhǔn)確定位分析問題。
小結(jié)
本文介紹了 BlueNRG 系列芯片的協(xié)處理器模式、軟件分層、ACI 指令格式以及 DTM相關(guān)的工程。BlueNRG 芯片的協(xié)處理器模式與 AT 指令模式類似,但更為強大靈活,同時兼顧了 MCU 間通信的睡眠和相互喚醒等方面的需求。BlueNRG 系列的所有芯片都支持協(xié)處理器模式,且可搭配任何帶有串口或 SPI 接口的 MCU、MPU 或 PC 端使用。在軟件框架方面,協(xié)處理器模式有兩種分層,大部分應(yīng)用采用第一種方式,對應(yīng)用處理器或 MCU只需要關(guān)注應(yīng)用部分,處理器和 MCU 之間通過 ACI 指令進行交互。了解 ACI 指令格式有助于在實際調(diào)試雙通信部分時遇到問題時分析定位問題。在 DTM 相關(guān)的工程介紹方面,建議選擇功能最齊全的 DTM 工程下,“UART_WITH_UPDATER”工程配置或者“SPI_WITH_UPDATER”工程配置。