99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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é)議的特點(diǎn)

STM32嵌入式開(kāi)發(fā) ? 來(lái)源:STM32嵌入式開(kāi)發(fā) ? 作者:STM32嵌入式開(kāi)發(fā) ? 2022-08-23 14:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式設(shè)備而設(shè)計(jì)的通信協(xié)議,通常有如下三種:

766ee9e4-20d8-11ed-ba43-dac502259ad0.png

考慮到嵌入式設(shè)備的內(nèi)存、算力有限,固定二進(jìn)制是首選通信協(xié)議。

下文簡(jiǎn)析嵌入式設(shè)備通信協(xié)議應(yīng)該有的特點(diǎn)。

簡(jiǎn)單性

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

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

串口通信數(shù)據(jù)包格式如下圖所示。

769643ea-20d8-11ed-ba43-dac502259ad0.png

可擴(kuò)展

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

耦合

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

穩(wěn)定性

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

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

高效率

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

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

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

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

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

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

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

接收不定長(zhǎng)的數(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)控)。狀態(tài)機(jī)相關(guān)文章請(qǐng)移步此處:談?wù)?a href="http://www.socialnewsupdate.com/v/tag/1778/" target="_blank">單片機(jī)編程思想——狀態(tài)機(jī)。

兼容硬件

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

如果通信鏈路是低速總線(如UART一般100kbps),一般接收一字節(jié)產(chǎn)生一次中斷,可以將協(xié)議設(shè)計(jì)成變長(zhǎng)幀,一個(gè)基于變長(zhǎng)格式的UART通信協(xié)議實(shí)例:

76abefe2-20d8-11ed-ba43-dac502259ad0.png

它具備高靈活性,但效率較低。

76c7fcd2-20d8-11ed-ba43-dac502259ad0.png

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

0x3C:INT8U,幀頭,可見(jiàn)字符’《’

Len:INT8U,本幀的總數(shù)據(jù)長(zhǎng)度,在圖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í)例見(jiàn)表2)

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

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

0x7D:INT8U, 幀尾,可見(jiàn)字符’}’

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

76dc9c82-20d8-11ed-ba43-dac502259ad0.png

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

    關(guān)注

    5150

    文章

    19665

    瀏覽量

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

    關(guān)注

    28

    文章

    1034

    瀏覽量

    41162
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3483

    瀏覽量

    67487

原文標(biāo)題:嵌入式設(shè)備的通信協(xié)議特點(diǎn)

