首页 > 其他分享 >软件识别PCBA硬件版本的集中方法

软件识别PCBA硬件版本的集中方法

时间:2024-01-22 18:14:52浏览次数:32  
标签:方式 引脚 硬件 PCBA 版本 GPIO 识别 CPU

PCBA(Printed Circuit Board Assembly)是指将电子元器件安装在印刷电路板(PCB)上,形成一个完整的电子产品的过程。PCBA是电子行业的基础,几乎所有的电子设备都是由PCBA组成的。PCBA的质量和性能直接影响了电子产品的寿命,速度,稳定性和可靠性。
PCBA的设计和制造是一个复杂的过程,需要经过多次的修改和优化,才能达到最佳的效果。因此,对PCBA进行版本管理是非常必要的,以便于区分不同的设计阶段,追踪问题和改进,匹配软件功能和客户需求等。
PCBA的版本管理可以帮助开发者和维护者更好地控制和管理PCBA的生命周期。
PCBA的版本管理有多种方式,本文将介绍其中的六种,分别是:

GPIO上下拉电阻方式

I2C扩展GPIO方式

AD采样电压方式

Flash保存方式

EEPROM保存方式

OTP保存方式

GPIO上下拉电阻方式

这种方式是利用CPU的GPIO(General Purpose Input Output)引脚,通过连接不同的上下拉电阻,来表示不同的PCBA版本。例如,如图1所示,如果有四个GPIO引脚,那么可以表示16种不同的版本,从0000到1111,分别对应V0到V15。CPU只需要读取GPIO引脚的电平,就可以知道当前的PCBA版本。

这种方式的优点是:
1、成本低,只需要几个电阻,几分钱就可以搞定。
2、实现简单,只需要读取GPIO电平即可。

这种方式的缺点是:
1、占用了CPU的GPIO资源,如果需要同时管理PCB和BOM(Bill of Materials)的版本,那么需要更多的GPIO引脚。例如,如果要表示8种PCB版本和8种BOM版本,那么至少需要6个GPIO引脚,这对于GPIO紧张的CPU来说是一种浪费。
2、需要注意电阻的选取,避免产生过大的漏电流或者电平不稳定的问题。

I2C扩展GPIO方式

这种方式是利用一个I2C(Inter-Integrated Circuit)扩展芯片,来增加GPIO的数量,从而实现PCBA版本管理。例如,如图2所示,如果使用一个8位的I2C扩展芯片,那么可以表示256种不同的版本,从00000000到11111111,分别对应V0到V255。CPU只需要通过I2C总线读取扩展芯片的寄存器,就可以知道当前的PCBA版本。

这种方式的优点是:
1、解决了GPIO资源不足的问题,可以表示更多的PCBA版本。
2、实现也不复杂,只需要通过I2C通信即可。
这种方式的缺点是:
1、增加了硬件成本,I2C扩展芯片的价格大约在0.5到2元之间,对于低成本的产品来说是一笔不小的开支。
2、需要注意I2C总线的速度和稳定性,避免产生通信错误或者干扰。

AD采样电压方式

这种方式是利用CPU的AD(Analog to Digital)引脚,通过连接一个分压电路,来产生不同的电压值,从而表示不同的PCBA版本。例如,如图3所示,如果使用一个3.3V的电源,那么可以通过调节R1和R2的阻值,来产生不同的电压值,例如0.5V,1V,1.5V等。CPU只需要通过AD采样,就可以知道当前的PCBA版本。

这种方式的优点是:
1、只需要一个AD引脚,就可以实现PCBA版本管理,如果CPU有多余的AD引脚,那么只需要两个电阻,成本非常低。
2、可以通过调节电阻的阻值,来灵活地设置不同的电压范围,表示更多的PCBA版本。
这种方式的缺点是:
1、AD引脚不是每个CPU都有的,而且也是比较稀缺的资源,如果CPU没有AD引脚,或者AD引脚已经被其他功能占用,那么这种方式就不适用。
2、需要注意电压的精度和稳定性,避免误差和干扰。

