目录
数据帧结构/帧起始编辑/仲裁场编辑/控制场/数据场/CRC校验场
通信协议
汽车网络如何进行数据的传输以及节点的通信?
序号 | 汽车网络 | 协议or标准 | 备注 |
1 | CAN | CAN2.0A、CAN2.0B、ISO11898 | |
2 | LIN | LIN2.0、LIN2.1 | |
3 | 诊断 | ISO14229、ISO14230、ISO15765 | 信号传输仍参考CAN协议 |
高速CAN差分电压示意图
特点:
1、在CAN_H和CAN_L线两端有120Ω终端电阻
2、当CAN_H和CAN_L线间
差分电压为0时,状态为逻辑1,网络为隐形状态;
差分电压为3V时,状态为逻辑0,网络为显性状态;
- 差分电压:是一种输入信号的方式,主要是提高信号精度,去掉共有的误差干扰
- 差分输入的是将两个输入端的差值作为信号,这样可以免去一些误差
比如你输入一个1V的信号电源有偏差,比实际输入要大0.1.就可以用差分输入1V和2V一减就把两端共有的那0.1误差剪掉了。
单端输入无法去除这类误差。
一个差分信号是用一个数值来表示两个物理量之间的差异。
从严格意义上来讲,所有电压信号都是差分的,因为一个电压只能是相对于另一个电压而言的。
在某些系统里,系统'地'被用作电压基准点。当'地'当作电压测量基准时,这种信号规划被称之为单端的。我们使用该术语是因为信号是用单个导体上的电压来表示的。
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校验场
CRC校验场占用16bit;包括CRC序列和CRC界定符两部分
CRC序列:为进行CRC计算,被除的多项式系数由帧起始、仲裁场、控制场、数据场(假如有)组成,而15个最低位的系数是0。将此多项式被下面的多项式发生器除(其系数以2为模):
CRC界定符:CRC界定符为单独的一个隐性位
应答场
应答场占用2bit,包含应答间隙(ACK SLOT)和应答界定符(ACK DELIMITER)
在应答场里,发送站发送两个”隐性“位。当接收器正确地接收到有效的报文,接收器就会在应答间
隙(ACK SLOT)期间向发送器发送一”显性“的位以实例应答
帧结束
每一个数据帧和远程帧均由一标志序列界定;这个标志序列由7个”隐性“位组成
在总线传输过程中,每个数据帧、远程帧之间有三个隐性位数据来表示帧间隔。在此阶段,不允许发送任何数据帧及远程帧(不包括过载帧)
拓展帧
拓展帧与标准的区别有哪些:
1、SRR位,为一隐性位
2、IDE位,拓展帧中为隐性位,标准帧中为显性位
远程帧
错误帧结构
错误帧由两个不同的场组成;
第一个场作为不同站提供的错误标志(ERROR FLAG)的叠加;
第二个场是错误界定符;
错误标志分为主动错误标志和被动错误标志,主动错误标志由6个连续的”显性“位组成。被动错
误标志由6个连续的”隐性“的位组成;
错误界定符由8个”隐性“的位组成
过载帧结构
过载帧由过载错误标志的叠加和过载界定符组成
过载标志由6个”显性“的位组成
过载界定符包括8个”隐性“的位
位仲裁
在CAN网络数据的传输过程中,时常会出现两帧或多帧数据同时发送的情况,在此时就许哟啊指定一种规则来判定那帧数据先发送,哪帧数据需要等待。此规则我们成为位仲裁。
通常来说,ID数值越小,此ID的仲裁优先权就越高
节点2发送的数据帧获得了总线的优先发送权
位填充
在CAN网络数据的传输过程中,通多测试设备监控的网络数据和通过示波器采集到的网络数据是不一致的;
位填充:在网络上不允许出现连续6个相同的位数据,当网络上出现连续5个相同的位数据时,第6位数据必须是相反的位数据
错误检测
在CAN网络中共有一下5种不同的错误类型:
- 位错误
节点单元在发送位的同时也对总线进行监视,如果所发送的位值与所监视的位值不相符合,则在此位时间里检测到一个位错位(BIT ERROR);但是在仲裁场(ARBITRATION FIELD)的填充位流期间或(ACK)间隙(ACK SLOT)发送一“隐性”位的情况是例外的——此时,当监视到一“显性”位时,不会发出位错误(BIT ERROR);当发送器发送一个被动错误标志但检测到“显性”位时,也不视为位错误。
- 填充错误
如果在使用位填充法进行编码的信息中,出现了6个连续相同的位电平时,将检测到一个填充错误
- CRC错误
CRC序列包括发送器的CRC计算结果,接收器计算CRC的方法与发送器相同;如果计算结果与接收到CRC序列的结果不相符,则检测到一个CRC错误
- 形式错误
当一个固定形式的位场含有1个或多个非法位,则检测到一个形式错误
- 应答错误
只要在ACK间隙(ACK SLOT)期间所监视的位不为“显性”,则发送器会检测到一个应答错误