溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

一個(gè)單片機(jī)和ARM cpu之間通信協(xié)議的示例

發(fā)布時(shí)間:2020-06-30 21:34:44 來源:網(wǎng)絡(luò) 閱讀:771 作者:GaoNeil 欄目:移動開發(fā)

一個(gè)單片機(jī)和ARM cpu之間通信協(xié)議的示例

在進(jìn)行soc之間進(jìn)行通信時(shí),往往需要制定通信協(xié)議,以下是我制定的一個(gè)示例,供大家參考:

  1. 格式:
    一個(gè)單片機(jī)和ARM cpu之間通信協(xié)議的示例

1)magic
magic頭長度為2字節(jié),內(nèi)容為0x55,0xAA,這是字節(jié)出現(xiàn)順序,不區(qū)分little endian還是big endian。
magic頭的作用是為了實(shí)現(xiàn)在發(fā)送和接收同步丟失時(shí),快速找到同步。
2)type
type長度為2字節(jié),內(nèi)容為具體的message id號。message id采用little endian字節(jié)序。
3)length
length為后面的data字段的長度,單位為字節(jié)數(shù)。length占兩個(gè)字節(jié)。length采用little endian字節(jié)序。
4) verify head
verify
head為head的校驗(yàn)碼,可以迅速知道head是否正確。 head包括從magic到length整個(gè)內(nèi)容。如果內(nèi)容不對,那么需要重新搜索magic頭,再檢查head是否正確,從而可以快速同步。校驗(yàn)head的正確性后,length就可以正常使用,正確定位數(shù)據(jù)的長度。
verify_ head占2個(gè)字節(jié)。 verifyhead的算法可以采用簡單的16bit異或算法,或者CRC16算法,或者其他算法。為簡單方便,目前采用16bit異或算法。
verify
head采用little endian字節(jié)序。
5) data
data為任意長度的數(shù)據(jù)。具體格式根據(jù)具體的message id來定。
6) verify_data
verify_data為data段的校驗(yàn)。可以采用各種算法。verify_data根據(jù)算法的需求來確定長度。
為簡單方便,目前采用8bit異或算法,即這里采用1字節(jié)長度。

一個(gè)單片機(jī)和ARM cpu之間通信協(xié)議的示例
一個(gè)單片機(jī)和ARM cpu之間通信協(xié)議的示例
一個(gè)單片機(jī)和ARM cpu之間通信協(xié)議的示例
一個(gè)單片機(jī)和ARM cpu之間通信協(xié)議的示例

另外我的相關(guān)培訓(xùn)視頻請看:
歡迎觀看我發(fā)布的各個(gè)課程: https://edu.51cto.com/lecturer/8896847.html

另外我的免費(fèi)的linux各種驅(qū)動開發(fā)課程如下:
https://edu.51cto.com/course/17138.html

我的新的更多優(yōu)惠的打包課程鏈接如下:
https://edu.51cto.com/sd/0a9d4

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI