嵌入式系统的自适应前照灯系统设计
2013-09-25赵剑鹏钟洪声
赵剑鹏,钟洪声
(电子科技大学电子工程学院,成都611731)
引 言
汽车自适应前照灯系统是汽车安全系统的重要组成部分,它能根据转向角和车速的变化自动调整前照灯光束照射方向,增加了汽车行驶前方的有效照射区域,从而提高驾驶员在夜间或能见度低的环境下的视觉范围。
本设计采用了嵌入式技术来实现,嵌入式技术不仅广泛地应用于汽车行业,而且在工业自动化、监控系统、医疗仪器等领域也有广泛应用。
1 系统原理设计
本文介绍的汽车前照灯转向控制器主要是由FPGA、D/A转换器、CAN总线控制器和电机驱动芯片等器件组成的。它的设计分为CAN总线控制器模块和电机驱动模块两部分,由FPGA来控制并连接这两个模块。CAN总线控制器模块实现接收CAN报文包消息,FPGA通过处理CAN报文包消息来控制电机驱动模块使左右电机分别转动。汽车前照灯转向控制中心使用的是ARM9处理器,它主要处理相关传感器的信息并根据相应的自适应算法计算出前照灯转角角度。系统的架构图如图1所示。
图1 汽车自适应前照灯系统架构
2 硬件设计
2.1 CAN总线结点控制器模块
本模块设计中的CAN总线结点控制器模块主要是由FPGA、CAN总线控制器、CAN总线收发器和一些外围电路实现的。CAN总线通信的核心是CAN总线控制器,由它完成CAN总线的通信协议,实现物理层和数据链路层的所有功能。CAN总线收发器按照BOSCH CAN总线标准将0或1逻辑信号转换为标准中规定的电平。本设计中选用了Microchip公司开发的CAN总线控制器MCP2510和CAN总线收发器MCP2551。CAN总线结点控制器模块电路原理图如图2所示。
Microchip公司生产的MCP2510是一款控制器局域网络(CAN)协议控制器[1],完全支持CAN总线V2.0A/B技术规范。该器件支持CAN1.2、CAN2.0A、主动和被动CAN2.0B等版本的协议,能够发送和接收标准和扩展报文。它还同时具备验收过滤以及报文管理功能。该器件包含三个发送缓冲器和两个接收缓冲器,减少了单片机(MCU)的管理负担。MCU的通信是通过行业标准串行外设接口(SPI)来实现的,其数据传输速率高达5Mb/s。
图2 CAN总线结点控制器模块电路原理图
2.2 电机驱动模块
本模块设计主要由FPGA、D/A转换器、电机功率驱动器组成[2-3],通过FPGA控制D/A转换器、电机功率驱动器实现步进电机的细分驱动技术,从而完成对步进电机的控制。本设计中的D/A转换器选用Maxim公司开发的MAX506,电机功率驱动器选用NS公司开发的LMD18245,实现两个步进电机的功率驱动及电流控制,完成对汽车两个前照灯的智能转向。
LMD18245是NS公司生产的DMOS全桥功率放大器,其内部集成了驱动和控制有刷直流电机或单相双极性步进电机的所有电路模块。该器件在同一芯片中组合应用了双极、CMOS控制、保护电路和DMOS功率开关等多种技术,并可通过固定关断时间技术来控制电机的电流。
图3[4]为LMD18245芯片的电路连接图。一共用了4块这种芯片组成一个双步进电机驱动。在图3中连接RC端的电容和电阻构成了一个单稳态网络,它的宽度取决于RC端与地之间的RC网络,关断时间为1.1RC。当A1+、A1-连接的电机线圈内的电流达到(VrefA×D/16)/[(250×10-6)Rs] 安培时,出现断路。其中D是由M1~M4给定的十进制数。本设计中的VrefA端输入电压最大为5V,接在CS OUT端的电阻Rs为40kΩ,所以步进电机的最大电流限定为0.5A,满足本设计使用的42BYGH4604步进电机的额定电流。电路中DIR是电流方向控制信号,BRAKE是关断信号,DAC REF、M1、M2、M3和M4是内置4位D/A转换器的参考电压和数字输入信号。
图3 功率驱动器的电路连接图
图4为D/A转换芯片MAX506的电路连接图,MAX506是4路8位电压输出的数/模转换器(DAC)。MAX506提供了4路DAC各自独立的输入锁存器,输入数据从一个共用的8位输入端口传输到输入锁存器。MAX506通过地址输入A0和A1选择DAC,并通过拉低WR电平信号来更新。电路中的VrefA、VrefB、VrefC、VrefD为4片LMD18245提供DAC REF的参考电压。
图4 D/A转换电路连接图
3 软件设计
本文中MCP2510主要采取中断模式进行总线数据的接收。整个系统主程序只提供了一种中断,首先对MCP2510发送复位指令使它复位,然后使其进入Configuration模式进而对它进行初始化,即对各个相应的寄存器赋初始值,设定MCP2510的波特率、发送标识符、接收标识符、报文验收滤波器及屏蔽寄存器,完成初始化后将其置为Normal模式,进入等待接收数据状态。
电机驱动模块电路程序的设计主要有三部分:两个循环加减计数器、两个ROM IP核和4路复用D/A转换器的片选信号发生单元。ROM是用ISE提供的IP核来实现,对24MHz系统时钟进行分频得到D/A转换器的片选信号,然后对4个端口进行扫描,就可以达到分时复用的目的。
汽车前照灯转向控制中心主要对各汽车传感器信号进行接收,并根据汽车自适应前照灯的原理实现它的相关控制算法,然后发送控制信号给汽车前照灯转向控制器,使它控制前照灯实现智能转向。
在汽车中,汽车速度V和安全停车视距S的数学关系如表1所列。
表1 汽车速度和停车视距[5]
根据表中的数据,得到汽车速度与停车视距间的拟合数学关系如下[5]:
当汽车转弯时,汽车前照灯转向控制中心根据汽车转弯半径和速度计算出前照灯的转动角度。然后汽车前照灯转向控制器通过控制步进电机来执行前照灯的转向。停车视距与转弯半径的几何关系图如图5[5]所示。
图5 停车视距与转弯半径的几何关系图
图5中,R(单位为m)是汽车转弯半径;θh(单位为度)是前照灯的水平方向转动角度;S(单位为m)是停车视距。停车视距的计算公式[5]为:
在实际情况下,转弯半径不容易获取,所以通常通过汽车前轮转向角度来代替汽车转弯半径。根据阿克曼几何转向原理,汽车前轮转角与转弯半径的关系[5]如下:
式中,D(单位为m)为汽车轴距;δ(单位为°)为前轮转角角度。结合式(1)~(3),可以得到θh的计算公式[5]:
假设汽车的轴距为2.812m,得到如图6所示的前照灯转角角度、前轮转角角度和汽车速度的关系图。
图6 前照灯转角、前轮转角和汽车速度的关系图
4 系统测试
测试中汽车前照灯转向控制中心通过收集汽车速度和方向盘转角传感器信号计算出前照灯转角角度,然后向汽车前照灯转向控制器发送控制信号。由于汽车前照灯要求转动的角度较小,最大转动角度只有15°,所以很容易达到响应速度的要求。测试表明,前照灯转角角度误差较小,满足系统要求。
[1] 杨庆华,张景元.单片机和MCP2510的CAN总线通信模块设计[J] .单片机与嵌入式系统应用,2007(3).
[2] 张瑞,常静波.高稳定度步进电机驱动电路设计[J] .计算机工程,2007,33(4).
[3] 徐志跃,文招金.基于FPGA的两相步进电机细分驱动电路设计[J] .电气传动,2008,38(4).
[4] 田玉敏.LMD18245DMOS全桥电机驱动器的原理及应用[J] .国外电子元器件,2001(3).
[5] Guo Yali,Wu Qinmu,Wang Honglei.Design And Implementation Of Intelligent Headlamps Control System Based On CAN Bus[C]//2012International Conference on Systems and Informatics,Yantai,2012:385-389.