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

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

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

3天內不再提示

三種常見嵌入式設備通信協議

Q4MP_gh_c472c21 ? 2018-03-06 10:06 ? 次閱讀

嵌入式設備與PC通訊的通信協議設計經驗

嵌入式設備在運行中需要設置參數,這個工作經常由PC機來實現,需要為雙方通信設計協議,有代表性協議是如下三種:

表1 三種常見通信協議

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

一. 簡單性

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

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

二. 可擴展

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

三. 低耦合

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

四. 穩定性

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

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

五. 高效率

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

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

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

六. 易實現

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

七.軟件開發

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

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

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

八. 考慮硬件

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

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

附錄A 一個基于DMA傳輸固定長度的協議實例。

圖1顯示了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, 幀尾,可見字符’}’

圖1 PC發送數據幀

表2 Data域數據結構實例

附錄B 一個基于變長格式的UART通信協議實例。

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

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

    關注

    5086

    文章

    19143

    瀏覽量

    306044
  • 通信協議
    +關注

    關注

    28

    文章

    894

    瀏覽量

    40334

原文標題:嵌入式設備與PC通訊的通信協議設計經驗

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    總線通信協議解析及應用

    在現代計算機系統中,總線通信協議扮演著至關重要的角色。它們定義了數據如何在處理器、內存、輸入/輸出設備等組件之間傳輸。 總線通信協議的基本概念 總線通信協議是一組規則,它規定了數據在系
    的頭像 發表于 12-31 10:07 ?113次閱讀

    ARM嵌入式通信協議及應用

    隨著科技的飛速發展,嵌入式系統在各個領域扮演著越來越重要的角色。ARM處理器因其高性能、低功耗的特點,在嵌入式系統中得到了廣泛應用。通信協議作為嵌入式系統的重要組成部分,對于實現
    的頭像 發表于 12-28 09:18 ?247次閱讀

    常見串口通信協議 如何設置串口參數

    串口通信是一常見通信方式,廣泛應用于計算機、嵌入式系統和各種電子設備之間。串口
    的頭像 發表于 12-27 09:51 ?358次閱讀

    上位機通信協議詳解 嵌入式上位機設計流程

    上位機通信協議詳解 上位機通信協議是指上位機(通常是指具有強大計算能力和數據處理能力的計算機系統)與下位機(如傳感器、執行器等)之間進行數據交換和通信所遵循的規則和標準。以下是對幾種常見
    的頭像 發表于 12-04 10:21 ?789次閱讀

    PROFINET通信協議是什么

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

    SPI通信協議的基本概念和工作模式

    接口設計,在嵌入式系統、微控制器與各種外圍設備之間的通信中占據重要地位。以下是對SPI通信協議的詳細解析,內容涵蓋其基本概念、通信原理、信號
    的頭像 發表于 09-09 17:04 ?1713次閱讀

    簡單認識UART通信協議

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發傳輸器)通信協議是一常見的串行通信協議,廣泛應用于計算機、
    的頭像 發表于 07-25 18:07 ?1487次閱讀

    嵌入式系統怎么學?

    操作系統的基本概念和原理,掌握常見的RTOS,如FreeRTOS、uC/OS等,以實現對嵌入式系統的任務調度和資源管理。 6、通信協議:學習常用的通信協議,如UART、SPI、I2C
    發表于 07-02 10:10

    plc常見三種通訊協議有哪些

    這一目標,PLC采用了多種通信協議。以下是三種常見的PLC通信協議的詳細介紹: Modbus協議 Modbus
    的頭像 發表于 07-01 10:12 ?2511次閱讀

    簡單認識UART串行通信協議

    在電子通信領域,UART(Universal Asynchronous Receiver/Transmitter,通用異步收發傳輸器)是一非常常見的串行通信協議。它被廣泛應用于各種
    的頭像 發表于 05-27 16:09 ?2166次閱讀

    IOT(物聯網)的七大通信協議之Http協議

    一、什么是http協議?嵌入式HTTP協議是一輕量級的通信協議,專為嵌入式系統設計,用于實現
    的頭像 發表于 05-24 08:11 ?2573次閱讀
    IOT(物聯網)的七大<b class='flag-5'>通信協議</b>之Http<b class='flag-5'>協議</b>

    嵌入式系統軟硬件基礎知識大全

    可以存儲臨時數據。了解這些存儲器的特點和層次結構,有助于我們優化嵌入式系統的性能和存儲需求。嵌入式系統的外設接口和通信協議是其與外部世界交互的關鍵。常見的接口類型包括UART、SPI、
    發表于 05-09 14:12

    UART串口通信協議是什么?

    ,廣泛應用于嵌入式領域。 在UART串口通信協議中,數據以字節的形式進行傳輸。發送和接收端的通信流程如下: 1、通信波特率設置:發送端和接收端需要
    的頭像 發表于 03-19 17:26 ?1447次閱讀

    嵌入式工程師需要掌握哪些技術?

    嵌入式系統通常需要與其他設備或系統進行通信。了解常見通信協議,如UART、SPI、I2C、CAN和Ethernet等,以及它們的工作原理
    發表于 03-04 16:38

    嵌入式Linux開發的三種方式

    嵌入式Linux開發主要有三種方式:裸機開發、SDK開發和驅動開發。
    的頭像 發表于 01-22 14:22 ?995次閱讀
    主站蜘蛛池模板: 日韩无码在线| 99视频精品全部免费观看| 国产成人ae在线观看网站站| 亚洲AV无码一区二区三区乱子伦| 久久99国产精品二区不卡| CHINA篮球体育飞机2022网站| 亚洲 欧美 制服 视频二区| 欧美日本高清动作片www网站| 国产色无码精品视频国产| 97资源站超碰在线视频| 亚洲精品m在线观看| 人驴交f ee欧美| 久久婷婷电影网| 国产午夜精品理论片在线| 99久久精品国产亚洲AV| 亚洲一区国产| 天上人间影院久久国产| 暖暖 视频 在线 观看 高清| 久久99国产精品二区不卡| 久九九精品免费视频| 久久成人亚洲| 国拍自产精品福利区| 纯肉高H啪短文合集| 97视频在线观看免费播放| 69亞洲亂人倫AV精品發布| 亚洲人美女肛交真人全程| 色欲AV久久综合人妻蜜桃| 久久偷拍国2017的| 老汉老太bbbbbxxxxx| 黄色日本女人| 国产人妻人伦精品久久久| 国产一区二区在线观看免费| 丰满饥渴老太性hd| av56788成 人影院| yellow在线观看免费观看大全 | 在线一本码道高清| 亚洲欧洲日韩天堂无吗| 折磨比基尼美女挠肚子| 又黄又猛又爽大片免费| 伊人久久伊人| 97国产在线观看|