色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

通信協議考慮的幾點問題

strongerHuang ? 來源:嵌入式大雜燴 ? 2023-05-04 16:02 ? 次閱讀

嵌入式開發在很多場景下都需要進行通訊,那么通訊協議就必不可少,有代表性的通訊協議是如下三種:

577d6136-e645-11ed-ab56-dac502259ad0.jpg

從上表可以看到,一般嵌入式設備內存和運算性能都有限,因此固定二進制是首選通信協議。

一. 簡單性

保證協議是一個簡單的方案,晦澀難懂往往意味著實現困難和容易出錯。協議的結構宜采用平面方式,每個域作用明確,數據域盡可能設計得長度和位置固定,注釋詳盡,文檔清晰,實例豐富,讓人盡快上手和理解。

協議一般都需要以下域:幀頭,長度,幀類型,目標地址,源地址,數據,校驗,幀尾。

二. 可擴展

必須保證將來增加功能和更改硬件后協議仍能勝任工作,這往往是通過預留空間來實現,協議的變更應該只是量的增加,不至于引起協議結構的變化。

三. 低耦合

理想情況下每個協議包是原子信息,即本協議包不與其他協議包牽連,以防止通訊丟幀和設置牽連帶來的錯誤。

四. 穩定性

協議包長度適宜:太小包含的信息過少,協議包的種類繁多,容易引起通訊混亂和牽連錯誤;太大包含的信息過多,可讀性較差,組幀和解幀的工作困難,還會帶來通訊易受干擾的缺陷,一般協議長度以最小原子性信息為標尺。

協議必須包括校驗機制,以便于接收方判別協議包正確完整接收,如果出錯需要較好的機制來確保通訊成功(如重傳)。

五. 高效率

按信息類型區分協議包類別,如:設置網絡信息參數,設置當前運行參數,可以區分開來,方便程序處理。

將同種操作編碼為一個子集是一種高效手段,如Read操作,編碼為0x0010,Write操作,編碼為0x0020。

數據盡可能設計成同構模式,如果實在有差異,至少將同類型數據放置在一起,這樣程序可以充分利用指針和線性尋址加速處理。

六. 易實現

盡量減少復雜算法的使用,如,通訊鏈路穩定,數據幀的校驗碼可以由CheckSum代替CRC。除非資源非常緊張,否則不要將過多的信息擠壓在一個數據里,因為它會帶來可讀性差和實現困難。

七.軟件開發

盡可能地讓硬件ISR完成驅動工作,不要讓“進程”參與復雜的時序邏輯,否則處理器將步履蹣跚且邏輯復雜!如:

接收固定長度的數據幀,可以使用DMA,每接收完一幀DMA_ISR向進程發消息。小心處理DMA斷層異常(接收的數據幀長度正常但數據錯誤,數據為上幀的后半部分+本幀的前半部分)。

接收不定長的數據幀,可以使用狀態機,當接收到“幀尾數據”時向進程發消息。小心數據紊亂和超時異常(數據紊亂時需要將狀態機及時復位,超時一般使用定時器監控)。

八. 考慮硬件

如果通信鏈路是高速總線(如SPORT可達100Mbps),一般設計成一幀產生一次中斷,它通過長度觸發的DMA來實現,需要將協議設計成固定長度,如附錄A。它具備高效率,但靈活性較差。

如果通信鏈路是低速總線(如UART一般100kbps),一般接收一字節產生一次中斷,可以將協議設計成變長幀,如附錄B。它具備高靈活性,但效率較低。

57882918-e645-11ed-ab56-dac502259ad0.png

上圖顯示了PC發送數據幀的格式,總長為64字節,是4字節的整倍數,符合絕大部分32位處理器結構體對齊的特性。

0x3C:INT8U,幀頭,可見字符’<’

Len:INT8U,本幀的總數據長度,在圖4即為64

Dst:INT8U,標識目標設備的ID號

Src:INT8U,標識源設備的ID號

Data:56字節的存儲區,內容依賴于具體的通信幀(實例見表2)

Cmd:INT16U,數據幀的類別

CS:INT8U, 對它前面所有數據(62字節)進行8位累加和校驗

0x7D:INT8U, 幀尾,可見字符’}’

Data域數據結構實例:

5790c79e-e645-11ed-ab56-dac502259ad0.jpg

一個基于變長格式的UART通信協議實例:

5799833e-e645-11ed-ab56-dac502259ad0.jpg

PC與iWL880A(一種無線通信產品,詳見www.rimelink.com)通信幀采用變長格式,如下圖所示。大部分設備(常見為PC機)對于接收以“回車符”的機制很好處理,協議中的Tail就等于0x0D(換行符)。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5086

    文章

    19140

    瀏覽量

    305863
  • 通信協議
    +關注

    關注

    28

    文章

    887

    瀏覽量

    40324
  • 總線
    +關注

    關注

    10

    文章

    2890

    瀏覽量

    88147
  • uart
    +關注

    關注

    22

    文章

    1238

    瀏覽量

    101458
  • dma
    dma
    +關注

    關注

    3

    文章

    562

    瀏覽量

    100636

