基于单片机的客车CAN总线灯光节点设计与实现
霜等指示灯和控制仪表,以显示车速、发动机转速、水温、燃油、机油、电压、步进电机等数值。空调节点控制空调的开关和车内温度的设定等。车门和后视镜节点控制车门电磁阀开关、后视镜调整开关和后视镜加热开关。安全节点监控ABS和ECAS的电源。
5 硬件电路设计
灯光节点的硬件结构如图3所示,它包括灯光控制模块和CAN接口模块。灯光控制模块由TLP521-4型光电隔离器和BTS442、BTS740型智能开关组成。
TLP521-4是4路光电隔离器,8个TLP521-4组成32路光电隔离,把传递到开关和开关反馈的信号与单片机连接起来。BTS442是Infineon公司生产的单路输出智能开关(PROFET),具有允许较大瞬态电流(140 A以上)和较宽泛的温度范围(-55℃~+150℃)等优点,6个BTS442组成6路控制开关,控制大灯和雾灯等6个大电流负载。BTS740是lnfineon公司生产的4路输出智能开关,把输出的2路并作1路用,使其通过较大的瞬时电流。5个BTS740组成10路控制开关用以控制其余的小电流负载。BTS442和BTS740都有诊断反馈功能,如果出现错误,BTS442的第4引脚和BTS740的第4引脚与第8引脚上会出现一个低电平信号,通过光电隔离器把该信号接入单片机,实现端点检测功能,并通过CAN信息帧反馈到仪表节点上。所有节点的硬件CAN接口模块都相同,包括灯光节点在内。由于这种单片机带有CAN总线模块,所以不需专门的CAN控制器,单片机没有CAN收发器,需要外接82C250型收发器,中间是6N137型光电隔离器。单片机、光电隔离器和CAN收发器硬件接口电路如图4所示。
6 节点软件设计
节点软件流程如图5所示。程序采用查询方式,节点初始化并报告正常工作后将一直处于查询状态,直到主控节点发送的灯光控制命令到达灯光节点时,单片机才可判断控制的是哪一路灯光或哪几路灯光,并通过开关的诊断反馈功能检测相应的开关是否正常。如果正常,则向相应的高/低端开关发送相应的控制命令,然后回到查询状态。如果不正常,则向仪表节点发送相应端点的不正常信息帧,继续检测相应的端点。
节点初始化主要是单片机初始化,包括端口初始化和CAN控制模块的初始化。单片机端口初始化主要对用到的I/O口上电复位。CAN模块的初始化主要是设置所用的特殊功能寄存器,主要包括协议模式、验收滤波方式、CAN通信速率和中断寄存器的设置等。将验收代码和验收屏蔽代码写入验收代码寄存器和验收屏蔽寄存器。
CAN总线的软件设计主要包括CAN节点的初始化、数据的发送和接收程序,掌握了这3个模块的设计,基本上就完成了CAN通信的软件设计。
7 结束语
虽然本节点是为控制客车车灯设计的,但对其他一些节点也有借鉴作用,尤其是CAN总线的硬件接口部分,可以通用到客车其他CAN网络节点上,甚至可以用在其他非汽车领域的CAN网络上,如工业自动化等领域。
- WindowsCE.Net下CAN卡的驱动程序设计(04-12)
- 对TTCAN的分析(05-26)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)
- μC/OS-II的多任务信息流与CAN总线驱动(07-11)
- 采用CAN总线实现DSP芯片程序的受控加载(11-08)
- 基于DSP的电动汽车CAN总线通讯技术设计(10-08)