如何保证CAN数据的正确性

如何保证CAN 数据的正确性

CANbus 总线协议以高稳定性,高容错率而著称于世,然而仍有很多用户在使用的时候担心CAN会接受到错误的信息,在数据里增加了CRC校验的部分,这种做法是否有必要?CAN 会收到错误的数据吗?

信息的传递,古往今来都是人类无比关注的一个问题。从最原始的肢体语言到高端的电子信号,信息传达的方法五花八门。而对于信息安全的追求也是从古至今未有变过,我国西周时期的《太公兵法》就有过“阴符”“阴书”的设计来保证信息的安全。

图 1让人心忧的信息安全

而在我们的工业生产中,为了保证信号的正确传递的方法更是五花八门。而在信息传递过程中采取CAN协议是一种常见的减少出错率的方案。那么,问题来了,CAN协议何德何能能让传输的信号不出错呢?今天就让我们来深入分析一番。利用CANScope 总线综合分析仪来抓取一帧CAN的报文如下:

图 2CANScope总线综合分析仪抓取的报文

文库资料

2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.

文章源自广州致远电子有限公司,转载或引用请注明出处

从图中可以看出CAN协议采取了差分信号传输的方式,

可以有效杜绝来自外部的屏蔽干扰。而在最后一行的协议解析部分,进过观察我们发现一帧信号被分割成了不同颜色的一段段,每一段究竟是何含义?保证信号正确传输的秘密就隐藏在这些段落里。让我们来庖丁解牛分别为大家分析下。

● 数据头:在数据的开始,是一个1位的数据头,表示数据帧都开始

图 3数据头

● 仲裁段:标志了本帧数据的优先级,其中包含了一个ID码,仲裁段中的ID码值

越小,帧数据的优先级就越高,CAN控制器在发送数据的同时会监听电缆上的电平状态,如果发现仲裁位的电平与本节点发出的电平不一致,则退出发送放弃总线使用权。这样的设计可以提高总线的利用率,并且能让重要的信息优先发送。

图 4仲裁段

● 控制段:共六位,用于表示数据长度。在数据的控制段存有保留位以供未来协议规

则扩展。

图 5控制段

● 数据段:经过前面的铺垫,数据段所编码的即是本帧数据所需要传达的信息。一帧

信号可以传送0~8位数据,每字节8位。短小精悍保证信息的实时性。

图 6数据段

● CRC段:CRC段即是保证数据准确的一个关键所在(敲黑板)。为防止信号由

于某种原因被更改,CAN的数据链路层上加入了CRC校验。发送节点会根据发文库资料

2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.

文章源自广州致远电子有限公司,转载或引用请注明出处

送内容计算得到一个CRC值填入CRC段进行发送,而相应的接收节点也会对接收到的数据进行计算,并将计算出的CRC值和接收到的进行比对。能够对得上暗号的才是自己人,如果对照有误那么就说明传输的信号出现了问题,需要反馈错误消息。这样的机制保证了CAN不会收到错误的信息,其安全性毋庸置疑。

图 7CRC段

● ACK段:用于表征信号是否被正确接收,接受正常的节点在ACK的第一位会发

出一个显性位。根据ACK 的状态,发送节点就可以了解到数据是否被传输成功。若发送失败,发送节点会根据自身状态来决定是否重传。

图 8ACK段

帧结束:由7个隐性位组成,表示该帧结束。

图 9帧结束

经过这样一番抽丝剥茧的分析,CAN 的报文结构就这样清晰的展现在我们面前。由于CRC 段的存在,CAN 出错的概率十分之小。

CRC 校验所使用的CRC 多项式最多可以检测出5个离散错误,或发现长度在15位以下偶然出现的突发错误。CRC 校验对SOF 位、仲裁段、控制段和数据段的位序列进行计算,但不考虑填充位。CAN 协议中规定的15位校验序列源自于BCH 代码,它是一种特别适用于127位以下消息长度的循环代码。CAN 协议中所应用的15位多项式如下:

在发送或接收收到数据场的最后一位后,CRC 寄存器就会包含待传输或者待接收的CRC 序列。将计算出的CRC 序列与接收到的CRC 序列相除,接收器就可以识别出可能存在的CRC 错误。

有些工程师担心CAN 收到错误的信息,在数据中又做了CRC 校验的工作,岂不知在数文库资料

2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.

文章源自广州致远电子有限公司,转载或引用请注明出处

据链路层CAN 已经自备了CRC 校验的工作,在数据中再加入CRC 校验实际上是没有什么必要的。

CAN 总线不但规定了物理层的差分传输规范,还规定了数据链路层的分包校验规则,而这两个都是由硬件自动完成,接收时,无需考虑是否有错误,只要从缓冲区取出数据即可,CAN 的CRC 校验可以保证错误率在10的-9次方以下。毫无疑问是一种非常安全可靠的传输协议。

