产品选型

单片机的ccp 相位差检测的算法研究-为什么不用CCP检测边沿

小编 2025-06-22 产品选型 23 0

相位差检测的算法研究-为什么不用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的变化波形

单片机有哪些外设电路

单片机的外设接口/外设电路是跟着单片机的片上资源走的。选型/设计电路时需要根据用户需求来确认。所以,单片机常用的片上资源/外设如下:

1.外设之一:GPIO

单片机的输入输出口也是外设电路,GPIO也是单片机和外界进行连接的渠道。单片机在配置GPIO时,需要配置GPIO的方向、上下拉、类型以及数据。比如单片机控制蜂鸣器时,需要把GPIO口设置为输出,写0/1控制蜂鸣器发声或者无声。

外设1:GPIO

2.外设之二:IIC

IIC是一种通讯总线,总共具有两根线SCK和SDA,占据单片机2个IO口,可以使用片上IIC,也可以使用GPIO来模拟。IIC主要用在单片机和芯片之间的板机通信,传输距离短。如EEPROM,AD采用芯片等,都用的是IIC接口。

外设2:IIC

3.外设之三:SPI

提到了IIC,肯定会提到SPI,这也是一种常用的通讯口,可以分为三线或者四线SPI,为主从通讯方式,用在单片机和芯片之间的板级通讯,传输距离比较短。如Flash芯片,用的就是SPI接口。

外设3:SPI

4.外设之四:UART/USART

UART基本上是单片机的标配了,这也是单片机最基本的通讯方式,UART占用单片机2个IO口,使用UART和电平转换芯片,可以实现多种通讯方式的扩展,如RS232、RS485,还可以和蓝牙模组、wifi模组进行AT指令的通讯。

外设4:UART

5.外设之五:AD/DA

所谓AD,就是模数转换,将被测环境的模拟量转换为单片机所能处理的数字量。如通过温度采集芯片、压力采集芯片等,把数据送给单片机,可以实现模拟量的采集。传感器就是这样采样的。

外设5:AD/DA

还有与AD相反的资源,就是DA,将数字量转换成模拟量。这个资源不是单片机的标配,因为应用场景受限有些单片机没有。

#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } 51单片机C语言编程 ¥44 购买

6.外设6:PWM

PWM是脉冲宽度调制,可以理解成单片机输出占空比可调的方波。这个资源与GPIO是复用的,与之服用的资源还有Capture(捕获),Compare(比较),这个三个功能构成了PWM。

大多数单片机上都会有这个资源。PWM可以用来驱动电机、可以用来LED调光灯。应用相对较为广泛。

外设之6:PWM/CCP

而捕捉和比较,就要看单片机的配置了,可能没有。

7.外设7:CAN接口

CAN是一种局域网组网的通信方式,在工业和汽车行业应用广泛,占用单片机的两个IO口,单片机上的CAN资源再外加一个CAN收发器就能实现CAN的通讯。

外设7:CAN

因为主要在车上应用,所以CAN资源挑单片机,并不是每个单片机都有。

单片机的资源/外设先写这么多。

相关问答

c++程序员的发展方向?

有Linux、Windows下的跨平台Qt开发经验;有socket编程经验,能编写TCP、UDP或串口通信程序;工作积极主动,具备团队合作精神及良好沟通能力;有版本控制工...

STM32和C51在应用方面如何选择,比如设计电压检测系统?

STM32和51单片机的选择,要看具体的项目应用综合考虑,要做电压检测就要有高精度的AD转换功能,如果没有要求高采样率,51单片机其实也行,数据量大了就要用到S...S...

猜你喜欢