×
接口总线驱动 > 总线 > 详情

CAN和DeviceNet总线

发布时间:2020-05-16 发布时间:
|
      DeviceNet的数据链路层完全根据CAN规范和CAN控制器芯片实际特性来定义。CAN规范定义了两种总线状态,“显性”(逻辑0)和“隐性”(逻辑1)。任何发送器都可以将总线驱动为“显性”状态。没有发送器处于显性状态时,总线只能是隐性状态:

  CAN定义了四种类型的帧:
  l 数据帧 l 远程帧
  l 超载帧 l 出错帧 
  DeviceNet使用数据帧传送数据。远程帧在DeviceNet中没有被使用,超载帧和出错帧则用于例外情况的处理。数据帧格式如图所示。
  
  较高优先权的数据取得总线通信权
  同以太网类似,DeviceNet在总线空闲时任何节点都可以尝试发送,这提供了网络固有的点对点的通信能力。当两个或多个节点同时想要访问网络时,非破坏性逐位仲裁机制会解决潜在的冲突,而不会损失数据或浪费带宽。比较而言,以太网所使用的冲突检测器,会导致丢失数据和带宽的浪费。发生冲突的两个节点必须回退并重新发送数据。  
  
  CAN使用唯一的、非破坏性逐位仲裁机制。CAN的这一特性使得在解决总线冲突(决定“胜者”时,不会因为要求优先权高的节点重发数据而损失总线的吞吐能力。

  CAN使用逐位仲裁的方法解决冲突。CAN网络上所有接收器通过一个帧的起始位(由隐性转变为显性)同步。标识符和RTR(远程传送请求)位一起组成仲裁区,仲裁区是为了便于媒体访问。DeviceNet不使用RTR位,因此总线访问优先权也不将其考虑在内。当设备进行发送时,它要监视(接收)自己发送的内容,以确定两者是否一致,从而可以在发送时进行检测。在节点发送仲裁区时,如果发送了一个隐性位同时却接收到一个显性位,它就停止发送。同时进行发送的两个节点中,仲裁的胜者是具有较低值的11位标识符的节点。CAN还规定了具有29位标识符的数据帧格式,但DeviceNet没有使用该格式。 

  控制区包括两个固定位和一个4位的长度区。长度区可以是0-8中的任一个数字,表示数据区中的字节数。0-8字节的数据长度对于具有少量但必须频繁交换I/O数据的低端设备来说很理想。同时8个字节使简单设备可以灵活地发送诊断数据,或向驱动器发送速度基准和加速度值。
  
  CRC校验区是循环冗余校验字,CAN控制器用它来检测帧错误。校验字通过对它前面的位进行计算得到。ACK应答中的显性位表明除了发送者以外至少有一个接收器接受到报文。
  CAN使用包括CRC和自动重试在内的多种错误检测和故障限制方法。这些对应用来说高度透明的方法,可以防止故障节点破坏(中断)网络。
 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
高速串行总线技术发展与应用分析