摘要:给出了一种基于CAN 总线的车灯控制系统设计方案, 介绍了车灯控制系统的硬件设计和软件设计, 对系统的整体结构、硬件配置、软件功能分别作了详细说明。试验表明, 该系统结构简单、性能可靠, 具有广阔的应用前景。
引言
CAN(Controller Area Network) 是德国博世公司在20 世纪80 年代初为汽车业开发的一种车载专用串行数据通信总线, 满足SAE (Society of Automo bileEngineer) 对C 类高速车载网络(≤1Mb/ s) 的要求, 适合动力传动和底盘电子系统的信息传输与控制, 因此也适合一般车载电子系统的信息传输与控制。
与传统技术相比, CAN 总线有如下特点: ①采用非破坏性仲裁技术, 获得仲裁优先的节点将继续传输消息, 消息不会被另一个节点破坏或发生错误; ②CAN 总线采用短帧结构, 每一帧的有效数据为8 字节, 数据传输时间短, 受干扰的概率低, 重新发送的时间短;③ CAN 每帧数据采用CRC (CyclicRedundancy Check) 校验, 保证了数据传输的高可靠性, 适于在高干扰环境中使用;④CAN 采用平衡的差动信号传输数据, 通信速率为5kb/ s 时直接通信距离最远可达10km, 通信距离为40m 时通信速率最高可达1Mb/ s, 可形成场抵消效应; ⑤可以避免汽车线束的重复铺设, 有效减少了汽车上线束的数量, 提高了可靠性, 降低了成本。因此, 利用CAN 总线进行车灯系统设计, 可以提升汽车性能。
1 车灯功能及系统设计
图1 为车灯照明、信号系统, 由照明及信号灯组组成, 包括前大灯(远光灯、近光灯) 、转向灯、雾灯、制动灯、顶灯、位置灯、倒车灯和牌照灯等等, 不同种类车灯的功能不同, 安装位置也不尽相同。按车灯安放位置可以分成左前、左后、右前、右后4 组照明和信号灯组, 以及车内照明灯组, 故可以在CAN 通信网络中设置控制模块、左前模块、左后模块、右前模块、右后模块和车内照明模块, 共6 个节点, 其车灯系统结构图见图2.其中, 控制模块通过对开关状态变化的监测向其它5 个模块发送控制指令, 这5 个模块在接收到属于本模块的控制指令后, 分别控制对应位置的车灯动作。由于CAN 是基于优先级的事件触发协议, 根据行驶安全级别的不同, 系统中各节点的优先级要依次设定。需要强调的是, 开关控制模块是系统控制指令发送模块, 安全性要求最高, 具有最高优先级, 左后和右后模块涉及制动等与行驶安全相关的车灯, 其优先级仅次于开关控制模块。
图1 车灯照明、信号系统
图2 CAN 总线车灯系统结构
2 硬件设计
本设计以8051 单片机和Intel 82527 CAN 总线控制器为核心构成智能节点。其中, Intel 82527 CAN控制器支持CAN2. 0 标准, 包括标准的和扩展的数据和远程帧, 可程控全局屏蔽; 包括标准和扩展信息标识符, 具有15 个报文缓冲区, 每个数据长度为8 字节;14 个T X/ RX 缓冲区, 1 个带可程控屏蔽的RX 缓冲区; 可变CPU 接口, 具有多路8 位总线( Intel 或Motorola 方式) 、多路16 位总线、8 位非多路总线( 同步/ 异步) 以及串行接口; 位速率可程控, 并有可程控的时钟输出; 可变中断结构; 可对输出驱动器和输入比较器结构进行设置; 2 个8 位双向I/ O 口; 44 脚PLCC 封装。
本方案选用PCA 82C250 为CAN总线收发器和物理层总线接口, 它可以提供对总线的差分发送和接收、高速斜率控制和待机3 种不同工作方式, 能够隔离瞬态干扰, 提高接收和发送能力。在硬件设计中, 82527 完成与CAN 总线的信息交换,8051 完成对车灯继电器的驱动; 旁路输入比较器, 与8051 的信息交换采用中断方式, 地址为7F00 ~7FFFH.系统硬件结构见图3.
图3 系统硬件结构图
3 软件设计
CAN2. 0B 协议只制定了CAN 物理层与数据链路层的协议, 在进行系统设计时, 必须根据用户的需要制定相应的CAN 应用层协议。根据总线系统各节点及其所要实现的功能, 确定相互间共享的数据, 然后了解各节点需接收和发送的信息, 统一制定CAN 网络中需传输的信息, 最后给制定好的CAN 网络传输消息分配标识符。CA N 协议规定, 标识符ID 越小, 优先权越高,因此, 在确定ID 时, 先要分析该信息帧需求的紧急性。
将汽车车灯位置分布和行驶安全性要求作为各模块划分的依据, 以控制模块、左后模块、右后模块、左前模块、右前模块、内照明模块为顺序分配ID.
信息编码是把相近或相关的信息组合成一个数据块, 使它们的数据可按同样的频率从控制节点发送到总线上。其它CAN 节点可同时获得这组信息, 并对该信息进行相应的处理。本车灯控制系统通过主控制器发送信息, 各分节点先通过验收/ 屏蔽滤波器接收自己需要的信息, 屏蔽不需要的信息, 再根据接收内容进行相应操作。其中4 个分节点均设置为单滤波, 主控制器发送的1B 数据中各位的含义见表1.
表1 1B 数据中各位含义
本文采用模块化程序设计思想设计软件, 按照功能分成不同的程序模块, 各模块间相对独立以完成特定的功能, 主要包括CAN 节点初始化、报文接收、报文发送和数据处理模块。同时, 模块与模块之间可以相互调用, 数据共享, 以达到重复利用代码和简化代码的目的。其主程序流程图见图4.
图4 主程序流程图
4 试验及结论
按前面所介绍的硬件和软件设计方案, 在试验室完成车灯控制系统, 组合成车灯台架, 通过对该系统硬件、软件的反复调试进行控制试验。台架试验结果证明, 本车灯控制系统的设计方案可行, 减少了线束的使用, 且性能可靠, 具有较好的工程应用前景。由此也可以预见, 随着CAN 总线在汽车电气控制方面的广泛应用, 汽车的使用性和可靠性等方面也将会得到很大的提高。