一种基于ADC采样的设备ID识别方法

2021-06-16 09:35陈超鑫肖林松周学成陈岗
电子技术与软件工程 2021年7期
关键词:阻值电阻通路

陈超鑫 肖林松 周学成 陈岗

(威胜信息技术股份有限公司 湖南省长沙市 410205)

一般情况下,选择一款MCU 时会从多个方面进行考虑:功能、性能、管脚数、价格、稳定性等。MCU 的功能、管脚数与价格一般都是矛盾的,同一系列MCU 功能丰富管脚数量多的一般价格相对较高。

工程师在选定一款MCU 后,希望此MCU 能用于公司的多款产品,有的公司同一MCU 可能用于多达10 款以上产品。每款产品的功能存在一定的相关性,区别一般不会太大,但是软硬件上都会存在一定的差异,一般会对每款产品在软件上进行适配。为了减少软硬件开发、测试的工作量,降低生产出错概率,提高产品的稳定性。所以希望多款产品的平台软件能为同一版本,编译一次生成二进制文件后,针对不同产品测试和生产烧录时均使用同一个二进制文件,减少风险并提高产品稳定性。

硬件设计上一般使用通用GPIO 作为产品ID,比如使用4 个GPIO 共有16 种组合0000-1111,可区分同一MCU 的16 款产品,但是这样会浪费掉4 个GPIO,形成了硬件资源的浪费。由于很多管脚功能是复用的,作为GPIO 使用后,别的功能就没法使用,此GPIO 再也不能连接别的外围电路。满足不了产品设计及功能需求。

因而传统的产品ID 识别方法存在不足,有待改进和提高。本方法将系统电压经过ID 识别器进行处理,连接到MCU ADC 通路,系统上电后对ADC 通路进行初始化,进而获取设备的ID 电压,根据ID 电压判断是哪一款产品,并设置设备全局标识。通过设备全局标识,初始化不同硬件,运行不同软件流程,实现不同产品功能。

1 现有设备ID识别的不足

目前主要使用基于GPIO、基于特征值、基于软件配置识别方法进行设备ID 识别。

1.1 基于GPIO识别

硬件设计上一般使用多个GPIO 作为产品ID,比如使用4 个GPIO 共有16 种组合0000-1111,可区分同一MCU 的16 款产品,但是这样会浪费掉4 个GPIO 口。对于产品功能需求相对丰富或管脚资源相对紧张的MCU 这是不可接受的。由于很多管脚功能是复用的,作为GPIO 使用后,别的功能就没法使用,此GPIO 再也不能连接别的外围电路。满足不了产品设计及功能需求。

1.2 基于特征值识别

获取第一电池和第二电池的截止电压,选择两只电池的截止电压的较小值为安全起始充电电压,以安全充电电压为待测电池充电。当待测电池的电压达到某个电压特征点时,记录此时的充电电流值,随着待测电池电压升高经过一系列的电压特征点,记录一系列对应的充电电流值。选择与待测电池的充电电流值更匹配的电池的充放电曲线。通过匹配电流值来选择待测电池的充放电曲线,达到了省去额外电池ID-pin 和节约一路ADC 资源的效果。但是此使用特征值识别方法只能针对电池进行特征值检测,并不适用于独立设备的ID 检测。

1.3 软件配置设置识别

采用软件方式进行配置,给每类设备分配一个约定好的设备ID。系统上电首先读取此设备ID,根据ID 初始化不同硬件,运行不同软件流程。此方法依赖人为因素,不可控,批量设置时出错概率较高。默认参数存在丢失或损坏的风险,一旦获取的设备ID 出错,就会导致程序运行混乱,无法实现相关功能。

图1:MCU 模块和ID 识别器

图2:系统总流程图

图3:系统硬件设计

因此现有的产品ID 识别方法并不完善,都存在不足,有待改进和提高。

2 系统关键设计

鉴于上述现有技术的不足,本系统提供的一种基于ADC 采样的设备ID 识别方法,能够使用一路ADC 接口进行设备类型的识别,节约MCU 的接口资源,设计简单可靠。如图1 所示。

