通信設計中考慮協議的靈活性,經常把協議設計成“不定長度”。
一個實例如下圖:銳米LoRa終端的通信協議幀。
如果一個系統接收上述“不定長度”的協議幀,將會有一個挑戰--如何高效接收與解析。
為簡化系統設計,我們強烈建議您采用“狀態機”來解析UART數據幀,并且把解析工作放在ISR(中斷服務程序)完成,僅當接收到最后一個字節(0x0D)時,再將整個數據幀提交給進程處理。
該解析狀態機的原理如下圖所示:
那么ISR處理這個狀態機來得及嗎?答案是:so easy!因為它只有3個動作,運算量十分小:
比較接收數據 -> 更新狀態變量 -> 存儲接收數據,C語言僅3條語句,翻譯成機器指令也不超過10條。
代碼清單如下:
審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
單片機
+關注
關注
6041文章
44615瀏覽量
637381 -
通信協議
+關注
關注
28文章
911瀏覽量
40369 -
LoRa技術
+關注
關注
3文章
101瀏覽量
16360
原文標題:如何設計單片機的通信協議?
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
總線通信協議解析及應用
在現代計算機系統中,總線通信協議扮演著至關重要的角色。它們定義了數據如何在處理器、內存、輸入/輸出設備等組件之間傳輸。 總線通信協議的基本概念 總線通信協議是一組規則,它規定了數據在系統總線上的傳輸
AUTOSAR通信協議解析 如何實現AUTOSAR通信
通信協議棧是一個復雜的系統,它涵蓋了多種通信方式和模塊,以實現車內ECU之間的高效、可靠的數據交換。以下是對AUTOSAR通信協議的解析及實
串口通信協議解析 串口通信應用實例
串口通信協議解析 串口通信協議是指規定了數據包的內容,內容包含了起始位、主體數據、校驗位及停止位,雙方需要約定一致的數據包格式才能正常收發數據的有關規范。以下是串口通信協議的介紹: 基
PLC控制系統的通信協議解析
在現代工業自動化中,PLC控制系統扮演著至關重要的角色。它們不僅需要處理復雜的邏輯控制任務,還需要與其他系統和設備進行通信。為了實現這一目標,PLC系統必須遵循一系列的通信協議。 PLC通信協議
PROFINET通信協議是什么
PROFINET通信協議是一種專為工業自動化領域設計的基于以太網的實時通信協議。以下是對PROFINET通信協議的詳細解析,包括其定義、特點、體系結構、工作原理、
SPI通信協議的基本概念和工作模式
SPI(Serial Peripheral Interface)通信協議,即串行外圍設備接口,是一種高速、全雙工、同步通信總線,由摩托羅拉公司提出并廣泛應用。SPI以其高效的數據傳輸能力和簡單的硬件
plc協議解析網關是什么
多種不同品牌和型號的PLC,它們可能采用不同的通信協議,如Modbus、ProfiNet、EtherNet/IP、Modbus TCP等。PLC協議解析網關的作用就是在這些不同協議之間
說明白了,Modbus RTU通信協議解析-成都電路板單片機開發
基本很多都內置了Modbus協議。作為一個開發者,在做單片機、PLC、電路板、控制器/箱、儀器儀表、機電設備或系統、自動化、工控、傳感、數據采集、自控系統、控制系統、物聯網、電子產品、軟件、APP項目
發表于 06-30 22:28
上位機與下位機通信協議的優化策略
在現代工業自動化系統中,上位機與下位機之間的通信是不可或缺的環節。上位機通常指負責監控、管理和控制功能的計算機或設備,而下位機則負責執行具體
UART串口通信協議是什么?
,廣泛應用于嵌入式領域。 在UART串口通信協議中,數據以字節的形式進行傳輸。發送和接收端的通信流程如下: 1、通信波特率設置:發送端和接收
評論