摘要: 本应用说明解释了如何使用MAXQ7667智能SoC(片上系统)来诊断超声波换能器的谐振频率和阻尼特性。描述了测试装置并给出了数据。提供软件代码。
本文展示了MAXQ7667智能SoC(片上系统)如何量化超声波换能器的谐振频率和阻尼特性。这些功能有助于诊断传感器模块,优化系统性能,并在制造过程中协助校准。本应用说明并不是一份通用的“如何”文档,旨在适用于所有系统。相反,本文假设对特定换能器模型有详细的了解,以及它在感兴趣的条件下如何执行。有了这些信息,用户就可以大大简化这里所示的测试。最后,这些测试假设传感器光束中的任何反射目标距离传感器超过一英尺。
本文中的所有数据均由MAXQ7667在EV(评估)试剂盒中采集。数据通过EV套件上的RS-232端口传输到PC上,然后使用Excel电子表格绘制。使用的换能器是EV套件附带的40kHz, 400EP250。该换能器水平安装在电路板上,简化了在其表面添加异物以影响换能器性能的任务。在每次测试中使用三种换能器条件:代表正常操作的清洁干燥换能器;一个表面有水的换能器;还有一个传感器,表面有一小块可塑腻子。
图1至图3显示,这些不同的条件导致传感器特性显著不同。换能器表面的水降低了谐振频率,减少了阻尼。腻子的作用正好相反;它增加了谐振频率并显著增加了阻尼。
阻尼测试测量换能器共振的时间。这是一个简单的测试,用一个短脉冲激发换能器,然后监测换能器的输出,看看信号衰减的速度有多快。图1至图3显示了回声接收路径设置为三个不同频率时的阻尼。这三个数字很容易显示出腻子造成的严重阻尼。最后,在寻找阻尼的细微变化时,数据之间的差异也揭示了接收器频率的重要性。
因为这是一个简单的测试,所以它可以很容易地在多个频率上运行。当在多个频率下测试时,最好是激励脉冲的宽度保持相对恒定。使用持续时间一致的单一窄激励脉冲,消除了将不同数量的能量放入换能器或将换能器泵入其谐振频率所引起的差异。
在图1、2和3中,以25µs的间隔读取LPF(低通滤波器)。换能器用约6µs宽的单脉冲激发。请注意,如果只使用一个频率并且锁相环已经处于所需频率,则此测试可以在不到3ms的时间内运行。在两次测量之间有足够的时间来寻找峰值并检测信号何时衰减到峰值信号的给定百分比。如果使用多个频率,则需要额外的时间来进行额外的测量。锁相环在新频率上的稳定也需要额外的时间。
图1所示、用40kHz中心频率滤波器测量阻尼
图2、用35kHz中心频率滤波器测量阻尼
图3、用45kHz中心频率滤波器测量阻尼
频率扫描将识别换能器的谐振频率。图4清楚地显示了异物(三种不同的测试条件)对换能器谐振频率的影响。为了收集图4的数据,换能器被脉冲51次,接收器的中心频率以400Hz的步进从30kHz扫到50kHz。对于51个频率中的每一个,在激励和恢复LPF的输出之间使用相同的时间间隔。请注意,此诊断有一个重要的警告:必须使用正确的激励和恢复LPF之间的间隔。这个间隔必须足够长,以允许回波接收路径走出饱和,但足够短,以使换能器仍然产生强信号。单一的固定间隔很可能不能适用于所有条件。例如,在图2中,很明显,如果换能器上有腻子,在正常换能器甚至从饱和状态出来之前,信号将完全衰减。由于这种变化,从激励到LPF测量的时间必须是动态的。幸运的是,阻尼测试(见下文)可以很容易地确定最佳时间。
为了收集图4中的数据(即LPF数据计数),首先在三个不同的频率下运行阻尼测试,并保存从激励到信号衰减到峰值的一半的时间间隔。然后将三个测试中最长的时间间隔作为扫频测试的时间间隔。这个过程确定了一个时间间隔,适用于任何仍然产生良好信号的换能器条件。
图4、三种换能器条件的频率扫描
这里做一个简短的总结会很有用。为了确定激励到测量的间隔,在扫频之前至少需要进行一次阻尼测试。那么扫频测试比阻尼测试花费的时间要长得多。频率是通过多个值步进的,在激振换能器并进行相应的测量之前,频率必须确定。在本例中,整个测试耗时约650ms。通过减少锁相环频率稳定的保守时间,减少测试频率的数量,以及减少阻尼测试的数量,可以缩短测试时间。这些变化可能提供关于换能器的不太精确的信息,但这些信息对于应用来说仍然是足够的。
图4中的数据显示换能器的共振带相对较宽。该频带的宽度与MAXQ7667带通滤波器的带宽关系更密切,而与换能器的性能关系更大。尽管如此,这个测试对于识别换能器的中心频率仍然是有用的。
本应用说明中的图表对于设计人员来说很容易解释,但是对于自动诊断来说相当麻烦。为了简化过程,可以将该数据简化为几个数值,以便与存储在表中的参考值进行比较。参考值甚至可以通过温度来索引。通过使用SAR ADC和热敏电阻可以很容易地获得温度。
下面的代码(附录A)用于捕获图4中的数据。该代码还提供了三段数据,可用于定义换能器的状态。这些值是:
在谐振频率下的阻尼试验中LPF的峰值。
阻尼时间,或从激励到信号衰减到峰值的一半的时间。
中心频率或共振频率。该值表示为锁相环的设置,是下锁相环设置(信号为峰值信号的70%)和上锁相环设置(信号为峰值信号的70%)的平均值。使用70%的决定是武断的。
表1显示了三种换能器条件下的数据。从这些数据,诊断程序可以很容易地区分传感器的条件。
峰值LPF率(计数) | 阻尼时间(µs) | 中心频率(PLL) | |
干 | 24477 | 1394 | 290 |
湿 | 24740 | 1435 | 150 |
腻子 | 15854 | 0323 | 430 |
您可以下载IAR 编译器2.12A的完整软件项目。如果您将PC的COM1连接到EV套件的RS-232端口,则称为Transducer_Calibrate_115k2.exe的PC程序将显示(图5)频率上的谐振曲线和评估的谐振频率。
图5、示例输出图
MAXQ7667传感器校准文件
//这个例程测量指定频率(PLLfreq)下的换能器阻尼。//系统定时器用于测量LPF输出(LPFD)何时下降到峰值的1/2。//这是稍后在进行频率扫描时使用的沉淀时间。unsigned damping_half_time (unsigned PLLfreq, unsigned pulse_width) {unsigned short i;无符号短峰= 0;Unsigned short half_peak = 0;Unsigned short temp = 0;SCNT_bit。Stime = 0;//确保系统定时器关闭。Stim = 0;//清除系统定时器。SCNT_bit。Stdiv = 4;//设置系统定时器预量程分配器为16(每周期1µs)。PLLF_bit。PLLF = pllfrequency;//设置锁相环频率。BPH = pulse_width;//当BDIV = 0xC时,脉冲宽度= BPH/(接收频率* 400)usWaitTimer2 (10000);//设置锁相环为10ms。SCNT_bit。Stime = 1;//启动系统定时器。BPH_bit .BSTT = 1;//发送一个burst。usWaitTimer2 (50);//等待LPF部分沉淀。RunTimer0_us (20);//启动计时器# 1,每20µs重新加载一次。For (i = 0;我& lt;200;i++) {temp = LPFD;//读取低通滤波器的输出。If (temp >0 x2000,,临时的在peak) {peak = temp;} //保存大于2000的峰值。If (temp <峰值/ 2,,half_peak == 0) //如果LPFD小于峰值的一半且半峰时间{//未设置,则half_peak = STIM;//节省达到峰值一半的时间。I = 101;//找到半峰,退出循环。} while (T2CNB0_bit;TF2 == 0){} //等待定时器# 0。T2CNB0_bit。Tf2 = 0;//清除标志。} T2CNA0_bit。Tr2 = 0;//停止定时器# 0。返回half_peak;}无效main {unsigned short I = 0;无符号短峰= 0;Unsigned short first70 = 0;Unsigned short second70 = 0;无符号短center_pllf;Unsigned short wait2measure;无符号短半峰;init ;// *********************************************************************************************************** // *********************************************************************************************************** // 配置设置echo_receive_gain (0);//设置接收器最小增益(允许值0-31)//用于计算PC-Application中的突发频率。burst_setup(BURST_CLK_PLL, BURST_PULSE_1, BURST_DIV_400, 0, PLL_CLOCK_16MHZ, 0);step_size = 10;//设置步长(从0到511)。//结束配置设置。// *********************************************************************************************************** // *********************************************************************************************************** 而(1){/ /使用“damping_half_time”常规测量所花费的时间在µ年代/ /响的下降到峰值的一半。在一个以上的频率上这样做,以便其中一个频率将在换能器的范围内。Wait2measure = damping_half_time(1,2,88);//在35kHz测量阻尼时间。Halfpeak = damping_half_time(256,101);//在40kHz测量阻尼时间。If (wait2measure <halfpeak) {wait2measure = halfpeak;} //节省最长时间Halfpeak = damping_half_time(384,113);//在45kHz测量阻尼时间。If (wait2measure <halfpeak) {wait2measure = halfpeak;} //节省最长时间//扫描接收器的同时,用恒宽脉冲重复脉冲换能器//频率在脉冲传输和低通滤波器(低通滤波器数据)之间的间隔使用来自阻尼测试(wait2测量)的半时间值。PLLF_bit。PLLF = 0;//以30kHz启动扫描。BPH = 77;//脉冲~6.3µs。这个值很容易在频率过高的情况下维持。峰值= 0;Number_of_steps = 0;do //扫描从30kHz到50kHz与step_size * 39.062500kHz。{usWaitTimer2 (5000);//等待5ms频率稳定。Stim = 0;//重置系统定时器。它控制脉冲到LPF的读取时间。BPH_bit .BSTT = 1;//发送burst。而(lt;wait2measure){} //等待指定的时间使振铃减弱。lpfdata [number_of_steps] = LPFD;//存储LPF文件。如果(lpfdata [number_of_steps]比;peak) {peak = lpfdata[number_of_steps];} //保存峰值。number_of_steps + +;PLLF_bit。PLLF = number_of_steps * step_size;//增加频率。BPH = 77 + number_of_steps;//增加占空比以保持脉冲宽度。} while (PLLF <512 - step_size);//根据LPFD频率为峰值频率的70%的两个频率的平均值,找到中心频率。For (i = 0;我& lt;number_of_steps;i++) {if (lpfdata[I] >峰值*0.7){first70 = i;I = number_of_steps;}} for (i = number_of_steps;我在0;I——){if (lpfdata[I] >峰值*0.7){second70 = i;i = 1;}} I = (first70 + second70)/2;// I =中心频率处的环路值。Center_pllf = i*step_size;//设置PLLF_bit。锁相环以此值为谐振频率。//使用中心频率重新测量阻尼。 Damp_time = damping_half_time(center_pllf, 75);//此时,关于换能器有三条有价值的信息。//峰值=从频率扫描的峰值值。// center_pllf =谐振频率处的PLLF设置。// damp_time =共振衰减到峰值1/2的时间。center_burst_frequency = 16000000/Burst_Clock_Divider*(center_pllf+768)/1024;SendData ;} // While(1)} //结束Main
社群二维码
关注“华强商城“微信公众号
Copyright 2010-2023 hqbuy.com,Inc.All right reserved. 服务热线:400-830-6691 粤ICP备05106676号 经营许可证:粤B2-20210308