在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

三種常見嵌入式設(shè)備通信協(xié)議

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

嵌入式設(shè)備與PC通訊的通信協(xié)議設(shè)計(jì)經(jīng)驗(yàn)

嵌入式設(shè)備在運(yùn)行中需要設(shè)置參數(shù),這個(gè)工作經(jīng)常由PC機(jī)來實(shí)現(xiàn),需要為雙方通信設(shè)計(jì)協(xié)議,有代表性協(xié)議是如下三種:

表1 三種常見通信協(xié)議

從上表可以看到,一般嵌入式設(shè)備內(nèi)存和運(yùn)算性能都有限,因此固定二進(jìn)制是首選通信協(xié)議。

一. 簡單性

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

協(xié)議一般都需要以下域:幀頭,長度,幀類型,目標(biāo)地址,源地址,數(shù)據(jù),校驗(yàn),幀尾。

二. 可擴(kuò)展

必須保證將來增加功能和更改硬件后協(xié)議仍能勝任工作,這往往是通過預(yù)留空間來實(shí)現(xiàn),協(xié)議的變更應(yīng)該只是量的增加,不至于引起協(xié)議結(jié)構(gòu)的變化。

三. 低耦合

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

四. 穩(wěn)定性

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

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

五. 高效率

按信息類型區(qū)分協(xié)議包類別,如:設(shè)置網(wǎng)絡(luò)信息參數(shù),設(shè)置當(dāng)前運(yùn)行參數(shù),可以區(qū)分開來,方便程序處理。

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

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

六. 易實(shí)現(xiàn)

盡量減少復(fù)雜算法的使用,如,通訊鏈路穩(wěn)定,數(shù)據(jù)幀的校驗(yàn)碼可以由CheckSum代替CRC。除非資源非常緊張,否則不要將過多的信息擠壓在一個(gè)數(shù)據(jù)里,因?yàn)樗鼤?huì)帶來可讀性差和實(shí)現(xiàn)困難。

七.軟件開發(fā)

盡可能地讓硬件ISR完成驅(qū)動(dòng)工作,不要讓“進(jìn)程”參與復(fù)雜的時(shí)序邏輯,否則處理器將步履蹣跚且邏輯復(fù)雜!如:

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

接收不定長的數(shù)據(jù)幀,可以使用狀態(tài)機(jī),當(dāng)接收到“幀尾數(shù)據(jù)”時(shí)向進(jìn)程發(fā)消息。小心數(shù)據(jù)紊亂和超時(shí)異常(數(shù)據(jù)紊亂時(shí)需要將狀態(tài)機(jī)及時(shí)復(fù)位,超時(shí)一般使用定時(shí)器監(jiān)控)。

八. 考慮硬件

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

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

附錄A 一個(gè)基于DMA傳輸固定長度的協(xié)議實(shí)例。

圖1顯示了PC發(fā)送數(shù)據(jù)幀的格式,總長為64字節(jié),是4字節(jié)的整倍數(shù),符合絕大部分32位處理器結(jié)構(gòu)體對(duì)齊的特性。

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

Len:INT8U,本幀的總數(shù)據(jù)長度,在圖4即為64

Dst:INT8U,標(biāo)識(shí)目標(biāo)設(shè)備的ID號(hào)

Src:INT8U,標(biāo)識(shí)源設(shè)備的ID號(hào)

Data:56字節(jié)的存儲(chǔ)區(qū),內(nèi)容依賴于具體的通信幀(實(shí)例見表2)

Cmd:INT16U,數(shù)據(jù)幀的類別

CS:INT8U, 對(duì)它前面所有數(shù)據(jù)(62字節(jié))進(jìn)行8位累加和校驗(yàn)

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

圖1 PC發(fā)送數(shù)據(jù)幀

表2 Data域數(shù)據(jù)結(jié)構(gòu)實(shí)例

