《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > 基于单片机和CAN总线的车灯控制系统

基于单片机和CAN总线的车灯控制系统

2020-04-16
来源:与非网

1、引言

CAN(Controller Area Network)是德国 Bosch 公司最先提出的,是目前汽车控制器局域网中最流行、最常用的总线。它的主要特点是:CAN 总线为多主站总线,各节点均可在任意时刻主动向网络上的其他节点发送信息,不分主从,通信灵活;CAN 总线采用独特的非破坏性总线仲裁技术,优先级高的节点先传送数据,能满足实时性要求;CAN 总线具有点对点、一点对多点及全局广播传送数据的功能;CAN 总线上每帧有效字节数最多为 8 个,并有 CRC 及其他校验措施,数据出错率极低,某个节点出现严重错误,可自动脱离总线,总线上的其他操作不受影响;CAN 总线只有 2 条导线,系统扩充时可直接将新节点挂在总线上,因此走线少,系统容易扩充,改型灵活;CAN 总线传输速度快,在传输距离小于 40 m 时,最大传输速率可达 1 Mb/s。CAN 总线的应用不仅能简化线束,实现传感器共享,降低系统成本,而且能大大降低车辆的故障率。CAN 总线在汽车上的应用是现代汽车技术的发展趋势。


2、CAN 总线在汽车中的应用

目前,汽车中的网络连接主要采用 2 条 CAN 总线,一条是驱动系统的高速 CAN 总线,速率达 500 kb/s,另一条是车身系统的低速 CAN 总线,速率是 100 kb/s。驱动系统的 CAN 主要连接对象是发动机控制器(ECU)、ASR 及 ABS 控制器、安全气囊控制器、组合仪表等,其基本特征相同,都是控制与汽车行驶直接相关的系统。车身系统的 CAN 主要连接对象是 4 门以上的中控门锁、电动车窗、后视镜和车厢内照明灯等。有些先进的轿车除了上述 2 条 CAN 总线外,还会有第 3 条 CAN 总线,它的主要连接对象是卫星导航及智能通信系统。

 

在国外尤其是在欧洲,CAN 已成为现代汽车中必不可少的装置,CAN 总线技术正日趋成熟,应用也越来越广,奔驰、宝马、大众、沃尔沃、雷诺等汽车都采用 CAN 作为控制器联网的技术。国内对 CAN 总线的研究刚刚起步,到目前为止还没有较成功的应用。但我国对车辆局域网络总线技术的研究与开发非常重视,最近国家有关部门对 CAN 总线在豪华大客车上的应用做出明确规定。相信这一政策的出台必将大大促进相关企业和科研单位对汽车 CAN 总线的研究与开发应用。本文讨论客车车身 CAN 总线系统中的车灯节点设计,它属于低速 CAN 总线上的节点设计。

 

3、单片机及其 CAN 总线模块

NEC 是仅次于 Freescale 的世界第二大车用单片机制造商,由于其在中国推广的比较晚,国内企业使用得并不多。CAN 总线模块是μPD780822 型单片机的一个外设,是一个完整的 CAN 控制器。可满足车身 CAN 总线网络的要求。除了具有 CAN 的基本功能外,还包括一些特有功能,如时间同步功能、可编程的 CAN 总线唤醒和 CPU 唤醒功能、可编程的总线关闭时发送底层复位功能等。对 CAN 总线的访问分为控制 / 状态寄存器的访问和发送 / 接收缓冲器的访问。

 

CAN 控制器发送的信息帧分为二种:发送数据帧和发送远程帧。有二个发送缓冲器,其中一个为 16 字节,一个为 8 字节。16 字节的缓冲器可以存储标准帧和扩展帧二种格式的数据帧,8 字节的缓冲器可以用来存储要发送的数据。发送数据帧时,在数据写到发送缓冲器后,如果相应的发送请求位使能,则数据被发送到 CAN 总线上,数据帧的数据可以用软件设置成 1~8 个字节。数据帧的格式如图 1 所示。

 

 

