CAN总线

 

         CAN协议中对它使用的CAN_High及CAN_Low表示的差分信号做了规定,如下图。以高速CAN协议为

例,当表示逻辑1时(隐性电平),CAN_High和CAN_Low线上的电压均为2.5v,即它们的电压差VH-VL=0V;

而表示逻辑0时(显性电平),CAN_High的电平为3.5V,CAN_Low线的电平为1.5V,即它们的电压差为

VH-VL=2V。

    例如,当CAN收发器从CAN_Tx线接收到来自CAN控制器的低电平信号时(逻辑0),它会使CAN_High输

出3.5V,同时CAN_Low输出1.5V,从而输出显性电平表示逻辑0。

       在CAN总线中,必须使它处于隐性电平(逻辑1)或显性电平(逻辑0)中的其中一个状态。假如有两个CAN

通讯节点,在同一时间,一个输出隐性电平,另一个输出显性电平,类似I2C总线的"线与"特性将使它处于

显性电平状态,显性电平的名字就是这样来的,即可以认为显性具有优先的意味。

     由于CAN总线协议的物理层只有1对差分线,在一个时刻只能表示一个信号,所以对通讯节点来说,CAN

通讯是半双工的,收发数据需要分时进行。在CAN的通讯网络中,因为共用总线,在整个网络中同一时刻只

能有一个通讯节点发送信号,其余的节点在该时刻都只能接收。

 

 

                      

 

 

  

 

      CAN2.0A 是CAN协议的PART A部分,此部分定义了11bit的标识区 。 
      CAN2.0B 是CAN协议的扩展部分,也叫PART B,定义了29bit的标识区,其它部分与CAN2.0A一样。  
      CANOpen是基于CAN协议的应用层协议,可以理解为用户层,即规定了用户、软件、网络终端等之间

用来进行信息交换的约定!而CAN定义了物理层和数据链路层,而CANOpen与DeviceNet一样,只定

义了OSI模型的第七层。  

     CAN2.0A/B是CAN标准的两个部分,只要CAN芯片支持CAN2.0B,则都可以兼容通讯,而CANOpen

是上层协议,建立在CAN的基础上的

 

posted @ 2021-03-14 20:41  北有寒山  阅读(1229)  评论(0编辑  收藏  举报