基于STM32的汽车方向盘转角检测系统设计
Design of Automobile Steering Wheel Angle Detection System Based on Stm32
DOI: 10.12677/SEA.2021.105066, PDF, HTML, XML, 下载: 1,177  浏览: 1,591 
作者: 谈 格, 蔡 敏:盐城市计量测试所,江苏 盐城
关键词: 方向盘转角STM32CAN通讯MLX90316Steering Wheel Angle STM32 CAN Communication MLX90316
摘要: 汽车方向盘是汽车驾驶中的重要一环,因此汽车方向盘转角检测系统显得尤为重要。本文采用STM32作为主要控制模块完成基于STM32的汽车方向盘转角检测系统设计。STM32内置的CAN接口和AD转换器,角度传感器和CAN通讯可以直接和单片机传输信息,无需外接复杂的电路。在角度传感器的选择上,选用MLX90316,它可以通过磁场变化来检测角度,并且它可以克服汽车上的多重干扰,使检测更加准确。使用CAN通讯的好处是可以同时使得汽车上的多个节点只需要挂到总线上即可实现节点之间的通讯,省掉了节点之间的连线,对汽车方向盘的设计和安装都有很大好处。这在一定程度上克服了由于机械磨损导致的方向盘转角检测精度降低、采集的数据量少等问题,具有一定的实际应用价值。
Abstract: Automobile steering wheel is an important part of automobile driving, so the automobile steering wheel angle detection system is particularly important. In this paper, STM32 is used as the main control module to complete the design of automobile steering wheel angle detection system based on STM32. STM32 built-in can interface and AD converter, angle sensor and can communication can directly transmit information with MCU without external complex circuit. In the selection of angle sensor, MLX90316 is selected, which can detect the angle through the change of magnetic field, and it can overcome the multiple interferences on the car and make the detection more accurate. The advantage of using can communication is that multiple nodes on the vehicle only need to be connected to the bus to realize the communication between nodes at the same time, eliminating the connection between nodes, which is of great benefit to the design and installation of automobile steering wheel. To a certain extent, this overcomes the problems of reduced steering wheel angle detection accuracy and less collected data caused by mechanical wear, and has a certain practical application value.
文章引用:谈格, 蔡敏. 基于STM32的汽车方向盘转角检测系统设计[J]. 软件工程与应用, 2021, 10(5): 613-621. https://doi.org/10.12677/SEA.2021.105066

1. 引言

汽车是一个非常复杂的系统,随着行驶距离增加和使用时间的加长,它的实用性能在不断的降低,从而使得汽车的动力性和安全性降低。汽车方向盘是汽车驾驶的关键,很多交通事故都是因为方向盘的转向出现问题导致的 [1]。汽车转向系统已经从普通的机械式转向转变为电子技术控制的转向系统。研发更好的转向系统,不仅可以提升汽车行驶的安全性能和驾驶员的操作舒适度。而且还能延长汽车的使用时间和不必要的行驶路程,对于环保和节能方面有着重要作用。安全的转向系统除了节能和环保之外,还可以减少交通事故的发生。汽车检测技术中最重要的一环就是方向盘转角检测技术,方向盘转角检测出汽车转动角度,上传给控制中心。从而判断汽车的行驶状态。如果没有这一环,汽车的安全性能将大大减少 [2] [3]。

为克服由于机械磨损导致的方向盘转角检测精度降低、采集的数据量少等问题,本文提出基于STM32的汽车方向盘转角检测系统设计。该系统充分利用STM32内置的CAN接口和AD转换器,角度传感器和CAN通讯可以直接和单片机传输信息,无需外接复杂的电路。在角度传感器 [4] [5] 的选择上,选用具备简单且稳定的磁路设计、可编程的线性传输特征曲线、12 bit的角度分辨率等优点MLX90316,它可以通过磁场变化来检测角度,并且它可以克服汽车上的多重干扰,使检测更加准确。

2. 总体方案设计

该系统总体设计框图如图1所示。

Figure 1. Overall system design block diagram

图1. 系统总体设计框图

