1、2009 年 3 月农业装备与车辆工程AGRICULTURAL EQUIPMENT & VEHICLE ENGINEERING2009 年第 3 期(总第 212 期 )No3 2009(Totally 212)基于 CAN总线的电动汽车灯光控制系统设计郭俊飞1,李军伟1,郑玉英2(1 山东理工大学 交通与车辆工程学院 ,山东 淄博 255049; 2 福建经济学校 ,福建 福州 350007 )摘要: 深入研究了 CAN 网络协议的技术规范 ,根据 J1939 应用层协议制订了相应的通信协议 ,设计了基于 P87C591 单片机的 CAN 总线灯光控制系统网络 。 试验结果表明 ,所设计的灯
2、光控制系统局域网络运行状况良好 ,满足使用要求 。关键词: P87C591 单片机 ;CAN 总线 ;CANoe中图分类号: U46365; TN91504 文献标识码 : A 文章编号: 1673-3142(2009)03-0015-04Development of the Lighting Control System for Electric Vehicle Based on CAN BusGUO Junfei1, LI Junwei1,ZHENG Yuying2(1 School of Transport and Vehicle Engineering, Shandong Univer
3、sity of Technology, Zibo 255049, China;2 Fujian School of Economics, Fuzhou 350007,China)Abstract: In this paper, the technical regulation of CAN Bus network is lucubrated The corresponding communication protocol isestablished, according to the J1939 application layer protocol The lighting control s
4、ystem CAN network based on the P87C591 MCU isdeveloped The experiment results indicate that the running condition of the lighting control network is satisfactoryKey words: P87C591 MCU; CAN bus; CANoe收稿日期: 20081111作者简介: 郭俊飞 (1982 ),男 ,山东青岛人 ,山东理工大学交通与车辆工程学院 2006 级研究生 ,研究方向 :汽车电子 。引言灯光控制系统是保证汽车安全行驶的一个
5、重要子系统 。 传统的灯光控制系统多采用继电器和独立模式控制 ,这使得车内线束过多且布线复杂 ,造成了严重的电磁干扰 ,使系统的可靠性下降 。 CAN 总线具有较高的传输速度 ,主要是针对汽车中对实时性要求很高的动力系统而设计 ,可使车身控制的可靠性和实时性有很大提高 ,更可使整个车身网络层次分明1。CAN 总线的应用不仅能简化线束 ,实现整车信息共享 ,降低系统成本 ,而且还能大大降低车辆的故障率 。 基于 CAN 总线的灯光控制系统 ,不仅大大降低了车灯故障率 ,而且延长了车灯的使用寿命 。1 灯光控制系统网络的组成本设计采用 CAN 总线通讯协议建立电动汽车灯光控制系统局域网 ,完成该局
6、域网内前 、后车灯控制系统与主控制器节点的信息通讯 。通过 CAN 总线实现电动汽车灯光控制功能 ,如图 1 所示 。 其中 ,左右前灯包括 :远光灯 (45W)、近光灯 (40W)、前转向灯 (12W)、 示 宽 灯 (5W)、 边 转 向 灯 (5W) 和 雾 灯(55W);左右后灯包括 :后转向灯 (23W)、制动灯(21W)、尾灯 (5W)和倒车灯 (23W)。 需要实现的灯光控制功能包括 :远光灯控制 、近光灯控制 、雾灯控制 、倒车灯控制 、制动控制 、尾灯控制 、示宽灯控制 。通过主控器节点上的开关控制所有的车灯 , 一共有8 个控制开关 :近光灯开关 ;远光灯开关 ;左转向灯开
7、关 ;右转向灯开关 ;雾灯开关 ;倒车灯开关 ;小灯开关 ;制动灯开关 。2 灯光控制系统网络的硬件设计图 1 灯光控制系统网络152009 年第 3 期 农业装备与车辆工程图 3 灯光驱动电路图 2 灯光控制节点 CAN 总线通讯硬件电路21 灯光控制节点 MCU考虑到系统的成本 ,本设计选用 P87C591 单片机作为灯光控制节点的 MCU。 P87C591 是一个单片8 位高性能微控制器 ,组合了 P87C554(微控制器 )和 SJA1000 (独立的 CAN 控制器 ) 的功能 , 并在SJA1000 的基础上增加了以下 CAN 的特性2:(1)增强的 CAN 接收中断 ;(2) 扩
8、展的验收滤波器 ;(3)验收滤波器可在运行中改变 (Change on the Fly)。22 灯光控制节点 CAN 通讯电路本文采用 PCA82C250 作为 CAN 总线通信接口的收发器 。灯光控制节点 CAN 总线通讯的硬件电路如图 2 所示 。为 了 增 强 CAN 总线节点的抗干扰能力 ,P87C591 的 P10 和 P11 并不直接与 PCA82C250 的RXD 和 TXD 相 连 , 而是通过高速光电耦合器6N137 后与 PCA82C250 相连 ,这样就很好地实现了总线上各 CAN 节点间的电气隔离 。 不过 ,应该特别说明的一点是 , 光耦部分电路所采用的两个电源Vcc
9、 和 Vdd 必须完全隔离 , 否则采用光耦也就失去了意义 。PCA82C250 与 CAN 总线的接口部分也采用了一定的安全和抗干扰措施 。PCA82C250 的 CANH 和CANL 引脚各自通过一个 5 的电阻与 CAN 总线相连 ,电阻可起到一定的限流作用 ,保护 PCA82C250免受过流的冲击 。 CANH 和 CANL 与接地之间并联了两个 30pF 的小电容 , 可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力 。 另外 ,在两根CAN 总线输入端与地之间分别接了一个防雷击管 ,当两输入端与地之间出现瞬变干扰时 ,通过防雷击管的放电可起到一定的保护作用 。2 灯光驱动电路灯
10、光驱动电路通过智能功率开关对车灯进行驱动控制 。 各个车灯节点对车灯的驱动大致相同 ,以一个单通道智能功率开关驱动电路为例进行说明 ,如图 3 所示 。 BTS443 是 Infinion 公司的智能高边功率开关 ,它适用于汽车电子苛刻的工作环境 ,其工作的温度范围可从 40至 150。 采用 12V 或 24V负载控制 ,适用于各种阻性负载 、感性负载或容性负载 ,尤其适用于具有高浪涌电流的负载 ,如车灯等 ;可以作为继电器 、 保险丝及分立电路等控制方法的替代方法 。此外 ,BTS443 还具有多项保护功能 :短路保护 、过载保护 、过压保护 、过温关断和掉电保护 、静电放电保护和电源反接
11、保护等3。3 灯光控制系统网络的软件设计节点的软件设计充分应用了模块化设计思想 ,系统包括初始化模块 、发送模块 、接收模块 、开关状162009 年 3 月态检测模块等 。31 节点接收模块节点的报文接收采用中断控制 ,其流程图如图4 所示 , 整个接收的过程可在中断服务程序中完成而不需要与主程序发生交互作用 。主流程在中断控制的报文接收之前必须使能CAN 控制器的接收中断和 P87C591 的全局中断 。接收中断使能标志 (RIE)位于中断使能寄存器中 。如果 P87C591 已经接收一个报文 ,该报文通过验收滤波器并放入接收 FIFO, 则产生一个接收中断 。 这样 CPU 能够立即响应
12、 ,将这个接收到的报文传送到自身的报文存储器 ,并置位命令寄存器的释放缓冲区标志 (RRB)。 接收缓冲器中其他的报文将引起新的中断 ,所以没有必要在一次中断过程中把接收缓冲器 FIFO 中的所有有效报文读取出来 。 在接收中断过程结束时 ,CPU 可以通过读接收缓冲器状态标志 (RBS)检查是否还有其它报文存在 。32 节点发送模块节点的报文发送也采用中断控制 ,其流程图如图 5 所示 。 该流程图还包括了对于发送缓冲区未释放而无法发送报文的调度 ,该情况下使用 CAN 控制器的中止发送功能 。根据控制器的主流程 ,CAN 控制器的发送中断和 P87C591 的全局中断必须在中断控制的发送起
13、始之前使能 。 中断使能标志 (TIE)位于 CAN 控制器的中断使能寄存器 (IER)中 。 只要 P87C591 在发送信息 ,发送缓冲区就禁止写操作 。 这样 CPU 必须检查状态寄存器的发送缓冲区状态标志 (TBS),以确定是否可将一个新信息放入发送缓冲区 。当发送缓冲区被锁定时 ,CPU 必须将信息临时保存到数据存储器中 。并置位软件标志 “还有报文 ”,用于指示有新的信息等待发送 。该情况下 ,下一个发送信息的起始将在中断服务程序中处理 。 中断服务程序在结束当前运行的发送时启动 。 CPU 在接收来自 CAN 控制器的中断时 , 对中断类型进行检查 ,当发送中断和 “还有报文 ”
14、标志均置 1 时 ,等待发送的报文必须从数据存储器复制到发送缓冲区并将 “还有报文 ”标志清零 。 当发送缓冲区被释放时 ,CPU 将新报文写入发送缓冲区 ,并使发送请求标志 (TR)置1。 在发送结束时 CAN 控制器产生一个发送中断(TI1)。图 5 报文发送流程图图 4 报文接收流程图使能 CAN 接收中断是否产生 CAN 接收中断从接收缓冲区读报文并保存释放接收缓冲区(设置命令位 RRB释放 )应用特定的过程处理例如 ,处理接收到的报文接收缓冲区状态是否为 “空 ”NYYN(a)主程序使能 CAN 发送中断发送缓冲区是否释放将报文写入发送缓冲区临时缓冲区用于发送其他的报文置位标志 “还
15、有报文 ”报文是否为高优先级NYYN置位发送请求位置位标志 “中止发送 ”(b)中断服务程序置位发送请求位CAN 发送中断是否产生将报文从临时缓冲区复制到发送缓冲区清除标志 “还有报文 ”发送完成状态是否 完成NYYNYN是否 “还有报文 ”要发送置位发送请求位应用特定的方案处理 “中止发送 ”郭俊飞 等 : 基于 CAN 总线的电动汽车灯光控制系统设计172009 年第 3 期 农业装备与车辆工程所以 ,要使该领域发展起来 ,就必须走自主研发的道路 ,必须要经历 “发现问题 ”“分析问题 ”“解决问题 ”的过程才能够有积累 ,从而使理论研究成果逐步达到指导工程设计的标准 ,最终在国际上占有一
16、席之地 。参考文献1 Giacomin J Neural network simulation of an automotive shockabsorber J Engineer Application Artificial Intelligence,1991, (1):59642 Worden K, Tomlinson G R Parametric and nonparametric iden-tification of automotive shock absorberJ Modal Analysis,1992 (10):57623 Duym S Reybrouck K Physical
17、characterization of nonlinearshock absorber dynamics J, European J Mech Eng ,1998 (43):1811884 KwangJin Lee Numerical modeling for the hydraulic performanceprediction of automotive monotube dampers J Vehicle System Dy-namics, 1997(28):25395 封士彩 CXP1032 起重机油气悬挂系统减振性能的研究 D徐州 :中国矿业大学 ,20006 陶又同 液压悬挂系统的
18、示功图及模型辨识 J 武汉水运工程学院学报 ,1985(4):951017 高凌风 连通式油气悬架动刚度分析及发射车行车振动响应计算 D 北京 :北京理工大学 ,1994图 8 灯光控制系统试验台报文的发送请求可使用 “中止发送 ”命令来放弃 。 通过命令寄存器中相应位 (AT)置 1,可以实现P87C591 CAN 控制器的这种特性 ,该特性可用于发送一个紧急报文 ,该报文优先于写入发送缓冲区但还未成功发送的报文 。由于某种原因使一个发送报文仍然处于等待服务的情况下 ,发送缓冲区将被锁定 (如图 5 (a)。 如果出现一个发送紧急报文的请求 ,命令寄存器中的中止发送位 (AT)将置 1。 当
19、等待发送的报文成功发送或被中止之后 ,发送缓冲区被释放并产生一个发送中断 。 在中断处理中 ,必须检查状态寄存器的发送完成标志位 (TCS),以确定之前的发送是否成功 。未成功表示发送被放弃 ,这种情况下 CPU 对放弃的发送执行一个特殊的处理 ,例如重复发送被放弃的报文 (如图 5(b)。4 结论本文采用德国 VECTOR 公司开发的网络集成开发环境 CANoe4,5,对本设计的运行状况进行观察分析 ,运行状况如图 6、图 7 所示 。如图 6 所示 ,经过调试 ,系统的总线负载率为132,峰值负载率为 141,属于良好的运行情况 。如图 7 所示 , 后灯节点接收到来自主控节点的倒车灯开启
20、命令 “0x00”。本文的实验平台如图 8 所示 ,试验表明 ,此电动汽车的灯光控制系统网络设计是合理的 。参考文献1南金瑞 ,刘波澜 汽车单片机及车载总线技术 M北京 :北京理工大学出版社 ,20052 Data Sheet P8xC591, Philips Semiconductors, 20003 Data Sheet BTS 443 P, Infineon Technologies, 20034 Vector Informatik GmbH, CANdb Manual, Version 2725Vector Informatik GmbH, CANoe Manual, Version 511图 7 跟踪窗口图 6 总线统计窗口(上接第 14 页 )18