原文標題:通信協議考慮的幾點問題

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    dsp無線通信電臺的通信協議研究

    本帖最后由 mr.pengyongche 于 2013-4-30 02:57 編輯 dsp無線通信電臺的通信協議研究摘 要:通信協議通信系統在
    發表于 02-19 15:27

    CAN通信協議

    CAN通信協議,需要的看看。
    發表于 04-19 17:11

    TCP通信協議-Labview上位機

    現在用單片機進行信息采集,通過GPRS模塊上傳到PC,用Labview做上位機,TCP通信協議,想請教一下,TCP通信協議和Modbus TCP通信協議有什么不同?
    發表于 12-10 08:58

    如何應用mavlink通信協議

    如何應用mavlink通信協議
    發表于 12-20 06:30

    如何實現基礎通信協議的設計?

    常見的通信協議格式是什么?如何實現基礎通信協議的設計?
    發表于 02-14 07:35

    串口通信協議的相關資料分享

    目錄一、串口通信協議1、UART簡介2、 UART通信協議(1)起始位(2)數據幀(3)奇偶校驗位(4)停止位(5)下個起始位(6)波特率二、STM32的USART串口通信(中斷)3、要求2、工程
    發表于 02-22 07:16

    ModBus通信協議.pdf

    ModBus通信協議.pdf
    發表于 04-09 22:24 ?90次下載

    Modbus通信協議教程

    Modbus通信協議教程Modbus通信協議教程Modbus通信協議教程
    發表于 12-08 14:14 ?75次下載

    SCPI通信協議

    SCPI通信協議
    發表于 05-04 17:54 ?180次下載

    ModBus通信協議及編程

    ModBus通信協議及編程。
    發表于 05-11 16:40 ?21次下載

    一個簡單的基礎通信協議的設計與實現

    之間的數據的穩定傳輸,通信協議的設計需要考慮很多的問題。當然應對不同的應用場景,可以有針對性的設計不同的通信協議。一種常見的通信協議格式這是一種我們比較常見的
    發表于 12-14 18:38 ?10次下載
    一個簡單的基礎<b class='flag-5'>通信協議</b>的設計與實現

    通信協議的概念

    通信協議是指在通信過程中,為了使得不同設備之間進行有效的數據交換,所約定的一整套規則和標準。通信協議中定義了通信雙方的接口、數據格式、傳輸速率、傳輸控制和數據處理等細節,從而確保了
    發表于 05-06 14:32 ?2149次閱讀

    通信協議的特點

    通信協議的種類和特點目前常見的通信協議主要有:NetBEUI、IPX/SPX、NWLink、TCP/IP,在這幾種協議中用得最多、最為復雜的當然還是TCP/IP協議,最為簡單的是Net
    發表于 05-06 14:57 ?1498次閱讀

    PROFINET通信協議是什么

    PROFINET通信協議是一種專為工業自動化領域設計的基于以太網的實時通信協議。以下是對PROFINET通信協議的詳細解析,包括其定義、特點、體系結構、工作原理、通信方式、應用領域以及
    的頭像 發表于 09-25 18:13 ?1863次閱讀

    總線通信協議解析及應用

    在現代計算機系統中,總線通信協議扮演著至關重要的角色。它們定義了數據如何在處理器、內存、輸入/輸出設備等組件之間傳輸。 總線通信協議的基本概念 總線通信協議是一組規則,它規定了數據在系統總線上的傳輸
    的頭像 發表于 12-31 10:07 ?101次閱讀
    主站蜘蛛池模板: 99精品久久精品一区二区| 男人天堂黄色| 亚洲国产精品热久久| 久久综合久久伊人| 国产MD视频一区二区三区| 在线亚洲视频无码天堂| 无限资源在线看影院免费观看 | 亚洲 日韩 国产 中文视频| 两个人在线观看的视频720| 国产精品人妻99一区二| 999久久国产精品免费人妻| 亚洲精品国产拍在线观看| 日韩精品专区在线影院重磅| 老师系列高H文| 狠狠色狠狠色综合日日92| 国产高潮久久精品AV无码| 99热国产这里只有精品9九| 印度人XXx| 亚洲福利电影一区二区?| 日韩免费一级毛片| 欧美三级在线完整版免费| 伦理片在线线手机版韩国免费6 | 久久青草影院| 国产午夜福利伦理300| 大陆老熟女60岁| 99在线免费| 1024人成网站色www下载| 亚洲天堂视频网站| 亚洲精品嫩草研究院久久| 午夜伦理yy44008影院| 色戒床震视频片段| 人淫阁| 欧美日韩高清一区二区三区| 乱h好大噗嗤噗嗤烂了| 久久国产乱子伦精品免费M| 娇妻归来在线观看免费完整版电影| 国产浮力草草影院CCYY| 第一次处破女完整版电影| YELLOW视频在线观看大全| chaopeng 在线视频| 99亚洲精品色情无码久久|