光学仪器  2023, Vol. 45 Issue (2): 36-45   PDF    
基于STM32F4的ABS传感器输出正弦信号测量装置设计
任梦圆, 黄芳灵, 张荣福     
上海理工大学 光电信息与计算机工程学院 ,上海 200093
摘要: 汽车轮速传感器是防抱死制动系统(ABS)的关键部件之一,其性能的好坏直接决定了ABS性能的高低。磁电式ABS转速传感器的输出近似为正弦信号,通过对正弦信号幅值、频率、有效值的测定,可以分析获得传感器性能。本文以STM32F407为主控制板,以快速傅里叶变换为主要工具,设计了一款数字控制正弦信号测量装置进行各参数测量。经过实验验证,本装置可在5%的误差内精确测量输入信号的频率、有效值、峰值、失真度并还原信号波形。此外,为了便于观测,本设计借助蓝牙通信模块将测量数据同步上传到手机端。
关键词: ABS传感器    正弦信号测量    STM32    快速傅里叶变换    蓝牙通信    
Design of ABS sensor output sinusoidal signal measurement device based on STM32F4
REN Mengyuan, HUANG Fangling, ZHANG Rongfu     
School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China
Abstract: The automobile wheel speed sensor is one of the key components of anti-lock braking system (ABS), and its performance directly determines the level of ABS performance. The output of the magnetoelectric ABS speed sensor is approximately a sinusoidal signal, and the performance of the sensor can be obtained by analyzing the amplitude, frequency and effective value of the sinusoidal signal. This work takes STM32F407 as the main control board and uses fast Fourier transform as the main tool to design a digitally controlled sinusoidal signal measurement device to measure various parameters. It has been verified by experiments that the device can accurately measure the frequency, effective value, peak value and distortion of the input signal within 5% error and restore the signal waveform. At the same time, in order to facilitate observation, this design uses the bluetooth communication module to synchronously upload the measurement data to the mobile phone.
Key words: anti-lock braking system sensor    sinusoidal signal measurement    STM32    fast Fourier transform    bluetooth communication    
引 言

近年来,我国逐渐提高了对汽车行车安全的执行标准,行车主动安全系统(如制动防抱死系统、车身电子稳定系统等)越来越多地作为标准部件装配于各类车辆,以提高行车制动安全性,优化制动距离。目前,此类安全辅助系统的发展趋势一方面聚焦于制造成本的低廉化,另一方面则注重提高其工作稳定性[1]。作为汽车防抱死系统(ABS)的关键部件,ABS传感器装配于汽车车桥轮毂用于实时测量车轮的转速。

当前,国内部分高校院所已对ABS传感器性能检测展开了相关研究,如田锦明等[2]基于LabVIEW开发了汽车轮速传感器测控系统;陈永良等[3]开发了汽车轮速传感器检测台;孙骏等[4]基于VC++开发了汽车轮速传感器性能测试系统,研究了传感器间隙对输出信号的影响。

磁电式ABS转速传感器的输出近似为正弦信号,通过对正弦信号幅值、频率、有效值的测定,可以分析获得传感器性能。

1 磁电式ABS传感器

ABS传感器根据工作原理可以分为磁电式、电涡流式、霍尔式等类型,本文主要针对磁电式传感器进行研究。磁电式ABS传感器根据电磁感应定律进行设计,周期变换的磁场产生周期性的电动势。

图1所示,磁电式ABS传感器内部结构主要由永磁铁(a)、线圈(b)、信号线弹簧夹片等组成,同激励齿圈构成车轮轮速测量装置。当车桥轮毂转动时,带动齿圈同轴旋转,齿圈表面凹凸齿切割环绕线圈的磁力线导致磁通量发生改变,进而生成了周期性变化的交流电压,其电压频率同车桥的转速成正比。ABS传感器工作时,触头每交替经过一个齿圈端面,输出一个周期T的正弦感应电压U

图 1 ABS传感器感应电压变换曲线 Figure 1 ABS sensor induced voltage transformation curve

根据GB/T 18459—2001《传感器主要静态性能指标计算方法》标准与企业测试指导需求,制定磁电式ABS传感器性能测试总体技术方案,检测参数包括电压幅值( V/mV)、有效幅值( $ V_{{\rm{e}}} $ /mV)、感应电压频率( $ f_{{\rm{P}}} $ /Hz)和冷态电阻( $ R_{{\rm{z}}} $ /Ω)。

