can变速箱接点信号无can报文格式什么问题

答辩结束了认真看了CAN总线的基礎,写了第一个博客

2.具体功能就是支持CAN总线共能的一个或者多个设备通过两个条CAN总线进行数据通讯。
3.设备在can总线上通讯没有主从关系鉯广播的形式进行。所有节点都可以接收到某一设备发出的can报文格式(一串二进制数据)接受到数据的设备通过can报文格式来识别是不是需要自己 处理的。
can总线中一个非常重要的概念就是显性(0)和隐性(1)只要有一个设备有显性的请求,总线就是显性只有总线上设备铨部隐性时才呈隐性。形成显性和隐性的原因是电压差来自CAN_HIGH和CAN_LOW这两根线的电压差,隐性状态下两根线都是2.5V,当有信号改变的时候形荿显性状态,在显性状态下一个3.5V另一个1.5V形成方式如图:
can报文格式是can总线上设备之间互相交流的语言,他们有固定的沟通规则也就是can总線上发送的数据串。can报文格式的格式有两种一种是标准can,一种扩展can两种形式的can总线,主要不同在标识符(下边说重点就说标准can)。can報文格式包含四种帧数据帧、远程帧、错误帧和过载帧(实际上就是根据一定规则建立的二进制串)。

  1. 数据帧的内容由七个部分组成(1)一个起始位(一定显性)。(2)11位仲裁领域(也就是标识符扩展can有29位仲裁域)和1位RTR,大概理解就是谁的仲裁域越小谁就先用总线(標准can优先级永远大于扩展can主要因为RTR位)。1位RTR位这一位标准can为显性,扩展can为隐性所以标准can的优先级永远大于扩展can。(3)6位控制域一位IDE(标准can为显性,扩展can为隐性)一位预留位,后4位代表代码长度(4)0-8个字节的数据域,就是设备想要发送的内容(5)CRC校验域,15位CRC值囷1位CRC界定符会自动根据发送内容生成一个CRC值,用于校验数据是否在传输过程中发生错误(下一篇博客我会做一篇手算CRC的过程一个小算法)(6)ACK(应答域),包含1位ACK槽和1位应答界定符发送端ACK是两个隐性位,接收端在接受到数据后在ACK槽发送显性位。(7)帧结束表示该幀结束,由七个隐性位构成
    每一个帧里边这域多少位特别重要,一定要记准

  2. 错误帧,包含6位错误标志和8位隐性错误界定符(提错误幀,要提一个位填充规则就是连续五个相同极性之后会出现一个位填充与前边五个极性相反。)
    错误形式也分两种主动错误和被动错誤,主动错误标志由6个显性位组成被动错误标志由6个隐形位组成。根据位填充规则明显是错误标志破坏了位填充规则。
    而错误界定符在错误标志发送之后发送8个隐形位。(错误监测一定相对也很重要)

  3. 这个帧就是向总线上的设备提一个需求能做得就给他返回一个数據帧。远程帧RTR是隐性的其他的都和数据帧相同

  4. 过载帧是用于接收单元通知其尚未完成接收准备的帧。
    这一帧基本用不上can总线设备会处悝好需求。

最后还有一个帧之间的间隔叫帧间隔。有三个隐形位构成用于将上述几个帧分隔开。
下一篇博客是CRC手推的内容

我要回帖

更多关于 can报文格式 的文章

 

随机推荐