基于单片机的客车CAN总线灯光节点设计与实现
引言
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所示。
CAN控制器接收信息时首先要将接收信息的标识符与相应缓冲器的标识符进行比较,只有标识符相同的信息才能被接收。μPD780822型单片机的CAN模块有2个独立的发送缓冲器,2个缓冲器共用1个16字节的数据区来存储最多8字节数据的CAN帧。发送区和接收区的结构相似,当标志位和控制位没有设置为CAN专用时,CPU可以把其作为普通的数据存储区使用。
控制器接收缓冲器有16个,接收信息帧时用的缓冲器区由信息数量寄存器(MCNT)决定。从总线上接收的信息被直接存储在发送缓冲区中。工作中没有使用的接收缓冲区可以被CPU作为普通的RAM使用。每个接收缓冲器都有其可编程的中断使能位。
4 网络结构和节点
客车车身CAN系统包括主控节点、灯光节点、空调节点、车门节点和仪表节点等,如图2所示。其中,前车灯节点控制包括前左、右示廓灯,前左、右位灯,前左、右遇险报警灯,前左、右驻车灯,左、右前照灯远光,左、右前照灯近光,前左、右雾灯和前左、右转向灯等16个控制单位。后车灯节点控制包括后左、右示廓灯,后左、右转向灯,后左、右制动灯,后左、右位灯,后左、右雾灯和后左、右倒车灯等12个控制单位。主控节点主要接收来自驾驶员的一些开关输入信号。仪表节点主要通过接收总线上的数据来控制方向、水温、机油压力、制动、车门、车灯、ABS/ARS和除
- 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)