一、什么是CAN协议

电子计算机网络用电子语言来说话,各电控单元必须使用和解读相同的电子语言,这种语言称“协议”,汽车电脑网络常见的传输协议有数种。宝来车装用博世公司产品,数据总线采用CAN协议,这个协议是由福特、Internet与博世公司共同开发的高速汽车通信协议。CAN是Controller Area Network(控制单元区域网络)的缩写,意思是控制单元通过网络交换数据。

二、CAN数据传输系统的优点

数据总线与其他部件组合在一起就成为数据传输系统,CAN数据传输系统的优点是:

①将传感器信号线减至最少,使更多的传感器信号进行高速数据传递。 ②电控单元和电控单元插脚最小化应用,节省电控单元的有限空间。 ③如果系统需要增加新的功能,仅需软件升级即可。 ④各电控单元的监测对所连接的CAN总线进行实时监测,如出现故障该电控单元会存储故障码。

⑤CAN数据总线符合国际标准,以便于一辆车上不同厂家的电控单元间进行数据交换。

三、CAN数据格式

1.名词

1)显性和隐性

显性-0 隐性-1(diff=0)

2)数据帧、远程帧、错误帧、过载帧、帧间隔

数据帧:用于发送节点向接收节点传送数据的帧

远程帧:用于接收节点向具有相同ID的发送节点请求数据的帧

错误帧:用于当检测出错误时向其他节点通知错误的帧

过载帧:用于接收节点通知其尚未做好接受准备的帧

帧间隔:用于将数据帧及远程帧与前面的帧分离开来的帧

3)远程数据请求

通过发送远程帧,一个需要数据的的节点可以请求另一个节点发送相应的数据帧,称为远程数据请求。数据帧和相应的远程帧具有相同的标识符。

2.CAN标准帧与CAN扩展帧格式

数据帧和远程帧都可以使用标准帧格式或者扩展帧格式。

RTR:远程发送请求位,数据帧中为显性,远程帧中为隐性。

SRR:替代远程请求位(在扩展格式中在RTR位置,所以得此名),隐性位。此位可判断出标准帧优先于扩展帧。

IDE:标识符扩展位,标准帧-显性,扩展帧-隐性,表示该帧为标准帧还是扩展帧。

R1、R0:保留位。

DLC:数据长度代码,如下图所示,包括下图中的DLC3、DLC2、DLC1、DLC0:

CRC段:由CAN控制器自动填充。

CRC分隔符:隐性位。

ACK段:2位,由CAN控制器自动填充。包括应答位和应答界定位。应答界定位紧邻帧结束。在应答域中,发送器发出两个隐性位,当接收器正确的接收到有效的报文,该接收器就会在应答位期间,用一显性位填充应答位作为回应,而应答界定位一直保持为隐性。

帧结束:由7个隐性位组成,由CAN控制器自动填充。两种帧格式可出现在同一总线上

3.数据帧

SOF帧开始:数据帧开始的段

仲裁段:该帧优先级的段

控制段:数据的字节数以及保留位的段

数据段:数据的内容,0~8个字节

CRC段:检查帧的传输错误的段

ACK段:确认正常接收的段

帧结束:数据帧结束的段

4.远程帧

通过发送远程帧,作为数据接收器的节点可以发起各自数据源的数据传送请求,即向数据发送器请求发送具有相同ID的数据帧。

远程帧由帧起始、仲裁段、控制段、CRC段、ACK段和帧结束组成。

远程帧没有数据段。

5.错误帧

出错标志有两种:主动(积极)错误标志和被动(消极)错误标志。

主动(积极)错误标志:6个连续的显行位组成。

被动(消极)错误标志:6个连续的隐性位组成,有可能被其他节点的显行位覆盖。

一个错误积极节点如果检测到一个错误条件,会发送一个积极错误标志进行标识。这一错误标志违反了正常的位填充规则(适用于从帧起始到CRC界定符之间的所有场)或破坏了应答场和帧结束场的固定格式,结果是引起其他节点检测到新的错误条件并各自开始发送错误标志,因此,这个在总线上可被检测到的显性位序列是各个节点发出的不同错误标志叠加的结果。该序列的总长度在6~12位之间变化。

一个消极错误节点如果检测到一个错误条件,会试图发送一个消极错误标志进行指示。这个消极错误节点会一直等待6个具有相同极性的连续位,等待从消极错误标志的起始开始,当检测到6个相同极性的连续位时,消极错误标志发送即完成。

错误界定符由8个隐性位组成,错误标志发出以后,每个节点都发出隐性位,并一直监视总线直到检测出隐性位,随后开始发送剩余的7个隐性位。

CAN提供了检测下列错误类型机制:

