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

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

3天內不再提示

硬件產品升級時的兼容性問題

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

越來越多的硬件產品,硬件構成不僅僅是集成在一塊板子上,而是多塊控制板協同工作。

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

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

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

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

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

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

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

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

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

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

如果直接往結構體里新增數據,升級時,有些板子升級成功了,有些板子沒升級成功。可能就會出現數據異常導致功能異常。

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

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

#defineMSG_ID_DEV_INFO0x0001

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

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

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

#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;

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

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

方案一:新增的數據單獨走一條數據協議

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

#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;

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

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

看一下方案二。

方案二:項目設計初期,引入一些數據序列化庫。

比如protobuf。

Protocol Buffers,是Google公司開發(fā)的一種數據描述語言,類似于XML能夠將結構化數據序列化,可用于數據存儲、通信協議等方面。它不依賴于語言和平臺并且可擴展性極強。

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

消息格式升級和兼容性好

支持跨平臺多語言

序列化反序列化速度很快

序列化后體積相比Json和XML很小,適合網絡傳輸

相關文章:

Protobuf:一種更小、更快、更高效的協議

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

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

如何利用Google的protobuf,來實現自己的RPC框架

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

原來的數據:

syntax="proto2";

messagedev_info
{
requiredstringdev_ip=1;
requiredstringdev_mac=2;
}

新增數據dev_sn直接新增即可:

syntax="proto2";

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

審核編輯:湯梓紅

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

    關注

    5082

    文章

    19126

    瀏覽量

    305293
  • 通信協議
    +關注

    關注

    28

    文章

    884

    瀏覽量

    40311
  • 硬件產品
    +關注

    關注

    0

    文章

    6

    瀏覽量

    1588

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

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

收藏 人收藏

    評論

    相關推薦

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

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

    數據采集兼容性問題解決方案

    整合眾多特點和性能以解決數據采集兼容性問題
    發(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系列產品升級說明

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

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

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

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

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

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

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

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

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

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

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

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

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

    結合功能和性能解決數據采集兼容性問題

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

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

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

    音頻線接口的兼容性問題

    音頻線接口的兼容性問題主要涉及以下幾個方面: 一、接口類型不匹配 音頻線接口有多種類型,如RSA、TRS(大三芯)、XLR(卡儂頭)、RCA(蓮花頭)、同軸接口、光纖接口以及HDMI接口等。不同類
    的頭像 發(fā)表于 10-30 16:05 ?525次閱讀