日期:2023-01-24 阅读量:0次 所属栏目:智能科技
摘 要:车载电子系统汽车发展史上的一次革命,而车身局域网络则是现代汽车工业的标志。CAN总线的数据通讯具有突出的可靠性、实时性和灵活性,其总线规范已经成为国际标准,被公认为几种最有前途的总线之一。
关键词:制动防抱死系统; CAN总线; 非归零编码
近年来,由于汽车上的电子电器装置数量的急剧增多,为了减少连接导线的数量和重量,总线技术和网络技术有了很大的发展。
1.车载电子网络系统
在常见的网络系统中,ISO9141和Keyword2000主要用于诊断系统,后者在汽车电子控制上用的多一些。J1850原来只有北美使用,在2007年前后停止使用,然后全部转至CAN总线,CAN目前仍然是汽车电子控制中可靠性最高的总线。LIN为CAN的补充,两者一般结合使用,与CAN总线相比,LIN总线控制方式的成本较低是最大的优势。Flexray是CAN的升级,但是目前成本还很高,不能实际应用;MOST主要用于音视频流传输的基于光纤的总线,不能用于控制。
总线协议
CAN总线是德国奔驰公司80年代为解决汽车众多控制设备与仪器仪表之间的数据交换而开发的一种基于ISO11898标准的串行通信协议。CAN总线标准包括物理层、数据链路层,其中链路层定义了不同的信息类型、总线访问的仲裁规则及故障检测与故障处理的方式。
CAN总线传输数据长度可变(0~8字节)的信息帧,每帧都有一个惟一的标识(总线上任何节点发送的信息帧,都具有不同的标识)。CAN总线和CPU之间的接口电路通常包括CAN控制器和收发器,如图1所示。由于所有的错误检测、纠错、传输和接收等都是通过CAN控制器的硬件完成的,所以用户组建这样的2线网络,仅需要极少的软件开销。
图1 标准CAN和扩展CAN
2.1标准CAN总线和扩展CAN总线
有两种CAN总线协议:CAN 1.0和CAN 2.0,其中CAN2.0有两种形式:A和B。CAN1.0和CAN2.0A规定了11位标识,CAN2.0B除了支持11位标识外,还能够接受扩展的29位标识。为了符合CAN2.0B,CAN控制器必须支持被动2.0B或主动2.0B。被动2.0B控制器忽略扩展的29位标识信息(CAN2.0A控制器在接收29位标识时,将产生帧错误),主动CAN2.0B控制器能够接收和发送扩展信息帧。
发送和接收两类信息帧的兼容性准则归纳表1所示。主动CAN2.0B控制器能够收发标准和扩展的信息帧;CAN2.0B被动控制器能够收发标准帧,而忽略扩展帧,不引起帧格式错误;CAN1.0和CAN2.0A在接收扩展帧时,将产生错误信息。
表1 11位和29位标识的信息所适用的CAN协议
CAN2.0A允许多达2032个标识,而CAN2.0B允许超过5.32亿个标识。由于需要传输29位标识,因而这种方式降低了有效的数据传输速度。扩展标识由已有的11位标识(基本ID)和18位扩展部分(标识扩展)组成。这样,CAN协议允许两种信息格式:标准CAN(2.0A)和扩展CAN(2.0B)。
2.2总线仲裁
CAN总线采用非归零(NRZ)编码,所有节点以“线与”方式连接至总线。如果存在一个节点向总线传输逻辑0,则总线呈现逻辑0状态,而不管有多少个节点在发送逻辑1。CAN网络的所有节点可能试图同时发送,但其简单的仲裁规则确保仅有一个节点控制总线、并发送信息。收发器如同一个漏极开路结构,能够监听自身的输出。逻辑高状态由上拉电阻驱动,因而低有效输出状态(0)起决定性作用。
为近似于实时处理,必须快速传输数据,这种要求不仅需要高达1Mbps的数据传输物理通道,而且需要快速的总线分配能力,以满足多个节点试图同时传输信息的情况。
通过网络交换信息而采取实时处理的紧急状况是有差别的:快速变化的变量,如引擎负载,与那些变化相对缓慢的变量,如引擎温度相比要求频繁、快速地发送数据。信息标识可以规定优先级,更为紧急的信息可以优先传输。在系统设计期间,设定信息的优先级以二进制数表示,但不允许动态更改。二进制数较小的标识具有较高的优先级,使信息近似于实时传输。
解决总线访问冲突是通过仲裁每个标识位,即每个节点都逐位监测总线电平,如图2所示。按照“线与”机制,即显性状态(逻辑0)能够改写隐性状态(逻辑1),当某个节点失去总线分配竞争时,则表现为隐性发送和显性观测状态。所有退出竞争的节点成为那些最高优先级信息的接收器,并且不再试图发送自己的信息,直至总线再次空闲。
CAN总线采用2线差分结构,提供了一个抗EMC干扰和EMC辐射的可靠系统。辐射干扰可以通过NRZ编码和限斜率输出总线信号来降低。当然,限斜率输出也降低了数据传输速率,通常标准速率限制在125kbps以内。
图2 总线仲裁
2.3出错处理
CAN控制器内置TX和RX出错计数器,根据出错是本地的还是全局的,计数器以此决定加1还是加8。每当收到信息,出错计数器就会增加或减少。如果每次收到的信息是正确的,则计数器减1;如果信息出现本地错误,则计数器加8;如果信息出现整个网络错误,则计数器加1。这样,通过查询出错计数器值,就可以知道通信网络质量。
这种计数器方式确保了单个故障节点不会阻塞整个CAN网络。如果某个节点出现本地错误,其计数值将很快达到96、127或255。当计数器达到96时,它将向节点微控制器发出中断,提示当前通信质量较差。当计数值达到127时,该节点假定其处于“被动出错状态”,即继续接收信息,且停止要求对方重发信息。当计数达到255时,该节点脱离总线,不再工作,且只有在硬件复位后,才能恢复工作状态。
3.结论
汽车市场的快速发展促进了电子信息产业向汽车电子领域的渗透和发展,从而使汽车更加智能化。另外在当今的信息网络时代,在汽车上就像呆在自己的办公室和家里一样,可以收听广播,打电话,上互联网,处理工作。随着数字技术的进步,汽车也将步入多媒体时代。
参考文献:
[1]徐景波.汽车总线技术[M].北京:中国人民大学出版社,2011
[2]罗峰,孙泽昌.汽车CAN总线系统原理、设计与应用[M].北京:电子工业出版社,2010
[3]张大波.嵌入式系统[M].北京:电子工业出版社,2008
[4]谷正气.轿车车身[M].北京:人民交通出版社,2002
上一篇:浅谈移动电子政务与政府管理创新
下一篇:移动Agent技术介绍