1)应答错误

2)填充错误

3)CRC错误

4)格式错误

6.过载帧

存在3中过载条件,引起过载标志的发送。

1)接收器要求延迟下一次数据帧或远程帧的到达。

2)在帧间隔间歇场的第一和第二位检测到显性位。

3)如果一个CAN节点在错误界定符或过载界定符的第8位(最后一位)采样到一个显性位,则节点会发送一个过载帧(而不是错误帧)。错误计数器不会增加。

最多可产生2个过载帧来延迟下一数据帧或远程帧。

过载标志由6个显性位组成,其全部形式与积极错误标志一样。过载标志破坏了帧间隔间歇场的固定形式,结果其他节点也检测到一个过载条件,并各自开始发送过载帧。如果在帧间隔间歇场的第3位期间检测到一个显性位,则该位将解释为帧起始。

注意:1)CAN总线的错误帧、过载帧怎么发出,是硬件自己完成,还是要软件实现?

答: 當然是由硬件自動發出,不需要軟件參與。

7.帧间隔

帧间隔用于分割数据帧和远程帧的帧。

数据帧和远程帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、远程帧、错误帧、过载帧)分开。过载帧和错误帧之前没有帧间隔,多个过载帧之间也不是通过帧间隔分开的。

帧间隔包括间歇场、总线空闲场以及可能的暂停发送域。只有刚发送出去前一报文的错误消极节点才需要暂停发送场。

非错误消极节点或者作为前一报文接收器的节点的帧间隔如图。

作为前一报文发送器的错误消极节点的帧间隔如图。

间歇场包括3个隐性位。间歇场期间,所有节点均不允许发送数据帧或者远程帧,他唯一的作用是标识一个过载条件。

注意,如果一个正准备发送报文的CAN节点在间歇场的第三位检测到一个显性位,他将认为这是一个帧的开始,并且在下一位时间,从报文的标识符的第一位开始发送报文,而不再发送一个帧起始位,同时也不会成为报文接收器。

总线空闲周期为任意长度。在此期间,总线空闲,任何需要发送报文的节点都可以访问总线。

一个因其他报文正在发送而被挂起的报文,将在间歇场后的第一位开始发送。此时检测到的总线上一个显性位将被解释为一个帧起始。

暂停发送场是指错误消极节点发送一个报文以后,在开始发送下一个报文或者认可总线处于空闲之前,在间歇场后发出的8个隐性位。如果在此期间一次由其他节点引起的传送开始了,则该节点将成为报文接收器。

四、CAN数据传输系统构成及过程

(1)CAN数据传输系统构成

CAN数据传输系统中每块电脑的内部增加了一个CAN控制器,一个CAN收发器;每块电脑外部连接了两条CAN数据总线。在系统中作为终端的两块电脑,其内部还装有一个数据传递终端(有时数据传递终端安装在电脑外部)。

(2)各部件功能

①CAN控制器作用是接收控制单元中微处理器发出的数据,处理数据并传给CAN收发器。同时CAN控制器也接收收发器收到的数据,处理数据并传给微处理器。

②CAN收发器 是一个发送器和接收器的组合,它将CAN控制器提供的数据转化成电信号并通过数据总线发送出去,同时,它也接收总线数据,并将数据传到CAN控制器。

③数据传递终端 实际是一个电阻器,作用是避免数据传输终了反射回来,产生反射波而使数据遭到破坏。

④CAN数据总线 用以传输数据的双向数据线,分为CAN高位(CAN-high)和低位(CAN—low)数据线。数据没有指定接收器,数据通过数据总线发送给各控制单元,各控制单元接收后进行计算。为了防止外界电磁波干扰和向外辐射,CAN总线采用两条线缠绕在一起,两条线上的电位是相反的,如果一条线的电压是5V,另一条线就是0V,两条线的电压和总等于常值。通过该种办法,CAN总线得到保护而免受外界电磁场干扰,同时CAN总线向外辐射也保持中性,即无辐射。

(3)数据传递过程

例如:发动机电脑向某电脑CAN收发器发送数据,该电脑CAN收发器接收到由发动机电脑传来的数据,转换信号并发给本电脑的控制器。CAN数据传输系统的其他电脑收发器均接收到此数据,但是要检查判断此数据是否是所需要的数据,如果不是将忽略掉。

打开APP精彩内容

点击阅读全文

