一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

硬件產(chǎn)品升級時的兼容性問題

麥克泰技術(shù) ? 來源:麥克泰技術(shù) ? 作者:麥克泰技術(shù) ? 2024-01-12 11:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

越來越多的硬件產(chǎn)品,硬件構(gòu)成不僅僅是集成在一塊板子上,而是多塊控制板協(xié)同工作。

此時,就會涉及到多塊板之間的通信(有線/無線通信),就會涉及到到通信協(xié)議。很多時候,我們都會自定義一些協(xié)議。

我們之前在也分享一種常用的自定義協(xié)議格式:

分享一種靈活性很高的協(xié)議格式(附代碼例子)

c3d544f2-b0f7-11ee-8b88-92fbcf53809c.png

在多板系統(tǒng)中,會有以下這些應(yīng)用場景:

每塊板都有OTA升級的需求。

可能某塊板是一塊公共的板子,其它項目也會同時使用,這塊公共板子軟件需要同時兼容多個項目。

我們在軟件迭代過程中,可能會涉及到板間交互的數(shù)據(jù)的升級,比如新增數(shù)據(jù)。

新增的某個數(shù)據(jù)屬性上屬于某個數(shù)據(jù)集合,比如與某個結(jié)構(gòu)體是同類數(shù)據(jù),理論上為了程序設(shè)計得更合理些,應(yīng)該把這個數(shù)據(jù)加在已有的結(jié)構(gòu)體里面。

但是,這可能會涉及到兼容性問題。

如果直接往結(jié)構(gòu)體里新增數(shù)據(jù),升級時,有些板子升級成功了,有些板子沒升級成功??赡芫蜁霈F(xiàn)數(shù)據(jù)異常導(dǎo)致功能異常。

公共板升級新增協(xié)議之后,可能就不能完全兼容與其通信的板子。

比如,有一條數(shù)據(jù)叫做設(shè)備信息的數(shù)據(jù)需要在板間通信,設(shè)備信息里包含了:設(shè)備IP、設(shè)備Mac。

#defineMSG_ID_DEV_INFO0x0001

typedefstruct_dev_info
{
chardev_ip[IP_MAX_LEN];
chardev_mac[MAC_MAX_LEN];
}dev_info_t;

此時,有新需求需要再加一個設(shè)備的sn,這個數(shù)據(jù)我們應(yīng)該如何加?

如果是項目前中期,這時候還是在開發(fā)階段,我們可以隨意修改。因為設(shè)備sn也是設(shè)備信息的一部分,可以直接在設(shè)備信息這個數(shù)據(jù)里添加會比較合理:

#defineMSG_ID_DEV_INFO0x0001

typedefstruct_dev_info
{
chardev_ip[IP_MAX_LEN];
chardev_mac[MAC_MAX_LEN];
chardev_sn[SN_MAX_LEN];
}dev_info_t;

如果是項目后期,或已經(jīng)上市流通,則就需要考慮兼容性問題了。

針對這種兼容性問題,有如下解決方案:

方案一:新增的數(shù)據(jù)單獨走一條數(shù)據(jù)協(xié)議

比如針對以上例子,可以這么來擴展:

#defineMSG_ID_DEV_INFO0x0001
#defineMSG_ID_DEV_SN0x0002

typedefstruct_dev_info
{
chardev_ip[IP_MAX_LEN];
chardev_mac[MAC_MAX_LEN];
}dev_info_t;

typedefstruct_dev_sn
{
chardev_sn[SN_MAX_LEN];
}dev_sn_t;

這種方案雖然能解決問題,但越到后面,程序會越來越亂,各種數(shù)據(jù)很散亂,很不好維護。

而且,一開始也不可能把所有數(shù)據(jù)都規(guī)劃得很完美。有沒有什么方法,可以比較合理地擴充數(shù)據(jù),并且也能應(yīng)對這種兼容性問題。

看一下方案二。

方案二:項目設(shè)計初期,引入一些數(shù)據(jù)序列化庫。

比如protobuf。

Protocol Buffers,是Google公司開發(fā)的一種數(shù)據(jù)描述語言,類似于XML能夠?qū)⒔Y(jié)構(gòu)化數(shù)據(jù)序列化,可用于數(shù)據(jù)存儲、通信協(xié)議等方面。它不依賴于語言和平臺并且可擴展性極強。

同XML相比,Protocol buffers在序列化結(jié)構(gòu)化數(shù)據(jù)方面有許多優(yōu)點:

消息格式升級和兼容性好

支持跨平臺多語言

序列化反序列化速度很快

序列化后體積相比Json和XML很小,適合網(wǎng)絡(luò)傳輸

相關(guān)文章:

Protobuf:一種更小、更快、更高效的協(xié)議

干貨 | 項目乏力?nanopb助你一臂之力

干貨 | protobuf-c之嵌入式平臺使用

如何利用Google的protobuf,來實現(xiàn)自己的RPC框架

針對上面的例子,使用protobuf。

原來的數(shù)據(jù):

syntax="proto2";

messagedev_info
{
requiredstringdev_ip=1;
requiredstringdev_mac=2;
}

新增數(shù)據(jù)dev_sn直接新增即可:

syntax="proto2";

messagedev_info
{
requiredstringdev_ip=1;
requiredstringdev_mac=2;
requiredstringdev_sn=3;
}

審核編輯:湯梓紅

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

    關(guān)注

    5152

    文章

    19675

    瀏覽量

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

    關(guān)注

    28

    文章

    1038

    瀏覽量

    41189
  • 硬件產(chǎn)品
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    1657

