STM32WB STM32G4 STM32H7 STM32L5 STM32G0

基于STM32WB的低功耗藍牙應用(一)

STM32WB概覽





基于STM32WB的低功耗藍牙應用(一) STM32WB概覽

基于STM32WB的低功耗藍牙應用(二) RF協議棧的有線和無線更新

基于 STM32WB 的低功耗藍牙應用(三) 用戶應用程序的無線更新(OTA空中升級)

STM32WB藍牙設計開發匯總(RF天線,PA,功耗測試,OTA等)



從使用角度,我們有以下六類設計資源,提供給開發者,做基于STM32WB的低功耗藍牙應用開發。

技術文檔、評估板、參考固件例程、配合低功耗應用的軟件工具、中文培訓材料、本地方案(ST本地支持團隊和中國合作伙伴開發的方案,都會在這里向大家集中展示)


生態系統






技術文檔


STM32WB的基礎文檔,首先是芯片的參考手冊。目前STM32WB家族里只有一個55系列,它的參考手冊是RM0434。它有1500多頁,分章節描述了STM32WB芯片架構、總線、片上RAM、Flash、以及各個外設的功能、寄存器說明。WB主要新增的外設有實現RSA、ECC等非對稱加解密功能的PKA單元,即public key accelerator(公鑰加速器),用于雙核通信的IPCC(inter processor communication controller)和硬件信號量HSEM等。

然后是數據手冊,勘誤手冊。這三篇是STM32WB的基礎技術文檔。

這里的5個應用筆記,都和STM32WB的硬件設計使用有關。



>> 因為WB集成了一顆支持低功耗藍牙應用和802.15.4的RF收發器,相比以前的STM32,WB在硬件lay板子的時候,需要額外注意一些問題?!続N5165】是WB做射頻應用時硬件開發方面總的指南。

>> STM32WB設計的目標之一就是高集成度,在保證優化的射頻性能前提下,能讓用戶盡量減少外部器件的使用,降低BOM成本?!続N5290】就以QFN48引腳封裝的WB55芯片為例,并給出了最小系統原理圖。 “高集成度” 主要體現在WB集成了開關電源,以提高2V以上供電時的電源轉換效率。WB使用HSE外部高速晶振給RF模塊提供時鐘,可通過芯片內部集成的負載電容調節HSE精度,無需用戶采用外部電容器件。另外兩個應用筆記【AN5042】和【AN5246】就是對這兩個特性展開的說明。為了進一步節約成本,還可以使用PCB天線,只要設計得當,它的性能可以和表貼陶瓷天線相當?!続N5129】對其進行了詳細指導和說明。


技術文檔(2)

STM32WB的主要應用是低功耗藍牙應用,低功耗是STM32WB的主要設計目標之二。STM32WB繼承了STM32L4的低功耗特性,支持多種低功耗模式,以及每個模式下面的子模式選項;低功耗的模擬外設、BAM(批處理獲取模式)、靈活的時鐘系統?!続N5071】就是對STM32WB芯片的低功耗特性概覽。

STM32WB的雙核之一,M0+內核是專門跑射頻協議棧的,對用戶或者說對M4內核,是一個黑盒子。要更新M0+上運行的協議棧,無論是通過JTAG/SWD、USB/UART這樣的近程有線,還是通過BLE空中升級方式,要燒寫和更新射頻協議棧,必須通過FUS,即firmware update service。這里的firmware,不是指跑在M4內核上的用戶應用程序firmware,是專指跑在M0+內核上,對用戶不可見的射頻協議棧firmware。這是一段芯片出廠就已經固化在STM32WB的secure flash中的一段程序,永遠擦除不掉。


芯片出廠時,只有預裝了FUS,沒有任何協議棧。需要用戶根據自己的應用,使用無線或者有線方式,來把對應的協議棧通過FUS寫進去。然后才可以繼續在M4+內核上開發應用程序?!続N5185】就是對FUS的詳細說明;【AN5247】是STM32CubeWB固件包里的OTA例程說明文檔。里面描述了這個ota樣例程序的邏輯,用戶使用步驟。這個ota程序,不僅可以空中升級M4上運行的用戶應用程序,也可以空中升級M0+上運行的射頻協議棧。由于FUS的存在,射頻協議棧,一定是被ST公鑰簽名加密過的。關于FUS和OTA的使用,我們下期,會有更詳細的介紹。



