CAN知识点总结(二)

CAN的主要功能是进行数据通讯,CAN知识点总结(一)里面总结了CAN网络中的CAN节点和CAN总线以及标准11898。总结(二)来说一下CAN的帧格式。

首先记住,显性电平对应逻辑“0”,隐形电平对应逻辑“1”,千万别混淆了!

一、下图是CAN的数据帧(Data Frame)的格式。

标准数据帧

图中只有蓝色色块的数据段Data Field才是要传递的数据。问题来了,为什么数据段的前后还有这么多信息块呢?

这是因为CAN网络里面只有两根线,一根高线一根低线。物理层面的简单注定CAN的数据格式必须含有大量的通讯协议。

一个标准的数据帧包含以下内容:

SOF 起始位(Start of Frame ):起始位代表着数据帧的传输开始,它占位1Bit。它由发送器发送,并通过将边沿从隐性(总线空闲)更改为显性来确保全网同步。

ID 标识符(Identidier):SOF之后是标识符(ID)。ID确定了数据帧的优先级,并负责CAN网络中发送器和收发器的关系。

RTR 远程传输请求(Remote Transmission Request):发送器使用RTR位将帧类型(数据帧或远程帧)通知接收器。如果RTR是显性位,那表明这是数据帧。(隐性位表明是远程帧)

IDE 标识符拓展(Identifier Extension):IDE位用于区分标准格式和扩展格式。标识符的标准格式为11位,扩展格式为29位。下图就是“标准格式和扩展格式的数据格式”。

标识符拓展

DLC 数据长度代码(Data Length Code):DLC将有效字节的数量发送到接收器。DLC是多少,Data Field中就有多少个字节。

Data Field 数据段:一个数据帧最多可以传输八个有用字节。这八个字节放在数据段里面。

CRC 循环冗余校验(Cyclic Redundancy Check):能检测出错误,是传输安全性的保证。

  • 原理:根据要传输的位(从起始位到数据段)和由ISO 11898-1定义的多项式G(x)计算出一段CRC序列,然后在要传输的位后面加上这个CRC序列。整个多项式对应于要传输的位的倍数。如果多项式的除法得到了余数,则接收器能够检测到传输错误。
ACK应答

应答ACK(Acknowledgement):根据CRC除法的结果,接收器会向发送器回应传输是否正确。如果正确,接收器会在ACK时隙(ACK Slot)期间发送一个显性电平的ACK信号给发送器,来表示应答。注意:在接收器确认之前,ACK的信号之前一直都是隐性电平。只有传输正确之后,才改为显性电平。(看上图中ACK Slot在传输正确和传输错误时不同的电平)。

  • ACK Error 应答错误:应答非常重要,如果接收器不向发送器发送显性电平,那就到不了EOF那一位,也就是说发送失败,报文需重新发送。发送失败又分几种形式: 1. 接受器在ACK时隙期间,除了向发送器发送电平,也会监视总线上的数据,如果数据与发送的数据不一致,那就表示发送失败。2. 在ACK时隙期间,如果发送器检测到ACK位依然是隐性位,那么发送失败。

DEL 界定符(Delimiter):ACK Del始终是隐性传输(图中灰线为逻辑“1”)。

EOF 结束位(End of Frame ):7个隐性位代表数据帧的传输结束。

二、数据传输正确的条件下的应答过程(应答为positive):

发送器发送报文

第一步,发送器(Sender)向总线发送报文,从上图中可以看出,报文从SOF一直传输到了数据段(Data Field)。此时只有发送器和总线上有数据传输。

传输CRC段

第二步,接着传输CRC 段。此时接收器上依然没有数据传输。

ACK时隙发送应答

第三步,到了ACK时隙段,接收器要做出应答。图中两个接收器给出的应答均为传输正确,从上图中可以看出接收器发送的ACK时隙段的信号为显性电平。此时接收器那儿开始有信号传输了。

发送ACK界定符

第四步,发送ACK界定符信号。ACK界定符永远为隐性位。

传输EOF

第五步,传输EOF,数据帧传输完成。

帧间隔ITM发送

第六步,帧间隔ITM发送,整个过程完毕。

三、CAN的其他帧。除了用于数据传输的数据帧之外,CAN还规定了其他的格式,例如远程帧 Remote Frame和错误帧Error Frame。

远程帧Remote Frame: 远程帧是一种帧类型,通过该帧类型可以从任何CAN节点请求用户数据,即数据帧。但是,这些几乎不用于汽车中,因为汽车里的数据基于信息生产者的主动性。

  • 远程帧可以用标准格式和扩展格式传输。
标准远程帧格式
  • 远程帧和数据帧的区别:

除缺少数据字段外,远程帧的结构与数据帧的结构相对应。数据和远程帧之间的区别是使用RTR位(远程传输请求)。RTR显性位表明该帧是数据帧,隐性位表明该帧是远程帧。

  • 作用原理:

1. CAN节点一接收到ID与其自身数据帧的ID相同的远程帧,便会回复相应的数据帧。

2. 对于带有对象存储的CAN控制器,CAN控制器会自动应答远程帧。没有对象存储的CAN控制器必须通知主机,以便它可以启动响应。

3. 一般来说,远程帧的请求后紧跟相应数据帧的请求答案。但是,可以在请求和答案之间推送优先级更高的CAN消息。

错误帧 Error Frame:错误帧可用于发信号通知在通信过程中发现的错误。错误帧的传输伴随正在进行的消息传输的终止。

来源:所有图均来源于Vector官网 https://elearning.vector.com/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343