目录

摘要

1. 引言

2. 转换时序模型

2.1 单通道转换时间

2.2 多通道扫描总时间

3. 参数设定与计算方法

3.1 ADC时钟配置

3.2 采样时间选取

3.3 计算方法

4. 计算结果

5. 讨论

5.1 定时器触发周期的裕量考虑

5.2 DMA的必要性

5.3 采样时间与精度的权衡

5.4 注入组的影响

6. 结论


摘要

针对STM32F103微控制器在多通道模拟信号采集中的应用需求,本文系统分析了定时器硬件触发模式下,10个规则通道顺序扫描采集的总时间计算方法。基于逐次逼近型ADC的转换时序模型,推导了采样时间、ADC时钟频率与总采集时间的数学关系,给出了典型参数配置下的定量计算结果,并讨论了定时器触发周期的约束条件与工程优化策略。研究结果表明,在12 MHz ADC时钟下,10通道完成一次完整扫描所需时间为21.7 μs至210 μs,具体取决于所选采样周期。本文可为多通道同步采集系统的定时器配置提供理论依据。

关键词:STM32F103;ADC;定时器触发;扫描模式;采集时间

1. 引言

在嵌入式实时数据采集系统中,多通道模拟信号的同步或顺序采集是一项常见需求。STM32F103系列微控制器内置的12位逐次逼近型ADC支持规则组扫描模式,配合定时器硬件触发,可实现无需CPU干预的等间隔多通道采样[1]。然而,对于给定数量的通道(如10个),工程上需要精确知道一次完整扫描的耗时,以正确设置定时器触发周期,避免数据重叠或丢失。

现有文献多聚焦于ADC转换时间的理论最大值[2],但对多通道扫描模式下的总时间计算缺乏系统论述。本文以10通道规则组为例,建立定时器触发模式下采集时间的数学模型,给出典型参数的计算结果,并提出工程配置建议。

2. 转换时序模型

2.1 单通道转换时间

STM32F103的ADC采用逐次逼近寄存器(SAR)架构,一次完整的电压-数字转换由采样阶段和量化阶段组成[3]。总转换时间可表示为:

2.2 多通道扫描总时间

当启用扫描模式(SCAN=1)且配置 NN个规则通道时,一次硬件触发(如定时器更新事件)将依次转换所有 N 个通道。各通道的采样时间可独立配置,为简化模型,本文假设所有通道采用相同的采样周期 S。则完成全部 NN 个通道转换的总时间为:

3. 参数设定与计算方法

3.1 ADC时钟配置

根据STM32F103数据手册,ADCCLK不得超过14 MHz[4]。在典型的72 MHz系统主频下,APB2总线时钟(PCLK2)为72 MHz,通过预分频器可得到:

本文以12 MHz作为计算基准。

3.2 采样时间选取

根据信号源内阻与精度要求,选取三种典型采样周期:

  • 13.5周期:中等精度,适用于内阻<50 kΩ的信号,常见于多数传感器。

  • 71.5周期:高精度,适用于内阻<500 kΩ的信号,用于高内阻传感器或需要较好噪声抑制的场景。

  • 239.5周期:最高精度,适用于极高内阻(>1 MΩ)或要求最小噪声的应用。

3.3 计算方法

将上述参数代入公式,计算:

4. 计算结果

表1列出了三种典型采样周期下,10通道完成一次采集的总时间。

表1 不同采样周期下的10通道总采集时间(fADCCLK=12)

采样周期 S (周期) 单通道总周期 P 单通道时间 Tconv​ (μs) 10通道总时间 Ttotal​ (μs) 对应最大触发频率 (kHz)
13.5 26 2.167 21.67 46.15
71.5 84 7.000 70.00 14.29
239.5 252 21.00 210.0 4.76

5. 讨论

5.1 定时器触发周期的裕量考虑

理论上,定时器触发周期可等于 TtotalTtotal​。但考虑到触发信号从定时器到ADC的传递延迟(固定3个APB2周期,约83 ns),以及时钟域之间的同步抖动,工程上建议在计算值基础上增加至少1个ADCCLK周期(约83 ns)的裕量,即:

5.2 DMA的必要性

在多通道扫描模式下,若不使用DMA,CPU必须通过中断或轮询在极短时间内依次读取每个通道的转换结果。由于10个通道的转换总时间仅为几十微秒,且每个通道结果在ADC_DR中仅停留数微秒(下一个通道转换完成后即被覆盖),依靠CPU读取极易造成数据丢失。因此,必须启用DMA循环模式,由硬件自动将每个通道的结果按序搬运至内存缓冲区。

5.3 采样时间与精度的权衡

表1中的数据清晰地反映了速度与精度的反比关系:采样周期从13.5增至239.5,总时间延长近10倍,但测量精度显著提升(尤其对高内阻信号)。工程上应根据信号特性选择:

  • 高速变化信号(如音频、振动)应优先短采样时间(13.5或7.5周期),并配合外部运放驱动以降低内阻。

  • 慢变信号(如温度、湿度)可采用长采样时间(71.5或239.5周期),以获得更佳的信噪比。

5.4 注入组的影响

若系统中同时使用注入组(如故障告警通道),注入转换会插入规则组扫描过程中,导致实际 Ttotall​ 延长。每次注入转换增加的时间等于该注入通道的 (Sinj+12.5)/fADCCLK,且注入转换期间规则组扫描被挂起。因此,在计算定时器触发周期时需考虑注入组的最坏情况发生频率。

6. 结论

本文针对STM32F103的10通道定时器触发ADC采集,建立了总时间计算模型,并给出了12 MHz ADCCLK下三种典型采样周期的定量结果。主要结论如下:

  1. 10通道一次扫描总时间与通道数、采样周期、ADC时钟频率线性相关,公式为 Ttotal=N×(S+12.5)/fADCCLK。

  2. 在12 MHz ADC时钟下,采样周期13.5、71.5、239.5分别对应总时间21.67 μs、70.00 μs、210.0 μs。

  3. 定时器触发间隔不得小于 TtotalTtotal​,并建议预留1个ADCCLK周期的裕量。

  4. 多通道扫描必须配合DMA循环模式,否则无法保证数据完整性。

  5. 采样时间的选择需平衡速度与精度,高内阻信号或高精度要求必须延长采样时间。

本文结果可直接用于定时器重装载值的计算,为多通道数据采集系统的工程实现提供参考。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