CAN 总线在信号的实时传输方面具有非常好的优越性,通过CANscope 总线分析仪可以很好的完成CAN 总线的故障排查与检测标定。致远电子凭借自身掌握的核心技术可为用户解决工业现场的各种疑难问题,期待与您一同成长。

文库资料

2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.

文章源自广州致远电子有限公司,转载或引用请注明出处

如何保证CAN 数据的正确性

CANbus 总线协议以高稳定性,高容错率而著称于世,然而仍有很多用户在使用的时候担心CAN会接受到错误的信息,在数据里增加了CRC校验的部分,这种做法是否有必要?CAN 会收到错误的数据吗?

信息的传递,古往今来都是人类无比关注的一个问题。从最原始的肢体语言到高端的电子信号,信息传达的方法五花八门。而对于信息安全的追求也是从古至今未有变过,我国西周时期的《太公兵法》就有过“阴符”“阴书”的设计来保证信息的安全。

图 1让人心忧的信息安全

而在我们的工业生产中,为了保证信号的正确传递的方法更是五花八门。而在信息传递过程中采取CAN协议是一种常见的减少出错率的方案。那么,问题来了,CAN协议何德何能能让传输的信号不出错呢?今天就让我们来深入分析一番。利用CANScope 总线综合分析仪来抓取一帧CAN的报文如下:

图 2CANScope总线综合分析仪抓取的报文

文库资料

2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.

文章源自广州致远电子有限公司,转载或引用请注明出处

从图中可以看出CAN协议采取了差分信号传输的方式,

可以有效杜绝来自外部的屏蔽干扰。而在最后一行的协议解析部分,进过观察我们发现一帧信号被分割成了不同颜色的一段段,每一段究竟是何含义?保证信号正确传输的秘密就隐藏在这些段落里。让我们来庖丁解牛分别为大家分析下。

● 数据头:在数据的开始,是一个1位的数据头,表示数据帧都开始

图 3数据头

● 仲裁段:标志了本帧数据的优先级,其中包含了一个ID码,仲裁段中的ID码值

越小,帧数据的优先级就越高,CAN控制器在发送数据的同时会监听电缆上的电平状态,如果发现仲裁位的电平与本节点发出的电平不一致,则退出发送放弃总线使用权。这样的设计可以提高总线的利用率,并且能让重要的信息优先发送。

图 4仲裁段

● 控制段:共六位,用于表示数据长度。在数据的控制段存有保留位以供未来协议规

则扩展。

图 5控制段

● 数据段:经过前面的铺垫,数据段所编码的即是本帧数据所需要传达的信息。一帧

信号可以传送0~8位数据,每字节8位。短小精悍保证信息的实时性。

图 6数据段

● CRC段:CRC段即是保证数据准确的一个关键所在(敲黑板)。为防止信号由

于某种原因被更改,CAN的数据链路层上加入了CRC校验。发送节点会根据发文库资料

2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.

文章源自广州致远电子有限公司,转载或引用请注明出处

送内容计算得到一个CRC值填入CRC段进行发送,而相应的接收节点也会对接收到的数据进行计算,并将计算出的CRC值和接收到的进行比对。能够对得上暗号的才是自己人,如果对照有误那么就说明传输的信号出现了问题,需要反馈错误消息。这样的机制保证了CAN不会收到错误的信息,其安全性毋庸置疑。

图 7CRC段

● ACK段:用于表征信号是否被正确接收,接受正常的节点在ACK的第一位会发

出一个显性位。根据ACK 的状态,发送节点就可以了解到数据是否被传输成功。若发送失败,发送节点会根据自身状态来决定是否重传。

图 8ACK段

帧结束:由7个隐性位组成,表示该帧结束。

图 9帧结束

经过这样一番抽丝剥茧的分析,CAN 的报文结构就这样清晰的展现在我们面前。由于CRC 段的存在,CAN 出错的概率十分之小。

CRC 校验所使用的CRC 多项式最多可以检测出5个离散错误,或发现长度在15位以下偶然出现的突发错误。CRC 校验对SOF 位、仲裁段、控制段和数据段的位序列进行计算,但不考虑填充位。CAN 协议中规定的15位校验序列源自于BCH 代码,它是一种特别适用于127位以下消息长度的循环代码。CAN 协议中所应用的15位多项式如下:

在发送或接收收到数据场的最后一位后,CRC 寄存器就会包含待传输或者待接收的CRC 序列。将计算出的CRC 序列与接收到的CRC 序列相除,接收器就可以识别出可能存在的CRC 错误。