Flash保存方式

这种方式是利用Flash(Flash Memory)中预留一段存储空间,来保存PCBA版本的信息。例如,如图4所示,可以在Flash的某个地址,写入一个字节的数据,来表示PCBA版本。CPU只需要读取Flash的数据,就可以知道当前的PCBA版本。

这种方式的优点是:
1、硬件成本几乎为零,也不占用CPU的任何资源,版本信息占用的Flash空间也可以忽略不计。
2、可以通过软件的方式,来灵活地设置和修改PCBA版本,不需要修改硬件电路。
这种方式的缺点是:
1、可靠性是最大的问题,如果Flash损坏,软件升级擦写Flash,电磁干扰等原因,导致Flash中的数据丢失,那么PCBA版本的信息也会丢失。
2、需要设置成只读,不允许写,避免误操作。

EEPROM保存方式

这种方式是利用EEPROM(Electrically Erasable Programmable Read-Only Memory)中预留一段存储空间,来保存PCBA版本的信息。例如,如图5所示,可以在EEPROM的某个地址,写入一个字节的数据,来表示PCBA版本。CPU只需要通过I2C或者SPI等总线,读取EEPROM的数据,就可以知道当前的PCBA版本。

这种方式的优点是:
1、硬件成本较低,EEPROM的价格大约在0.1到0.5元之间,也不占用CPU的太多资源,只需要一个I2C或者SPI总线即可。
2、可以通过软件的方式,来灵活地设置和修改PCBA版本,不需要修改硬件电路。
3、可靠性较高,EEPROM的数据可以多次擦写,不易丢失,也不受电磁干扰的影响。
这种方式的缺点是:
1、需要注意EEPROM的写入次数,避免超过其寿命,导致数据损坏。
2、需要注意EEPROM的速度和稳定性,避免产生通信错误或者干扰。

OTP保存方式

这种方式是利用OTP(One Time Programmable)芯片,来保存PCBA版本的信息。例如,如图6所示,可以在OTP芯片的某个地址,写入一个字节的数据,来表示PCBA版本。CPU只需要通过I2C或者SPI等总线,读取OTP芯片中的信息。

这种方式的优点是:
1、硬件成本低,OTP芯片的价格大约在0.01到0.1元之间,也不占用CPU的太多资源,只需要一个I2C或者SPI总线即可。
2、可靠性最高,OTP芯片的数据只能写入一次,不会丢失,也不受电磁干扰的影响。
这种方式的缺点是:
1、不灵活,OTP芯片的数据一旦写入,就不能修改,如果PCBA版本有变更,就需要更换OTP芯片,或者使用其他方式来表示新的版本。
2、需要注意OTP芯片的速度和稳定性,避免产生通信错误或者干扰。

总结

