2011年1月4日CAN网络协议培训提纲1、通信协议2、通信帧格式3、仲裁4、位填充5、错误检测通信协议汽车网络如何进行数据的传输以及节点的通信?序号汽车网络相关协议及标准备注1CANCAN2.0A、CAN2.0B、ISO118982LINLIN2.0、LIN2.13诊断ISO14229、ISO14230、ISO15765信号传输仍参考CAN协议通讯协议高速CAN差分电压示意图:特点:1、在CAN_H和CAN_L线两端有120欧姆终端电阻;2、当CAN_H和CAN_L线间差分电压为0时,状态为逻辑1,网络为隐性状态,差分电压为3V时,状态为逻辑0,网络为显性状态。3、当出现线路短路或断路情况时,高速CAN无法无法正常通信。通讯协议低速CAN差分电压示意图:特点:1、在每个模块的CAN_H和CAN_L线上都有终端电阻;2、当CAN_H电压为4V,CAN_L电压为1V时,状态为逻辑0,网络为显性状态,当CAN_H电压为0V,CAN_L电压为5V时,状态为逻辑1,网络为隐性状态。3、低速CAN可以在单根线断路或短路的情况下正常通信。通信协议通信协议的基本规则:1、总线访问:CAN是共享媒体的总线,采用载波监听多路访问的方式。CAN控制器只能在总线空闲时开始发送。所谓总线空闲,就是网络上至少存在3个空闲位(隐性位)时网络的状态。2、仲裁:总线空闲时呈隐性电平,此时任何一个节点都可以向总线发送一个显性电平作为一个帧的开始。如果有两个或两个以上的节点同时发送,就会产生总线冲突。CAN网络采用标识符仲裁的形式进行判定信号的优先级。3、编码/解码:总线数据传递中使用位填充技术进行编码,在CAN总线中,每连续5个相同状态的电平插入一位与它相补的电平,在译码还原时每5个同状态的电平后的相补电平被删除,从而保证了数据的正确性。4、错误检测:当检测到位错误、填充错误、形式错误或应答错误时,检测出错条件的CAN控制器将发送一个错误标志。5、超载标注:在网络信号传输繁忙,CAN控制器会发送一个或多个超载帧以延迟下一个数据帧或远程帧的发送。通讯帧格式BOSCH公司在发布的CAN2.0协议中规定了CAN总线中的报文传输的数据帧类型及相关的格式,各种情况分别以下列4种不同的帧类型表示及控制:1、数据帧:数据帧携带数据从发送器至接收器;2、远程帧:总线单元发出远程帧,请求发送相应的数据帧;3、过载帧:过载帧用在先行的和后续数据帧之间提供一个附加的延时;4、错误帧:总线上任何节点检测到总线错误时就发出错误帧;通讯帧格式数据帧结构:数据帧包括帧起始、仲裁场、控制场、数据场、CRC校验场、应答场和帧结尾部分。帧起始(SOF)占用1bit。1、标志数据帧、远程帧的起始;2、只有在总线空闲时才能发送;3、同步所有的节点;4、网络仲裁开始;帧起始:通讯帧格式仲裁场:仲裁场占用12bit。包括识别符和RTR位。其中识别符的长度为11位,为数据帧和远程帧的识别ID,7个最高位必须不能全是“隐性”。RTR位为区分数据帧和远程帧的标志之一,在数据帧中RTR位为显性,在远程帧中RTR位为隐性。通讯帧格式控制场占用6bit。其中包括识别符扩展位IDE、保留位r0及数据长度代码。识别符扩展位IDE为显性时代表为标准帧,为隐性时代表为拓展帧。数据长度代码为4个位,代表数据场中的数据字节数,数据最小为0字节,最大为8字节;控制场:通讯帧格式数据场中包含着CAN信号的数据字节。其中最多为8个字节。数据发送时先发送高有效位,再发送低有效位。数据场:通讯帧格式CRC校验场占用16bit,包括CRC序列和CRC界定符两部分。CRC序列:为进行CRC计算,被除的多项式系数由帧起始、仲裁场、控制场、数据场(假如有)组成,而15个最低位的系数是0。将此多项式被下面的多项式发生器除(其系数以2为模):X15+X14+X10+X8+X7+X4+X3+1CRC界定符:CRC界定符为单独的一个隐性位。CRC校验场:通讯帧格式应答场:应答场占用2bit,包含应答间隙(ACKSLOT)和应答界定符(ACKDELIMITER)。在应答场里,发送站发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙(ACKSLOT)期间向发送器发送一“显性”的位以示应答。通讯帧格式帧结束:每一个数据帧和远程帧均由一标志序列界定。这个标志序列由7个“隐性”位组成。在总线传输过程中,每个数据帧、远程帧之间有三个隐性位数据来表示帧间隔。在此阶段,不允许发送任何数据帧及远程帧(不包括过载帧)。通讯帧格式拓展帧:通讯帧格式拓展帧与标准的区别有哪些:1、SRR位,为一隐性位;2、IDE位,拓展帧中为隐性位,标准帧中为显性位。远程帧:通讯帧格式错误帧结构:错误帧由两个不同的场组成。第一个场作为不同站提供的错误标志(ERRORFLAG)的叠加。第二个场是错误界定符。错误标志分为主动错误标志和被动错误标志,主动错误标志由6个连续的“显性”位组成。被动错误标志由6个连续的“隐性”的位组成。错误界定符由8个“隐性”的位组成。通讯帧格式过载帧结构:过载帧由过载错误标志的叠加和过载界定符组成。过载标志由6个“显性”的位组成。过载界定符包括8个“隐性”的位。通讯帧格式位仲裁在CAN网络数据的传输过程中,时常会出现两帧或多帧数据同时发送的情况,在此时就需要制定一种规则来判定哪帧数据先发送,哪帧数据需要等待。此种规则我们称为位仲裁。例子:节点1发送ID为25D的数据帧;节点2发送ID为25B的数据帧;节点3发送ID为26E的数据帧;此3个数据帧同时发送,哪帧数据能获得总线的发送权??位仲裁节点2发送的数据帧获得了总线的优先发送权。通常来说,ID数值越小,此ID的仲裁优先权就越高。节点1节点2节点3SOF位填充在CAN网络数据的传输过程中,通过测试设备监控的网络数据和通过示波器采集到的网络数据是不一致的。例子:节点1发送ID为7C1的数据帧,使用示波器监控的发送数据是什么样?位填充:在网络上不允许出现连续6个相同的位数据,当网络上出现连续5个相同的位数据时,第6位数据必须是相反的位数据。SOF位填充练习:请说出下面这列网络上使用示波器监控的数据是多少?07C错误检测1、位错误:节点单元在发送位的同时也对总线进行监视。如果所发送的位值与所监视的位值不相符合,则在此位时间里检测到一个位错误(BITERROR)。但是在仲裁场(ARBITRATIONFIELD)的填充位流期间或ACK间隙(ACKSLOT)发送一“隐性”位的情况是例外的——此时,当监视到一“显性”位时,不会发出位错误(BITERROR)。当发送器发送一个被动错误标志但检测到“显性”位时,也不视为位错误。在CAN网络中共有以下5种不同的错误类型:2、填充错误:如果在使用位填充法进行编码的信息中,出现了6个连续相同的位电平时,将检测到一个填充错误。3、CRC错误:CRC序列包括发送器的CRC计算结果,接收器计算CRC的方法与发送器相同。如果计算结果与接收到CRC序列的结果不相符,则检测到一个CRC错误。4、形式错误:当一个固定形式的位场含有1个或多个非法位,则检测到一个形式错误。5、应答错误:只要在ACK间隙(ACKSLOT)期间所监视的位不为“显性”,则发送器会检测到一个应答错误。错误检测