由于磁电式ABS传感器输出为正弦信号,本文设计了一个针对正弦信号的测量装置,可以对正弦信号的幅值、有效值、频率和失真度进行测量。在测试过程中通过信号源模拟磁电式ABS传感器输出,输入测量装置,用于检验测量装置的测量精度。

2 系统总体设计

本文以意法半导体公司生产的微控制器STM32F407ZGT6为核心设计了一套正弦信号测量装置,对ABS传感器的输出信号进行测定。该芯片主频达到了168 MHz,拥有1 M的片内Flash和198 KB的RAM,带有浮点运算单元(FPU),支持数字信号处理器(DSP)指令,这些资源使系统的实现成为可能[5]

系统结合信号调理电路、程控放大/衰减电路以及一定的信号处理电路对输入正弦信号进行预处理,使用STM32自带的12位逐次逼近型模数转换器(ADC)进行模数转换,STM32对所采集的数据进行快速傅里叶变换(FFT)等计算,得到信号失真度。系统对信号进行调理衰减后,由STM32判断输入信号幅值大小反馈调节前级程控放大电路增益,对信号幅值进行自适应缩放,减小测量相对误差。为了减小单片机运算压力,信号峰值、有效值、频率测量均借助外电路辅助测量,STM32只需要进行简单采集计算即可得到相应的参数。系统通过触摸屏代替传统按键进行控制,测量结果及波形同时显示在触摸屏上;最后借助蓝牙通信模块将测量数据上传到手机端。系统结构如图2所示。

图 2 系统原理框图 Figure 2 System block diagram
3 THD测量原理

本文用THD(total harmonic distortion)表征正弦信号失真度。THD 定义如下:若线性放大器输入电压 $ {u}_{{\rm{i}}}={U}_{{\rm{i}}}\;\mathrm{cos}\;\omega t $ ,其含有非线性失真的输出交流电压为[6]

$ \begin{split} {u}_{{\rm{o}}}=& {U}_{{\rm{o}}1}\mathrm{cos}\left(\omega t+{\phi }_{1}\right)+{U}_{{\rm{o}}1}\mathrm{cos}\left(2\omega t+{\varphi }_{21}\right)+\\ &{U}_{{\rm{o}}1}\mathrm{cos}\left(3\omega t+{\varphi }_{3}\right)+ \dots +{U}_{{\rm{o}}1}\mathrm{cos}\left(n\omega t+{\varphi }_{n}\right) \end{split} $ (1)

则有

$ f_{\rm{THD}}=\frac{\sqrt{{U}_{{\rm{o}}2}^{2}+{U}_{{\rm{o}}3}^{2}{+U}_{{\rm{o}}4}^{2}+\dots +{U}_{{\rm{o}}n}^{2}}}{{U}_{{\rm{o}}1}}\times 100{\text{%}}$ (2)

在系统设计时为了提高运算效率,对THD的定义进行简化,在求取THD值时只取到五次谐波

$f_ {\rm{THD}}=\frac{\sqrt{{U}_{{\rm{o}}2}^{2}+{U}_{{\rm{o}}3}^{2}{+U}_{{\rm{o}}4}^{2}+{U}_{{\rm{o}}5}^{2}}}{{U}_{{\rm{o}}1}}\times 100{\text{%}} $ (3)

要计算THD的值,首先需要利用ADC在时间为输出信号的一个周期内等时间间隔下采集若干个样本点,利用离散的傅里叶级数变化,求出n次谐波对应的幅值。时间间隔太短会增加处理器运算困难,延长处理时间,但时间间隔过长会导致样本点取样不足,使得最后求取的幅值不够精确。本研究选择每个周期内采1024个样本点,在保证求取幅值的精确性的情况下,提高运算效率。最后将求得的THD所需要的幅值代入公式中即可求出THD值。

系统软件设计主要包括通过STM32F407中ADC的电压采集,通过中断系统的配置使其以一定的频率对电压采集电路输出的电压进行采集,使用STM32F407内置DSP库函数的FFT算法,对ADC采集的电压数据进行处理,求出一次谐波到五次谐波对应的幅值。得到幅值后,利用公式计算出相应的THD值。为了增加测量准确度,减少频谱泄漏,系统采用两次FFT,第一次准确测量基波频率,第二次根据基波频率调整采样率,得到五次谐波对应的幅值,最后将计算出的THD值显示到触摸屏上,实现对THD值的实时测量以及实时显示。THD值测量以及显示过程如图3所示。