系统主要分为MLX90316角度检测模块 [6] [7] [8]、STM32处理模块、电源模块、CAN通讯模块、看门狗模块。首先利用角度传感器采集得到方向盘的角度,再根据MLX90316的SPI通讯协议将角度数据发送给STM32微控制器,最后经过CAN通讯进行数据传输。如果在启动时发生故障,看门狗会发出报警提示。其中,MLX90316角度检测模块检测原理概述如下:为实现±600度的检测目的,本文所设计系统采用一主二从动轮结构的角度检测方案。基于主动轮和两个从动轮之间的角度比例关系,从而计算出主动轮的转动角度值,如图2所示。

Figure 2. Schematic diagram of double magnetic wheel angle

图2. 双磁轮转角原理图

图2中最大的齿轮为主动轮S,最小的齿轮为从动轮B,剩下一个为从动轮A。假设主动轮周长为Cs,两个从动轮周长分别为CA和CB,齿轮的每一个齿在主从动轮的周长上占L的长度。则主动齿轮的齿轮数NS

N S = C S / L (1)

从动轮A的齿轮数为NA

N A = C A / L (2)

从动轮B的齿轮数为NB

N B = C B / L (3)

假设主动轮S从某一点到另一点的选择角度为ϕs,则从动轮A旋转角度ϕA

ϕ A = ϕ S N s / N A (4)

从动轮A的实际角度,可以由霍尔传感器检测得到角度θA为:

θ A = ϕ S N s / N A 360 n A (5)

式中nA为从动轮A的旋转圈数。

主动轮S的旋转角度为:

ϕ S = ( θ + 360 n A ) N A / N S (6)

主动轮S的最大旋转角度为:

ϕ S max = 360 × ( N A + N B ) / ( N S × ( N A N B ) ) 0.1 (7)

3. 系统硬件设计与实现

3.1. STM32处理模块

STM32处理模块 [9] STM32F103C8T6有两个晶振电路,一个是HSE,常用外部高频,常为8 MHz。另一个为外部低频晶振,也称时钟晶振,计时用,或系统待机或低功耗时用,为32.768 kHz,其引脚图如图3

Figure 3. STM32F103C8T6 pin diagram

图3. STM32F103C8T6引脚图

STM32F103C8T6有48个引脚,第1、9、24、36和48脚VCC是接电源的,可接+3.3 V电源,第8、23、35和47脚VSS用来接地。PA口、PB口、PC口和PD口这4组端口都可以用作普通的输入/输出端口即I/O。STM32F103C6T6自带CAN通讯,可以直接和CAN模块相接。

3.2. 角度传感器电路和EEPROM电路

角度传感器MLX90316可以测量角度在0到360度之间的绝对角度位置,这里选择两个MLX90316,这样就可以满足设计要求的±600度的测量要求,MLX90316外围电路如图4

STM32处理模块为主设备,角度传感器为从设备。角度传感器要给STM32处理模块输出信息的话,就要通过引脚MISO来实现。角度传感器的时钟信号由STM32处理模块提供,引脚NSS是作为片选引脚,可以使主设备和从设备避免冲突。因为软件设计过程中需要存储采集的角度数据和采集完成后处理的角度数据,所以需要EEPROM电路,其电路如图5所示。

Figure 4. Angle sensor circuit of STM32F103C8T6

图4. STM32F103C8T6的角度传感器电路

Figure 5. EEPROM circuit of STM32F103C8T6

图5. STM32F103C8T6的EEPROM电路

3.3. CAN通讯模块电路

CAN通讯电路如图6

Figure 6. CAN communication circuit

图6. CAN通讯电路

STM32内部有CAN接口 [10],总线数据的封装可以在单片机的内部进行,而单片机只需要外接CAN总线收发器SN65HVD232即可,CAN模块的CAN_TX和CAN总线收发器的TXD相连接,CAN_RX和CAN总线收发器的RXD相连接。引脚TXD是接收来自微控制器的信号并转发出去。引脚RXD是读出来自总线的数据并发送给微控制器。

3.4. 看门狗电路和LED指示电路

看门狗电路如图7所示。

Figure 7. Watchdog circuit

图7. 看门狗电路

