• can通信注意事项


    remarks
    1、对于CAN来说,0为显性,1为隐性。所以当对不同的ID号来进行仲裁时,ID号越小,优先级越高。对于标准数据帧和扩展数据帧的仲裁,如下图黄色所示,标准帧中的RTR为0,SRR中为1,所以标准帧的优先级更高(数据帧分为标准帧/扩展帧,具体可参考其ID的帧格式中bit位来区分)。
    2、对于ID号越小,优先级越高分析:①、根据can标准数据帧格式,起始位后为仲裁段(ID段),所以ID的比较是从数据的MSB位开始比较,即高位开始比较,例如ID为0x01和0x02,那么0x01的bit1位是显性电平,故0x01优先级高;②、两个节点PK,1bit位即决出优先级,参考图仲裁段,若那个节点首先出现隐性电平1,则会失去对总线的占有权,进入接收状态;
    2.1、仲裁是发生在节点与节点之间的节点与节点之间同时竞争can总线的使用权;两个节点进行仲裁:是因为它们同时向总线发出数据帧,同一时间,同一bit位(同步时),遵循线与关系;
    2.2、 can通信是异步半双工,总线上同一时刻只能有一个信号(高电平/低电平), 在整个网络中的同一时刻只能有一个节点发送,其余都只能接收(广播形式);
    2.3、同can网络,多节点间交互在软件上打包发送各节点要错开时间(设为t1 ≥ 1帧数据传输花费时间);单节点自身软件上的多数据帧发送,理论上不存在仲裁,由自身can控制器+收发器硬件管理限制,也可设个间隔时间(设为t1 ≥ 1帧数据传输花费时间),保证上一帧发送且被接收完再发下一帧
    在这里插入图片描述
    在这里插入图片描述
    3、can和canOpen的区别,can只定义了物理层(数据链路层),但是用户层一般都是不同厂家不同用户自定义的协议层(应用层/自定义协议内容),canOpen在can基础上应该是官方组织规定的用户层(例如数据帧中仲裁段含义不同等等);
    4、可以参考一下野火的课件;
    5、差分总线;闭环高速短距离,比特率≤ 1Mbps , ≤40m,总线两端各串联一个120Ω电阻;开环低速长距离,比特率≤ 125kbps , ≤1km,两根总线独立,各独自串联一个2.2KΩ电阻;
    6、用户协议层标准帧ID最大 0x7FF,11bit;
    7、标准帧中crc校验计算一般由硬件完成,不需要软件调用crc函数进行校验,出错时的处理则由软件控制最大重发数;
    8、数据段0~8byte,MSB先行;
    9、控制段位于仲裁段与数据段间,控制段中的DLC(data length code,4bit)段存放了数据段含有多少个字节数据,0~8个;
    10、帧的起始位,1bit Low电平;帧结束,7bit High电平;

  • 相关阅读:
    Sylvester矩阵、子结式、辗转相除法的三者关系(第二部分)
    香港服务器怎么解除被封ip?
    论文阅读——Detection Hub(cvpr2023)
    如何快速实现根因分析/业务大盘
    Windows10安装redis(图文教程)
    【sqlmap工具的使用】
    1018 Public Bike Management (动规暴力美学)
    Linux下安装Mysql5.7,超详细完整教程,以及云mysql连接
    【MySQL篇】第三篇——表的操作
    看着2022年世界杯,我无比怀念98世界杯
  • 原文地址:https://blog.csdn.net/SUR0608/article/details/127952356