概述
OTA(Over-The-Air Technology)即空中下載技術,利用OTA技術可以在不接觸(接線)的情況下對芯片程序進行升級。AT32WB415的OTA是通過藍牙的方式實現的,利用芯片中的藍牙模塊(BLE)接收上位機發送的升級命令和程序代碼。OTA分為兩個部分,用戶可以選擇OTA升級BLE模塊APP,也可以選擇OTA升級MCU端。對于MCU端的升級參考了IAP功能的實現,需要在設計固件程序時編寫兩個項目代碼,第一個項目程序不執行正常的功能操作,而只是通過串口接收程序或數據,執行對第二部分代碼的更新;第二個項目代碼才是真正的功能代碼。
AT32WB415 OTA程序設計
地址分布
表1. 地址分布
注:mcu bootloader區域最后一個扇區,用于存放防止升級過程掉電的flag,用戶編譯修改bootloader時,要保證不覆蓋flag的地址。
上位機軟件設計
為了方便用戶開發,本應用指南提供了可用于AT32WB415升級的上位機OTA軟件,其主要包括掃描、連接藍牙設備,獲取設備信息,打開并下載OTA文件等。軟件流程如下:1) 掃描并連接設備2) 調用FFC0服務中的FFC1特征,發送0x00,等待BLE端回復設備信息數據,共10bytes,包括2 bytes app版本號,2 bytes app長度,4 bytes uid,2 bytes rom版本號;3) 選擇下載的bin文件,再次調用FFC1特征,發送bin文件頭部信息,共16 bytes,等待BLE端接收該信息,并返回2 bytes數據,返回值為0x0000;4) 調用FFC2特征,開始發送bin文件,每次發送18 bytes,包括2 bytes block number和16 byts bin文件數據,當block number等于bin文件頭部信息中的bit[6:7]/4時,傳輸完成5) 調用FFC1特征發送0x5AA5,請求BLE返回OTA結果,如果返回0,則持續發送0x5AA5,如果返回非0值,則發送0xA55A提示BLE進行復位。BLE端返回值含義:— 0x0000:正在進行OTA— 0xFFF0:成功— 0xFFF1:錯誤— 0xFFF2:超時— 其他值:返回值錯誤程序執行整體流程框圖如下:圖1. 上位機程序執行流程
BEE模塊軟件設計
對于BLE模塊部分的軟件設計,boot&stack code部分無需修改,軟件設計都在app code。主要包含了以下內容:1) 接收上位機藍牙數據2) 對藍牙接收到的bin文件進行分析,在bin檔頭部包含了app版本、rom版本、uid等內容3) 判斷app版本號,app_version>0x8000,則用于MCUapp升級,否則用于BLE模塊app升級4) MCU app升級時,先發送0xa55a5aa5到MCU,提示其復位芯片,進入bootloader程序,然后通過串口將接收到的藍牙數據發送給MCU5) BLE模塊app升級時,直接將接收到的數據寫入flash中OTA數據存放區域6) 等待發送完成,復位BLE模塊程序執行整體流程框圖如下:圖2. BLE程序執行流程
MCU軟件設計
MCU軟件設計分為Bootloader和App兩部分,應用在App中執行,升級過程在bootloader中執行。Bootloader功能包含:1) 讀取flash中的標志判斷是否需要更新app2)如果無需更新則直接跳轉app執行,需要更新則繼續執行下面的操作3) 接收BLE模塊發送的串口數據,將數據保存至mcu ota code區域4) 數據接收完成后將OTA數據搬運至mcu app code區域并跳轉至app執行App功能包含:1) 清除flash中的OTA更新標志2) 運行app功能代碼(IO翻轉)3) 串口持續監測是否收到OTA升級命令(0xa55a5aa5)程序執行整體流程框圖如下:圖3. MCU程序執行流程
一、bootloader project設置
1) Keil設置圖4. bootloader project中address 4在Keil設置2) bootloader源程序修改Iap.h文件中圖5. bootloader project中address 5在程序中設置
二、app project設置
IAP demo提供了2個app程序供測試用,皆以address 5(0x800 4000)為起始地址。app1 LED3閃爍,app2 LED4閃爍。以app2為例,設計步驟如下:1) Keil工程設置圖6. app project中address 5在Keil設置2) app1源程序設置圖7. app project向量表偏移在程序中設置
3) 編輯generate_app.bat批處理文件文件中的“-v 0x8002”為app程序版本號,可配置為0x8000-0Xffff范圍內的任意值。4) 編譯生成bin文件通過User選項卡,設置編譯后調用fromelf.exe,根據axf文件生成bin文件,然后設置調用encrypt_app.bat批處理文件,生成OTA升級所需的bin文件。
通過以上3個步驟,我們就可以得到一個APP程序,將bin文件添加到OTA上位機軟件即可實現app程序的更新。
如果在設計app code過程中需要對app project進行單獨調試,請按照以下操作a)先下載bootloader工程b)再調試app工程PS. “通過PC上位機OTA升級”及”通過Android APP OTA升級”案例可點擊文末”閱讀原文”查看AN0144關于雅特力雅特力科技于2016年成立,是一家致力于推動全球市場32位微控制器(MCU)創新趨勢的芯片設計公司,專注于ARM Cortex-M4/M0+的32位微控制器研發與創新,全系列采用55nm先進工藝及ARM Cortex-M4高效能或M0+低功耗內核,締造M4業界最高主頻288MHz運算效能,并支持工業級別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當多元的終端產品成功案例:如微型打印機、掃地機、光流無人機、熱成像儀、激光雷達、工業縫紉機、伺服驅控、電競周邊市場、斷路器、ADAS、T-BOX、數字電源、電動工具等終端設備應用,廣泛地覆蓋5G、物聯網、消費、商務及工控等領域。
-
OTA
+關注
關注
7文章
608瀏覽量
36368 -
藍牙模塊
+關注
關注
30文章
604瀏覽量
56568 -
雅特力
+關注
關注
0文章
179瀏覽量
8522
發布評論請先 登錄
AT32WB415 OTA Application Note
AN0152—AT32WB415直接測試模式入門指南
AT32WB415 SPP Application Note
雅特力最新推出AT32WB415系列藍牙BLE 5.0MCU

雅特力全新升級AT-Link+,支持AT32WB415藍牙芯片燒錄

雅特力AT32WB415通過德國萊因藍牙質量認證機構測試
雅特力重磅推出AT32WB415系列藍牙BLE 5.0 MCU,開創“無線”物聯網未來

雅特力AT32WB415 Security Library使用指南

評論