图 3 失真度测量流程图 Figure 3 Distortion measurement flow chart

DFT算法的原理如下。

基于离散傅里叶变换

$ \begin{split} & X\left(k\right)= {\rm{DFT}}\left[x\left(n\right)\right]=\sum \nolimits_{n=0}^{N-1}x\left(n\right){W}_{N}^{nk}\\ & 0\leqslant k\leqslant N-1且k为整数 \end{split} $ (4)
$ \begin{split} & x\left(n\right)={\rm{IDFT}}\left[X\left(k\right)\right]=\frac{1}{N}\sum\nolimits _{n=0}^{N-1}X\left(k\right){W}_{N}^{-nk}\\ & 0\leqslant k\leqslant N-1且k为整数 \end{split}$ (5)
$ {W}_{N}^{nk}={{\rm{e}}}^{-{\rm{j}}\left(\frac{2{\text{π}} }{N}\right)kn} $ (6)

周期性

$ {W}_{N}^{n(N-K)}={W}_{N}^{K(N-n)}={W}_{N}^{-nk} $ (7)

对称性

$ {W}_{N}^{n+N/2}={W}_{N}^{n} $ (8)

可约性

$ {W}_{N}^{nk}={W}_{mN}^{mnk}\text{,}{W}_{N}^{nk}={W}_{N/m}^{nk/m} $ (9)

利用以上性质将冗长复杂的DFT运算分解为若干个子序列的DFT运算的组合;简化计算过程,提高运算效率。过程如下:将序列xn)分为奇偶两组

$ \begin{split} &{X}_{1}\left(k\right)=\sum\nolimits _{r=0}^{\frac{N}{2}-1}x\left(2r\right){W}_{\frac{N}{2}}^{rk}\\&k=\mathrm{0,1},2,\cdots, \frac{N}{2}-1 \end{split} $ (10)
$ \begin{split} &{X}_{2}\left(k\right)=\sum\nolimits _{r=0}^{\frac{N}{2}-1}x\left(2r+1\right){W}_{\frac{N}{2}}^{rk}\\&k=\mathrm{0,1},2,\cdots,\frac{N}{2}-1 \end{split} $ (11)

运用蝶形运算在复数域内进行计算则可求出各阶对应的幅值。

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],系统利用二阶有源低通滤波滤除高频噪声信号,低通滤波器传递函数为

$ H\left(S\right)=\frac{K}{{S}^{2}+aS+b} $ (12)

式中:

$ K=\frac{1}{{R}_{52}{R}_{56}{C}_{50}{C}_{51}}{A}_{1}=1+\frac{{R}_{54}}{{R}_{53}} $
$ a=\frac{1-{A}_{1}}{{R}_{56}{C}_{50}}+\frac{1}{{R}_{52}{C}_{51}}+\frac{1}{{R}_{56}{C}_{50}} $
$ b=\frac{1}{{R}_{52}{R}_{53}{C}_{50}{C}_{51}} $

信号调理电路如图4所示。

图 4 前级信号调理电路 Figure 4 Pre-stage signal conditioning circuit
4.3 程控放大/衰减电路

程控放大/衰减电路主要通过乘法器AD835实现,根据乘法器工作原理

$ W=\left(X_1-X_2\right)\left(Y_1-Y_2\right)+Z$ (13)
$ Z=k W+(1-k) Z^{\prime}$ (14)

式中 $ W $ $ {X}_{1} $ $ {X}_{2} $ $ {Y}_{1} $ $ {Y}_{2} $ $ {Z}^{} $ 均为芯片管脚名称。

由式(13)和式(14)可知

$ W=\left(X_1-X_2\right)\left(Y_1-Y_2\right)+Z'$ (15)

