1、第第4 4章章 CAN CAN 总总 线线4.1 4.1 概述概述4.2 4.2 CANCAN的的物理层的的物理层4.3 4.3 CANCAN协议规范协议规范4.4 4.4 典型典型CANCAN总线器件及应用总线器件及应用第第4 4章章 CAN CAN 总总 线线 CAN CAN(Controller Area NetworkController Area Network)即控制器局域网,可以)即控制器局域网,可以归属于工业现场总线的范畴,通常称为归属于工业现场总线的范畴,通常称为CAN busCAN bus,即,即CANCAN总线,总线,是目前国际上应用最广泛的开放式现场总线之一。是目前国际
2、上应用最广泛的开放式现场总线之一。与一般的通信总线相比,与一般的通信总线相比,CANCAN总线的数据通信具有突出的可总线的数据通信具有突出的可靠性、实时性和灵活性,它在汽车领域上的应用最为广泛,世靠性、实时性和灵活性,它在汽车领域上的应用最为广泛,世界上一些著名的汽车制造厂商,如界上一些著名的汽车制造厂商,如BENZ(BENZ(奔驰奔驰)、BMW(BMW(宝马宝马)、v volkswagen(olkswagen(大众大众)等都采用了等都采用了CANCAN总线来实现汽车内部控制系总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。统与各检测和执行机构间的数据通信。同时,由于同时,由于CAN
3、CAN总线的特点,其应用范围目前已不仅局限总线的特点,其应用范围目前已不仅局限于汽车行业,已经在自动控制、航空航天、航海、过程工业、于汽车行业,已经在自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域中得到了广泛应用。械及传感器等领域中得到了广泛应用。4.1 4.1 概述概述4.1.1 4.1.1 CANCAN工作原理、特点工作原理、特点4.1.2 4.1.2 发展背景及应用情况发展背景及应用情况4.1.3 4.1.3 一个典型的工程实例一个典型的工程实例4.14.1概述概述 CAN
4、CAN 最初出现在汽车工业中,最初出现在汽车工业中,8080年代由德国年代由德国BoschBosch公司公司最先提出。最初动机是为了解决现代汽车中庞大的电子控最先提出。最初动机是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。制装置之间的通讯,减少不断增加的信号线。19931993年年CAN CAN 成为国际标准成为国际标准ISO11898(ISO11898(高速应用高速应用)和和ISO11519ISO11519(低速应(低速应用)。用)。由于其良好的性能及独特的设计,由于其良好的性能及独特的设计,CANCAN总线越来越受到总线越来越受到人们的重视。随着应用领域的增多,人
5、们的重视。随着应用领域的增多,CANCAN的规范从的规范从CAN 1.2 CAN 1.2 规范规范(标准格式标准格式)发展为兼容发展为兼容CAN 1.2 CAN 1.2 规范的规范的CAN2.0CAN2.0规范规范(CAN2.0A(CAN2.0A为标准格式,为标准格式,CAN2.0BCAN2.0B为扩展格式为扩展格式),目前应用的,目前应用的CANCAN器件大多符合器件大多符合CAN2.0CAN2.0规范。规范。4.1.1 CAN的工作原理、特点的工作原理、特点1 1 CAN CAN 的工作原理的工作原理 当当CAN CAN 总线上的一个节点总线上的一个节点(站站)发送数据时,它以报文形发送数
6、据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的是发给自己的,都对其进行接收。每组报文开头的1111位字符位字符为标识符为标识符(CAN2.0A)(CAN2.0A),定义了报文的优先级,这种报文格式称,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个节点发送具有相同标识符的报文。当一个节点要可能有两个节点发送具有相同标识符的报文。当一个节点要向其它节点发送数据时,该节点的向其它节点
7、发送数据时,该节点的CPU CPU 将要发送的数据和自将要发送的数据和自己的标识符传送给本节点的己的标识符传送给本节点的CANCAN芯片,并处于准备状态;当芯片,并处于准备状态;当它它收到总线分配时,转为发送报文状态。收到总线分配时,转为发送报文状态。CAN CAN 芯片将数据根据协议组织成一定的报文格式发出,芯片将数据根据协议组织成一定的报文格式发出,这时这时 网上的其它节点处于接收状态。网上的其它节点处于接收状态。每个处于接收状态的节点对接收到的报文进行检测,每个处于接收状态的节点对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。判断这些报文是否是发给自己的,以确定是
8、否接收它。由于由于CAN CAN 总线是一种面向内容的编址方案,因此很容总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在容易地在CAN CAN 总线中加进一些新节点而无需在硬件或软件总线中加进一些新节点而无需在硬件或软件上进行修改。当所提供的新节点是纯数据接收设备时,数上进行修改。当所提供的新节点是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网布过程同步化,即总线上控制器需要
9、测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。上获得,而无须每个控制器都有自己独立的传感器。2 2 CANCAN总线特点总线特点 CAN CAN总线是一种串行数据通信协议,通信介质可以是总线是一种串行数据通信协议,通信介质可以是双绞线、同轴电缆或光导纤维。最大通讯距离可达双绞线、同轴电缆或光导纤维。最大通讯距离可达10km10km,最大通信速率可达最大通信速率可达1Mbps1Mbps。CANCAN总线通信接口中集成了总线通信接口中集成了CANCAN协议的物理层和数据链路层功能,可完成对通信数据的成协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码
10、、循环冗余检验、优先帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。级判别等项工作。CANCAN总线特点如下:总线特点如下:(1 1)可以多主方式工作,网络上任意一个节点均可以在可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。利用这一特点也可方便地构成多机备从,通信方式灵活。利用这一特点也可方便地构成多机备份系统。份系统。(2 2)网络上的节点(信息)可分成不同的优先级可以满网络上的节点(信息)可分成不同的优先级可以满足不同的实时要求。足不同的实时要求。(3 3)
11、CANCAN总线采用非破坏性位仲裁总线结构机制,当两总线采用非破坏性位仲裁总线结构机制,当两个节点同时向网络上传送信息时,优先级低的节点主动停个节点同时向网络上传送信息时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数止数据发送,而优先级高的节点可不受影响地继续传输数据,大大节省了总线冲突裁决时间;最重要的是在网络负据,大大节省了总线冲突裁决时间;最重要的是在网络负载很重的情况下,也不会出现网络瘫痪的情况(以太网则载很重的情况下,也不会出现网络瘫痪的情况(以太网则可能)。可能)。(4 4)可以点对点、一点对多点(成组)及全局广播几种可以点对点、一点对多点(成组)及全局广
12、播几种传送方式接收数据。传送方式接收数据。(5 5)直接通信距离最远可达直接通信距离最远可达10km10km(速率(速率5Kbps5Kbps以下)。以下)。(6 6)通信速率最高可达)通信速率最高可达1MB/s1MB/s(此时距离最长(此时距离最长40m40m)。)。(7 7)节点数实际可达)节点数实际可达110110个。个。(8 8)采用短帧结构,每一帧的有效字节数为)采用短帧结构,每一帧的有效字节数为8 8个,这样传输个,这样传输时间短,受干扰的概率低,且具有极好的检错效果。可满足通时间短,受干扰的概率低,且具有极好的检错效果。可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。常
13、工业领域中控制命令、工作状态及测试数据的一般要求。(9 9)每帧信息都有)每帧信息都有CRCCRC校验及其他检错措施,保证了数据出校验及其他检错措施,保证了数据出错率极低。错率极低。(1010)通信介质可采用双绞线,同轴电缆和光导纤维,一般)通信介质可采用双绞线,同轴电缆和光导纤维,一般采用廉价的双绞线即可,无特殊要求。采用廉价的双绞线即可,无特殊要求。(1111)节点在错误严重的情况下,具有自动关闭总线的功能,节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上的其他操作不受影响。切断它与总线的联系,以使总线上的其他操作不受影响。CANCAN总线协议已被国际标准化组
14、织认证,技术比较成熟,总线协议已被国际标准化组织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数据通讯。系统之间的数据通讯。CAN CAN 控制器工作于多主方式,网络中的各节点都可根据控制器工作于多主方式,网络中的各节点都可根据总线访问优先权总线访问优先权(取决于报文标识符取决于报文标识符)采用无损结构的逐位仲采用无损结构的逐位仲裁的方式竞争向总线发送数据,且裁的方式竞争向总线发送数据,且CAN CAN 协议废除了节点地址协议废除了节点地址编码,而代之以对通信数据进行编码,这可使不同的节点同编码,而代之以对
15、通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得时接收到相同的数据,这些特点使得CAN CAN 总线构成的网络各总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用高系统的可靠性和系统的灵活性。而利用RS-485 RS-485 只能构成主只能构成主从式结构系统,通信方式也只能以主节点轮询的方式进行,从式结构系统,通信方式也只能以主节点轮询的方式进行,系统的实时性、可靠性较差;系统的实时性、可靠性较差;CAN CAN 总线通过总线通过CAN CAN 控制器接口芯片两个输出端
16、的电平状控制器接口芯片两个输出端的电平状态,可以保证不会出现象在态,可以保证不会出现象在RS-485RS-485网络中,当系统有错误,网络中,当系统有错误,出现多出现多节点同时向总线发送数据时,导致总线呈现短路,从节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且而损坏某些节点的现象。而且CAN CAN 节点在错误严重的情况下具节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于线
17、处于“死锁死锁”状态。状态。CAN CAN 具有的完善的通信协议可由具有的完善的通信协议可由CAN CAN 控制器芯片及其接口控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是只仅仅有电气协议的这些是只仅仅有电气协议的RS-485 RS-485 所无法比拟的。另外,与所无法比拟的。另外,与其它现场总线比较而言,其它现场总线比较而言,CAN CAN 总线是具有通信速率高、容易实总线是具有通信速率高、容易实现、低成本、且性价比高等诸多特点的一种已形成国际标准的现、低成本、且性价比高等诸多特点的一种已形成国际标准的现场
18、总线。这些也是目前现场总线。这些也是目前CAN CAN 总线应用于众多领域,具有强劲总线应用于众多领域,具有强劲的市场竞争力的重要原因。的市场竞争力的重要原因。4.1.2 发展背景及应用情况发展背景及应用情况 1.CAN 1.CAN(控制器局域网)的起源(控制器局域网)的起源 19861986年年2 2月,德国月,德国Robert Bosch Robert Bosch 公司介绍了一种新型的公司介绍了一种新型的串行总线串行总线CANCAN控制器局域网。在此之前还没有一种现成的控制器局域网。在此之前还没有一种现成的网络方案能够完全满足汽车工程师们增加新功能、减少电气连网络方案能够完全满足汽车工程师
19、们增加新功能、减少电气连接线,使其能够用于产品,而非用于驱动技术的要求。接线,使其能够用于产品,而非用于驱动技术的要求。19871987年中期,年中期,IntelIntel交付了首枚交付了首枚CANCAN控制器控制器8252682526,这是,这是CANCAN方案首次通过硬件加以实现。不久之后,方案首次通过硬件加以实现。不久之后,Philips Philips 半导体推出半导体推出了了82C20082C200。由于这两枚最先的。由于这两枚最先的CANCAN控制器在性能上各有千秋,控制器在性能上各有千秋,因此形成因此形成PhilipsPhilips主推的主推的BasicCAN BasicCAN
20、和和IntelIntel主推的主推的FullCAN FullCAN 两两大阵营。今天的大阵营。今天的CANCAN控制器中,在同一模块中的验收滤波和报控制器中,在同一模块中的验收滤波和报文控制方面仍有相当的不同。文控制方面仍有相当的不同。今天,在欧洲几乎每一辆新客车均装配有今天,在欧洲几乎每一辆新客车均装配有CANCAN局域网。局域网。同样,同样,CANCAN也用于其他类型的交通工具,甚至工业控制等领也用于其他类型的交通工具,甚至工业控制等领域也被大量使用。域也被大量使用。CANCAN已经成为全球范围内最重要的总线之已经成为全球范围内最重要的总线之一。一。20002000年,全球市场销售超过年,
21、全球市场销售超过1 1亿个亿个CANCAN器件。器件。标准化与一致性标准化与一致性 19901990年,年,Bosch CAN Bosch CAN 规范(规范(CAN 2.0CAN 2.0版)被提交给国际版)被提交给国际标准化组织,于标准化组织,于19931993年年1111月出版了月出版了CANCAN的国际标准的国际标准ISO11898ISO11898,除了除了CANCAN协议外,它也规定了最高至协议外,它也规定了最高至1Mbps1Mbps波特率时的物理层。波特率时的物理层。同时,在国际标准同时,在国际标准ISO11519-2ISO11519-2中也规定了中也规定了CANCAN数据传输中的数
22、据传输中的容错方法。容错方法。19951995年,国际标准年,国际标准ISO11898ISO11898进行了扩展,以附录进行了扩展,以附录的形式说明了的形式说明了2929位位CANCAN标识符。当前,修订的标识符。当前,修订的CANCAN规范正在标规范正在标准化中。准化中。ISO11898-1ISO11898-1称为称为“CANCAN数据链路层数据链路层”,ISO11898-2ISO11898-2称为称为“非容错非容错CANCAN物理层物理层”,ISO11898-3ISO11898-3称为称为“容错容错CANCAN物理物理层层”。国际标准。国际标准ISO11992ISO11992(卡车和拖车接
23、口)和(卡车和拖车接口)和ISO11783(农业和(农业和森林机械)都在美国标准森林机械)都在美国标准J1939J1939的基础上定的基础上定义了基于义了基于CANCAN应用的子协议。应用的子协议。CANCAN的发展过程的发展过程 尽管当初研究尽管当初研究CANCAN的起点是应用于客车系统,但的起点是应用于客车系统,但CANCAN的第一的第一个市场应用却来自于其他领域。特别是在北欧,个市场应用却来自于其他领域。特别是在北欧,CANCAN早已得到早已得到非常普遍的应用。在荷兰,电梯厂商非常普遍的应用。在荷兰,电梯厂商KoneKone在电梯上使用了在电梯上使用了CANCAN总线,总线,Philip
24、sPhilips医疗系统也使用医疗系统也使用CANCAN构成构成X X光机的内部网络,成光机的内部网络,成为为CANCAN的用户。的用户。19921992年年5 5月,月,CiACiA“CAN in AutomationCAN in Automation”用户集团正式成立。用户集团正式成立。CiACiA推荐仅使用遵循推荐仅使用遵循ISO11898ISO11898的的CANCAN收发器。现在,在当时的收发器。现在,在当时的CANCAN网络中使用非常普遍但并不兼容的网络中使用非常普遍但并不兼容的RS-485RS-485收发器已基本消收发器已基本消失。失。从从19901990年中期起,年中期起,In
25、fineonInfineon公司和公司和MotorolaMotorola公司等生产公司等生产CANCAN模块集成器件的模块集成器件的1515家半导体厂商已向欧洲的汽车厂商提供家半导体厂商已向欧洲的汽车厂商提供了大量的了大量的CANCAN控制器。从控制器。从19901990年后期起,亚洲的半导体厂商也年后期起,亚洲的半导体厂商也开始提供开始提供CANCAN控制器。控制器。从从19921992年起,奔驰公司开始在高级轿车中使用年起,奔驰公司开始在高级轿车中使用CANCAN技术。技术。第一步使用电子控制器通过第一步使用电子控制器通过CANCAN对发动机进行管理;第二步使对发动机进行管理;第二步使用控
26、制器接收人们的操作信号。这就使用了用控制器接收人们的操作信号。这就使用了2 2个物理上独立的个物理上独立的CANCAN总线系统,它们通过网关连接。其他的汽车厂商在他们的总线系统,它们通过网关连接。其他的汽车厂商在他们的汽车上也使用汽车上也使用2 2套套CANCAN总线系统。总线系统。现在,继现在,继VolvoVolvo、SaabSaab、VolkswagenVolkswagen、BMWBMW之后,之后,RenaultRenault和和FiatFiat也开始在他们的汽车上使用也开始在他们的汽车上使用CANCAN总线。不仅如总线。不仅如此,由于此,由于CANCAN总线的突出优势,其应用已经发展到了
27、几乎涵盖总线的突出优势,其应用已经发展到了几乎涵盖所有的网络控制领域。所有的网络控制领域。4.1.3 一个典型的工程实例一个典型的工程实例 目前的汽车电子信息产品已经平均占到汽车总成本的目前的汽车电子信息产品已经平均占到汽车总成本的1/31/3,并且这个比率正在不断被提高,有专家认为,未来并且这个比率正在不断被提高,有专家认为,未来1010年内,这年内,这个比率将达到个比率将达到4040。中高级轿车、客车甚至大型卡车上普遍采。中高级轿车、客车甚至大型卡车上普遍采用了用了CANCAN总线,不仅提高了性能,节省大量电缆,而且给人们总线,不仅提高了性能,节省大量电缆,而且给人们带来了更好的享受,提高
28、了驾驭者的舒适程度。带来了更好的享受,提高了驾驭者的舒适程度。一汽一汽-大众汽车有限公司大众汽车有限公司20012001年年1212月上市的宝来(月上市的宝来(BoraBora)轿车,在动力传动系统和舒适系统中就装用了两套轿车,在动力传动系统和舒适系统中就装用了两套CANCAN数据传数据传输系统,其中输系统,其中CANCAN数据传输舒适系统如数据传输舒适系统如图图4.14.1所示。所示。接发电接发电机机底盘网底盘网络络 仪表单元仪表单元 M MM MM MM MM MM MM MM MM MM MM MM M前门前门单元单元车身中央车身中央控制单元控制单元 空调空调单元单元 前座前座单元单元
29、顶窗顶窗单元单元 前座前座单元单元 左前门左前门单元单元 M MM MM M后门后门单元单元 后门后门单元单元 后座后座单元单元 M MM M后窗后窗单元单元 MM MM MCANCANMLINLIN电机电机加热器加热器灯具灯具控制面板控制面板图例图例:图图4-1 CAN4-1 CAN数据传输舒适系统数据传输舒适系统CANZONGXIANCANZONGXIAN 图上较粗线代表图上较粗线代表CANCAN总线,它连接了传动装置控制中央单总线,它连接了传动装置控制中央单元、灯控单元、门控单元、座椅控制单元、空调单元以及仪元、灯控单元、门控单元、座椅控制单元、空调单元以及仪表盘控制单元等等。较细线代表
30、表盘控制单元等等。较细线代表LINLIN总线,由总线,由LINLIN总线构成的总线构成的LINLIN网络作为网络作为CANCAN网络的辅助网络,连接了车窗控制单元、雨网络的辅助网络,连接了车窗控制单元、雨刷控制单元、天窗控制单元等低速设备。刷控制单元、天窗控制单元等低速设备。CANCAN数据传输舒适系统网络与动力传动系统网络通过网桥数据传输舒适系统网络与动力传动系统网络通过网桥相互通信。相互通信。LINLIN网络(网络(Local Interconnect NetworkLocal Interconnect Network),由汽车厂),由汽车厂商为汽车开发,作为商为汽车开发,作为CANCAN
31、网络的辅助网络,目标应用在低端系网络的辅助网络,目标应用在低端系统,不需要统,不需要CANCAN的性能、带宽以及复杂性。的性能、带宽以及复杂性。LINLIN的工作方式是的工作方式是一主多从,单线双向低速传送数据(最高一主多从,单线双向低速传送数据(最高20K20K位位/秒),与秒),与CANCAN相比具有更低的成本,且基于相比具有更低的成本,且基于UARTUART接口,无需硬件协议控制接口,无需硬件协议控制器,使系统成本更低。器,使系统成本更低。4.2 CAN的物理层的物理层 ISO 11898ISO 11898是一个使用是一个使用CANCAN总线协议的汽车内高速通讯国际标总线协议的汽车内高速
32、通讯国际标准,这个标准的基本作用是定义了通讯链路的数据链路层和物准,这个标准的基本作用是定义了通讯链路的数据链路层和物理层,如理层,如图图4.24.2所示物理层被细分成所示物理层被细分成3 3个子层,它们分别是:个子层,它们分别是:l l 物理信令位编码定时和同步物理信令位编码定时和同步l l 物理媒体连接驱动器和接收器特性物理媒体连接驱动器和接收器特性l l 媒体相关接口总线连接器媒体相关接口总线连接器 收发器实现物理媒体连接子层。物理信令子层和数据链路层收发器实现物理媒体连接子层。物理信令子层和数据链路层之间的连接是通过集成的协议控制器实现的,如:之间的连接是通过集成的协议控制器实现的,如
33、:PCx82C200PCx82C200、SJA1000SJA1000等。而媒体相关接口负责连接传输媒体譬如将总线节点等。而媒体相关接口负责连接传输媒体譬如将总线节点连接到总线的连接器,如:连接到总线的连接器,如:PCA82C250PCA82C250、TJA1050TJA1050等收发器。等收发器。图图4.2 ISO118984.2 ISO11898标准数据链路层和物理层结构图标准数据链路层和物理层结构图 4.2 CAN4.2 CAN的物理层的物理层4.2.1 4.2.1 CANCAN的网络拓扑的网络拓扑4.2.2 4.2.2 CANCAN的媒体连接的媒体连接4.2.1 CAN的网络拓扑的网络拓
34、扑 CAN CAN以多主方式工作,网络上任意一个节点均可以在以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。其网络拓扑形式大多是总线型结主从,通信方式灵活。其网络拓扑形式大多是总线型结构,拓扑示意图见构,拓扑示意图见图图4.34.3。节点节点1 1节点节点2 2节点节点3 3节点节点4 4CANCAN总线总线图图4.3 CAN4.3 CAN的总线型网的总线型网CANCAN的网络拓扑的网络拓扑4.2.2 CAN的物理媒体连接的物理媒体连接 CAN CAN总线物理层的物理媒体连接比较灵活,
35、可以采用共地总线物理层的物理媒体连接比较灵活,可以采用共地的单线式(汽车常用)、双线式、同轴电缆、双绞线、光缆的单线式(汽车常用)、双线式、同轴电缆、双绞线、光缆等,理论上节点数目没有限制,实际可达等,理论上节点数目没有限制,实际可达110110个。个。电子信号在总线上会被信号线终端反射回来,避免信号电子信号在总线上会被信号线终端反射回来,避免信号的反射对节点正确读取总线电压非常重要。在总线的两个终的反射对节点正确读取总线电压非常重要。在总线的两个终端加上终端电阻以终结总线,可以避免信号反射。端加上终端电阻以终结总线,可以避免信号反射。CANCAN总线具有两种逻辑状态,隐性和显性。总线具有两种
36、逻辑状态,隐性和显性。隐性状态下,隐性状态下,VCAN-HVCAN-H和和VCAN-LVCAN-L被固定为平均电压电平,被固定为平均电压电平,两者电压差为两者电压差为0 0。显性状态下,显性状态下,VCAN-HVCAN-H和和VCAN-LVCAN-L分别为分别为3.5V3.5V和和1.5V1.5V,两者,两者差分电压大于差分电压大于2V2V。如。如图图4.44.4所示。所示。隐性状态隐性状态显性状态图图4.4 4.4 根据根据ISO 11898 ISO 11898 的的额定额定总线电平总线电平 4.3 CAN协议规范协议规范4.3.1 基本术语基本术语4.3.2 CAN的报文及结构的报文及结构
37、4.3.3 CAN的位仲裁技术的位仲裁技术4.3 CAN协议规范协议规范 1.CAN 1.CAN规范中的对应规范中的对应ISO/OSIISO/OSI参考模型的网络层参考模型的网络层 CANCAN为串行通讯协议,能有效地支持具有很高安全等级的为串行通讯协议,能有效地支持具有很高安全等级的分布实时控制。分布实时控制。CANCAN的应用范围很广,从高速的网络到低价位的应用范围很广,从高速的网络到低价位的多路接线都可以使用的多路接线都可以使用CANCAN。在汽车电子行业里,使用。在汽车电子行业里,使用CANCAN连连接发动机控制单元、传感器、防刹车系统、等等,其传输速接发动机控制单元、传感器、防刹车系
38、统、等等,其传输速度可达度可达1Mbit/s1Mbit/s。同时,可以将。同时,可以将CANCAN安装在卡车本体的电子控安装在卡车本体的电子控制系统里,诸如车灯组、电气车窗等等,用以代替接线配线制系统里,诸如车灯组、电气车窗等等,用以代替接线配线装置。装置。技术规范的目的是为了在任何两个技术规范的目的是为了在任何两个CANCAN仪器之间建立兼容仪器之间建立兼容性。可是,兼容性有不同的方面,比如电气特性和数据转换性。可是,兼容性有不同的方面,比如电气特性和数据转换的解释。为了达到设计透明度以及实现灵活性,根据的解释。为了达到设计透明度以及实现灵活性,根据ISO/OSIISO/OSI参考模型,参考
39、模型,CAN 2.0CAN 2.0规范细分为以下不同的层次:数据链路层规范细分为以下不同的层次:数据链路层和物理层和物理层(如如图图4.54.5所示所示)。接收滤波数据链路层数据链路层 逻辑链路控制子层逻辑链路控制子层(LLC)(LLC)超载通知超载通知恢复管理恢复管理 媒体访问控制子层(媒体访问控制子层(MACMAC)数据封装/拆装帧编码媒体访问管理错误检测出错标定应答串行化/解除串行化 故障界定故障界定物理层物理层 位编码位编码/解码解码 位定时位定时同步同步驱动器驱动器/接收器特性接收器特性 总线故障管理 图图4.5 CAN4.5 CAN协议分层结构和功能协议分层结构和功能 在以前版本的
40、在以前版本的CANCAN规范中,数据链路层的规范中,数据链路层的LLCLLC子层和子层和MACMAC子层的服务及功能分别被解释为子层的服务及功能分别被解释为“对象层对象层”和和“传输层传输层”。逻辑链路控制子层逻辑链路控制子层(LLC)(LLC)的作用范围如下:的作用范围如下:为远程数据请求以及数据传输提供服务。为远程数据请求以及数据传输提供服务。确定由实际要使用的确定由实际要使用的LLCLLC子层接收哪一个报文。子层接收哪一个报文。为恢复管理和过载通知提供手段。为恢复管理和过载通知提供手段。在这里,定义对象处理较为自由。在这里,定义对象处理较为自由。MACMAC子层的作用主要子层的作用主要是
41、传送规则,也就是控制帧结构、执行仲裁、错误检测、出是传送规则,也就是控制帧结构、执行仲裁、错误检测、出错标定、故障界定。总线上什么时候开始发送新报文及什么错标定、故障界定。总线上什么时候开始发送新报文及什么时候开始接收报文,均在时候开始接收报文,均在MACMAC子层里确定。位定时的一些普子层里确定。位定时的一些普通功能也可以看作是通功能也可以看作是MACMAC子层的一部分。理所当然,子层的一部分。理所当然,MACMAC子层子层的修改是受到限制的。的修改是受到限制的。物理层的作用是在不同节点之间根据所有的电气属性进物理层的作用是在不同节点之间根据所有的电气属性进行位的实际传输。同一网络的物理层对
42、于所有的节点当然是行位的实际传输。同一网络的物理层对于所有的节点当然是相同的。尽管如此,在选择物理层方面还是很自由的。相同的。尽管如此,在选择物理层方面还是很自由的。这本技术规范的目的是定义数据链路层中这本技术规范的目的是定义数据链路层中MACMAC子层和一小子层和一小部分部分LLCLLC子层,以及定义子层,以及定义CANCAN协议于周围各层当中所发挥的作协议于周围各层当中所发挥的作用)。用)。2 2基本概念基本概念 CANCAN具有以下的属性:具有以下的属性:报文的优先权报文的优先权 保证延迟时间保证延迟时间 设置灵活设置灵活 时间同步的多点接收时间同步的多点接收 系统内数据的连贯性系统内数
43、据的连贯性 多主机多主机 错误检测和错误标定错误检测和错误标定 只要总线一处于空闲,就自动将破坏的报文重新传输只要总线一处于空闲,就自动将破坏的报文重新传输 将节点的暂时性错误和永久性错误区分开来,并且可以将节点的暂时性错误和永久性错误区分开来,并且可以自动关闭由自动关闭由OSIOSI参考模型分层参考模型分层CANCAN结构的错误的节点。结构的错误的节点。依据依据ISO/OSIISO/OSI参考模型的层结构具有以下功能参考模型的层结构具有以下功能:物理层定义信号是如何实际地传输的,因此涉及到位时物理层定义信号是如何实际地传输的,因此涉及到位时间、位编码、同步的解释。本技术规范没有定义物理层的驱
44、间、位编码、同步的解释。本技术规范没有定义物理层的驱动器动器/接收器特性,以便允许根据它们的应用,对发送媒体接收器特性,以便允许根据它们的应用,对发送媒体和信号电平进行优化。和信号电平进行优化。MAC MAC 子层是子层是CANCAN协议的核心。它把接收到的报文提供给协议的核心。它把接收到的报文提供给LLCLLC子层,并接收来自子层,并接收来自LLCLLC子层的报文。子层的报文。MACMAC子层负责报文子层负责报文 分帧、仲裁、应答、错误检测和标定。分帧、仲裁、应答、错误检测和标定。MACMAC子层也被称子层也被称作故障界定的管理实体监管。此故障界定为自检机制,作故障界定的管理实体监管。此故障
45、界定为自检机制,以便把永久故障和短时扰动区别开来。以便把永久故障和短时扰动区别开来。LLC LLC子层涉及报文滤波、过载通知、以及恢复管理。子层涉及报文滤波、过载通知、以及恢复管理。4.3.1 基本术语基本术语 1 1报文报文 总线上的报文以不同的固定报文格式发送,但长度受限。总线上的报文以不同的固定报文格式发送,但长度受限。当总线空闲时任何连接的单元都可以开始发送新的报文。当总线空闲时任何连接的单元都可以开始发送新的报文。2 2信息路由信息路由 在在CAN CAN 系统里,系统里,CAN CAN 的节点不使用任何关于系统配置的报的节点不使用任何关于系统配置的报文(比如,节点地址)。这样不用依
46、赖应用层以及任何节点软文(比如,节点地址)。这样不用依赖应用层以及任何节点软件和硬件的改变,就可以在件和硬件的改变,就可以在CAN CAN 网络中直接添加节点。提高系网络中直接添加节点。提高系统灵活性。报文的内容由识别符命名。识别符不指出报文的目统灵活性。报文的内容由识别符命名。识别符不指出报文的目的地,但解释数据的含义。因此,网络上所有的节点可以通过的地,但解释数据的含义。因此,网络上所有的节点可以通过报文滤波确定是否应对该数据做出反应。由于引入了报文滤波报文滤波确定是否应对该数据做出反应。由于引入了报文滤波的概念,任何节点都可以接收报文,并与此同时对此报文做出的概念,任何节点都可以接收报文
47、,并与此同时对此报文做出反应。为确保报文在反应。为确保报文在CAN CAN 网络里同时被所有的节点接收(或同网络里同时被所有的节点接收(或同时不被接收)。因此,系统的数据连贯性是通过多播和错误处时不被接收)。因此,系统的数据连贯性是通过多播和错误处理的原理实现的。理的原理实现的。3 3位速率位速率 不同的系统,不同的系统,CAN CAN 的速度不同。在一个给定的系统里,位的速度不同。在一个给定的系统里,位速率是唯一的,并且是固定的。速率是唯一的,并且是固定的。4 4优先权优先权 在总线访问期间,识别符定义一个静态的报文优先权。在总线访问期间,识别符定义一个静态的报文优先权。5 5远程数据请求远
48、程数据请求 通过发送远程帧,需要数据的节点可以请求另一节点发送通过发送远程帧,需要数据的节点可以请求另一节点发送相应的数据帧。数据帧和相应的远程帧是由相同的识别符命相应的数据帧。数据帧和相应的远程帧是由相同的识别符命名的。名的。6 6仲裁仲裁 只要总线空闲,任何单元都可以开始发送报文。具有较只要总线空闲,任何单元都可以开始发送报文。具有较高优先权报文的单元可以获得总线访问权。如果高优先权报文的单元可以获得总线访问权。如果2 2个或个或2 2个以个以上的单元同时开始传送报文,那么就会有总线访问冲突。上的单元同时开始传送报文,那么就会有总线访问冲突。仲裁的仲裁的机制确保了报文和时间均不损失。当具有
49、相同识别机制确保了报文和时间均不损失。当具有相同识别符的数据帧和远程帧同时初始化时,数据帧优先于远程帧。仲符的数据帧和远程帧同时初始化时,数据帧优先于远程帧。仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送。如果发进行比较。如果电平相同,则这个单元可以继续发送。如果发送的是一送的是一“隐性隐性”电平而监视的是一电平而监视的是一“显性显性”电平(见总线电平(见总线值),那么单元就失去了仲裁,必须退出发送状态。值),那么单元就失去了仲裁,必须退出发送状态。7 7错误检测错误检测 为了获得最安
50、全的数据发送,为了获得最安全的数据发送,CAN CAN 的每一个节点均采取了强的每一个节点均采取了强有力的措施以便于错误检测、错误标定及错误自检。有力的措施以便于错误检测、错误标定及错误自检。要进行检测错误,必须采取以下措施:要进行检测错误,必须采取以下措施:监视(发送器对发送位的电平与被监控的总线电平进行监视(发送器对发送位的电平与被监控的总线电平进行比较)比较)循环冗余检查循环冗余检查 位填充位填充 报文格式检查报文格式检查 错误检测的执行错误检测的执行错误检测的机制要具有以下的属性:错误检测的机制要具有以下的属性:检测到所有的全局错误检测到所有的全局错误 检测到发送器所有的局部错误检测到