任梦圆 黄芳灵 张荣福
关键词:ABS 传感器;正弦信号测量;STM32;快速傅里叶变换;蓝牙通信
中图分类号:TN 98 文献标志码:A
引言
近年来,我国逐渐提高了对汽车行车安全的执行标准,行车主动安全系统(如制动防抱死系统、车身电子稳定系统等)越来越多地作为标准部件装配于各类车辆,以提高行车制动安全性,优化制动距离。目前,此类安全辅助系统的发展趋势一方面聚焦于制造成本的低廉化,另一方面则注重提高其工作稳定性[1]。作为汽车防抱死系统(ABS)的关键部件,ABS传感器装配于汽车车桥轮毂用于实时测量车轮的转速。
当前,国内部分高校院所已对ABS 传感器性能检测展开了相关研究,如田锦明等[2] 基于LabVIEW 开发了汽车轮速传感器测控系统;陈永良等[3] 开发了汽车轮速传感器检测台;孙骏等[4] 基于VC++开发了汽车轮速传感器性能测试系统,研究了传感器间隙对输出信号的影响。
磁电式ABS 转速传感器的输出近似为正弦信号,通过对正弦信号幅值、频率、有效值的测定,可以分析获得传感器性能。
1 磁电式ABS传感器
ABS传感器根据工作原理可以分为磁电式、电涡流式、霍尔式等类型,本文主要针对磁电式传感器进行研究。磁电式ABS 传感器根据电磁感应定律进行设计,周期变换的磁场产生周期性的电动势。
如图1 所示,磁电式ABS 传感器内部结构主要由永磁铁(a)、线圈(b)、信号线弹簧夹片等组成,同激励齿圈构成车轮轮速测量装置。当车桥轮毂转动时,带动齿圈同轴旋转,齿圈表面凹凸齿切割环绕线圈的磁力线导致磁通量发生改变,进而生成了周期性变化的交流电压,其电压频率同车桥的转速成正比。ABS 传感器工作时,触头每交替经过一个齿圈端面,输出一个周期 T 的正弦感应电压U。
根据GB/T 18459—2001《传感器主要静态性能指标计算方法》标准与企业测试指导需求,制定磁电式ABS 传感器性能测试总体技术方案,检测参数包括电压幅值( V/mV)、有效幅值(Ve/mV)、感应电压频率 (fP/Hz)和冷态电阻 (Rz/Ω)。
由于磁电式ABS 传感器输出为正弦信号,本文设计了一个针对正弦信号的测量装置,可以对正弦信号的幅值、有效值、频率和失真度进行测量。在测试过程中通过信号源模拟磁电式ABS 传感器输出,输入测量装置,用于检验测量装置的测量精度。
2 系统总体设计
本文以意法半导体公司生产的微控制器STM32F407ZGT6 为核心设计了一套正弦信号测量装置,对ABS 传感器的输出信号进行测定。该芯片主频达到了168 MHz,拥有1 M 的片内Flash 和198 KB 的RAM,带有浮点运算单元(FPU),支持数字信号处理器(DSP)指令,这些资源使系统的实现成为可能[5]。
系统结合信号调理电路、程控放大/衰减电路以及一定的信号处理电路对输入正弦信号进行预处理,使用STM32 自带的12 位逐次逼近型模数转换器(ADC)进行模数转换,STM32 对所采集的数据进行快速傅里叶变换(FFT)等计算,得到信号失真度。系统对信号进行调理衰减后,由STM32 判断输入信号幅值大小反馈调节前级程控放大电路增益,对信号幅值进行自适应缩放,减小测量相对误差。为了减小單片机运算压力,信号峰值、有效值、频率测量均借助外电路辅助测量,STM32 只需要进行简单采集计算即可得到相应的参数。系统通过触摸屏代替传统按键进行控制,测量结果及波形同时显示在触摸屏上;最后借助蓝牙通信模块将测量数据上传到手机端。系统结构如图2 所示。
3 THD 测量原理
要计算THD 的值,首先需要利用ADC 在时间为输出信号的一个周期内等时间间隔下采集若干个样本点,利用离散的傅里叶级数变化,求出n 次谐波对应的幅值。时间间隔太短会增加处理器运算困难,延长处理时间,但时间间隔过长会导致样本点取样不足,使得最后求取的幅值不够精确。本研究选择每个周期内采1 024 个样本点,在保证求取幅值的精确性的情况下,提高运算效率。最后将求得的THD 所需要的幅值代入公式中即可求出THD 值。
系统软件设计主要包括通过STM32F407 中ADC 的电压采集,通过中断系统的配置使其以一定的频率对电压采集电路输出的电压进行采集,使用STM32F407 内置DSP 库函数的FFT算法,对ADC 采集的电压数据进行处理,求出一次谐波到五次谐波对应的幅值。得到幅值后,利用公式计算出相应的THD 值。为了增加测量准确度,减少频谱泄漏,系统采用两次FFT,第一次准确测量基波频率,第二次根据基波频率调整采样率,得到五次谐波对应的幅值,最后将计算出的THD 值显示到触摸屏上, 实现对THD 值的实时测量以及实时显示。THD 值测量以及显示过程如图3 所示。
DFT 算法的原理如下。
运用蝶形运算在复数域内进行计算则可求出各阶对应的幅值。
4 系统硬件设计
系统硬件电路主要由信号调理电路、供电电路、程控信号放大/衰减电路、信号预处理电路、单片机及其外围电路等组成。其中蓝牙通信模块、触摸屏模块、供电电路以及单片机外围电路已经相对成熟,系统设计过程中多采用成品实现,此处不再赘述。系统主要针对信号调理电路、程控信号放大/衰减电路和信号预处理电路进行设计和测试分析。
4.1 ADC供电设计
测量装置所用ADC 为STM32F407 自带的12 位逐次逼近型模数信号转换器,可以满足当前测量任务要求。为过滤和屏蔽来自印刷电路板上毛刺的干扰,供电电路将数字部分和模拟部分的供电和接地端隔开,ADC 采用独立的供电,区别于STM32大部分电路使用的公共供电端VDD 和VSS,ADC 供电端接VDDA,接地端接VDDS。VDDA 由外部输入的3.3 V 直流电源去耦获得。外部电路使用AMS1117-3.3 电源稳压芯片,将5 V 电压转换为3.3 V 输出,接入开发板3.3 V 供电引脚。
ADC 的外部参考电压Vref–接VSSA,Vref+接VDDA,VDDA 已经具有较高的精度,可以作为参考电压。ADC1 的通道17 连接内部基准源,有助于提高ADC 的测量准确度。该内部基准源的出厂测量值存储在内存的一个地址上,读取后即可作为参考电压来校准ADC 的采样值。
4.2 信号调理电路
为了实现对输入信号的精确测量,减少外界干扰,对输入信号进行一定的信号调理是十分重要的。前级调理电路主要包括阻抗匹配电路、信号衰减电路和二阶有源低通滤波电路[7],系统利用二阶有源低通滤波滤除高频噪声信号,低通滤波器传递函数为
为了实现信号幅值的自适应缩放,此处增益控制电压的大小由数模转换器(DAC)输出电压决定,DAC 的输出电压由ADC 采集到的最大电压反馈计算得到。但是由于DAC 只能输出0~3.3 V 电压,范围过小,本装置采用两级放大,对于大信号将程控放大结果衰减为原来的1/10,对于小信号则放大10 倍。此过程由单片机控制继电器进行选通, 选通依据为前次ADC 采集到的电压。
4.4 信号预处理电路
为了减小单片机运算压力,峰值和有效值检测均采用外部电路辅助完成,单片机只需要采集直流电压简单运算之后显示即可[8]。
电路如图6 所示,调理之后的信号进入后级预处理电路,通过触摸屏选择测量参数,STM32控制模拟开关CD4051 地址端选通不同输出端,进行不同的预处理操作:测量幅值时选通峰值检波电路输出信号峰值;测量有效值时选通有效值检测电路输出有效值;测量频率时选通整形电路,输出同频率方波。
下面对三个预处理电路进行简单介绍。
有效值检测:使用AD637 芯片完成。AD637是一款完整的高精度单片均方根直流转换器,可计算任何复杂波形的真有效值[9]。它提供了集成电路均方根直流转换器中前所未有的性能,并且在精度、带宽和动态范围方面与离散和模块化技术相当,可以满足系统设计要求。有效值计算公式为
应用时只需在芯片的外围添加适当的电阻、电容即可实现任意波形交变信号的有效值的测量。其中平均电容 C1 可用来设定平均时间常数,并决定低频准确度、输出纹波大小和稳定时间。R1、R2、C1、C2 及精密运放 OPA277 构成二阶低通滤波滤除检波后的纹波[10]。前级输入选择低漂移运放LF356 构成电压跟随器,与前级电路实现阻抗匹配。
峰值检测:电路由二极管、电容和精密运放OPA350 构成,可将输入信号转变为峰值对应的直流电压输出[11]。有效工作频率范围在500 kHz以下,对于100 mVpp 以上的输入信号检测误差可达到3% 以内。第一片运放結合二极管电容可以构成峰值检测电路,但是电路会长期处于负饱和状态,当输入信号发生变化时需要花费大量时间才能稳定输出[12]。为了解决该系统问题,引入了后一级负反馈电路,保证了电路中两个运放都不会进入非虚短状态。电路Tina9 仿真结果如图7 所示,实际测量误差在3% 以内。
整形电路使用滞回比较器实现,将正弦波信号转换为方波信号[13],便于单片机捕获上升沿测量信号频率。
5 系统软件设计
主控程序主要是根据各个硬件模块输出的值进行采集处理计算,从而得出需要的测量值,同时主程序反馈调节电路中的放大倍数和继电器模拟开关的通断[14]。软件整体采用模块化设计,主要包括主控单元程序设计、ADC 采集程序设计、触摸屏界面设计、FFT 算法设计、蓝牙通信程序设计等。
主流程图如图8 所示,在液晶显示器(LCD)屏幕上设计了峰值和有效值、频率、失真度、波形复现、数据传送5 个触摸区域,按下不同的区域执行对应的程序。下面对于5 个区域的执行操作作简单介绍。
峰值和有效值:输入信号通过外电路处理后,STM32 的ADC 采集对应的电压值,经过放大倍数还原后得到峰值有效值显示。
频率:STM32 进行输入捕获,通过双定时器计数精确得到输入信号频率,并在液晶屏和手机端显示。
失真度:对输入信号进行两次FFT,分析输入信号频谱,计算获得THD,具体流程如图2所示。
波形复现:根据ADC 初始采集的电压值确定坐标刻度,由进行FFT 时ADC 采集到的电压数组描点还原波形。
数据传送:STM32 与手机的短距离通信使用蓝牙通信模块HC06 实现,使用串口进行数据传输[15]。
系统上电后,各个外设进行初始化,包括触摸屏、ADC、DAC、定时器和蓝牙模块。初始化完成后,系统对输入信号的幅值进行检测,自动调节前级程控放大电路增益,使输入信号幅值维持在1~2 V,保证后续测量准确进行。系统持续扫描触摸屏是否按下,按下后判断按下区域,程序跳转到指定功能实现处,同时液晶屏界面切换,改变模拟开关地址控制端选通不同预处理电路,辅助STM32 进行测量,计算结果显示到液晶屏上。一次测量结束后可以通过按下触摸屏上预留复位区域还原各个参数,为下一次测量作准备。
6 系统测试与分析
本文基于上述系统硬件和软件设计搭建了实验平台,并对输入正弦信号的峰值、有效值、频率、失真度和波形进行了实验研究,经实验验证本装置可对各个参数进行准确测量。
对于实验的测试信号,首先将输出信号接入示波器进行观察,将示波器的测量值作为测量的标定值。将同一信号输入本文设计的测量装置,比较测量装置测得结果与示波器测得结果,计算测量误差。
6.1 峰值
在装置中分别输入峰值为50 mV,100 mV,500 mV,1 V,5 V,10 V 的不同频率正弦信号,测量它们的峰值,测量结果如图9 所示,系统测量误差除50 mV 时均小于4%,测量结果准确。
6.2 有效值
在装置中分别输入峰峰值为50 mV,100 mV,500 mV,1 V,5 V,10 V 的不同频率正弦信号,测量它们的有效值,测量结果图10 所示,系统测量误差除50 mV 时均小于4%,测量结果准确。
6.3 频率
在装置中分别输入频率为1 kHz,50 kHz,500 kHz,1 MHz 的不同幅值正弦信号,测量它们的有效值,测量结果如表1 所示,系统测量误差小于1%,测量结果准确。
6.4 失真度
在装置中分别输入谐波失真度为5%,10%,50% 的不同频率正弦信号,测量它们的有效值,测量结果如表2 所示,THD0为理论值,THDX为连续五次测量值,各次测量值与理论值之差均小于5%,测量结果准确。
7 结论
本文设计了一款基于STM32F407 的正弦信号测量装置。本装置可以对信号源输出模拟ABS 传感器信号的峰值、有效值、频率和失真度进行测量。通过大量测试并分析测试结果可知装置测量误差均在5% 以内,测量误差小,测量精度高,性能良好,可以对后续ABS 输出的正弦信号进行测量。