本系统采取以下技术方案,设备具有MCU 模块和ID 识别器,MCU 模块具有ADC 通路,ID 识别器一端与系统电压连接,另一端与ADC 通路连接,主要步骤:

S1、系统上电,系统电压对ID 识别器进行供电,ID 识别器向ADC 通路输送ID 电压;

S2、MCU 模块对ADC 初始化,并通过ADC 通路读取ID 电压信号;

S3、MCU 根据ID 电压信号确定设备类型,进而设置设备的全局标识;

S4、软件通过设备全局标识,初始化不同硬件,实现不同产品功能。

ID 识别器包括第一识别电阻和第二识别电阻,用于将系统电压进行分压后输出ID 电压。第一和第二识别电阻的阻值根据设备类型和系统电压进行确定。第一识别电阻的一端与地相接,另一端与第二识别电阻串接。第二识别电阻的另一端与系统电压连接,在第一与第二识别电阻之间的链路中取一点与ADC 通路连接。ID 电压与系统电压之间的关系公式为:

其中,VID为ID 电压;VXT为系统电压;R1为第一识别电阻的阻值;R2为第二识别电阻的阻值。

2.1 设计概述

本系统提供一种基于ADC(Analog to Digital Converter,模数转换器)采样的设备ID(Identity document,身份证标识号)识别方法,包括MCU(Microcontroller Unit,微控制单元)模块1 和ID 识别器2。MCU 模块1 具有ADC 通路,ID 识别器2 两端与系统电压连接,输出端与ADC 通路连接。ID 识别器2 用于根据系统电压对外输出ID 电压信号,MCU 模块1 通过ADC 通路接收ID 电压信号,进而判断设备的具体型号。一般情况下,MCU 为本领域的常用的微处理器,其内部具有一个或多个ADC 通路,每个ADC 通路具有多个引脚以供连接。在本系统运行过程中,只需要将ID 识别器2 与ADC 通路上的一个引脚连接,节约了MCU 的引脚资源,同时还能保证ADC 别的通路的功能的正常使用。

在实际应用中,MCU 模块1 内具有相应的驱动软件,对ADC通路初始化,MCU 模块1 启动ADC 通路对应的驱动功能,用于读取ID 识别器2 输送的ID 电压信号。本系统提供的识别系统用于多款产品时,平台软件只需编译一次,生成一个二进制文件,只要平台软件在不同的产品上测试合格,就可以用于不同的产品。减少工作量,降低生产出错概率,提高产品的稳定性。

2.2 设备ID设计

ID 识别器2 包括第一识别电阻R1 和第二识别电阻R2,用于将系统电压进行分压后输出ID 电压。第一识别电阻R1 的一端与地相接,另一端与第二识别电阻R2 串接,第二识别电阻R2 的另一端与系统电压连接。在第一识别电阻R1 与第二识别电阻R2 之间的链路中取一点与ADC 通路连接,ID 识别器2 与MCU 模块1 的连接通过引脚PD_ADC 连接。

ID 识别器2 主要的作用是在系统电压输入的情况下,对ADC通道输入ID 电压信号。需要ID 识别器2 输出不同的ID 电压信号,确定设备的类型,因此需要ID 识别器2 能够根据需要输出不同的ID 电压类型,考虑到检测的稳定性需要,ID 识别中的第一识别电阻R1 和第二识别电阻R2 在单个设备内阻值固定。

第一识别电阻R1 和第二识别电阻R2 的阻值根据设备类型和系统电压进行确定。ID 电压与系统电压之间的关系公式为:

其中,VID为ID 电压;VXT为系统电压;R1为第一识别电阻的阻值;R2为第二识别电阻的阻值。

图4:系统软件流程