文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式領(lǐng)域中常用的5種通信協(xié)議是什么

    文章目錄嵌入式領(lǐng)域中常用的5種通信協(xié)議嵌入式領(lǐng)域中常用的5種通信協(xié)議串口協(xié)議(UART/USART):串口總線其實(shí)就是一種
    發(fā)表于 12-14 06:22

    嵌入式系統(tǒng)通信協(xié)議及具體程序?qū)崿F(xiàn)方法是什么

    嵌入式系統(tǒng)通信協(xié)議及具體程序?qū)崿F(xiàn)方法是什么
    發(fā)表于 12-20 08:01

    三種常見(jiàn)嵌入式設(shè)備通信協(xié)議是什么?

    三種常見(jiàn)嵌入式設(shè)備通信協(xié)議是什么?
    發(fā)表于 12-23 08:17

    基于嵌入式Linux的RS485通信協(xié)議

    嵌入式Linux平臺(tái)上設(shè)計(jì)并實(shí)現(xiàn)一個(gè)RS485總線通信協(xié)議。該協(xié)議在網(wǎng)絡(luò)沖突檢測(cè)及數(shù)據(jù)幀結(jié)構(gòu)設(shè)計(jì)時(shí),利用RS485總線支持點(diǎn)對(duì)多點(diǎn)傳輸?shù)?b class='flag-5'>特點(diǎn),將RS485總線傳統(tǒng)的主從
    發(fā)表于 04-22 09:05 ?36次下載

    EPA 通信協(xié)議在μC/OS-II嵌入式系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)

    本文提出了一種基于μC/OS-II 嵌入式系統(tǒng)的EPA 通信協(xié)議的實(shí)現(xiàn)方案。簡(jiǎn)要介紹了 EPA 通信協(xié)議和模型,針對(duì)在以μC/OS-II 嵌入式系統(tǒng)為平臺(tái)實(shí)現(xiàn)EPA
    發(fā)表于 05-25 15:02 ?18次下載

    基于嵌入式的實(shí)時(shí)通信協(xié)議棧研究與設(shè)計(jì)

    傳統(tǒng)的TCP/IP協(xié)議重點(diǎn)在于保證數(shù)據(jù)傳輸?shù)目煽啃约傲髁靠刂?,而在?shí)時(shí)性要求相對(duì)較高的嵌入式領(lǐng)域, 其實(shí)時(shí)性方面的性能顯得不足。為此,對(duì)基于TCP/IP協(xié)議嵌入式
    發(fā)表于 09-23 17:55 ?27次下載

    結(jié)合內(nèi)部CAN總線與外部網(wǎng)絡(luò)通信協(xié)議嵌入式系統(tǒng)開(kāi)發(fā)

    結(jié)合內(nèi)部CAN總線與外部網(wǎng)絡(luò)通信協(xié)議嵌入式系統(tǒng)開(kāi)發(fā),網(wǎng)絡(luò)通信的技術(shù)資料,很好很實(shí)用。
    發(fā)表于 03-28 10:47 ?10次下載

    基于嵌入式網(wǎng)關(guān)的socket編程及通信協(xié)議

    基于嵌入式網(wǎng)關(guān)的socket編程及通信協(xié)議
    發(fā)表于 08-31 14:59 ?6次下載
    基于<b class='flag-5'>嵌入式</b>網(wǎng)關(guān)的socket編程及<b class='flag-5'>通信協(xié)議</b>

    在FPGA中實(shí)現(xiàn)嵌入式TCP/IP通信協(xié)議

    研究了嵌入式TCP/IP通信協(xié)議棧在Xilinx FPGA上的實(shí)現(xiàn),介紹了其軟硬件的系統(tǒng)組成和原理,提出一種實(shí)時(shí)操作系統(tǒng)上TCP/IP協(xié)議棧的高效工作模式,并在Virtex5 FPGA上移植成功。通過(guò)建立測(cè)試平臺(tái)進(jìn)行數(shù)據(jù)傳輸測(cè)試
    發(fā)表于 11-17 17:05 ?9075次閱讀
    在FPGA中實(shí)現(xiàn)<b class='flag-5'>嵌入式</b>TCP/IP<b class='flag-5'>通信協(xié)議</b>棧

    II嵌入式的EPA通信協(xié)議與模型設(shè)計(jì)

    μC/OS-II是一種占先機(jī)制的實(shí)時(shí)多任務(wù)嵌入式操作系統(tǒng),具有源碼公開(kāi)、可移植、可固化、可裁剪等特點(diǎn),已經(jīng)得到廣泛的應(yīng)用。相對(duì)于同為源碼公開(kāi)的μClinux,它具有內(nèi)核小、實(shí)時(shí)性高等特點(diǎn),更適合
    發(fā)表于 03-16 14:24 ?3230次閱讀
    II<b class='flag-5'>嵌入式</b>的EPA<b class='flag-5'>通信協(xié)議</b>與模型設(shè)計(jì)

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

    嵌入式設(shè)備與PC通訊的通信協(xié)議設(shè)計(jì)經(jīng)驗(yàn) 嵌入式設(shè)備在運(yùn)行中需要設(shè)置參數(shù),這個(gè)工作經(jīng)常由PC機(jī)來(lái)實(shí)現(xiàn)。
    的頭像 發(fā)表于 03-06 10:06 ?1.7w次閱讀
    三種常見(jiàn)<b class='flag-5'>嵌入式</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>通信協(xié)議</b>

    PC機(jī)與嵌入式設(shè)備通信協(xié)議設(shè)計(jì)原則

    嵌入式設(shè)備在運(yùn)行中需要設(shè)置參數(shù),這個(gè)工作經(jīng)常由PC機(jī)來(lái)實(shí)現(xiàn),需要為雙方通信設(shè)計(jì)協(xié)議,有代表性協(xié)議是如下三種。
    的頭像 發(fā)表于 07-06 11:39 ?938次閱讀
    PC機(jī)與<b class='flag-5'>嵌入式</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>通信協(xié)議</b>設(shè)計(jì)原則

    幾種常見(jiàn)嵌入式設(shè)備通信協(xié)議

    幾種常見(jiàn)嵌入式設(shè)備通信協(xié)議
    的頭像 發(fā)表于 09-18 16:43 ?2071次閱讀
    幾種常見(jiàn)<b class='flag-5'>嵌入式</b><b class='flag-5'>設(shè)備</b><b class='flag-5'>通信協(xié)議</b>

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

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

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

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