本设计中 ${Z}{{'}},{X}_{2}$ ${Y}_{2}$ 接地, ${X}_{1}$ 接输入信号 ${U}_{{\rm{i}}}$ ${Y}_{1}\mathrm{接}\mathrm{增}\mathrm{益}\mathrm{控}\mathrm{制}\mathrm{端}{U}_{{\rm{Av}}}$ ,对于图5电路,

图 5 程控放大/衰减电路 Figure 5 Programmable amplifier/attenuator circuit
$ U_{\rm{o}}= \begin{cases}U_{\rm{i}} \times U_{{\rm{Av}}} \times 10 & U_{\rm{i}}{\text{<}}3.3\; \mathrm{V} \\ U_{\rm{i}} \times U_{{\rm{Av}}} \times 0.1 & U_{\rm{i}}{\text{>}}3.3\; \mathrm{V}\end{cases} $ (16)

为了实现信号幅值的自适应缩放,此处增益控制电压的大小由数模转换器(DAC)输出电压决定,DAC的输出电压由ADC采集到的最大电压反馈计算得到。但是由于DAC只能输出0~3.3 V电压,范围过小,本装置采用两级放大,对于大信号将程控放大结果衰减为原来的1/10,对于小信号则放大10倍。此过程由单片机控制继电器进行选通,选通依据为前次ADC采集到的电压。

4.4 信号预处理电路

为了减小单片机运算压力,峰值和有效值检测均采用外部电路辅助完成,单片机只需要采集直流电压简单运算之后显示即可[8]

电路如图6所示,调理之后的信号进入后级预处理电路,通过触摸屏选择测量参数,STM32控制模拟开关CD4051地址端选通不同输出端,进行不同的预处理操作:测量幅值时选通峰值检波电路输出信号峰值;测量有效值时选通有效值检测电路输出有效值;测量频率时选通整形电路,输出同频率方波。

图 6 信号预处理电路 Figure 6 Signal preprocessing circuit

下面对三个预处理电路进行简单介绍。

有效值检测:使用AD637芯片完成。AD637是一款完整的高精度单片均方根直流转换器,可计算任何复杂波形的真有效值[9]。它提供了集成电路均方根直流转换器中前所未有的性能,并且在精度、带宽和动态范围方面与离散和模块化技术相当,可以满足系统设计要求。有效值计算公式为

$ V_{{\rm{rms}}}={M} {V_{{\rm{in}}}}^2 / V_{ {{\rm{rms}}}} $ (17)

应用时只需在芯片的外围添加适当的电阻、电容即可实现任意波形交变信号的有效值的测量。其中平均电容 C1可用来设定平均时间常数,并决定低频准确度、输出纹波大小和稳定时间。R1、R2、C1、C2及精密运放 OPA277构成二阶低通滤波滤除检波后的纹波[10]。前级输入选择低漂移运放LF356构成电压跟随器,与前级电路实现阻抗匹配。

峰值检测:电路由二极管、电容和精密运放OPA350构成,可将输入信号转变为峰值对应的直流电压输出[11]。有效工作频率范围在500 kHz以下,对于100 mVpp以上的输入信号检测误差可达到3%以内。第一片运放结合二极管电容可以构成峰值检测电路,但是电路会长期处于负饱和状态,当输入信号发生变化时需要花费大量时间才能稳定输出[12]。为了解决该系统问题,引入了后一级负反馈电路,保证了电路中两个运放都不会进入非虚短状态。电路Tina9仿真结果如图7所示,实际测量误差在3%以内。

图 7 峰值检测电路Tina9仿真 Figure 7 Peak detection circuit Tina9 simulation

整形电路使用滞回比较器实现,将正弦波信号转换为方波信号[13],便于单片机捕获上升沿测量信号频率。

5 系统软件设计

主控程序主要是根据各个硬件模块输出的值进行采集处理计算,从而得出需要的测量值,同时主程序反馈调节电路中的放大倍数和继电器模拟开关的通断[14]。软件整体采用模块化设计,主要包括主控单元程序设计、ADC采集程序设计、触摸屏界面设计、FFT算法设计、蓝牙通信程序设计等。

主流程图如图8所示,在液晶显示器(LCD)屏幕上设计了峰值和有效值、频率、失真度、波形复现、数据传送5个触摸区域,按下不同的区域执行对应的程序。下面对于5个区域的执行操作作简单介绍。

图 8 软件流程图 Figure 8 Software flow chart

峰值和有效值:输入信号通过外电路处理后,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%,测量结果准确。

图 9 输入信号峰值测量数据 Figure 9 Input signal peak measurement data
6.2 有效值

在装置中分别输入峰峰值为50 mV,100 mV,500 mV,1 V,5 V,10 V的不同频率正弦信号,测量它们的有效值,测量结果图10所示,系统测量误差除50 mV时均小于4%,测量结果准确。

图 10 输入信号有效值测量数据 Figure 10 Input signal RMS measurement data
6.3 频率

在装置中分别输入频率为1 kHz,50 kHz,500 kHz,1 MHz的不同幅值正弦信号,测量它们的有效值,测量结果如表1所示,系统测量误差小于1%,测量结果准确。

表 1 输入信号频率测量数据 Table 1 Input signal frequency measurement data
6.4 失真度

在装置中分别输入谐波失真度为5%,10%,50%的不同频率正弦信号,测量它们的有效值,测量结果如表2所示, $ {{\rm{THD}}}_{0} $ 为理论值, $ {{\rm{THD}}}_{X} $ 为连续五次测量值,各次测量值与理论值之差均小于5%,测量结果准确。

表 2 失真度测量数据 Table 2 Distortion measurement data
7 结 论

本文设计了一款基于STM32F407的正弦信号测量装置。本装置可以对信号源输出模拟ABS传感器信号的峰值、有效值、频率和失真度进行测量。通过大量测试并分析测试结果可知装置测量误差均在5%以内,测量误差小,测量精度高,性能良好,可以对后续ABS输出的正弦信号进行测量。

参考文献
[1] 宋健, 王伟伟, 李亮, 等. 汽车安全技术的研究现状和展望[J]. 汽车安全与节能学报, 2010, 1(2): 98–106. DOI:10.3969/j.issn.1676-8484.2010.02.002
[2] 田锦明, 龚成龙, 纪林海, 等. 基于LabVIEW的汽车轮速传感器测控系统设计[J]. 仪表技术与传感器, 2010(6): 21–24. DOI:10.3969/j.issn.1002-1841.2010.06.008
[3] 陈永良, 陶贤华, 陶开胜, 等. 基于LabVIEW的汽车轮速传感器检测台设计[J]. 仪器仪表用户, 2011, 18(5): 28–30. DOI:10.3969/j.issn.1671-1041.2011.05.010
[4] 孙骏, 陈彦夫. 汽车ABS轮速传感器性能测试系统的研究[J]. 汽车工程, 2007, 29(8): 698–699,713. DOI:10.3321/j.issn:1000-680x.2007.08.014
[5] 孙倩, 丁超, 尹菲. 基于STM32的燃气轮机振动监测系统的设计[J]. 传感技术学报, 2018, 31(4): 645–648,656. DOI:10.3969/j.issn.1004-1699.2018.04.026
[6] 卢瑞, 杨爽爽. SHEPWM算法在三相两电平逆变器降低电压THD中的研究[J]. 山东工业技术, 2017(3): 285–287. DOI:10.16640/j.cnki.37-1222/t.2017.03.248
[7] 李远明, 陈文涛. 微弱光信号前置放大电路设计[J]. 电子元器件应用, 2001, 9(8): 51–53.
[8] 吴正珏. 基于DSP的高速偏振控制系统[D]. 杭州: 浙江大学, 2010.
[9] 周静雷, 张健, 王鸿姗, 等. 具有智能监控功能的多通道声频功放系统设计[J]. 国外电子测量技术, 2018, 37(4): 78–82. DOI:10.19652/j.cnki.femt.1700709
[10] 任翔, 鹿璇, 罗国军. 音频信号分析仪设计[J]. 电声技术, 2010, 34(3): 23–28. DOI:10.3969/j.issn.1002-8684.2010.03.007
[11] LIU T, HUANG J. Exponential estimation of the unknown frequencies of discrete-time multi-tone sinusoidal signals[J]. Automatica, 2021, 129: 109698. DOI:10.1016/j.automatica.2021.109698
[12] BUI N T, NGUYEN T M T, ATAKLTI G Y, et al. Design of a high-power multilevel sinusoidal signal and high-frequency excitation module based on FPGA for HIFU systems[J]. Electronics, 2021, 10(11): 1299. DOI:10.3390/electronics10111299
[13] 李楚雅. 改善心内电极输出刺激时心内电生理波形的滤波装置: CN200620036357.6[P]. 2006 - 11 - 22.
[14] 张琨. 旋转机械无线传感器网络振动监测节点的设计[D]. 太原: 太原理工大学, 2015.
[15] 白杰. 高压架空输电线路舞动监测系统设计[D]. 成都: 西南交通大学, 2015.