can总线研究

来源:互联网 发布:免费手机文档编辑软件 编辑:程序博客网 时间:2024/06/07 01:37

      控制器局域网CAN( Controller Area Network)属于现场总线的范畴,是一种有效支持分布式控制系统的串行通信网络。

      第一,“载波监测,多主掌控/冲突避免
      这就允许在总线上的任一设备有同等的机会取得总线的控制权来向外发送信息。如果在同一时刻有两个以上的设备欲发送信息,就会发生数据冲突,CAN总线能够实时地检测这些冲突情况并作出相应的仲裁而不会破坏待传之信息;
      第二,信息报文在传送时不是基于目的站点地址;
      这就允许不同的信息以“广播”的形式发送到所有节点并且可在不改变信息格式的前提下对报文进行不同配置;
      第三,CAN总线是一种高速的,具备复杂的错误检测和恢复能力的高可靠性强有力的网络。

      (1)报文(Message)

      总线上的数据以不同报文格式发送,但长度受到限制。当总线空闲时,任何一个网络上的节点都可以发送报文。

    (2)信息路由(Information Routing)

   在CAN中,节点不使用任何关于系统配置的报文,比如站地址,由接收节点根据报文本身特征判断是否接收这帧信息。因此系统扩展时,不用对应用层以及任何节点的软件和硬件作改变,可以直接在CAN中增加节点。

  (3)标识符(Identifier)

      要传送的报文有特征标识符(是数据帧和远程帧的一个域),它给出的不是目标节点地址,而是这个报文本身的特征。信息以广播方式在网络上发送,所有节点都可以接收到。节点通过标识符判定是否接收这帧信息。

    (4)数据一致性
      应确保报文在CAN里同时被所有节点接收或同时不接收,这是配合错误处理和再同步功能实现的。
    (5)位传输速率
      不同的CAN系统速度不同,但在一个给定的系统里,位传输速率是唯一的,并且是固定的。
       (6)优先权
       由发送数据的报文中的标识符决定报文占用总线的优先权。标识符越小,优先权越高。
    (7)远程数据请求(Remote Data Request)
      通过发送远程帧,需要数据的节点请求另一节点发送相应的数据。回应节点传送的数据帧与请求数据的远程帧由相同的标识符命名。
       (8)仲裁(Arbitration)
       只要总线空闲,任何节点都可以向总线发送报文。如果有两个或两个以上的节点同时发送报文,就会引起总线访问碰撞。通过使用标识符的逐位仲裁可以解决这个碰撞。仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧。在仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送,如果发送的是“隐性”电平而监视到的是“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。
      (9)总线状态
      总线有“显性”和“隐性”两个状态,“显性”对应逻辑“0”,“隐性”对应逻辑“1”。“显性”状态和“隐性”状态与为“显性”状态,所以两个节点同时分别发送“0”和“1”时,总线上呈现“0”。CAN总线采用二进制不归零(NRZ)编码方式,所以总线上不是“0”,就是“1”。但是CAN协议并没有具体定义这两种状态的具体实现方式。
     (10)故障界定(Confinement)
     CAN节点能区分瞬时扰动引起的故障和永久性故障。故障节点会被关闭。
     (11)应答
       接收节点对正确接收的报文给出应答,对不一致报文进行标记。
     (12)CAN通讯距离最大是10公里(设速率为5Kbps),或最大通信速率为1Mbps(设通信距离为40米)。
     (13)CAN总线上的节点数可达110个。通信介质可在双绞线,同轴电缆,光纤中选择。
   (14)报文是短帧结构,短的传送时间使其受干扰概率低,CAN有很好的校验机制,这些都保证了CAN通信的可靠性。
原创粉丝点击