微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > 基于XC164CM的车灯控制系统的设计与实现

基于XC164CM的车灯控制系统的设计与实现

时间:10-26 来源:3721RD 点击:



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路车灯的接通、断开控制。实验结果证明,本系统性能稳定,实现了设计的所有功能,并可以正确返回结果。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top