基于XC164CM的车灯控制系统的设计与实现
扫描二维码
随时随地手机看文章
本文研制的车灯控制系统,采用发光亮度高、反应速度快、耐恶劣环境、工作性能可靠的LED灯,提高灯光亮度和视角范围,减小安全车距,有效地改善了行车安全性能。本系统应用了传感器技术、微处理器技术、电子电路技术和CAN总线技术,对环境亮度和行车状况实现精确感测和判断,并根据行车需要自动选择合适的照明模式,从而实现了车灯的自适应控制。该控制器能有效地辅助驾驶员行车,减轻驾驶员的操作负担,最大限度的避免了人为因素导致的违章使用灯光,从而达到了减少交通事故的目的。
1 车灯控制系统
1.1 系统工作原理
该系统通过外置的传感器感测环境亮度强弱和控制板温度,将其转化为光敏和热敏电阻的分压信号及LED驱动分压信号,并由单片机AD模块进行采集。
单片机根据事先划分好的等级对AD转换后的数字信息进行分析归类,判断出汽车当前所处的行车环境(白天、雨雾天气、户外傍晚或深夜、会车、隧道等),再与内置的特征参数进行对比和开关扫描后自动选择灯光亮度和行车模式。根据选定的参数,由XC164CM输出相应的PWM信号来调节车灯的亮度。
车灯当前所处的状态可以通过CAN总线接口发送到上位机,上位机也可以发送调整信息改变车灯的状态,从而实现了人机交互功能。系统结构如图1所示。
1.2 系统功能设计
文中设计的LED车灯控制系统主要完成了以下几个功能。
1.2.1 亮度自适应调节
将外界的环境亮度分为3个等级:明亮(晴天户外等),昏暗(户外阴雨,户外傍晚,隧道,停车场等室内场所),漆黑(户外深夜或其他类似场合)。系统可以根据当前环境的亮度等级自动调整车灯的亮度,以满足不同情况下的照明需求。车灯亮度分为4级、6级、8级亮度,其中4级最暗,8级最亮,6级居中。车灯亮度的调节策略如下:
1)当环境亮度增强时,信号灯的亮度增强;环境亮度减弱时,照明灯的亮度增强。
2)由于将车灯亮度瞬间降低具有一定的危险性,所以在降低车灯亮度时,需做两次判断:在环境亮度增强时,照明灯的亮度并不立即减弱,而是继续等待一个周期,若环境亮度保持在较低的值没有变化,再将照明灯调暗;在环境亮度减弱时,对信号灯采取同样的操作。
1.2.2 状态监控及过温保护
实时监控驱动器输出到LED灯的电压并将结果通过上位机显示。LED灯定义为3种状态:故障态、关闭态、工作态,这3种工作状态由LED灯当前工作电压和开关状态区分。过温保护是通过实时监控驱动器工作温度实现,当驱动器环境温度值超过80度时,产生过温提示信号,以提示选取温控模式(驱动输出降额允许)。
1.2.3 人机交互
控制系统通过XC164CM单片机自带的CAN总线接口与上位机CAN接收器连接,实现与上位机信息的交互。上位机不仅可以查询和获取车灯的工作状态数字量(故障态、关闭态或亮度级),还可以发送控制命令调整车灯的亮度以及是否进入智能照明模式,从而实现人机交互。
2 硬件设计
硬件主要由单片机控制模块,传感器模块,CAN总线模块和LED驱动模块四部分组成。
2.1 XC164CM单片机简介
XC164CM单片机是Infineon公司推出的采用低功耗CMOS工艺生产的增强型16位单片机,其主要特点有:1)采用C166SV2内核;2)内部集成大容量的存储器;3)带自校检的14路A/D转换器;4)两个比较,捕获单元,可方便地产生PWM波;5)Twin CAN模块,可通过网关交换数据。
2.2 传感器装置
环境亮度的采集由3组位于不同位置(前部、侧身、顶部)的亮度传感器完成。其中亮度传感器为安装在感光位置的光敏电阻GM5528(亮电阻10~20 kΩ,暗电阻1 MΩ,响应时间20~30 ms),GM5528通过分压电路输出的电压值随着环境亮度变化而改变;温度监控电路使用热敏电阻MF58构成分压电路,将温度值的变化转换为电压值的变化;状态监控电路通过电阻分压网络分别采样10路LED驱动器的输出电压,并以此判断LED灯的工作状态。
2.3 CAN控制模块
XC164CM单片机集成了TwinCAN模块,实现CAN总线通信功能。其主要特性为:1)包括两个全CAN功能节点,每一个CAN节点通过一对接收和发送引脚连接到总线收发器,可独立工作或者通过网关功能交换数据帧和远程帧。2)CAN帧的发送和接收遵循CAN V2.0B(acTIve)规范,且每个CAN节点都能接收和发送带11个标识符的标准帧和带29位标识符的扩展帧。3)具有灵活和功能强大的报文传送控制和错误处理能力,CAN总线通信处理更加精确和方便。4)2个CAN节点的位定时源于外设时钟,可以通过编程使数据速率达到1 Mbps。5)具有8个单独的可编程中断节点和适用于发送和接收的FIFO。
系统通过XC164CM单片机CAN总线接口与采用SJA1000控制器和82C250收发器的单片机开发板连接测试CAN通信模块,实现人机交互功能。电路图如图2所示。
2.4 LED驱动器
驱动模块参照西工大LED驱动电源标准,信号灯选用了3~15 W功率范围的LM3406型驱动器,照明灯选用了20~45 W功率范围的LM3409型驱动器。
LM3406型驱动器是具备宽输入电压范围,低参考电压和双导线调光功能的降压稳压器,可提供高达1.5 A的正向电流,是LED的理想恒流供应源。这款芯片内置有可确保电流平均输出的积分电路。在转换器采用连续导电模式((CCM)操作时,受控导通时间结构可以确保无论输入及输出电压的变动如何,开关频率都会恒定不变。因此LM3406的输出电流极为准确,瞬态响应也极快,可以在不同的情况下确保开关频率恒定不变。
LM3409是一款降压稳流的P沟道MOSFET控制器,提供宽输人电压范围,具有高边电流检测功能,采用增强散热的eMSOP-10封装。因此,LM3409是驱动LED的理想恒流源,输出的正向电流可高达5 A。另外,LM3409采用恒定关断时间(COT)控制功能调整电流,确保输出电流大小恒定,而且无需通过外置元件提供环路补偿,可以轻易实现模拟及 PWM调光功能,可充分发挥亮度变化高度线性以及高对比度的优点,并提供可编程欠压锁定、低功耗关断及热关断等功能。
信号灯和照明灯驱动器结构分别采用NI公司的LM3406和LM3409作为主控芯片的BUCK电路,芯片工作的温度范围为-40+125℃。其电路原理如图3所示。
3 软件设计
程序主要采用中断控制方式,系统流程主要包括主函数,定时器中断子程序,CAN接收中断子程序3部分。具体系统流程图如图4所示。
3.1 主函数部分
1)初始化部分:设置各端口的输入输出状态,对各个模块进行初始化并开启定时器。
2)开关扫描:选用6路开关控制10路灯的开启和关闭。当开关闭合时输出低电平,此时对应LED灯的开启状态;开关断开时输出高电平,对应LED灯的关闭状态。
3)状态数字量生成:状态数字量为16位数据,状态位(高八位)表示驱动器状态,标志位(低八位)表示驱动器编号。车灯的初始亮度设为6级。
4)使能全局中断,等待定时器中断信号和CAN总线通信中断信号,并在接收到中断信号后进入相应的中断服务程序。
3.2 定时器中断子程序
定时器每20 ms产生一次定时中断信号,进入定时器中断服务程序。在定时器中断服务程序中实现的操作有:
1)开启AD转换,等待AD转换完成,并将对AD采样结果做归一化处理。
2)环境亮度检测:为避免亮度信息的误判断,只有当位于车身前向、侧面和顶部3个方向的光敏电阻器同时检测到亮度值变化时(且同时超过判断门限),才认为检测结果有效,判断所处环境亮度等级,并将结果送至车灯亮度调整程序。若3个光敏电阻未同时检测到亮度值变化,则认为只是外界干扰造成的亮度差异,而行车环境的亮度未发生变化。
3)在检测环境亮度的同时,对10路LED灯的开关量也进行检测和更新。
4)车灯亮度调整:将检测到的外界环境亮度和前一次检测到的环境亮度进行比较,并根据比较结果对亮度进行相应调整。具体调整策略在2.2节中。
5)过温保护:对采样的温度结果进行比较判断,若温度超过80度,首先产生一个过温提示信息,提示控制系统进入降额应用,将降额标志位置1,驱动器功率减半,随后将降额标志位归零。
6)状态数字量更新:首先,对AD采样结果做归一化处理,将驱动器电压信号的转化结果与测定的工作电压范同比较,超出范围的认定为故障态,生成状态位 101,否则使用亮度级寄存器的值作为状态位。其次,将得到的状态位与开关寄存器值相与(开关寄存器取值表:开启为1,关闭为0)得到最终状态位。最后,状态位与驱动器标志位形成状态数字量,并将其放入CAN发送缓冲区。
3.3 CAN接收中断子程序
1)CAN总线接口正确接收信息后,置位中断标志位,进入接收中断服务程序。
2)判断中断是否为远程帧中断,是则将状态量信息写CAN模块发送缓存区,并启动自动发送;否则进一步判断是否为数据帧接收中断。如果是数据帧接收中断,则读CAN接收缓存区的值并将其写入CAN调整量。最后清除相应的标志位,返回到主函数。流程图如图5所示。
4 结论
文中设计了基于XC164CM单片机的高端车用灯光控制模块,该模块不仅完成了对每个车灯的亮度控制,而且可实现对每个车灯的状态检测。汽车灯光控制模块的工作过程是一个不断循环的检测过程,通过对比前后两次的检测结果对亮度信息不断更新,再根据更新的亮度信息来调节车灯亮度,从而实现了灯光的亮度自适应调整。在实验过程中,选用LED5050白灯作为车灯实验灯,并配以车灯罩,制成车灯模拟演示板。在车灯负载和单片机接口之间由自主研发的实验电路连接,并在实验电路上设置6路开关,实现对10路车灯的接通、断开控制。实验结果证明,本系统性能稳定,实现了设计的所有功能,并可以正确返回结果。