干货分享 |  四种硬件版本管理实现原理及优劣势对比

阿甘 2019-03-12 14:06:17

工程开发中,版本管理是必不可少的部分,软件的版本管理非常方便,在代码中插入版本信息,目标文件重新再命名一下就搞定了。但是硬件的版本管理就麻烦很多了,因此很多公司(主要是小公司)基本就忽略了硬件的版本管理。这给后续的升级和维护带来了极大的不方便。

一、 硬件版本管理的优点

产品进行硬件版本管理,有以下的优点:

1. 可以方便进行质量跟踪,历史问题追溯,从而更新换代,优化升级。

2. 软件可以针对性的升级,可以通过硬件的版本区分软件功能或者是不同的客户;

二、 四种硬件版本管理的实现原理

1. 通过上下拉电阻配置实现

如下图1 所示,CPU通过读取外部的配置电阻上拉还是下拉,决定当前的硬件版本(PCB和bom的版本可以分别配置),例如四个下拉电阻全部焊接,四个上拉电阻全部不焊接,CPU四个IO引脚读取到的值为0000. 当前的版本就是V0版本。

【干货分享】四种硬件版本管理实现原理及优劣势对比

图1 :上下拉电阻模式

2. 通过I2C扩展GPIO实现

如下图2 所示,有时候设计者选用的CPU的GPIO引脚不够用,又有io扩展芯片的情况下下,可以使用以下的方法,通过I2C扩展GPIO引脚的方式,读取硬件的版本信息,实现的原理和方法1一样。

【干货分享】四种硬件版本管理实现原理及优劣势对比

图2 :I2C扩展GPIO+上下拉电阻模式

3. 通过AD采样电压实现

如下图3 所示,有时候设计者选用的CPU的GPIO引脚不够用,但是AD引脚有多余的情形,这是就没有必要通过方法2的实现方式(扩展芯片约增加数元的成本)。通过配置R1和R2电阻的不同阻值,可以设置AD引脚不同的电压。例如可以设置0.5V为一个台阶,3.3V约可以设置6个不同的版本,举例:R1=1K,R2=2K。Vad=2.2V,对应的硬件版本为V04.

【干货分享】四种硬件版本管理实现原理及优劣势对比

图3 :AD采样实现硬件版本管理

4. 通过烧写Flash实现

在Flash中,专门开辟一小段存储空间,在产品生产阶段,通过生产的工装设备将硬件的版本信息保存在该存储空间,这段存储空间设置成只读,不允许写,避免误操作导致硬件版本信息丢失。

【干货分享】四种硬件版本管理实现原理及优劣势对比

图4 :Flash记录硬件版本管理

三、 四种硬件版本管理方法的优劣势

以下分别介绍四种硬件版本管理方法的优劣势,并将其进行对比。以供读者方便选择。

(1) GPIO上下拉方式

优点:

成本低廉,只需要数个电阻,成本不过几分钱。软件只需读取IO电平,实现简单。

缺点:

上下拉的 方式占用过多的GPIO引脚,如果PCB和bom同时都需要版本管理,数量将会更多,例如一个V00~V07的PCB和bom的版本管理,至少需要6个GPIO,严重浪费了的cpu的IO引脚。

(2) I2C扩展GPIO方式

优点:

解决了CPU的GPIO引脚数量不够的问题,软件实现也比较简单。

缺点:

I2C扩展芯片的成本约0.5~2元人民币,增加了整机的成本。

(3) AD电压采样的方式

优点:

最低只需要一个AD采样引脚就可以实现硬件版本的管理。如果CPU自带并且有多余的AD引脚,只需要2个电阻,成本非常低。

缺点:

AD引脚一般也是CPU的紧缺资源,部分CPU可能没有AD采样引脚,该方法通用性不高。

(4) Flash 保存的方法

优点:

Flash保存硬件版本的成本最低,硬件几乎没有成本,也不占用CPU的资源,版本信息 占用的存储空间几乎可以忽略不计。

缺点:

Flash保存可靠性是最大的问题,例如Flash损坏,软件升级擦写Flash,电磁干扰导致等原因,导致Flash中的数据丢失,则硬件版本的信息也会丢失

四、总结

通过介绍上述的四种硬件版本信息的管理方法,设计者应该从可靠性和成本方面考虑。第一优选,如果GPIO引脚够用,优先推荐通过GPIO上下拉配置的方法。第二优选,如果CPU有多余的AD引脚,则可以采用AD采用的方法。第三优选,可以通过I2C扩展GPIO的方式。最后再考虑通过Flash保存硬件版本信息的的方式。


热门文章

copyright@2014-2016 emakerzone.com 粤ICP备16121718号-2 公安局备案 粤公网