对于SP706S来说,WDI是输入,那么对于STM32来说,对应连接的STM32引|脚PBO就是输出(推挽输出)。看门狗电路是如果对WDI引脚持续输入高电平或者低电平,那么引脚WDO就会呈现出持续低电平,而引脚WDO和引脚MR连接,RESET又和STM32连接在一起,最终是由RESET觉得了STM32的复位效果。

LED指示电路如图8所示。

Figure 8. LED indicating circuit

图8. LED指示电路

指示电路是判断传感器测量角度是否出现错误。本设计是为了测量±600度的方向盘转角,如果测量角度在区间内指示绿灯亮,如果超过600度,则指示红灯会亮。

4. 系统软件设计

系统的软件设计使用C语言编程,用Keil作为编译调试平台。软件程序主要包括系统初始化程序、监控程序、角度数据采集及处理程序、CAN通讯4个主要部分。程序流程图如图9所示。

系统运行过程:开关开启后系统先初始化,然后判断电压值是否正常,如果不正常直接结束运行。要是正常的话启动SPI,进行角度数据采集,接着判断采集的角度是否超过测量范围,如果超过红灯亮。如果在测量范围内绿灯亮,然后对采集的角度进行数据处理,再输入给CAN总线。

Figure 9. System flow chart

图9. 系统流程图

5. 仿真测试

使用Proteus [11] [12] 作为仿真平台,对本文所设计系统进行仿真验证,其仿真界面如图10所示。

利用滑动变阻器替代角度传感器,通过改变滑动变阻器的阻值来改变角度。再使用虚拟终端显示检测的角度值。仿真调试结果如图11所示,结果显示本文所提系统可及时、精确的实现角度测量。

6. 结束语

汽车的转向系统是汽车不可以缺少的系统之一,它也是决定汽车是否安全的关键因素。本文采用STM32作为主要控制模块完成基于STM32的汽车方向盘转角检测系统设计。STM32内置的CAN接口和AD转换器,角度传感器和CAN通讯可以直接和单片机传输信息,无需外接复杂的电路。在角度传感

Figure 10. Simulation of steering wheel angle detection

图10. 方向盘角度检测仿真图

Figure 11. Simulation results

图11. 仿真结果

器的选择上,选用MLX90316,它可以通过磁场变化来检测角度,并且它可以克服汽车上的多重干扰,使检测更加准确。系统仿真结果显示本文所提系统可及时、精确的实现转角角度的测量,具有低成本、易于应用的前景。

参考文献

参考文献

[1] 高岩. 简述单片机的发展趋势及其在设备自动化系统改造中的应用[J]. 科技风, 2020(13): 120+124.
[2] 薛鹏祥. 浅谈汽车检测技术发展及现状[J]. 汽车实用技术, 2021, 46(1): 182-184.
[3] 王洪月, 臧向迪, 李昱萱. 浅析传感器分类应用与发展前景[J]. 南方农机, 2017, 48(13): 107+111.
[4] 郭忠新, 张蕾. 磁电式方向盘转角传感器的应用与研究[J]. 汽车电器, 2019(1): 48-50.
[5] 张永东. 汽车方向盘转角传感器的开发应用[J]. 汽车电器, 2019(7): 40-41.
[6] 王洪广. 防水防尘式汽车方向盘转角传感器的设计[J]. 内燃机与配件, 2021(7): 20-21.
[7] 郑伟峰. 新型角度检测装置及其检测方法研究[J]. 传感器与微系统, 2021, 40(5): 15-17+21.
[8] 刘尚, 童亮, 路艳群, 等. 汽车电子节气门角度传感器的故障检测与重构[J]. 仪表技术与传感器, 2017(11): 97-103.
[9] 邢启明, 孙宁. 基于STM32的学校周边道路交通状况监测与调控系统[J]. 电子设计工程, 2021, 29(16): 1-5.
[10] 陈永辉, 郝长峰, 张峰, 等. 基于Kinco触摸屏与DanFoss控制器之间的自定义CAN通讯[J]. 现代机械, 2021(3): 86-90.
[11] 孙万麟. 基于Proteus的多功能电子密码锁控制系统设计及实现[J]. 机械制造与自动化, 2021, 50(4): 216-218.
[12] 孙万麟. Proteus软件应用于技术类课程的电路设计及仿真[J]. 微型电脑应用, 2021, 37(7): 63-66.