导言
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和除霜等指示灯和操控外表,以显现车速、发动机转速、水温、燃油、机油、电压、步进电机等数值。空调节点操控空调的开关和车内温度的设定等。车门和后视镜节点操控车门电磁阀开关、后视镜调整开关和后视镜加热开关。安全节点监控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网络上,如工业主动化等范畴。