本文介绍了六种通过软件来识别PCBA硬件版本的方式,分别是GPIO上下拉电阻方式,I2C扩展GPIO方式,AD采样电压方式,Flash保存方式,EEPROM保存方式,和OTP保存方式。
这六种方式各有优缺点,设计者应该根据自己的产品特点和需求,选择合适的方式。一般来说,如果GPIO引脚足够,推荐使用GPIO上下拉电阻方式;如果CPU有多余的AD引脚,推荐使用AD采样电压方式;如果GPIO和AD都不够,可以考虑使用I2C扩展GPIO方式或者EEPROM保存方式;最后再考虑使用Flash保存方式或者OTP保存方式。
通过软件来识别PCBA硬件版本,可以帮助开发者和维护者更好地控制和管理PCBA的生命周期。

 技巧 #1 – 使用 GPIO 对 PCB 版本进行硬编码

  第一个技术是如何使用微控制器上的 GPIO 线来提供可读的 PCB 版本号。几乎每一个 PCB 都会在 PCB 丝印上标注硬件版本号,但系统软件无法像人类那样读取丝印。硬件在版本之间可能会有很大变化,确保某个软件版本在特定硬件上运行至关重要。为此,软件需要能够直接从 PCB 读取硬件版本号,以确保它在兼容的硬件上运行。

  对硬件进行版本控制的常用方法是使用一些备用 GPIO 线作为专用硬件版本号。每条 GPIO 线可以拉到 VCC(代表 1)或接地(代表 0)。如果使用二进制表示,两个 GPIO 将提供最多四个版本,而三个 GPIO 将提供八个版本,如下所示:

  软件启动时,可以初始化GPIO线,然后读取PCB版本号,判断软件是否支持硬件。如果一切正常,则该软件将运行该应用程序。

  不过,使用 GPIO 线有一些问题。首先,微控制器上必须有空闲的 GPIO 线。如果设计密集或使用低引脚数微控制器,则可能没有两个或三个 GPIO 线可用于版本控制。其次,我们需要确保用于将 GPIO 线拉高或拉低的电阻器的尺寸大致相同,这样我们最终不会产生大的泄漏电流。第三,在制造板子时,嵌入式开发人员需要验证版本号是否已正确更新,以免由于制造错误而导致板子版本号错误。

  技巧#2——使用模数转换器到硬代码版本

  并非所有系统都有两个或三个可用的空闲 GPIO 线。对 PCB 进行版本控制的另一种解决方案是利用免费的模数 (ADC) 通道。ADC 通道的电压范围通常为 0 至 3.3 伏(尽管有些可能为 0 – 1.7 或 0 – 5.0),我们可以将其分解为不同的电压范围以表示不同的电路板版本。例如,一个标准的 12 位 ADC 通道的范围为 0 – 4095,我们可以将其分成八个不同的版本,如下所示:

  目标是创建一个电阻梯形电路,其中梯形的中点连接到 ADC 引脚。应选择电阻器的值,使其落在我们范围的中点范围内。例如,版本一应选择产生约 0.206 电压的电阻器,对应于约 256 个计数。当电路板的第 2 版准备就绪时,梯形电阻器会更新以产生约 0.618 的电压,对应于约 768 个计数。当系统启动时,软件会读取模拟电压,然后确定 PCB 的版本以及软件是否与该硬件版本兼容。

  现在在使用 ADC 版本控制方案时有几点需要考虑。首先,你可以通过简单地调整范围轻松地将这个系统扩展到八个以上的版本。这比必须添加额外的 GPIO 引脚才能达到更高的版本号要好。第二,就像GPIO技术一样,需要适当选择电阻值,以最大限度地降低漏电流。最小化此电流的一种方法是让 GPIO 线为 VCC 供电,以便在不需要时可以关闭版本电路。虽然这确实需要使用一个额外的引脚,但对于低功耗系统可以节省宝贵的泄漏电流。第三,你需要选择精度高的元件,1%或更好,并且在产品的生命周期内不会出现太大的降额。这将防止第 1 版硬件在 5 年或 10 年内突然变成第 2 版或第 3 版。

  结论

  正如我们在文章中看到的那样,嵌入式开发开发人员可以通过几种不同的方式对硬件进行版本控制,以便软件可以验证它们是否在已知的硬件版本上运行,这可以防止硬件/软件不匹配,并确保系统本身可以验证其配置是否正确。

标签:方式,引脚,硬件,PCBA,版本,GPIO,识别,CPU
From: https://www.cnblogs.com/xiuxing2008/p/17980655