原文標(biāo)題:嵌入式中,升級時涉及的協(xié)議兼容性問題?

文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    HDMI的接口匹配問題(花屏、與不同電視兼容性問題等)

    HDMI的接口匹配問題,(花屏、與不同電視兼容性問題等)一直是困擾眾多音視頻領(lǐng)域工程師的老大難,有對這方面有研究的,貢獻下心得。面上看,這類問題最終的表象都集中在電視機的兼容性問題, 經(jīng)常是在部份
    發(fā)表于 07-06 17:04

    數(shù)據(jù)采集兼容性問題解決方案

    整合眾多特點和性能以解決數(shù)據(jù)采集兼容性問題
    發(fā)表于 09-09 14:23

    DSP的電磁兼容性問題分析

    本文在DSP的電磁兼容性問題方面進行了一些探討。
    發(fā)表于 02-03 06:19

    如何解決印制板設(shè)計上的電磁兼容性問題?

    印制板上的電磁兼容性特點是什么?多層板的電磁兼容性問題有哪些?如何解決印制板設(shè)計上的電磁兼容性問題?
    發(fā)表于 04-25 06:52

    關(guān)于HDMI兼容性問題的分析

    關(guān)于HDMI兼容性問題的分析
    發(fā)表于 06-02 06:18

    東元電機F系列產(chǎn)品升級說明

    東元電機F系列產(chǎn)品升級說明1,為了優(yōu)化設(shè)計,增強結(jié)構(gòu)穩(wěn)定性,東元電機F系列GB2、GB3進行升級,升級后的型號維持原TEF2、TEGH不變,僅產(chǎn)品編碼5.6更變?yōu)?N、2N。2,A/B
    發(fā)表于 09-01 08:58

    電子、電氣設(shè)備中的電磁兼容性問題

    電子、電氣設(shè)備中的電磁兼容性問題 1. 引 言   20世紀(jì)90年代以后,一種新的(電磁
    發(fā)表于 10-19 09:15 ?1161次閱讀

    PC顯卡急需解決的HDCP兼容性問題

    PC顯卡急需解決的HDCP兼容性問題 HDMI、DVI、DisplayPort等高清媒體內(nèi)容傳輸?shù)陌鏅?quán)保護機制HDCP(High-Bandwidth Digital Content Protection)由好萊塢和英特爾(Intel)共同開發(fā),用
    發(fā)表于 11-07 09:37 ?4249次閱讀

    大聯(lián)大推出智能家居整體解決方案,未來產(chǎn)品升級時無需考慮兼容性

    大聯(lián)大旗下友尚推出基于瑞昱半導(dǎo)體(Realtek)技術(shù)的智能家居整體解決方案。此方案采用全球用量最大的ARM Cortex-M MCU核心及廣泛使用的FreeRTOS+LwIP,全系列新產(chǎn)品均能夠向下兼容,未來產(chǎn)品升級時無需考慮
    發(fā)表于 06-02 08:58 ?1323次閱讀
    大聯(lián)大推出智能家居整體解決方案,未來<b class='flag-5'>產(chǎn)品升級</b>時無需考慮<b class='flag-5'>兼容性</b>

    PFC設(shè)計的電磁兼容性問題與解決方法 (10.1)

    PFC電源設(shè)計與電感設(shè)計計算(十) - PFC設(shè)計的電磁兼容性問題與對策(1) 10A
    的頭像 發(fā)表于 04-02 06:01 ?4048次閱讀
    PFC設(shè)計的電磁<b class='flag-5'>兼容性問題</b>與解決方法 (10.1)

    PFC設(shè)計的電磁兼容性問題與解決方法 (10.3)

    PFC電源設(shè)計與電感設(shè)計計算(十) - PFC設(shè)計的電磁兼容性問題與對策(3) 10C
    的頭像 發(fā)表于 04-02 06:04 ?4407次閱讀
    PFC設(shè)計的電磁<b class='flag-5'>兼容性問題</b>與解決方法 (10.3)

    PFC設(shè)計的電磁兼容性問題與解決方法 (10.2)

    PFC電源設(shè)計與電感設(shè)計計算(十) - PFC設(shè)計的電磁兼容性問題與對策(2) 10B
    的頭像 發(fā)表于 04-02 06:03 ?4379次閱讀
    PFC設(shè)計的電磁<b class='flag-5'>兼容性問題</b>與解決方法 (10.2)

    結(jié)合功能和性能解決數(shù)據(jù)采集兼容性問題

    結(jié)合功能和性能解決數(shù)據(jù)采集兼容性問題
    發(fā)表于 05-18 18:33 ?0次下載
    結(jié)合功能和性能解決數(shù)據(jù)采集<b class='flag-5'>兼容性問題</b>

    老舊工控機升級策略:硬件迭代與軟件兼容性的平衡之道

    在工業(yè)自動化領(lǐng)域,老舊工控機的升級是一個常見且具有挑戰(zhàn)性的任務(wù)。隨著技術(shù)的不斷進步,硬件性能的提升成為必然需求,但與此同時,軟件兼容性問題卻常常成為升級過程中的絆腳石。如何在
    的頭像 發(fā)表于 05-29 16:05 ?255次閱讀

    充電樁EMC整改:如何低成本解決高頻干擾與兼容性問題

    南柯電子|充電樁EMC整改:如何低成本解決高頻干擾與兼容性問題
    的頭像 發(fā)表于 06-04 11:08 ?316次閱讀
    充電樁EMC整改:如何低成本解決高頻干擾與<b class='flag-5'>兼容性問題</b>