附錄B 一個(gè)基于變長格式的UART通信協(xié)議實(shí)例。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5087

    文章

    19145

    瀏覽量

    306121
  • 通信協(xié)議
    +關(guān)注

    關(guān)注

    28

    文章

    896

    瀏覽量

    40334

原文標(biāo)題:嵌入式設(shè)備與PC通訊的通信協(xié)議設(shè)計(jì)經(jīng)驗(yàn)

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    總線通信協(xié)議解析及應(yīng)用

    在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,總線通信協(xié)議扮演著至關(guān)重要的角色。它們定義了數(shù)據(jù)如何在處理器、內(nèi)存、輸入/輸出設(shè)備等組件之間傳輸。 總線通信協(xié)議的基本概念 總線通信協(xié)議是一組規(guī)則,它規(guī)定了數(shù)據(jù)在系
    的頭像 發(fā)表于 12-31 10:07 ?117次閱讀

    ARM嵌入式通信協(xié)議及應(yīng)用

    隨著科技的飛速發(fā)展,嵌入式系統(tǒng)在各個(gè)領(lǐng)域扮演著越來越重要的角色。ARM處理器因其高性能、低功耗的特點(diǎn),在嵌入式系統(tǒng)中得到了廣泛應(yīng)用。通信協(xié)議作為嵌入式系統(tǒng)的重要組成部分,對(duì)于實(shí)現(xiàn)
    的頭像 發(fā)表于 12-28 09:18 ?249次閱讀

    常見串口通信協(xié)議 如何設(shè)置串口參數(shù)

    串口通信是一常見通信方式,廣泛應(yīng)用于計(jì)算機(jī)、嵌入式系統(tǒng)和各種電子設(shè)備之間。串口
    的頭像 發(fā)表于 12-27 09:51 ?394次閱讀

    上位機(jī)通信協(xié)議詳解 嵌入式上位機(jī)設(shè)計(jì)流程

    上位機(jī)通信協(xié)議詳解 上位機(jī)通信協(xié)議是指上位機(jī)(通常是指具有強(qiáng)大計(jì)算能力和數(shù)據(jù)處理能力的計(jì)算機(jī)系統(tǒng))與下位機(jī)(如傳感器、執(zhí)行器等)之間進(jìn)行數(shù)據(jù)交換和通信所遵循的規(guī)則和標(biāo)準(zhǔn)。以下是對(duì)幾種常見
    的頭像 發(fā)表于 12-04 10:21 ?829次閱讀

    PROFINET通信協(xié)議是什么

    PROFINET通信協(xié)議是一專為工業(yè)自動(dòng)化領(lǐng)域設(shè)計(jì)的基于以太網(wǎng)的實(shí)時(shí)通信協(xié)議。以下是對(duì)PROFINET通信協(xié)議的詳細(xì)解析,包括其定義、特點(diǎn)、體系結(jié)構(gòu)、工作原理、
    的頭像 發(fā)表于 09-25 18:13 ?1990次閱讀

    SPI通信協(xié)議的基本概念和工作模式

    接口設(shè)計(jì),在嵌入式系統(tǒng)、微控制器與各種外圍設(shè)備之間的通信中占據(jù)重要地位。以下是對(duì)SPI通信協(xié)議的詳細(xì)解析,內(nèi)容涵蓋其基本概念、通信原理、信號(hào)
    的頭像 發(fā)表于 09-09 17:04 ?1742次閱讀

    簡單認(rèn)識(shí)UART通信協(xié)議

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

    嵌入式系統(tǒng)怎么學(xué)?

    操作系統(tǒng)的基本概念和原理,掌握常見的RTOS,如FreeRTOS、uC/OS等,以實(shí)現(xiàn)對(duì)嵌入式系統(tǒng)的任務(wù)調(diào)度和資源管理。 6、通信協(xié)議:學(xué)習(xí)常用的通信協(xié)議,如UART、SPI、I2C
    發(fā)表于 07-02 10:10

    plc常見三種通訊協(xié)議有哪些

    這一目標(biāo),PLC采用了多種通信協(xié)議。以下是三種常見的PLC通信協(xié)議的詳細(xì)介紹: Modbus協(xié)議 Modbus
    的頭像 發(fā)表于 07-01 10:12 ?2524次閱讀

    簡單認(rèn)識(shí)UART串行通信協(xié)議

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

    IOT(物聯(lián)網(wǎng))的七大通信協(xié)議之Http協(xié)議

    一、什么是http協(xié)議嵌入式HTTP協(xié)議是一輕量級(jí)的通信協(xié)議,專為嵌入式系統(tǒng)設(shè)計(jì),用于實(shí)現(xiàn)
    的頭像 發(fā)表于 05-24 08:11 ?2576次閱讀
    IOT(物聯(lián)網(wǎng))的七大<b class='flag-5'>通信協(xié)議</b>之Http<b class='flag-5'>協(xié)議</b>

    嵌入式系統(tǒng)軟硬件基礎(chǔ)知識(shí)大全

    可以存儲(chǔ)臨時(shí)數(shù)據(jù)。了解這些存儲(chǔ)器的特點(diǎn)和層次結(jié)構(gòu),有助于我們優(yōu)化嵌入式系統(tǒng)的性能和存儲(chǔ)需求。嵌入式系統(tǒng)的外設(shè)接口和通信協(xié)議是其與外部世界交互的關(guān)鍵。常見的接口類型包括UART、SPI、
    發(fā)表于 05-09 14:12

    UART串口通信協(xié)議是什么?

    ,廣泛應(yīng)用于嵌入式領(lǐng)域。 在UART串口通信協(xié)議中,數(shù)據(jù)以字節(jié)的形式進(jìn)行傳輸。發(fā)送和接收端的通信流程如下: 1、通信波特率設(shè)置:發(fā)送端和接收端需要
    的頭像 發(fā)表于 03-19 17:26 ?1459次閱讀

    嵌入式工程師需要掌握哪些技術(shù)?

    嵌入式系統(tǒng)通常需要與其他設(shè)備或系統(tǒng)進(jìn)行通信。了解常見通信協(xié)議,如UART、SPI、I2C、CAN和Ethernet等,以及它們的工作原理
    發(fā)表于 03-04 16:38

    嵌入式Linux開發(fā)的三種方式

    嵌入式Linux開發(fā)主要有三種方式:裸機(jī)開發(fā)、SDK開發(fā)和驅(qū)動(dòng)開發(fā)。
    的頭像 發(fā)表于 01-22 14:22 ?996次閱讀
    主站蜘蛛池模板: 妖精视频亚洲| 色噜噜狠狠成人中文小说| 中文字幕xxx| 国产老肥熟xxxx| 视频一区二区免费| 99热久久精品最新| 一级做a爰片久久毛片免费看 | aaa一级| 亚洲综合激情| 人人九九精品| 成人午夜小视频手机在线看 | 国产一级特黄aa级特黄裸毛片| 国产免费播放| 天天影视网天天影网| 久久久久国产精品免费免费| 五月婷婷激情视频| 特级毛片免费视频观看| 日本亚洲成人| 久久综合偷偷噜噜噜色| 99久久网站| 奇米影视9999| 丁香婷婷激情五月| 一级特黄aa毛片免费观看| 日韩免费观看视频| 国产色网站| 天天干夜夜爽天天操夜夜爽视频| 黄色录像视频网站| 亚洲欧美v视色一区二区| 亚洲色图在线视频| 欧美三级第一页| 成人欧美一区二区三区的电影| 天天艹天天艹| 六月丁香激情网| 在线观看黄网| 日本卡一卡2卡3卡4精品卡无人区| 五月婷婷在线视频观看| 老外一级黄色片| 闲人综合| 天天干天天干| 人人爽影院| 五月激情片|