干货 | 面向信号处理过程的ADC特性使传感器连接变得简单

Microchip Technology Inc.

MCU8 产品部市场推广经理

Paul Zhang张荣宝

单片机(MCU)和传感器测控系统中,经常遇到需要模拟量传感器输入的情况。 这种输入的模拟量,需要由模拟数字转换器外设,简称ADC来转换为N位数字量后再由CPU进行处理。近年来,随着智能传感器技术和物联网技术等的发展, MCU和传感器连接的系统应用也越来越广泛。比如在目前全球研究最多的新兴市场之一——物联网(IoT)中,传感器作为物联网系统数据的重要入口, 正在成为电子基础设施向物联网转变的无处不在的元素。据中国信息通信研究院2020年12月发布的《物联网白皮书》,预计到2025年,全球物联网总连接数规模将从2019年的120亿增长到246亿,年复合增长率高达13%。 我国物联网连接数全球占比高达30%,2019年我国的物联网连接数36.3亿,到2025年预计我们物联网连接数将达到80.1亿,年复合增长率14.1(来源:中国信息通信研究院)。

对于MCU中集成的用于连接模拟传感器的ADC,设计者在以往的努力多在于提高其采样速度和量化的性能指标,比如提高ADC的分辨率(精度),减少误差(量化误差偏移误差满刻度误差等),提高转换率来采集更高频率的输入等等而现在的集成ADC的新特性,除了提高以上性能参数,则更是考虑了ADC系统中的应用场景和信号处理过程。

对于模拟信号的输入,单片机系统典型的处理过程如下所示:

干货 | 面向信号处理过程的ADC特性使传感器连接变得简单

针对这种典型的模拟信号处理过程,MCU设计者对ADC外设创新地赋予了新的特性,以使其连接传感器更为高效。

1.独立于内核的事件机制——联动其他外设,自动触发ADC启动

在模拟信号采样阶段, 简便的方式就是冲激串采样——通过一个周期冲激串去乘待采样的连续时间信号 在MCU中,需要通过定时器来设定采样周期T。在传统的处理方式中,CPU要么响应定时器产生的周期性中断,要么轮询定时器计数器的溢出标志,来启动ADC。

新的ADC触发方式则是采用了事件机制,它提供了一个完全由硬件自动完成的触发到ADC产生响应的通道。 在没有任何CPU干预的情况下精确控制ADC的采样周期。这种机制节省了中断资源, 无需软件的参与,提高了ADC的响应速度。下图为AVR®单片机事件系统的示意图。

图1: AVR®单片机中的事件系统图示

图1: AVR®单片机中的事件系统图示

这种硬件上的联动响应,更为迅速直接。因为不需要CPU干预,也减少了不必要的中断或唤醒,即使在CPU处于某种休眠状态下,该触发机制仍可以在低功耗的情况下运行。当然除了用于触发ADC之外,这种事件机制还可以用于其他外设的联动。

2.带有计算功能的ADC——转换结果自动进行计算处理

ADC的转换结果,被用来做某种类型的计算或分析。比如验证结果是否在一定的范围内或者用来滤除信号中的噪声。尽管用来滤波的软件算法比较成熟,比如中值滤波算数平均滤波滑动平均滤波等但是无论是什么样的软件算法,它们都是需要较大的RAM空间和CPU运算资源。首先在系统的RAM区保留一段时间内的转换值,然后对这些转换值进行分析、滤波,并进行处理。而在MCU系统中,RAM空间都是很有限的,而且软件滤波算法的运行,需要消耗CPU的能力和时间,导致整个转换数值的滤波系统运行效率不高。

创新的ADC设计,使得ADC自身具有转换后的计算功能,可以对ADC转换的数据进行复杂的运算,而无需CPU干预。使用这种具有运算能力的智能ADC, 在转换完成后, 结果可以通过预定的计算功能来传递,将不需要编写代码来查看ADC结果是否落在某个窗口之内或之外,也可以直接获取ADC平均样本值或者滤波器样本数据值等。这种计算由ADC外设本身执行,加速了通常由软件完成的算术任务,不再需要占用CPU资源和额外的RAM缓冲空间。例如,如下图PIC® Q10系列MCU上ADC的计算功能简化框图所示, 可以通过配置ADC的ADMD位来控制ADC计算模块以选择五种不同的操作模式之一基本模式累加模式平均模式突发平均模式和低通滤波器模式等。

图 2: PIC® Q10单片机中的ADC计算模块框图

 2: PIC® Q10单片机中的ADC计算模块框图

3.自动上下文保存——使ADC通道切换应用自如

在传感器系统应用中,经常会遇到多个模拟输入通道共用一个内部ADC硬件的情况。 比如在一个环境检测系统中, 温度湿度气压光线强度等传感器的模拟输入将会使用同一个ADC(同一个采样保持电路)的不同通道。ADC通过切换各个通道,分时进行A/D转换。对于复用ADC的模拟输入,每个通道的控制方式,都可能是不同的比如状态和数据寄存器配置转换后的计算方式等等。例如,通道一将ADC配置为突发平均模式,通道二将ADC配置为累加模式……不同通道的独特控制方式,使得ADC在切换通道时需要附加软件开销,比如首先停止ADC,按照ADC采集通道的预定顺序找到相应的状态和寄存器,重新配置对应的控制方式,再启动ADC…运行过程中的频繁切换无疑降低了ADC的运行效率。

解决这一问题的最新ADC特性,是把每个通道的特定转换控制方式,按照预定采集顺序,保存为上下文。该上下文只能通过A/D上下文选择寄存器,或者直接存储器访问(DMA)。这样ADC运行时,ADC硬件模块会自动从内存中传输当前活动通道的上下文,进入相关的ADC寄存器并执行所需的转换。这样就显著提高了ADC切换通道采集数据的效率,也不占用CPU资源。有趣的是,Microchip将带有运算特性的ADC称为ADCC ADC with Computation),而将又带有上下文保存特性的ADCC称为ADCCC (ADC with Computation and Context)。

单片机和传感器连接的应用越来越多,幸运的是,MCU设计者一直在扩展其MCU外设的功能。 类似ADC上这些新功能的创新,已不仅仅在其自身转换方面,而是实现了与其他外设联动启动采样,转换后的计算,以及多个复用通道的自动切换等,集成了针对模拟信号处理链路上的多个环节。这些环节可以自动运行,不占用系统总线,这对降低CPU负载,降低系统功耗,增强系统响应效率,增强系统健壮性等都非常大的意义。单片机设计者们以其创新性的智慧,以及对嵌入式系统应用细致入微的洞察,将会使得MCU和传感器的连接应用设计,越来越灵活,越来越高效!

最新文章