• 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的基础上的

  • 相关阅读:
    python基础学习(九)
    python基础学习(八)
    python基础学习(七)
    python基础学习(六)
    python基础学习(五)
    python基础学习(四)
    python基础学习(三)
    mysql-binlog server的实现
    percona-toolkit常用工具
    Linux下如何快速定位系统瓶颈在哪里
  • 原文地址:https://www.cnblogs.com/beiyhs/p/14534033.html
Copyright © 2020-2023  润新知