输入捕获的作用
工作机制
输入捕获通过检测外部信号边沿(上升沿/下降沿)触发计数器(CNT)值锁存到捕获寄存器(CCRx),结合两次捕获值的差值计算信号时间参数。
- 脉冲宽度测量:配置两个通道分别捕获上升沿和下降沿,计算两次捕获值的差值与分辨率的乘积(分辨率=1/定时器时钟频率)。
- 频率测量:捕获连续两个上升沿的CNT差值,通过(
频率=定时器时钟频率/周期差值)
计算。
关键硬件模块
- 滤波器:消除信号毛刺(通过设置ICFilter参数控制采样频率)
- 预分频器:控制捕获事件触发频率(如每2/4/8个边沿触发一次捕获)
- 边沿检测器:通过CCER寄存器配置触发极性TIM_ICPOLARITY_RISING/FALLING
结构及其运行原理
基本结构如图
我们拿通道1来讲解他的结构和各结构的功能
输入捕获的硬件由以下关键模块组成:
模块 | 功能描述 |
---|---|
输入通道 | 外部信号通过GPIO引脚输入到定时器的某个通道(如TIMx_CH1~CH4) |
边沿检测器 | 检测信号的上升沿或下降沿(通过TIMx_CCER 寄存器的CCxP 位配置极性) |
数字滤波器 | 抑制信号抖动(通过TIMx_CCMRx 的ICxF 位配置滤波窗口,滤除高频噪声) |
预分频器 | 对输入信号进行分频(通过TIMx_CCMRx 的ICxPSC 位配置,如每2/4/8个边沿触发一次) |
捕获寄存器 | 锁存当前定时器计数器(CNT)的值到TIMx_CCRx 寄存器 |
中断/事件生成 | 触发捕获完成中断或DMA请求,通知CPU处理数据 |
信号和数据处理
第一阶段:输入滤波
第一阶段是将输入的信号进行滤波处理,信号经过滤波器和预分频器,滤除噪声并降低触发频率
第二阶段:边沿检测
边沿检测器检测到预设的边沿(上升沿或下降沿)时,触发捕获事件。上升沿脉冲或下降沿脉冲。
- 上升沿脉冲:当信号出现一个上升沿,就发出一个脉冲
- 下降沿脉冲:当信号出现一个下降沿,就发出一个脉冲
第三阶段:信号选择
信号来源有三种,直接、间接、TRC
- 直接输入模式(Direct Mode):外部信号直接连接到 同一通道的捕获寄存器。例如,TIMx_CH1的输入信号直接映射到TIMx_CCR1寄存器。
- 交叉输入模式(Indirect Mode):外部信号 跨通道映射到其他通道的捕获寄存器。例如,TIMx_CH1的输入信号映射到TIMx_CCR2寄存器。
- TRC:信号来源来自从模式控制器
信号的四种走向
第四阶段:分频
在分频阶段如果选择了2分频会出现当每个输出的脉冲累计为2时输出一个脉冲,分频越大响应的脉冲数量等于除分频数的值。分频后每输出一个脉冲就会触发一个ccx的事件,让CCRx寄存器记录触发ccx事件时CNT的值。