5e967021beadd-thumb.png


CAN 控制器接收信息时首先要将接收信息的标识符与相应缓冲器的标识符进行比较,只有标识符相同的信息才能被接收。μPD780822 型单片机的 CAN 模块有 2 个独立的发送缓冲器,2 个缓冲器共用 1 个 16 字节的数据区来存储最多 8 字节数据的 CAN 帧。发送区和接收区的结构相似,当标志位和控制位没有设置为 CAN 专用时,CPU 可以把其作为普通的数据存储区使用。

 

控制器接收缓冲器有 16 个,接收信息帧时用的缓冲器区由信息数量寄存器(MCNT)决定。从总线上接收的信息被直接存储在发送缓冲区中。工作中没有使用的接收缓冲区可以被 CPU 作为普通的 RAM 使用。每个接收缓冲器都有其可编程的中断使能位。

 

4、网络结构和节点

客车车身 CAN 系统包括主控节点、灯光节点、空调节点、车门节点和仪表节点等,如图 2 所示。其中,前车灯节点控制包括前左、右示廓灯,前左、右位灯,前左、右遇险报警灯,前左、右驻车灯,左、右前照灯远光,左、右前照灯近光,前左、右雾灯和前左、右转向灯等 16 个控制单位。后车灯节点控制包括后左、右示廓灯,后左、右转向灯,后左、右制动灯,后左、右位灯,后左、右雾灯和后左、右倒车灯等 12 个控制单位。主控节点主要接收来自驾驶员的一些开关输入信号。仪表节点主要通过接收总线上的数据来控制方向、水温、机油压力、制动、车门、车灯、ABS/ARS 和除霜等指示灯和控制仪表,以显示车速、发动机转速、水温、燃油、机油、电压、步进电机等数值。空调节点控制空调的开关和车内温度的设定等。车门和后视镜节点控制车门电磁阀开关、后视镜调整开关和后视镜加热开关。安全节点监控 ABS 和 ECAS 的电源。

 

 

5e967021c7baa-thumb.png


5、硬件电路设计

灯光节点的硬件结构如图 3 所示,它包括灯光控制模块和 CAN 接口模块。灯光控制模块由 TLP521-4 型光电隔离器和 BTS442、BTS740 型智能开关组成。

 

5e967021d5f41-thumb.png

 

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 所示。

 

5e967021d9ff4-thumb.png

 

6、节点软件设计

节点软件流程如图 5 所示。程序采用查询方式,节点初始化并报告正常工作后将一直处于查询状态,直到主控节点发送的灯光控制命令到达灯光节点时,单片机才可判断控制的是哪一路灯光或哪几路灯光,并通过开关的诊断反馈功能检测相应的开关是否正常。如果正常,则向相应的高 / 低端开关发送相应的控制命令,然后回到查询状态。如果不正常,则向仪表节点发送相应端点的不正常信息帧,继续检测相应的端点。

 

节点初始化主要是单片机初始化,包括端口初始化和 CAN 控制模块的初始化。单片机端口初始化主要对用到的 I/O 口上电复位。CAN 模块的初始化主要是设置所用的特殊功能寄存器,主要包括协议模式、验收滤波方式、CAN 通信速率和中断寄存器的设置等。将验收代码和验收屏蔽代码写入验收代码寄存器和验收屏蔽寄存器。

 

CAN 总线的软件设计主要包括 CAN 节点的初始化、数据的发送和接收程序,掌握了这 3 个模块的设计,基本上就完成了 CAN 通信的软件设计。

 

7 、结束语

虽然本节点是为控制客车车灯设计的,但对其他一些节点也有借鉴作用,尤其是 CAN 总线的硬件接口部分,可以通用到客车其他 CAN 网络节点上,甚至可以用在其他非汽车领域的 CAN 网络上,如工业自动化等领域。


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。