对第一识别电阻R1 和第二识别电阻R2 的阻值不做固定性要求,可以搭配不同阻值进行处理。以系统电压为3.3V、设备类型总共为10 种类型为例,每种ID 以0.3 为倍数增长,既能够保证每相邻的两个ID 不会出现重叠,又能充分利用AD 的全量程范围。10 种类型对应的ID 电压信号值分别为0.15V、0.45V、0.75V、1.05V、1.35V、1.65V、1.95V、2.25V、2.55V、2.85V、3.15V, 当然也可以使用其他的电压信号值。根据公式,第一识别电阻R1 的阻值与第二识别电阻R2 的阻值的搭配可以为(1:21)、(10:63)、(5:17)、……,此处括号内的数字之间为比例关系,具体的阻值大小,只要适应相应的比例即可。根据设备类型的总数不同,也可以设计更多种搭配。系统电压的大小,也跟随每个设备的系统电压进行设置,不做限定。

3 设计实施举例

3.1 实施总流程设计

系统总流程主要分为如图2 四个步骤。

3.2 系统硬件设计

选择最少具有一路10/12BIT ADC 的MCU。根据手册设置ADC 参考电压Vref,根据系统核电压3.3V 通过两个电阻进行分压,将分压处的电阻引脚连接到ADC 采样管脚。根据产品可能的最大总数量,选择不同阻值的电阻,产生不同的分压,作为不同设备的ID 值。

系统硬件设计如图3 所示。

3.3 系统软件设计

系统上电运行,根据硬件原理图进行ADC 配置,主要包括:ADC 时钟使能、配置GPIO 为模拟功能、初始化ADC 相关功能寄存器、使能ADC、开始ADC 模数转换、转换完成后读取数据寄存器。

根据ADC 数据寄存器值,转换成对应电平,从而确定是哪种产品类型,并设置gProductID 全局产品类型标识。根据全局设备类型标识及硬件原理,初始化不同的硬件,运行不同软件流程,实现产品相关功能。

系统软件流程如图4 所示。

4 测试与实验分析

在终端样品中Vcc 接3.3V 电源,分别设计[0.0V 0.3V)、[0.3V 0.6V)、[0.6V 0.9V)、 [0.9V 1.2V)、 [1.2V 1.5V)、 [1.5V 1.8V)、 [1.8V 2.1V)、[2.1V 2.4V)、[2.4V 2.7V)、[2.7V 3.0V)、[3.0V 3.3V)共分11档。我们设计PD_ADC 电压尽量靠近区间的中间,便于和其它ID进行区分。第一识别电阻R1 和第二识别电阻R2 尽可能合理选择,因为有些ADC 输入阻抗只有100K 以下,也就是第一识别电阻R1必须和ADC 地输入阻抗拉开一定距离,确保采样准确。

4.1 试验结果

PD_ADC 理论设计值及电阻设计如下:

ADC 读取并转换后的电压值与PD_ADC 理论设计值非常接近,偏差很少。

4.2 试验分析

选择不同的电阻配置,可以得到不同电压,根据ADC 采样读取到的电压值设置对应设备ID。实验证明ADC 读取到的电压波动很小,稳定可靠,满足设备ID 设计需求。

5 结束语

本系统提供一种电子设备,设备ID 识别方法。相对于现有的设备ID 识别技术,本系统提供的电子设备中的MCU 模块1 能够节省多个硬件引脚,节省了MCU 模块1 的硬件资源。在硬件功能需求相对丰富的情况下,节省的MCU 引脚可以用于别的功能。同时ID 识别器2 输出的设备类型值固定,不会因为软件的问题造成识别错误,实用性强、占用资源少、配置简单、稳定可靠,进而使电子设备的稳定性得到保障。

猜你喜欢
阻值电阻通路
四线制阻值检测电路实验研究
励磁线圈对插入式电磁流量计的影响
低电阻碳膜板制作及其阻值的优化
电阻焊
基于multisim13.0负电阻在电源中作用的仿真
Kisspeptin/GPR54信号通路促使性早熟形成的作用观察
proBDNF-p75NTR通路抑制C6细胞增殖
通路快建林翰:对重模式应有再认识
Hippo/YAP和Wnt/β-catenin通路的对话