基于MLX90316的方向盘转角检测系统设计
2016-03-30杨超韩峻峰郭毅锋田博
杨超 韩峻峰 郭毅锋 田博
【摘 要】本文介绍了一种基于MLX90316霍尔传感器的方向盘转角检测系统。系统采用MLX90316霍尔元件作为角度采集芯片,STM32作为微控制器,详细分析了系统的硬件设计和软件实现。试验表明,系统能实现对方向盘旋转角度检测并实时显示,理论误差小于0.5°,具有良好的精度,可以满足方向盘角度的测量要求。
【关键词】STM32;方向盘转角;MLX90316;检测系统
0 引言
在当今,随着汽车工业和检测技术的发展,越来越多的方向盘转角检测设备应用在汽车检测领域。然而传统的检测设备采用的角度传感器如磁感式、光电式和磁阻式等,存在机械磨损导致精度降低,使用寿命不高、抗冲击震动能力差需要经常更换,同时存在采集数据量小、计算程序复杂等缺点[1]。文中提出的方向盘转角检测系统,采用基于三轴霍尔技术的MLX90316作为角度采集芯片,克服了传统传感器存在的机械磨损导致精度降低、需要经常维修更换的缺点,同时充分利用STM32丰富的资源,减少了硬件投资,体积小、成本低,避免了复杂的程序设计。
1 总体设计方案
本系统分为MLX90316角度检测模块、STM32处理模块、电源模块、存储及LCD显示模块,系统总体设计框图如图1所示。首先利用三轴霍尔芯片MLX90316设计的转角传感器测得方向盘旋转角度,根据MLX90316的SPI通讯协议将角度数据发送给STM32微控制器,经过STM32进行处理后在LCD上实时显示角度数据,利用STM32的(可编程电压检测器)PVD可以进行掉电存储,有效保证系统的可靠性。
2 系统硬件设计
2.1 STM32片上资源简介
STM32是ST公司发布的一款基于Cortex-M3内核的微控制器,Cortex-M3内核是ARM公司设计的32位RISC核心,具有高性能、低功耗、实用性强等优点。本系统采用增强型芯片STM32F103VC作为控制核心,该款芯片具有256K字节的FLASH闪存以及48K字节的RAM,最高运行频率可高达72MHz,工作电压为2.0 ~3.6 V[2]。STM32F103VC拥有3路速度高达2MB/24MHz的SPI设备接口,3路USART,2路UART串行通信接口,内置可编程波特率发生器,最高可达4.5Mbit/s,此外,灵活的静态存储器控制器FSMC能够快速访问NOR FLASH或者NAND FLASH,便于存储器扩展和LCD液晶显示屏。STM32F103VC丰富的片上资源,简化了系统硬件设计,降低了系统功耗,能够满足系统要求。
2.2 角度信号采集模块设计
角度信号采集模块主要由MLX90316以及外围电路组成。MLX90316是一款运用Melexis公司独创Triaxis(三轴霍尔)技术的传感芯片。检测原理如图2所示,MLX90316采用的差分技术将垂直于芯片表面的磁感强度B⊥抵消,将平行于芯片表面的磁场强度B||分解为两个正交的分量Bx||和By||,再通过集磁片IMC将两个正交分量转化为垂直方向上的分量Bx⊥和By⊥,然后由内部平面霍尔元件测量从而产生同步的相位差为90°的正交差分信号,最后经过内部可编程为14bit或15bit的ADC将模拟信号转化为数字信号传输给基于16bit RSIC微处理器的DSP计算得出角度位置信号[3]。计算得到的角度信号可以选择12bit的ADC或PWM输出、14bit的数字串行SPI输出,本文选择SPI方式输出,省去了A/D转换电路,这极大的减小了系统设计的复杂度,理论分辨率可达0.022°。
2.3 电源模块电路设计
为了便于汽车工业的应用,电源采用车载12V DC供电,同时为满足MLX90316传感器的5v 工作电压及STM32微控制器的3.3V供电要求,采用L7805和AMS1117电源稳压稳压芯片。L7805是一款常用电源稳压芯片,所需的外围元件少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜,AMS1117是正向低压降稳压器,内部集成过热保护和限流电路,是本系统电源设计方案中较理想的选择。电源电路设计图如图4所示。
2.4 掉电存储和LCD显示模块设计
为了实现角度数据存储和防止角度数据掉电丢失,系统采用ATMEL公司的AT45DB161D FLASH存储器,具有功耗低,容量大,读写速度快,抗干扰能力强等优点。AT45DB161D工作电压为2.5V至3.6V,可采用SPI接口进行读写,最高频率可达66MHz容量高达16MB,支持用户智能页面编程,每页512/528字节,共4096页,另外还有两个512/528字节的SRAM数据缓冲区[5]。由于系统采用可编程电压监测器PVD来监视供电电压,当供电电压下降到预设定的阀值以下时,将产生中断,在中断服务函数中调用FLASH读写函数,将数据缓冲区的角度信息通过SPI串行总线保存在AT45DB161D中。当供电电压又恢复到给定的阀值以上时,也会产生一个中断,通知软件供电恢复。供电下降的阀值与供电上升的PVD阀值有一个固定的差值(PVD迟滞),引入PVD迟滞目的是为了防止电压在阀值上下小幅抖动,而频繁地产生中断,从而保证系统的稳定性和可靠性。
为了便于实时监测系统测量的角度信息,设计了LCD显示模块。文中采用驱动芯片为SSD1289的3.2英寸TFT液晶LCD,分辨率可达320×240,支持65K色显示,自带触摸屏。采用STM32F103VC的灵活的静态存储控制器FSMC模块来控制LCD显示器,将测得的角度信息实时显示在LCD上,同时加入触摸控制,设计了良好的人机交互界面。利用FSMC模块可以对LCD快速读写,简化硬件接口设计,同时避免了模拟I/O口的复杂程序设计。
3 系统软件设计
系统的软件设计使用C语言编程,以高效的ARM开发环境Realview MDK为编译调试平台。软件程序主要包括系统初始化程序、角度数据采集及处理程序、数据存储及显示程序3个主要部分,程序流程图如图5所示。
4 系统测试实验
基于以上设计方案,研制出实验样机并进行了角度测量,试验在0到360°之间进行每隔36°的角度测量。测试过程和方法为:将MLX90316传感器通过联轴器与电机连接,电机采用42步进电机,步距角为1.8°,经过1/8细分为0.225°,通过定时器输出160个PWM脉冲控制电机转动36°,通过串口将角度检测系统与PC上位机连接,读取100组的传感器数据取平均值并保存,其它测量点的测试方法类似,最终试验结果如表1所示。
由表1可知,系统测试的误差在±0.5°以内,小于汽车方向盘角度检测所要求的≤±3°,表明本文介绍的基于MLX90316的方向盘转角检测系统具有良好的精度,系统的设计方法是可靠可行的。
5 结论
针对传统方向盘转角检测设备存在的不足,设计了一种基于STM32F103VC微控制器和三轴霍尔传感器MLX90316的转角检测系统,完成了硬件电路设计和软件程序调试,制作了实验样机。同时给出系统测试结果,试验表明系统的绝对误差小于0.5°,低于国家机动车辆方向盘检测仪规范要求的≤±3°,具有良好的精确性。该系统硬件投资小成本低,程序简单,能够实时检测方向盘旋转角度,具有一定的实践意义。
【参考文献】
[1]杨平,黄妙华,喻厚宇.宽量程方向盘转角传感器系统研究[J].武汉理工大学学报,2014(6).
[2]王永虹,徐炜,郝立平.STM32系列ARM Cortex-M3微控制器原理及实践[M].北京:北京航空航天大学学出版社,2008:318-338.
[3]Melexis Microelectronic Integrated System.MLX90316 Rotary Position Sensor IC, 2005[Z].
[4]张从鹏,徐兵,徐宏海.基于STM32的高精度多圈绝对角度传感器[J].仪表技术与传感器,2014(12).
[5]何敏,刘荣,孙峥.串行存储器AT45DB161B在车辆行驶记录仪中的应用[J].新特器件应用,2007(1).
[6]曹平军,于晓东,窦珂,姜浩.基于MLX90316的磁性角度传感器设计[J].电子世界,2013(18).
[责任编辑:杨玉洁]