can是什么时候处于显性_can总线怎么传输数据格式过程分析相关推荐

  1. can是什么时候处于显性_CAN总线边沿时间标准是什么?

    CAN总线边沿时间会影响采样正确性,而采样错误会造成不断错误帧出现,影响CAN总线通信.那么CAN总线边沿时间标准是什么?边沿时间如何测量呢? 一.CAN测试边沿时间意义 目前在国内汽车电子行业没有明 ...

  2. can是什么时候处于显性_can总线通信原理 显性

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  3. can通道采样频率_CAN总线基础(上)

    概述 汽车电子设备的不断增多,对汽车上的线束分布以及信息共享与交流提出了更高的要求.传统的电气系统往往采用单一连接的方式通信,这必将带来线束的冗余以及维修的成本的提高. 传统的单一通信的对接方式,已经 ...

  4. can总线配置读入是什么意思_CAN总线基础知识学习笔记

    依照瑞萨公司的< CAN 入门书>的组织思路来学习 CAN 通信的相关知识, 并结合网上相关资料以及学习过程中的领悟整理成笔记.好记性不如烂笔头,加油! 1 CAN 的一些基本概念 1.1 ...

  5. vector can通信源码_CAN总线IMU在自动驾驶安全控制中的应用

    CAN(Controller Area Network)作为一种成熟可靠的车载设备通信标准,在过去30多年中几乎应用于所有的客车和重型车辆,通过低成本的物理层和稳定可靠的传输层可实现总线上的消息传输. ...

  6. 已知总线的时钟频率,总线宽度,总线的传输周期,求总线数据传输率

    例3.1假定总线的时钟频率为100MHz,总线的传输周期为4个时钟周期,总线宽度为32位,试求总线的数据传输率.若想提高一倍的数据传输率,可采取什么措施? 方法一:1个时钟周期为1/100MHz=0. ...

  7. can总线短距离不用双绞线_CAN 总线(一) 物理层—屏蔽双绞线

    1.物理层一般要求 1.1 物理层 物理层实现网络中电控单元(ECU)的电连接.ECU 的数目限制于总线线路的负载承 受能力.根据本部分的电气参数定义,在特定网段上ECU 的最大数目定为30. 1.2 ...

  8. can总线短距离不用双绞线_can总线(一)物理层—屏蔽双绞线

    1 1 .物理层一般要求 1 . 1 物理层 物理层实现网络中电控单元( ECU )的电连接. ECU 的数目限制于总线线路的负 载承 受能力.根据本部分的电气参数定义,在特定网段上 ECU 的最大数 ...

  9. can差分线阻抗_CAN总线冷知识—边沿台阶是怎么来的?

    你了解CAN总线波形吗?你知道是什么因素造成CAN信号不稳定的吗?本文将带你探究影响CAN波形稳定的罪魁祸首--边沿台阶. 阻抗匹配是指信号源或者传输线跟负载之间达到一种适合的搭配,阻抗匹配主要为了调 ...

最新文章

  1. CIO职能向流程演进
  2. 狂宴终有尽时,留一份清醒一份醉 比特币现金BCH凸显投资价值
  3. 清华教授转述:读博6年未毕业被认定为自控力不够,或将影响个人贷款额度
  4. javascript 本地存储(cookies、sessionStorage和localStorage解释及区别)
  5. OpenJDK8在LINUX上,输入法候选框无法正确定位
  6. Zookeeper案例之分布式全局唯一ID生成
  7. 黑马程序员全套Java教程_Java基础入门视频教程零基础自学Java必备教程视频讲义(3)
  8. [译]Selenium —— 怎样使用FireBug和FirePath
  9. c#练习——简单的文字编辑器
  10. 极大似然估计法(Maximum likelihood estimation, MLE)
  11. 如何查看网站是是什么服务器_什么是网站
  12. H3C模拟器2012鼎杰终极版的基本使用教程
  13. JavaWeb:HTML
  14. Photoshop去除图片水印
  15. 数字标牌行业嵌入式主板方案
  16. 20144306《网络对抗》MAL_恶意代码分析
  17. 机器人门禁控制盒怎么接线方法_门禁系统接线方法
  18. 基于HAL库创建Keil工程模板
  19. 【pycharm和anaconda安装教程】
  20. gprs modem java_gprs modem 上网

热门文章

  1. Redis 笔记(05)— hash 类型(设置获取单个hash值、判断hash键是否存在、设置获取多个hash值、获取所有hash的键、获取所有hash的值、删除hash指定键)
  2. GPU编程和流式多处理器
  3. Json文件解析(下
  4. 目标检测数据集The Object Detection Dataset
  5. Redis安装与卸载
  6. Python:Resquest/Response
  7. centos7下没有iptables进行安装或更新
  8. 微信小程序cover-view 与cover-image
  9. Android studio更新后出现警告:Warning:The `android.dexOptions.incremental` property is deprecated and it has
  10. debug.keystore not found for signing config 'debug'.