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

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

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

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

麥克泰技術 ? 來源:麥克泰技術 ? 作者:麥克泰技術 ? 2024-01-12 11:08 ? 次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#defineMSG_ID_DEV_INFO0x0001

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

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

如果是項目前中期,這時候還是在開發(fā)階段,我們可以隨意修改。因為設備sn也是設備信息的一部分,可以直接在設備信息這個數(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ù),并且也能應對這種兼容性問題。

看一下方案二。

方案二:項目設計初期,引入一些數(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)絡傳輸

相關文章:

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)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5045

    文章

    18817

    瀏覽量

    298477
  • 通信協(xié)議

    關注

    28

    文章

    810

    瀏覽量

    40119
  • 硬件產(chǎn)品

    關注

    0

    文章

    6

    瀏覽量

    1557

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

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

收藏 人收藏

    評論

    相關推薦

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

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

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

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

    DSP的電磁兼容性問題分析

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

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

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

    關于HDMI兼容性問題的分析

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

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

    東元電機F系列產(chǎn)品升級說明1,為了優(yōu)化設計,增強結(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

    電子、電氣設備中的電磁兼容性問題

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

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

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

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

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

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

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

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

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

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

    PFC電源設計與電感設計計算(十) - PFC設計的電磁兼容性問題與對策(2) 10B
    的頭像 發(fā)表于 04-02 06:03 ?3795次閱讀
    PFC設計的電磁<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>

    OpenHarmony生態(tài)論壇:80+軟硬件產(chǎn)品正通過兼容性測評

    OpenHarmony生態(tài)論壇:80+軟硬件產(chǎn)品正通過兼容性測評
    的頭像 發(fā)表于 04-25 14:24 ?953次閱讀
    OpenHarmony生態(tài)論壇:80+軟<b class='flag-5'>硬件</b><b class='flag-5'>產(chǎn)品</b>正通過<b class='flag-5'>兼容性</b>測評

    紅外成像儀開發(fā)難點的兼容性問題

    、醫(yī)療、安防等領域。然而,在紅外成像儀的開發(fā)過程中,兼容性問題是很常見的一個難點。本文將從多個方面探討紅外成像儀開發(fā)中的兼容性問題。
    的頭像 發(fā)表于 08-25 10:28 ?505次閱讀
    紅外成像儀開發(fā)難點的<b class='flag-5'>兼容性問題</b>