一、 硬件版本管理的优点
产品进行硬件版本管理,有以下的优点:
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保存硬件版本信息的的方式。