BLE Mesh應用,在STM32CubeWB中也有示例程序,這里的三個文檔【AN5292】、【UM2180】、【UM2361】,分別是對BLE Mesh例程的說明,以及搭配例程使用的手機app的說明。

【AN5270】和【AN5289】,更偏向于開發者角度,詳細列出了ACI層和HCI層的事件,比如連接完成,請求LTK這些LE META事件;比如配對完成、綁定丟失、數值比較這些ACI層的GAP事件;比如notification、server confirmation這樣的ACI層GATT/ATT事件。以及所有協議棧使用的,私有的HCI層、GAP、GATT相關命令。



技術文檔(3)


這里的前四個文檔,是對三個例程的使用說明,分別是
>> 使用STM32WB獲取傳感器參數,并通過BLE發送給手機
>> 使用STM32WB做全雙工的音頻傳輸
>> 基于STM32WB的SBSFU,即安全啟動和安全固件升級。之前在STM32CubeWB固件包里的ota例程,對M4內核上運行的用戶應用程序升級,是明文升級。如果對用戶應用程序的升級有加密和認證需求,可以參考這個例程的實現。



評估板


接下來,是ST官方出品的STM32WB55,目前唯一一款評估板:訂購號,P-Nucleo-WB55 pack。這個套件里包含兩塊基于STM32WB55的板子,如圖示:一個是Nucleo板,板載QFPN68引腳封裝的STM32WB,和STLINKV2;一個是板載QFPN48引腳封裝STM32WB的USB dongle板。


STM32CubeWB固件包里包含兩個板子上的多個例程。Nucleo板,由于板載了STLINK,因此燒寫程序比較方便;USB dongle板只能通過48引腳WB芯片上,系統memory里面集成的bootloader來燒寫應用程序。USB dongle板通常搭配STM32CubeMonitor-RF使用。由于需要系統memory啟動,USB dongle板引出了撥碼開關,方便啟動模式的切換。

下期介紹ota例程時,會詳細說明。





固件例程


介紹完了STM32WB的技術文檔、評估板,我們接下來看一下,ST目前提供了哪些關于低功耗藍牙應用的參考例程。

beacon,和幾個SIG協會定義的標準profile,例程都有支持。P2P通信基于自定義profile,我們給出了sever,client,router的實現例程。其中藍色框中的三個例程演示了如何通過ota bootloader,把用戶應用從p2p server更新到心跳profile。這個例程,Nucleo板作為OTA server,OTA server可以由手機上的app,ST BLE Sensor或者STM32CubeMonitor-RF來擔任。使用后者的時候,需要搭配使用USB dongle板。




固件例程(2)

STM32CubeWB固件包里還有大家最關心的BLE Mesh智能照明應用例程,對應的手機App是ST BLE Mesh。例程的使用,以及手機app的使用,都可以參考表格里的文檔。


還有一個值得強調的是CKS加密這個例程。這不是BLE應用的標準場景,是STM32WB芯片特有的安全功能。STM32WB提供對用戶應用key的安全存儲。在安全環境中,用戶把應用key放到STM32WB的安全存儲區域內,之后M4的應用就可以使用這些key進行加解密運算。key的存儲和使用都很安全,用戶通過index來操作key,得到的是明文和密文,永遠無法或者key本身。key的存儲,可以通過M4上的用戶存儲調用FUS API,也可以通過STM32CubeMonitor-RF來把用戶key傳遞給STM32WB,當然底層也是一樣調用的FUS API。這個例子的講解,也會在下次介紹來展開。




固件例程(3)
除了BLE協議棧,M0+內核還可以運行OpenThread,以及generic MAC,基于這兩個RF協議棧的例程,ST也提供了若干,如表格中所列。




RF協議棧


在STM32CubeWB 固件包中發布
這張圖,大家之前一定多次看到。它展示了 STM32WB 芯片支持的多種 RF 協議棧。即可以在M0+內核燒寫不同的協議棧,圖中藍色部分;然后在M4+上運行不同類型的用戶程序,圖中綠色部分。每一列是一個使用場景,但是彼此獨立。比如左邊第二列,是最常見的應用,就是M0+里運行BLE full stack,然后M4上跑BLE應用,比如mesh啊,比如其他標準或者自定義的profile,service啊。也可以,采用第四列,M0+里運行Thread FTD,Full Thread stack,然后綠色的M4內核部分運行Full thread應用。但是這兩種使用場景是不能同時存在的。


