一条CAN报文到底有多少位?

最新更新时间:2017-06-09来源: 互联网关键字:CAN  报文  数据帧 手机看文章 扫描二维码
随时随地手机看文章

CAN-bus总线是应用最广泛的现场总线之一,而很多非常熟练的CAN工程师,面对一条CAN报文到底有多少位的问题时,却不能非常准确地回答。今天我们就从最基本的帧格式来解惑一条CAN报文的到底有多少位。

CAN报文帧分为几种呢?CAN-bus通信帧共分为数据帧、远程帧、错误帧、过载帧和帧间隔。而数据帧和远程帧又有标准帧和扩展帧两种。其帧类型以及用途如表 1所示:


表 1  帧类型及用途

1.png


数据帧

数据帧从结构上看分为7段,分别为起始段、仲裁段、控制段、数据段、CRC校验段、ACK应答段、帧结束段。如图1:


2.png

图 1  标准数据帧跟扩展数据帧结构图


  • 帧起始段:该段由单个显性位构成,在总线空闲时才允许发送,所有节点必须同步于开始发送的数据帧的起始位;


  • 标准帧仲裁段:标准帧的仲裁段由11位ID码和一个显性位RTR码组成,RTR码为远程帧标识位;


  • 扩展帧仲裁段:扩展帧的仲裁段由29位ID码、一位显性的SRR码、一位隐性的IDE码和一位显性的RTR码组成;


  • 标准帧控制段:标准帧的控制段由单位显性的IDE、保留位r0和4位数据长度代码DLC组成,DLC数据段采用BCD编码;


  • 扩展帧控制段:扩展帧的控制段由两个保留位r1和r0和4位的DLC数据段组成,r1和r0都为显性填充,接收时无论保留位是显性还是隐性都没有影响;


  • 数据段:一个数据段为8个字节;


  • CRC校验段:CRC校验段由15位的校验码和1个隐性位填充的CRC界定符组成,CRC校验范围为帧起始、仲裁段、控制段和数据段;


  • ACK段:ACK段由ACK码和一个隐性位ACK界定符组成,发送节点在ACK段发送两个隐性位,接收节点在收到的报文ACK前面的帧格式没有错误时,他将发出ACK码为显性位的报文。


  • 帧结束段:由7个连续的隐性位组成。


远程帧

远程帧帧格式跟数据帧类似,也分为标准帧跟扩展帧,但是远程帧属于被请求发送节点发送的报文,而数据帧是发送节点的报文。如图 2,远程帧没有数据帧。


3.png

图 2  标准远程帧和扩展远程帧的结构图


参照数据帧可了解远程帧的结构,但是两者之间也有不同:

  • SRR段和RTR段:数据帧是显性电平,远程帧是隐性电平;

  • 节点性质:数据帧是发送节点发出的报文格式,远程帧是被请求发送的节点发送的报文格式;

  • CRC校验范围:数据帧是帧起始、仲裁段、控制段和数据段,而远程帧则是帧起始、仲裁段和控制段。


了解了数据帧跟远程帧的标准报文格式后,有些人可能会问了,我有时看到的报文为什么跟你的标准格式的位数不一样呢?


位填充

CAN-bus属于异步串行通信,这种通信方式没有时钟线,所以各个收发器的时钟不可能完全一致,时钟不一致就会造成偏差。所以为了解决这个问题,CAN总线采用同步的方式来校准时钟。CAN-bus规定信号的跳变沿为同步信号,只要信号发生变化,节点时钟就被同步一次。CAN-bus还规定同步的最大周期为5个位。


但是问题来了,要是出现连续性的5个位甚至更长时间没有边沿跳变(例如数据段全为0x56),那该如何解决呢?CAN-bus对这种情况又进行了规范,如果传输的位信号连续5个位是相同的,就要插入一个电平相反的位,这个就是CAN-bus的“位填充”规则。如图 4。


4.png

图 4  位填充规则


0x00和0x55

由于位填充规则的存在,所以就存在即使两个帧都是标准数据帧,但发送不同ID或者数据段的时候报文时间会不同,图5为1M波特率下ID跟数据都为0x00的标准数据帧报文。原本108个位的标准数据帧的真实的报文时间为123us。


