can总线显性电压隐性_CAN总线基础精华课程系列~第五节~CAN示波器图片

7cb8134f86a8303434aa2de8645b55d8.png

CAN示波器图片

这是一幅来自最普通的ISO 11898 CAN总线(以1 Mbit/s的比特率运行)的图片。收发器是82C251。也就是说,物理层是由ISO 11898指定的类型。

测量在CAN_H(CAN高位)和GND(接地)之间进行。注意,静态和隐性总线电压在2.5 V左右。传送显性位时,电压升高到3.5V左右。

以下是同一个总线,但是测量在CAN_L(CAN低位)和GND(接地)之间进行:

这是另一个以125 kbit/s比特率发送的报文。报文的(11位)标识符是300(十六进制值为12c)。如果仔细察看,您应该能够识别报文中前面的位。

这是一幅更复杂的图片。它显示与上面例子相同的报文。仍然是11位标识符300,比特率仍然是125 kbit/s,但是CAN总线上没有端接。CAN线缆是短距离的普通带状线缆。

那么,发生了什么情况?这里,比特率是125 kbit/s,所以一个位的时间是8微秒。

首先,传送器发送一个起始位。这是一个逻辑’0′,也就是一个显性电平。

然后传送标识符。十进制300的十六进制值是12c,或者二进制表示是001 0010 1100。前两个0会顺利传送。这解释了图片中看到的24微秒的显性电平。

然后应该传送一个’1′。但是因为总线没有端接,所以斜率不是预期的结果。传送节点现在将认为它在总线上看到的是’0′。

因为这种情况发生在仲裁阶段,所以传送器将停止传送 – 它认为有其它节点正在传送。总线现在将变为隐性状态(因为实际上没有任何节点在传送)。

在6个隐性位之后,传送器和接收器都将检测到数据错误,然后开始进行错误处理。这时,已经经过了80微秒(一个起始位、两个’0′、一个误解的位和六个隐性位,总共10个位,等于80微秒)。

检测到数据错误的所有节点现在将开始传送一个错误帧。这种情况下,因为在捕获到上方图片之前产生了许多错误,错误帧为被动型,所以传送器是错误被动型。被动型错误帧和主动型错误帧相似,但是使用隐性电平进行传送,所以在总线上不可见。

被动型错误帧持续6位的时间。

然后,所有节点等待一个8个隐性位的时长(称为错误分隔符)。

然后,所有节点等待一个3个隐性位的时长(称为间歇)。

对以上时间求和,结果是1+6+6+8+3 = 24个隐性位 = 192微秒(参考图片)

教训:始终端接CAN总线!反射不一定有害,但是损坏的边缘形状将破坏通信。

这里是同一个CAN总线在另一个时间刻度中的情况:

CAN总线大约2分米(8英寸)长。信号的下冲和振铃均可见,但是在这种情况中无关紧要。这次,平缓的上升斜率是问题所在。

这里是相同的设置,但是这次传送器和接收器都是错误主动型:

发生了什么情况?

如上图所示,传送了三个’0′(花费24微秒),接下去的位被误解,所以传送器认为它已经失去仲裁。

传送器等待6位,然后检测到一个数据错误。误解的位和这6个位花费56微秒。

传送器和接收器现在开始传送错误帧。它是6个显性位(48微秒)。

传送错误帧的节点现在等待8个隐性位。但是,因为上升斜率不对,第一个位被误解。节点将认为这是另一个节点在传送错误帧,所以将忽略它。

当总线回到隐性电平时,所有节点等待8位。

然后是3个隐性位的间歇。

3+9 = 12个位 = 96微秒(如图中所示)。

然后,传送器重新尝试并得到相同的结果。一段时间以后,传送器进入错误被动型状态,并将如前所述那样运行。

这里是另一幅图片。这种设置中,CAN总线上只有一个节点。该节点试图传送一条报文,但是没有其它节点在侦听。

那么,会发生什么情况?

首先,传送器发送整个报文。

传送器期望ACK位槽中填充一个显性电平。但是,因为没有其它节点在侦听,没有任何ACK到达,所以传送器检测到一个确认错误。

然后传送器传送一个被动型错误标志(上图中,尝试发送了几秒钟,所以不再是错误主动型,而是被动型)。

被动型错误标志后面跟随一个错误分隔符和间歇。

因为这个节点尝试发送一个报文但是操作失败,它必须再等待8位才能开始新的传送。这种情况在CAN规范中称为“挂起传送”。

传送节点还必须将其传送错误计数加8。但是,这是CAN规范中的特殊情况,只有当传送器是错误主动型时才会发生。当传送器进入错误被动型时,它不会增加其传送器错误计数(这种情况中),而是会不断重试传送。

所以,上图表示,一条报文被传送,然后短暂停顿(时间为错误标志、错误分隔符、间歇和挂起传送的总和)。然后报文被不断重传…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值