目前,6種RF 協議棧都已經支持,并且隨STM32CubeWB固件包一起發布。Zigbee協議棧也會馬上支持,預計在下一個版本STM32CubeWB 1.3.0中大家可以拿到。


STM32CubeWB 固件包,當前最新版本是1.2.0,在Project目錄下,有一個STM32WB coprocessor wireless binaries文件夾,下面就存放了最新版本的各種RF協議棧。

注意:所有隨STM32CubeWB 固件包發布的協議棧,都是被ST私鑰簽名加密過的,必須搭配STM32WB中的FUS才能驗簽并且解密,然后燒寫到M0+內核獨享的secure flash中。

表格中前6行是前一頁說的目前支持的6種RF 協議棧。后面兩個,不是RF 協議棧,一個是FUS本身,一個是用于配合STM32CubeMonitor-RF做STM32WB板射頻性能測試使用的。

FUS在芯片出廠時已經固化在STM32WB中,但是版本默認都是0.5.3,要想使用CKS功能,FUS要進行版本升級?,F在STM32CubeWB固件包里的FUS是v1.0.1。



STM32WB · 固件例程
STM32Cube 功能擴展固件包

除了STM32CubeWB 固件包里包含的多個低功耗藍牙和Thread應用的例程,在STM32CubeWB固件包之外,還有不少獨立的固件例程,來展示STM32WB芯片的各種使用案例。

>> 調整HSE精度以提供STM32WB的射頻應用高精度時鐘
>> 基于STM32WB的SBSFU,即安全啟動和安全固件升級。之前在STM32CubeWB固件包里的ota例程,對M4內核上運行的用戶應用程序升級,是明文升級。如果對用戶應用程序的升級有加密和認證需求,可以參考這個例程的實現
>> 使用STM32WB做全雙工的音頻傳輸升級。之前在STM32CubeWB固件包里的ota例程,對M4內核上運行的用戶應用程序升級,是明文升級。如果對用戶應用程序的升級有加密和認證需求,可以參考這個例程的實現
>> 使用STM32WB獲取傳感器參數,并通過BLE發送給手機

它們分別搭配的說明文檔,在之前講STM32WB的技術文檔時,都已經提到過。







軟件工具


我們提供的豐富的基于STM32WB的低功耗藍牙應用,有的是藍牙板板子之間的通信,有的是藍牙板和手機通信。

需要用到的手機端app,源碼都公布在st github下;蘋果版app在蘋果商店可以下載,安卓版app在STM32中文網站可以下載。

在做OTA和FUS更新時候需要用到的STM32Cube PC端工具,也都在表格里列了出來。下期介紹,我們會結合具體使用案例,來展示如何使用。





本地培訓資料


自從2017年推出STM32WB芯片以來,STM32中國支持團隊,做了很多技術資料的本地化工作。包括今年中在六個城市的線下培訓,由STM32WB技術支持工程師撰寫培訓材料,并到現場做培訓,和客戶交流,解決問題。手機掃描膠片里的二維碼,可以下載到2019年STM32WB線下培訓的課件。






本地方案


我們還開發了基于STM32WB的智能鎖方案。除了STM32WB作為主控芯片,方案里還集成了ST的安全芯片STSafe,直流馬達驅動芯片STSPIN240,NFC讀卡器芯片ST25,加速度傳感器芯片LSM303AGR。通過安卓手機app連接、配置并管理智能鎖,包括

>> 向服務器注冊用戶、注冊鎖
>> 綁定鎖和用戶,并使用戶成為管理員
>> 添加和刪除 鎖關聯的用戶, 等等

智能鎖的控制包括
>> 通過按鍵, 開、關鎖
>> 使用安卓手機app,通過藍牙, 開、關鎖
>> 通過手機自帶的NFC,開、關鎖
>> 通過事先關聯的NFC tag,開、關鎖
>> 通過臨時密碼,開、關鎖

整個方案都是開源的,包括原理圖、手機app源碼,MCU端固件,詳情登陸膠片里的超鏈,了解更多信息。




今天《STM32 生態系統》 介紹第二期:基于STM32WB的低功耗藍牙應用:第一集. 概覽的介紹,就到這里。

下期我們會介紹,RF協議棧的有線和無線更新,用戶應用程序的無線更新(即OTA空中升級)。敬請關注!




(0)
評論
待審核
請先登錄
在线观看网站深夜免费,欧美人配日本人配种视频,真实偷拍走光福利无删减视频,女人自熨全过程免费视频