5.png

图 5 标准数据帧0x00报文


而0x55的标准数据帧报文格式则如图 6:ID为555H,数据段为55H,报文没有出现连续的相同位,所以填充位最少,8位的数据段位时间为标准的8us,全报文时间为108us。


6.png

图 6  标准数据帧0x55报文


下表给出了标准数据帧、扩展数据帧、标准远程帧、扩展远程帧四种帧类型在发送不同ID和数据时位时间的差别。


表 2  不同ID和数据位填充位数不一样

7.png


通过CAN-Scope总线分析仪的报文接收和示波器,可以将每一帧报文跟波形做一一对应,快速分析总线上的报文时间和波形情况,实现CAN总线的快速故障定位和干扰排除。


关键字:CAN  报文  数据帧 编辑:千里千寻 引用地址:一条CAN报文到底有多少位?

上一篇:ADI公司扩充RadioVerse™无线技术和设计生态系统
下一篇:ST先进芯片组为用户提供提供新的100W以太网供电标准

推荐阅读最新更新时间:2023-10-12 22:59

基于SJA1000的CAN总线接口设计
一、SJA1000简介   SJA1000是一种独立的CAN控制器,用于移动目标和一般工业环境中的控制器局域网络(CAN)。它是Philips公司早期CAN控制器PCA82C200(BasICCAN)的替代品,而且增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新功能的CAN2.0B协议。   SJA1000与微处理器的接口主要由8根数据和地址分时复用线完成:AD0~AD7、ALE/AS、、/E、、、MODE和,其中MODE为接口方式选择信号,可设置成Intel方式或Motorola方式。区别在于:Intel模式下,处理器对SJA1000写时,用、作为读、写数据信号,ALE下降沿锁存地址(此时地址信号要保证基本
[嵌入式]
基于CAN的波音787航电设备及飞行控制台面板检测
  挑战:   开发CAN总线测试系统,与智能化航空电子设备的控制面板进行交互、显示开关状态、控制面板的点亮功能,同时报告面板的状态数据,如部件编号和序列号等。   解决方案:   使用NI公司的LabVIEW进行快速开发,NI PXI-CAN板卡配以即时可用的NI LabVIEW 驱动库,同时使用NI TestStand对生产测试步骤进行管理并且进行自动报表生成。   我们Korry Electronics 公司需要一个解决方案,来测试用在新型波音787飞机飞行控制台上的一系列控制面板。我们需要满足该项目苛刻的时间表--只有16 个月,比以前任何波音飞机的开发项目都要短。787系统的核心采用了开放式构架,因此将比
[嵌入式]
基于CAN总线的胎压监测系统在重型车辆上的应用
引言 TPMS在重型车辆上的应用在国内外的汽车电子" 汽车电子领域起步比较迟缓,事实上重型车辆由于载重量较大,发生爆胎的机率更高。现在汽车安全产品种类繁多,以致相互通信复杂且资源浪费,本文就重型车辆上整合TPMS与汽车行驶记录仪等汽车安全配件,提出一种全新的实现方法,以一个电控单元统一协调管理取代以往多个汽车安全用品单独控制,形成汽车安全电控系统。整个汽车安全电控系统由胎压监测系统、倒车雷达装置、汽车行驶记录仪等组成,所有装置均挂接于CAN总线上,共享仪表盘显示。其中重点介绍TPMS的实现原理。接收显示部分的软件由源码公开的微型实时操作系统uCOS-II来管理,使整个系统的实时性,可靠性进一步提高。 1 方案选择 大卡车
[单片机]
基于<font color='red'>CAN</font>总线的胎压监测系统在重型车辆上的应用
基于CAN总线的流光放电烟气脱硫电源集散控制系统的设计
    摘要: 针对流光放电烟气脱硫电源难以产业化的问题,提出了基于CAN总线的集散控制的解决方法,并介绍了该系统的设计思路和实现过程。     关键词: 流光放电 烟气脱硫 CAN总线 集散控制系统 烟气脱硫是当今世界控制SO2排放的主要途径。工业发达国家大多数采用石灰石湿法。我国曾采用氨酸法、尾部增湿法等多种方法脱硫,目前也尝试要用石灰石湿法,但至今没有找到适合我国国情的经济而有效的途径,因为这些方法皆受造价、运行费、吸收剂来源和终产物出路等问题的困扰。近来年利用流光放电进行脱硫的研究取得了很大进展,低能耗是这项技术的最大优点。但是目前的研究都还触及电源的实用化和反应条件优化等关键问题,离产业化还有很大
[应用]
嵌入式CAN总线控制器与DSP的接口
现场总线是一种开放式、 数字化、多点通信的控制系统局域网络, 是当今自动化领域中最具有应用前景的技术之一。CAN总线是现场总线中的应用热点,CAN总线支持分布式控制和适时控制的串行通信网络。   由于CAN总线具有通信速率高、开放性好、报文短、纠错能力强以及控制简单、扩展能力强、系统成本低等特点,越来越受到人们的关注。基于CAN总线的CAN控制器具有完成CAN总线通信协议所要求的全部必要功能,因此CAN总线控制器与其它微处理器的接口成为设计CAN总线系统的首要工作。   当前已有一些微处理器将CAN控制器嵌入到系统之中,成为在片的微处理器,例如P8XC592 (其内核即为80C51的CPU),MCS96系列中的 87
[嵌入式]
基于汽车CAN总线的老化测试系统的设计
0 引言 汽车上用的电子设备的可靠工作与优良性能关系者驾驶者的生命安全。车用电子设备出厂前要求对设备内部电路板进行长时间老化测试,以检测电路板在高温环境和各种输入信号条件下,是否仍正常工作。只有经过老化测试的电路板才能出厂。由于需要老化测试的电路板数量巨大,要求该系统能同时老化测试许多块被检测电路板,因此设计了本老化测试系统。整个老化测试由 1个通信模块、 10个测试模块、1个温控模块及上微机软件构成。本老化检测系统的系统结构图如图 1所示。   图 1 系统结构图在本系统中,每个检测模块最多可同时检测 10块电路板,共有 10个检测模块,因此,整个系统在一次老化检测过程可以同时检测100块电路板。检测模块将检测的数据通过
[嵌入式]
CAN智能节点的设计
摘要:CAN总线是一种流行的实时性现场总线,文中提出了一种基于MSP430单片机,并以MCP2510为CAN控制器的智能节点设计方案,该方案利用MSP430通过标准SPI接口可实现对MCP2510的控制,并能够完全实现CAN总线规范。 关键词:CAN智能节点;MSP430;MCP2510;数据通信 1 引言 CAN总线是控制器局域网(Controller Area Net-work)总线的简称,它属于现场总线范畴,是一种能有效支持分布式控制或实时控制的串行通信网络,它可将挂接在现场总线上作为网络节点的智能设备连接成网络系统, 并进一步构成自动化系统,从而实现基本的控制、补偿、计算、参数修改、报警、显示、监控、优化及控管一
[应用]
CAN总线数据采集系统研究
引言 在工业控制中,为了保证系统的可靠运行,需要检测周围的环境变量(如温度、气压、湿度等)。通常的做法是将分布在各处的传感器采集到的信号通过各自的线路连接到监控中心,这种方式在有效地完成检测任务的同时也造成了线路资源的极大浪费。因此,提出了简化线路布局的要求。CAN(控制器局域网)是串行通信协议,能有效支持高安全等级的分布实时控制,同时在理论上,CAN总线网络内的节点近乎没有限制。基于此,本设计将一种基于数字信号控制器的CAN总线数据采集系统作为一个CAN节点,每一个需要监控的区域放置一个CAN节点,各个节点通过CAN总线与监控中心实施通信。系统总体框图如图1所示。 1 硬件构成 该数据采集系统由两部分构成:控制部分,包
[电源管理]
<font color='red'>CAN</font>总线<font color='red'>数据</font>采集系统研究
小广播
最新电源管理文章
换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved