相位差检测的算法研究-为什么不用CCP检测边沿
经过上一篇文章的分析,我们知道,当不存在待测物时,发射线圈的等效阻抗为:
当发射线圈产生的磁场内存在待测物时,发射线圈的等效阻抗为:
根据 的数值,可以分辨出待测物的类型;
涡流示意图
直接检测相位差可行吗
假设施加发射线圈的电压复数形式为,则接收电压
如果检测接收信号与发射信号的幅度,以及接收信号与发射信号的相位差,则可以算出发射线圈的阻抗。
因为发射信号与接收信号的为单一频率的信号,而且频率相同,检测相位差比较简单的办法为:
分别将发射信号与接收信号通过过零比较器处理成50%占比空的数字方波信号。
将两路方波信号送入单片机的CCP捕捉功能脚,利用单片机的CCP功能,分别捕捉发射信号的跳变时间以及接收信号的跳变时间,将两个时间相减,再与信号的周期进行运算即可以得到相位差。
这里的问题在于:
相对于和,和是比较大的数值,小的阻抗的变化导致的相位变化小,如果采用CCP捕捉,需要单片机通过数值计算滤除干扰进行分析,早期性能差的单片机难以胜任。
相位差检测的数值处理方法
随着近些年单片机技术的发展,特别是性价比极高的cortex-m内核处理器的普及应用。
对模拟信号进行高速采样并对数值进行处理已不成问题。
按照下述步骤实现相位差数值检测的算法:
1) 以为采样率对接收信号采样 N+N/4个数据,得到一组数组A,
2) 根据发射信号的频率,在一个周期内对信号采样N个点,保存为一个数组B,
3) 计算的数值,记为R;
4) 计算的数值,记为X;
5) 在多个周期内计算R和X的滑动平均值,记为以及;
6) 计算 的数值,根据这一数据判断待测物的类型。
R, X的变化波形
快速上手STM32定时器-输入捕获的配置
输入捕获是STM32单片机定时器的一个功能,其与定时器的输出比较、PWM输出等共用一个引脚和寄存器(寄存器均为CCR)。当为输入时,引脚则为输入模式,输出时引脚则为输出模式。下图为TIM2定时器通道3中的功能配置
定时器通道配置
输入捕获的原理
单片机设定为输入捕获模式时,当单片机捕获的脉冲时,CCR寄存器可立即锁定CNT寄存器中的当前计数值。假定一组脉冲我们设定捕获此脉冲中的上升沿,则我们可以分别读取前后CCR寄存器的数值。读取的两数值相减,再根据定时器的时基,我们即可确定此组输入脉冲的周期。如果采样一个上升沿、一个下降沿,则我们可以确定脉冲的高电平的时长。
输入捕获模式的设定
设定定时器的时基,此时基中的CNT寄存器的计数值将传递给CCR寄存器,是输入捕获的时间基准;设定输入捕获的捕获模式,上升沿捕获、下降沿捕获,若设定上升沿捕获,则捕获上升沿;若下降沿捕获,则捕获下降沿;捕获模式配置
设定捕获的分频系数,可以设定不分频、2分频、4分频、8分频,四种模式。假定设置为2分频,则信号发出两个脉冲,单片机捕获一次,4分频、8分频则依次类推;捕获分频系数设定
设定捕获的输入滤波参数。滤波参数为二进制4位,具体功能可依据下图中的数字具体值来进行配置。滤波器设定1
滤波器设定2
采样频率fDTS与内部时钟fCK_INT的关系,可依据下图来确定。STM32CUBE中设定此参数 的位置为时基中的CDK设定。DTS与内部时钟fCK_INT的关系
CKD设定
输入捕获的整体设定
输入捕获模式的一般实现思路
一般为开启输入捕获的中断,当捕获到脉冲时进入中断回调函数,读取锁存的CCR寄存器的数值。一般两次进入中断读取后,即可两值相减,得出两脉冲的时间间隔。
开启输入捕获中断HAL库函数:HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
中断回调函数:HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim);
读取CCR寄存器数值宏:__HAL_TIM_GET_COMPARE(__HANDLE__, __CHANNEL__);
改变捕捉极性函数:__HAL_TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__)
输入捕获原理及实验视频: 快速上手STM32定时器(五)-输入捕获原理及实验
相关问答
富士通 单片机 用什么软件编程电脑有很多种啊台式机笔记本台式笔记一体机等等最简单的理解方式:硬盘是大脑,存储了电脑必备的系统和程序。看看下面的也可以:从计算机系统...
单片机 中数制与数制的转换是怎样实现的? ?单片机中数制与数制的转换是怎样实现的??关于数制之间的转换,其实在数字电路的书中会讲到,也很容易理解。在我们生活中,十进制经常被我们用到:数字0,1,2,3...
电源稳定供电,控制卫浴 单片机 工作几个小时会偶发重启,什么回事?题目的描述:单片机产品在工作的时候,上电后是正常工作的,但是工作了几个小时后,偶尔会出现单片机重启的现象。从描述可以判断出,电路在大多数的时间里工作是...
各位知道怎么选择合适的 单片机 吗?[回答]选用时程序存储器的容量够用就行不然会增加成本,对于初具规模的产品可选用OTP单片机,可省去掩膜时间,加快产品的上市时间。在选型的时候,需要根据...
怎么测量pwm信号?逻辑分析仪可以捕捉和分析数字信号,可以测量PWM信号的高低电平时间和频率。另外,还可以使用微控制器或单片机来测量PWM信号,通过编程读取引脚状态和计时器来计...
cosφ与功率因数有区别吗?4)通过单片机脉宽捕捉功能,检测出脉宽,再根据周期以及cos函数算出功率因数。听上去很理想,都是严格按照书本理论来设计的,实际上,这样测试出来的功率因数...听...
怎么样学好51 单片机 ?单片机的学习绝不仅仅是对一项知识的掌握。想要学好单片机,需要从硬件结构、内部资源、外设应用等几个方面多方位入手。而要想成为一名嵌入式工程师,就要对单片...
超声波液位计和雷达液位计的区别有哪些?我是电子及工控技术,我来回答这个问题。超声波液位计和雷达液位计在水利部门运用的十分广泛,这两种设备主要是对江河湖泊等的水位进行测量的一种监测仪器。虽然...
霍尔转速传感频率计算公式?N是1S内脉冲的数量,电机每转1转,输出16个脉冲,乘以60变为每分钟的旋转次数,也就是转速。可以将测量方法改一下,单片机对脉冲进行计数和计时,捕获到第一个...