有些工程师担心CAN 收到错误的信息,在数据中又做了CRC 校验的工作,岂不知在数文库资料

2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.

文章源自广州致远电子有限公司,转载或引用请注明出处

据链路层CAN 已经自备了CRC 校验的工作,在数据中再加入CRC 校验实际上是没有什么必要的。

CAN 总线不但规定了物理层的差分传输规范,还规定了数据链路层的分包校验规则,而这两个都是由硬件自动完成,接收时,无需考虑是否有错误,只要从缓冲区取出数据即可,CAN 的CRC 校验可以保证错误率在10的-9次方以下。毫无疑问是一种非常安全可靠的传输协议。

CAN 总线在信号的实时传输方面具有非常好的优越性,通过CANscope 总线分析仪可以很好的完成CAN 总线的故障排查与检测标定。致远电子凭借自身掌握的核心技术可为用户解决工业现场的各种疑难问题,期待与您一同成长。

文库资料

2017 Guangzhou ZHIYUAN Electronics Stock Co., Ltd.

文章源自广州致远电子有限公司,转载或引用请注明出处


相关内容

  • EP2002技术描述
  • EP2002 制动控制系统 一般技术描述 (通用说明,个别项目有异) 21/10/04 第1页 共35页 目录 1 首字母缩写词及缩略词.................................................................................. ...

  • SICK 西克 条码阅读器调试手册-CLV6系列
  • 条码阅读器调试手册调试手册-CLV6XX 条码阅读器调试手册-CLV6XX 技术服务热线:技术服务热线:020-020-38303155-38303155-251 251 第 1 页 共 36 页 目 录 录 1. 条码阅读器的安装步骤----条码阅读器的安装步骤------------------ ...

  • 电动汽车整车电池SOC分析及监控控制策略开发
  • 电动汽车整车电池SOC分析及监控控制策略开发 研究背景: 随着全球范围可再生能源的开发和应用,推动汽车电动化对于减少我国对传统能源的依赖.实现技术创新.自主品牌的实质性突破具有重大战略意义.我国大城市的大气污染已不能忽视,汽车排放是主要污染源之一,我国已有 16 个城市被列入全球大气污染最严重的 2 ...

  • 现场总线技术课程设计
  • 现场总线技术课程设计 一:课程设计要求 1. 2. 3. 4. 5. 6. 7. 掌握iCAN 总线的原理 掌握iCAN 总线模块的功能及用法 掌握iCAN 总线组网技术 掌握iCAN 网络及模块的测试软件使用方法 掌握 ZOPC 服务器的使用方法 掌握ZOPC 服务器与组态软件的互联方法 了解组态 ...

  • 高校教师教学评价系统
  • 摘 要 今天,随着微型计算机的普及,使越来越多的人们了解到了计算机的作用,以及带给我们的便利.而怎样更好的利用计算机来为我们服务,更好的应用于各个社会领域,则是软件开发人员研究的问题了,我所开发的<网上教务评教系统>就是在社会需要,人们需求的情况下应运而生.最近几年大多数的大学都应用了一 ...

  • 高铁电池技术原理简介
  • 高铁电池技术原理简介 造车网 http://www.zaoche168.com/ 2009年01月06日 来源:http://www.zaoche168.com/auto/_01-ABC[**************]68.shtml 目前,世界各国都在为研发汽车新能源,进一步降低汽车尾气对环境带来 ...

  • 基于OVAL的新型漏洞评估系统
  • 小型微型计算机系统Journal of Chinese Comput er Syst ems 2007年9月第9期Vol. 28No. 92007 基于OVAL 的新型漏洞评估系统 陈秀真, 李建华 (上海交通大学信息安全工程学院, 上海200240) E-mail:chen [email protected] ...

  • 地铁屏蔽门是如何保障乘客安全的?
  • 地铁屏蔽门是如何保障乘客安全的? 说起地铁大家一定不会陌生,但你了解地铁的屏蔽门吗?你知道它是如何避免失效保证乘客的人身安全吗?今天将带大家走进这个经常在我们身边出现,但有不了解的地铁屏蔽门内部世界. 一.地铁屏蔽门简介 地铁屏蔽门是安装于地铁.轻轨等轨道交通车站站台边缘,将轨道与站台候车区隔离,设 ...

  • 现场总线控制系统知识
  • 模块二 现场总线控制系统知识 [任务目标] 1.掌握现场总线控制系统的基本概念及技术特点. 2.了解现场总线控制系统的构成和现场总线设备. 3.了解几种典型的现场总线,掌握PROFIBUS 过程现场总线. 4.了解现场总线的组态方法.网络组态步骤. 5.了解现场总线设备的工作原理及特点,会根据要求进 ...