相关文章

  • C#使用WhisperNet实现语音识别功能
    C#使用WhisperNet实现语音识别功能1.写在前面最近想做一下本地音频语音识别工具,在网上找了一些本地音频语音识别方面的资料。Whisper是OpenAI的一种自动最先进的语音识别系统,它已经接受了680000小时从网络收集的多语言和多任务监督数据的训练。这个庞大而多样化的数据集......
  • 【知识点】 端到端场景文本检测与识别中 Word Spotting 和 End-to-End 评价指标的区别
    问题缘起在ICDAR-2015的场景文本端到端检测与识别任务中,总会出现2个不同的检测指标,其数值一般有微小的区别(0.5个点以内)。一直搞不懂这两个指标的区别在哪,最近看到了一篇论文[1],里面给出了这两个指标的解释。 解答直接贴图: 可以看到这里解释得很清楚。在端到端任务中,......
  • 新品来袭,全国产ARM+FPGA--"RK3568J+Logos-2"工业核心板,让您的硬件设计“更简单”!
    如需选购,请登录创龙科技天猫旗舰店:tronlong.tmall.com!欢迎加入RK3568J技术交流群:567208221欢迎加入Logos-2技术交流群:311416997更多产品详情以及购买咨询可添加如下客服人员微信(即刻添加,马上咨询) 更多RK3568J+Logos-2产品资料可长按二维码识别下载  ......
  • 【硬件】【转载】怎么学会使用一块新芯片?
    芯片的定义和概念在这里就不赘述了,有兴趣的娃自行百度。芯片应用十分广泛,在学习电子设计的过程中,我们必不可少地会与各种各样的芯片打交道,比如大名鼎鼎的单片机就是一种芯片。世间芯片千千万,拿到一块没用过的芯片首先要关注它的datasheet(数据手册)。同款芯片不同产家数据手册会略......
  • 使用树莓派学习Linux驱动 硬件环境评估
    1.现有设备surface,树莓派3B 简介优点缺点树莓派+鼠标键盘显示屏开发方便需要购买小/静音键盘需要购买显示屏显示屏小了用着不舒服,大了太贵树莓派不需要显示屏!将来还要刷机不带桌面的核心系统surface+usb转串口只需要购买usb转串口线,成本低速......
  • Python手相识别教程10命运线
    10命运线土星线是手相中信息量最大的线条之一。它记录了工作和生活方式的重大变化,描述了我们在人生不同阶段的安全感。这条线有很多名字:命运线、命运线,以及最贴切的安全线。命运线反映了货币安全,但这并不是土星线上显示的唯一一种安全。这条线的标记和特征可能是客观的,也可能......
  • 医疗保险欺诈识别监测模型
    .项目说明【问题说明】开发一套医疗保险欺诈识别监测模型,帮助医保部门实现对各类医疗保险基金欺诈违规行为的准确识别,以进一步丰富现行医保智能监控的医保规则和医学规则,提高医保智能监控的针对性和有效性。【用户期望】(1)对给定的16000条数据集进行分析处理,并进行多维特征信息......
  • 方案设计——车载打气泵pcba方案
    车载打气泵主要由压力传感器、微处理器、低噪音马达、充电器等部分组成。当气垫或气体容器需要充气时,车载打气泵的压力传感器会自动感应当前气体压力,并反馈给微处理器。在微处理器的控制下,低噪音马达开始工作,将气体压缩后送入气垫或容器中。在充气过程中,车载打气泵的压力传感......
  • 安防监控平台LntonAIServer视频汇聚平台明烟明火识别 烟火算法检测告警
    LntonAIServer视频汇聚平台是一款基于人工智能技术的安防监控平台。它能够实时监控和分析视频数据,通过烟火算法检测告警,为我们提供及时、准确的安全信息。无论是在家庭、办公室,还是在公共场所,都能使用LntonAIServer。明烟明火识别是LntonAIServer视频汇聚平台的一大亮......
  • 信息泄露的多种形式:如何识别并防止内部威胁?
    在这个信息爆炸的时代,数据安全问题已经成为企业和政府机构不能忽视的挑战。尤其是来自内部的安全威胁,给企业的信息安全形势带来更多严重性。针对企业应对内部威胁,有必要了解信息泄露的多种形式以及如何识别并防止。内部威胁主要来源于职员的不规范操作或恶意泄露。为提早发现......