STM32雲平台連接培訓20180814


MQTT基於TCP,發布訂閱模式,一對多,多對一,TCP需要client主動建立connect,server發送connectack

CoAP基於UDP,請求/應答模式,數據量也相對HTTP要小

HTTP基於TCP,請求應答模式,數據量較大

 

1. MQTT協議

  • Message Queuing Telemetry Transport消息隊列遙測傳輸
  • 輕量級協議
  • 服務器/客戶端模式,樁-Cloud-手機,樁和手機不直接通信,Cloud為數據轉發,叫Broker
  • 發布/訂閱,Publish/Subscribe, 端端不直接指定通信,而是通過主題Topic,一端只會像server發布主題,另一端只會訂閱主題,如溫度
  • Publish/Puback, Subscribe/Suback
  • Example, 典型的Connect/Connack控制報文,Publish/Puback控制報文,Subscribe/Suback控制報文
  • 開源:服務器Mosquito, 客戶端Paho,百度雲/阿里雲的SDK就是運行於MCU的客戶端,也參考了Paho,在Paho基礎上又封裝了一層

1.1. 名詞解釋

  • Qos:服務質量等級
  • Clean session: 持久會話的概念,0為服務器保存之前的消息,1為服務器會丟掉消息,緩存的概念
  • Retain: 保留消息
  • Willxxx: 遺囑消息:發生異常時,通知其他客戶端

1.2. MQTT服務結構圖

1.3. 幀格式1 

1.4. 幀格式2

1.5. MQTT通信

1.6. MQTT和TLS

建立TLS,設備端認證服務器,服務器認證設備端。前者常用,服務器生成根證書,設備端需要放置證書,通過證書來驗證服務器的連接信息。通過TCP建立連接的消息都是通過TLS加密。

過程

建立TCP->握手加密->非對稱到對稱的過程->產生對稱加密密鑰->客戶端先sayhello,支持xxxx, 隨機數1->服務器sayhello,支持xxx,隨機數2->證書發給客戶端->客戶端使用根證書驗證服務器的證書->驗證通過,從證書中拿到公鑰,生成隨機數3->利用公鑰+3個隨機數,生成對稱密鑰。

安全等級要求不是特別高,一般只會在設備端下載相同的根證書,用來驗證服務器,不會用服務器再來驗證設備端,如果需要驗證,則每個設備端都需要不同的證書,也就是工廠燒寫不同的信息

2. FOTA升級:firmware over the air

  • 雲端推送
  • 設備端接收和升級邏輯
  • 原位升級/pingpong升級
  • 文件:加密,壓縮,差分patch
  • 原有程序打斷,續傳,觸發更新
  • 安全,傳輸過程

2.1. 三種升級方式(ST使用固件冗余方式,應用程序下載完,通知Bootloader更新)

2.2. ST FOTA Demo:STM32F7,HTTP負責下載,按下按鍵跳到Bootloader更新固件

2.3. 存儲空間划分

2.4. FOTA流程

2.5. FOTA升級軟件架構

2.6. 下載文件格式*.bin

下載過程

 

 

 

FOTA說明

  • 終端實現MQTT客戶端和HTTP客戶端,MQTT負責客戶端/服務器通信,HTTP負責文件傳輸
  • 下載文件,bin文件,插入特定信息,對數據塊進行校驗
  • QSPIflash中建立一個結構體,存放下載的一些信息,如版本,大小,地址,斷點續傳等等
  • HTTP和HTTPS,HTTPS需要更多的驗證過程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM