1、工 业 控 制 网 络 (现场总线),第3章 CAN总线,3.1 概述 3.2 CAN技术规范 3.3 CAN总线基本技术阐释与分析 3.4 独立CAN控制器SJA1000 3.5 CAN控制器接口PCA82C250,哈工大网络与电气智能化研究所,3.1 概述,CAN(Controller Area Network,控制器局域网)是20世纪80年代(1983)德国Bosch(博世)公司为解决众多的测量控制部件之间的数据交换问题而开发的一种串行数据通信总线。 CAN已成为国际标准ISO11898和ISO11519。,哈工大网络与电气智能化研究所,3.1 概述,CAN的发展历程:,哈工大网络与电气
2、智能化研究所,3.1 概述,CAN在汽车电子系统中得到了广泛应用,已成为世界汽车制造业的主体行业标准,代表着汽车电子控制网络的主流发展趋势。世界上一些著名的汽车制造厂商都已采用CAN总线来实现汽车内部控制系统与各检测及执行机构间的数据通信。如BENZ(奔驰)、BMW(宝马)、PORSCHE(保时捷)、ROLIS-ROYCE(劳斯莱斯)、JAGUAR(美洲豹)和MAZDA(马自达)等都。,哈工大网络与电气智能化研究所,3.1 概述,CAN与其他现场总线相比,具有突出的可靠性、实时性和灵活性,其技术特点如下: (1)CAN从本质上讲是一种多主或对等网络,网络上任一节点均可主动发送报文 。 (2)废
3、除了传统的站地址编码,而代之以对通信数据进行编码;通过报文过滤,可实现点对点、多点播送(传送)、广播等几种数据传送方式。,哈工大网络与电气智能化研究所,3.1 概述,(3)采用短帧结构,传输时间短,受干扰概率低。 (4)具有多种检错措施及相应的处理功能,检错效果极好,处理功能很强,保证了通信的高可靠性。位错误和位填充错误检测、CRC校验、报文格式检查和应答错误检测及相应的错误处理。 (5)通信介质(媒体)可为双绞线、同轴电缆或光纤,选择灵活。,哈工大网络与电气智能化研究所,3.1 概述,(6)总线长度可达10km(速率为5kbps及其以下);网络速度可达1Mbps(总线长度为40m及其以下)。
4、 (7)网络上的节点数主要取决于总线驱动电路,目前可达110个;标准格式的报文标识符可达2032个,而扩展格式的报文标识符的个数几乎不受限制。,哈工大网络与电气智能化研究所,3.1 概述,(8)通过报文标识符来定义节点报文的优先级。对于实时性要求不同的节点报文,可定义不同级别的优先级,从而保证高优先级的节点报文得到优先发送。 (9)采用非破坏性逐位仲裁机制来解决总线访问冲突。通过采用这种机制,即使在网络负载很重时,也不会出现网络瘫痪现象。 (10)发生严重错误的节点具有自动关闭输出的功能,以使总线上其他节点的通信能够继续进行。,哈工大网络与电气智能化研究所,3.1 概述,CAN最初虽然是为汽车
5、的监测、控制系统而设计的,但由于它在性能、可靠性等方面的突出优势,现已广泛应用于航天、电力、石化、冶金、纺织、造纸、仓储等行业。如在自动化仪表、智能传感器、数控机床、医疗器械、机器人、楼宇自动化装置、火车、轮船等元件、设备、设施中,CAN总线都得到了良好的应用。,哈工大网络与电气智能化研究所,3.2 CAN技术规范,3.2.1 CAN技术规范2.0A3.2.1 CAN技术规范2.0B,哈工大网络与电气智能化研究所,3.2 CAN技术规范,3.2.1 CAN技术规范2.0A,3.2.1.1 CAN节点的分层结构 3.2.1.2 CAN的一些基本概念 3.2.1.3 报文传送及其帧类型 3.2.1
6、.4 错误类型和界定 3.2.1.5 位定时要求 3.2.1.6 CAN振荡器容差的提高,哈工大网络与电气智能化研究所,3.2.1.1 CAN节点的分层结构,哈工大网络与电气智能化研究所,3.2.1.1 CAN节点的分层结构,LLC子层的主要功能是:为数据传送和远程数据请求提供服务,确认由MAC子层接收的报文实际已被接收和为恢复管理和通知超载提供信息。LLC子层的主要功能是报文过滤、超载通知和恢复管理。 MAC子层的功能主要是:传送协议,亦即控制成帧、执行仲裁、错误检测、错误标注和故障界定。MAC子层是CAN协议的核心。它把接收到的报文呈现给LLC,并接收来自LLC的报文以便发送。MAC子层由
7、称为故障界定的一个管理实体监控。它具有识别永久性故障或短暂扰动的自检机制。,哈工大网络与电气智能化研究所,3.2.1.1 CAN节点的分层结构,物理层的范围是有关全部电气特性的不同节点间的位的实际传送。在一个网络内,物理层所有节点必须是相同的。然而,在选择物理层时存在很大的灵活性。 物理层定义信号怎样进行发送,因而涉及位定时、位编码和同步的描述。在这部分技术规范中未定义物理层的驱动器/接收器特性,以便允许根据它们的应用,对发送媒体和信号电平进行优化。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,报文(Messages)总线上的信息以固定格式的不同而有限长度的报文发送。当
8、总线开放时,任何连接的单元均可开始发送一个新报文。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,信息路由(Information Routing)在CAN系统中,一个CAN节点不使用有关系统配置的任何信息(例如站地址)。CAN废除了站地址编码方式,而代之以对通信数据进行编码。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,系统灵活性(System Flexibility) 节点可添加到CAN网络上,而不要求任何节点的软件或硬件以及应用层有任何改变。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,报文路由(Message Rou
9、ting) 一个报文的内容由一个标识符ID命名。ID并不指明报文的目的,但描述数据的含义,以便网络中的所有节点有可能借助报文过滤决定该数据是否由它们接收。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,多点传送(Multicast) 作为报文过滤概念的结果,任何数目的节点均可接收同一个报文,并且同时按该报文的要求作出响应。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,数据一致性(Data Consistency) 在CAN网络内,可以确保一个报文同时被所有节点或者没有节点接收。系统的数据一致性是借助于多点传送概念和错误处理达到的。,哈工大网络与电气
10、智能化研究所,3.2.1.2 CAN的一些基本概念,位速率(Bit Rate) CAN的数据传输速度在不同系统中是不同的。然而,在一个给定系统中,位速率是唯一的,并且是固定的。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,优先权(Priorities)在总线访问期间,标识符ID为报文定义了一个静态的优先权。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,远程数据请求(Remote Data Request) 通过发送一个远程帧,一个需要数据的节点可以请求另一个节点发送一个相应的数据帧,该数据帧和相应的远程帧以相同的标识符ID命名。,哈工大网络与电气
11、智能化研究所,3.2.1.2 CAN的一些基本概念,多主站(Multi-master) 当总线开放时,任何单元均可开始发送一个报文。具有要发送的最高优先权报文的单元赢得总线访问权。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,仲裁(Arbitration) 总线开放时,任何单元均可发送报文,若有2个或更多的单元同时开始发送报文,总线访问冲突借助标识符ID进行逐位仲裁来解决。这种仲裁机制可以使信息和时间均无损失。若具有相同标识符ID的一个数据帧和一个远程帧同时启动,数据帧优先于远程帧。仲裁期间,每一个发送器都将发送的位电平与在总线上监视到的电平进行比较。若相同,则该单元可
12、以继续发送。当发送一个“隐性”电平(Recessive Level),而监视到一个“显性”电平(Dominant Level)时,该单元丢失仲裁,并且必须退出而不再发送后续位。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,安全性(Safety) 为获得尽可能高的数据传送安全性,在每个CAN节点中,均设有错误检测、错误标定和自检的强有力措施。为检测错误,采取的措施包括:监视(发送器对发送的位电平与总线上监视到的位电平进行比较)、循环冗余检验、位填充和报文格式检查。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,安全性(Safety) 错误检测机制具有
13、下列特性:所有全局性错误均可被检测;发送器的所有局部错误均可被检测;一个报文中的多达5个随机分布错误均可被检测;一个报文中长度小于15的突发性错误均可被检测;一个报文中的任何奇数个错误均可被检测。对于未检出的已损报文的剩余错误概率小于报文出错率4.710-11。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,错误标注和恢复时间(Error Signaling and Recovery Time) 已损报文由检出错误的任何节点进行标注。这样的报文将被丢弃,并自动进行重新发送。自检出错误至下一个报文开始发送的时间为恢复时间。如果不存在新的错误,恢复时间最多为29个位时间。,哈
14、工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,故障界定(Fault Confinement) CAN节点有能力识别短暂扰动和永久性故障。故障节点将被关闭。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,连接(Connections) CAN串行通信链路是一条总线,众多单元均可连接到该总线上。理论上,单元数目是无限的;实际上,单元总数受限于延迟时间和/或总线上的电气负载。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,单通道(Single Channel) 总线由传送数据位的单通道组成。在本技术规范中,实现这种通道的方法不是固定的,
15、例如可以是单线(加接地线)、两条差分线、光纤等。 总线数值(Bus Values) 总线具有两种互补逻辑数值:显性电平、隐性电平。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,应答(Acknowledgment) 所有接收器均对接收报文的一致性进行检查,回答一个一致报文,并标志一个不一致报文。,哈工大网络与电气智能化研究所,3.2.1.2 CAN的一些基本概念,睡眠方式/唤醒(Sleep Mode/Wake-up) 为降低系统功耗,CAN器件可被置于无任何内部活动的睡眠方式。借助于任何总线活动或者系统的内部条件均可唤醒CAN器件。为唤醒系统内仍处于睡眠状态的其它节点,可
16、使用具有最小可能性的专用标识符(rrr rrrd rrrr,其中,r为隐性位,d为显性位)的特殊唤醒报文。,哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,接收器/发送器 发出一个报文的单元称为该报文的发送器。 若一个单元不是某个报文的发送器,并且总线不处于空闲状态,则称该单元为该报文的接收器。,哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,报文的有效性 对于发送器而言,如果直到“帧结束”终结一直未出错,则报文有效。 对于接收器而言,如果直到最后(除“帧结束”的那一位)一直未出错,则报文有效。,哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类
17、型,位流编码 构成一帧的帧起始、仲裁场、控制场、数据场和CRC序列均借助位填充规则进行编码。无论何时,当发送器在将被发送的位流中检测到数值相同的5个连续位时,会自动地在实际的发送位流中插入一个补码位。数据帧或远程帧的其余位场(CRC界定符,应答场和帧结束)具有固定格式,不进行填充。错误帧和超载帧同样具有固定格式,并且不用位填充规则编码。 报文中的位流按照非归零码规则编码,在一个完整的位时间内,产生的位电平要么是“显性”,要么是“隐性”。,哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,帧类型 数据帧携带数据由发送器至接收器; 远程帧通过总线单元发送,以请求发送具有相同标识符的
18、数据帧; 错误帧由检测到总线错误的任何单元发送; 超载帧用于提供当前的和后续的数据帧或远程帧之间的附加延迟。,哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,数据帧由7个不同的位场(Bit Frame)组成: 帧起始(Start of Frame) 仲裁场(Arbitration Field) 控制场(Control Field) 数据场(Data Field) CRC场(CRC Field) 应答场(ACK Field) 帧结束(End of Field),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,数据帧(Data Frame),哈工大网络与电气智能
19、化研究所,3.2.1.3 报文传送及其帧类型,帧起始 (SOFStart Of Frame)标志数据帧和远程帧的起始,它仅由一个“显性”位构成。,数据帧(Data Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,仲裁场由标识符和远程发送请求(RTR)位组成。,数据帧(Data Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,标识符(Identifier)的长度为11位。这些位以ID-10至ID-0的顺序发送,最低位为ID-0,其中最高7位(ID-10 ID-4)必须不是全“隐性”。 RTR位(Remote Transmission
20、 Request Bit)在数据帧中,必须是“显性”的,而在远程帧中,RTR位必须是“隐性”的。,数据帧(Data Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,控制场由6位组成,包括两个用于将来扩展的保留位和4位数据长度码。,数据帧(Data Frame),哈工大网络与电气智能化研究所,表 数据长度码中数据字节数目编码,3.2.1.3 报文传送及其帧类型,哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,数据场由数据帧中被发送的数据组成,它可包括0至8个字节,每个字节包括8位,其中首先发送最高有效位。,数据帧(Data Frame),哈工大网
21、络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,CRC场包括CRC序列、CRC界定符。,数据帧(Data Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,CRC场参加CRC校验的位场包括帧起始、仲裁场、控制场、数据场(假若存在)在内的无填充位流。 CRC序列后随CRC界定符,它只包括一个“隐性”位。,数据帧(Data Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,应答场为两位长度,包括应答间隙和应答界定符。,数据帧(Data Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,应答场 在应答
22、场中发送站送出两个“隐性”位。一个正确地接收到有效报文的接收器,在应答间隙期间,通过传送一个“显性”位将此信息报告给发送器(接收器发送“应答”)。所有接收到匹配CRC序列的站,在应答间隙期间通过把“显性”位写入发送器的“隐性”位来报告此信息。 应答界定符是应答场的第二位,并且必须是“隐性”位。因此,应答间隙被两个“隐性”位(CRC界定符和应答界定符)包围。,数据帧(Data Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,帧结束每个数据帧和远程帧均是由7个“隐性”位组成的标志序列界定的。,数据帧(Data Frame),哈工大网络与电气智能化研究所,3.2.1.
23、3 报文传送及其帧类型,远程帧由6个不同的位场组成:帧起始、仲裁场、控制场、CRC场、应答场和帧结束。,远程帧(Remote Frame),哈工大网络与电气智能化研究所,错误帧由两个不同场组成:来自各站的错误标志(Error Flage);错误界定符(Error Delimiter)。,3.2.1.3 报文传送及其帧类型,错误帧(Error Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,错误标志具有两种形式:激活错误标志(Active Error Flag):由6个连续的“显性”位组成;认可错误标志(Passive Error Flag):由6个连续的“隐性”
24、位组成,除非它被来自其它节点的“显性”位改写。,错误帧(Error Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,一个检测到错误状态的“错误激活”站通过发送一个激活错误标志来标注该错误。这一错误标志形式违背适用于由帧起始至CRC界定符的所有场的位填充规则,或者破坏了应答场或帧结束场的固定形式。因而,所有其它站将检测到错误状态,并且由它们的部件开始发送错误标志。,错误帧(Error Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,这样,在总线上实际被监视到的“显性”位序列是由各个单独站发送的不同错误标志叠加而形成的。该序列的总长度
25、在最小值6位和最大值12位之间变化。 一个检测到错误状态的“错误认可”站通过发送一个认可错误标志来试图标注该错误。该“错误认可”站以认可错误标志的开始为起点等待个相同极性的连续位。当检测到个相同位后,认可错误标志即告完成。,错误帧(Error Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,错误界定符包括个“隐性”位。错误标志发送后,每个站都送出“隐性”位并监视总线,直至检测到一个“隐性”位。此后,开始发送剩余的个“隐性”位。,错误帧(Error Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,超载帧包括两个位场:超载标志和超载界
26、定符。存在两种导致发送超载标志的超载条件:一个是接收器的内部条件,接收器要求下一个数据帧或远程帧的延迟;另一个是在间歇场(帧间空间)检测到“显性”位。,超载帧(Overload Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,由前一个超载条件引起的超载帧起点,仅允许在期望间歇场(帧间空间)的第一位时间开始,而由后一个超载条件引起的超载帧在检测到“显性”位后开始发送第一位。最多可产生个超载帧用于延迟下一个数据帧或远程帧。,超载帧(Overload Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,超载标志(Overload Flage
27、)由个“显性”位组成。全部形式对应于激活错误标志形式。超载标志形式破坏了间歇场的固定形式。因而,所有其它站都将检测到一个超载条件,并且由它们的部件开始发送超载标志。,超载帧(Overload Frame),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,超载界定符(Overload Delimiter)由个“隐性”位组成。超载界定符与错误界定符具有相同的形式。发送超载标志后,站监视总线直至检测到由“显性”到“隐性”位的发送。在此时刻,总线上的每个站均完成送出其超载标志,并且所有站一致地开始发送剩余的个“隐性”位。,超载帧(Overload Frame),哈工大网络与电气智能化
28、研究所,3.2.1.3 报文传送及其帧类型,数据帧和远程帧与其前面的帧(数据帧、远程帧、错误帧或超载帧)均以称为帧间空间的位场分隔开。 在超载帧和错误帧前面没有帧间空间,并且多个超载帧也不被帧间空间分隔。,帧间空间(Interframe Space),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,帧间空间包括间歇场和总线空闲场,对于已经发送先前报文的“错误认可”站还有暂停发送场(Suspend Transmission) 。,帧间空间(Interframe Space),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,间歇场(Intermission Fi
29、eld)由3个“隐性”位组成。 间歇场期间,不允许任何站启动发送数据帧或远程帧。唯一的作用是标注超载条件。,帧间空间(Interframe Space),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,总线空闲场(Bus Idle Field)持续时间可为任意长度。此时,总线是开放的,因而任何需要发送的站均可访问总线。 在其它报文发送期间,待发送的报文,在间歇场后的第一位开始发送。检测到总线上的一个“显性”位将被理解为帧起始。,帧间空间(Interframe Space),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,暂停发送场(Suspend Transmission Field): “错误认可”站发完一个报文后,在开始下一次报文发送或认可总线空闲之前,它紧随间歇场后送出8个“隐性”位。如果在此期间其它站开始一次发送,该站将变为报文接收器。,帧间空间(Interframe Space),哈工大网络与电气智能化研究所,3.2.1.3 报文传送及其帧类型,帧间空间(Interframe Space),哈工大网络与电气智能化研究所,Thank you!,