码迷,mamicode.com
首页 > 其他好文 > 详细

can总线

时间:2019-10-26 19:00:46      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:内容   填充   五个   strong   idt   其它   状态   targe   baidu   

先说说差分信号:

下面内容来自百度

差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相同,相位相反。在这两根线上的传输的信号就是差分信号。信号接收端比较这两个电压的差值来判断发送端发送的逻辑状态。在电路板上,差分走线必须是等长、等宽、紧密靠近、且在同一层面的两根线。

技术图片

 

 

 简单的说,就是两条线之间的电压差为0时,表示高电平1(隐性),电压差是一个正数时,表示低电平0(显性)。

 

 

 

位填充:

技术图片

因为can的位比较多,比较长,为防止出错,所以每隔五个相同的位后面,会自动加入一个相反的位

 

 

 

can协议帧格式

     帧             帧用途
数据帧        用于发送单元向接收单元传送数据的帧。
遥控帧        用于接收单元向具有相同 ID 的发送单元请求数据的帧。
错误帧        用于当检测出错误时向其它单元通知错误的帧。
过载帧        用于接收单元通知其尚未做好接收准备的帧。
帧间隔        用于将数据帧及遥控帧与前面的帧分离开来的帧。

 

技术图片

 

 报文格式又两种:

  11位的是标准的,29位是扩展的

 

最前面SOF帧起始,当这位为0时,表示要开始传送数据了;

 

接下来的11位是仲裁段,相当于优先级,当两条报文同时发过来时,总线根据仲裁的优先级选择先读取谁;

 

后面是1位的RTR,该位为1时,远程帧;0是数据帧;

 

下面1为的IDE,用来区分标准帧(0)和扩展帧(1);

 

r1,r0为保留位;

 

控制段最后的DLC,是表示后面紧跟着的数据当中的字节长度;

 

后面64位的数据段中存入要发送的内容;

 

和IIC USART等协议类似,也要有一个校验位,can中就是CRC,循环冗余校验码,15位;后面跟着1位的DEL,界定符,上面提到的位填充,到这里就停止了;

 

后面也有一个ACK应答位,以及ACK的界定符DEL 固定为1;

 

下面7个连续的隐性位1,EOF表示本次报文包这里结束了;

 

后面其实还有3位隐性的ITM,表示总线现在已经空闲。

 

can总线

标签:内容   填充   五个   strong   idt   其它   状态   targe   baidu   

原文地址:https://www.cnblogs.com/qifeng1024/p/11744021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!