基于定时器触发的STM32F103多通道ADC数据采集时间分析
目录
摘要
针对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下三种典型采样周期的定量结果。主要结论如下:
-
10通道一次扫描总时间与通道数、采样周期、ADC时钟频率线性相关,公式为 Ttotal=N×(S+12.5)/fADCCLK。
-
在12 MHz ADC时钟下,采样周期13.5、71.5、239.5分别对应总时间21.67 μs、70.00 μs、210.0 μs。
-
定时器触发间隔不得小于 TtotalTtotal,并建议预留1个ADCCLK周期的裕量。
-
多通道扫描必须配合DMA循环模式,否则无法保证数据完整性。
-
采样时间的选择需平衡速度与精度,高内阻信号或高精度要求必须延长采样时间。
本文结果可直接用于定时器重装载值的计算,为多通道数据采集系统的工程实现提供参考。
更多推荐



所有评论(0)