首页 > 编程知识 正文

fd可以拦截其他数据吗,can协议报文dbc解析实例

时间:2023-05-03 19:23:50 阅读:170755 作者:1478

摘要:数据验证是一种保证数据完整性的验证操作。 CAN通信采用CRC校验作为重要的检错手段,是节点判断CAN帧信息完整性并生成确认的依据。

在现场总线通信与控制的实际应用中,工业应用环境往往是极端的温度和电磁噪声或其他恶劣的环境,在这种条件下系统能否正常工作至关重要。 试想一下,如果生产线设备发送的位置信息在传输过程中出现错误,轻则生产瘫痪,重则设备有可能损坏或人员伤亡。

在CAN总线通信中,CAN控制器具有完整的错误检测能力,其中包括位错误检测、格式错误检测、填充错误检测、响应错误检测和CRC错误检测。 作为一种重要的检错手段,CRC检错是接收节点确定CAN帧信息的完整性并向总线确认响应的依据。

一.常见检查方法

最简单的检查是在发送数据后,主动进行回读,直到结果一致才确认传输成功。 显然,这种传输的交流方式很直观,非常准确,但回读的操作会使数据传输量加倍。 这意味着传输对带宽要求很高,而且效率低下。

奇偶校验是在传输过程中使用附加1位记录传输数据的二进制数中,1的个数是奇数还是偶数。 该方案适合大多数硬件,传输开销适中,因此得到了广泛的应用。 例如,一般串行通信;

累加和校验,该算法原理是将数据逐个累加得到一个值,接收方在接收数据的同时进行数据的累加,并与最终发送的累加进行比较。 该算法计算简单,无论是硬件还是软件都可以保证高效率,常用于低速串行数据通信和芯片代码完整性的判断;

在CRC检验中,该算法基于一个多项式除数剩余的结果,根据比特数的需求和多项式的变化有数十种版本,通过其硬件可以简单实现,具有比特反转调试能力强、运算开销适中的优点广泛应用于CDMA通信等数字网络传输及数据存储领域,也用于计算机APP应用中常见的RAR和ZIP文件的压缩/解压缩数据完整性检查

以MD5、SHA为代表的消息摘要检查将数据摘要算法也称为散列算法、散列算法,摘要算法用于数据量较大的情况下。 通过对所有数据提取指纹信息,实现数据签名、数据完整性检查等功能。 由于不可逆性,有时也用于加密机密信息,例如保护软件注册许可证文件的内容。 此外,经常遇到的互联网下载大文件(例如,大小为GB级别的ISO镜像)通常包含MD5或SHA1等信息,这对于检查传输数据的完整性非常有用。

二. CAN帧中的CRC检测

CAN帧中CRC域的位置

图1

如图1的橙色块所示,在传统CAN帧结构中,在数据完成后的应答检测之前放置CRC字段,CANFD也处于相同位置。 该信息在用户APP界面上是不可见的,并且可以通过CANscope总线分析器的解码窗口或具有CAN协议解码能力的示波器根据总线仿真波形获得相应的CRC数据。 参照图2。

图2

CRC在CAN帧中的生成

在典型的CAN中,15位CRC允许硬件使用移位和异或运算进行CRC计算,而CANFD规范扩展帧数据长度,对于长度小于或等于16字节的CANFD帧,17位CRC可以进行解码表1总结了CAN总线上使用的几个版本的CRC生成多项式g。

表1

CRC是如何完成验证工作的

基于CAN帧的CRC多项式的安全检验是根据发射机所发射的比特来计算校验值,并在CAN帧结构CRC字段中提供。 接收器使用相同的多项式来计算在总线上看到的比特的校验值,将自计算的校验值与接收的校准值进行比较,如果匹配,则认为正确地收到了帧,接收节点在ACK时隙比特中发送显性状态,并复盖发送器的隐性状态如果不匹配,则接收节点在ACK定界符之后发射错误帧。

目前,CANFD的控制器CRC验证的实现过程比较复杂。 在一个CAN总线网络中,在检测到帧的开头之后,所有节点使用三组多项式g15、g17、g21来同时计算CRC序列,其中包括发射节点。 因为CRC的计算受到CAN帧类型和DLC长度的影响,所以在确认CAN帧的控制区域和DLC之后选择采用对应的CRC生成序列

CRC的ISOCANFD、非ISOCANFD兼容性问题

目前,CAN FD协议有两种版本,为了提高故障(错误)检测功能,新版本特别引入了3位填充位计数器和奇偶校验位。 另外,CRC的计算方法也发生了变化。 通过这些改进,最新的CAN FD协议与博世(BOSCH )开发的原始CAN FD协议不再兼容。 负责ISO的工作组正在完成文件并将其提交给国际标准草案(DIS )进行投票过程。

为了避免误解,中情局建议使用术语“ISO CAN FD”和“非ISO CAN FD”。 所有符合ISO 11898-2:2015标准的产品都应该称为“ISO CAN FD”。 运行博世(BOSCH )原始CAN FD协议的产品必须命名为“非iso C”

AN FD”,在这个过度阶段的产品主要目的是用于前期评估和开发,将来所有产品都将符合ISO标准。

请注意,早前一些供应商提供的组件或者工具是针对non-ISO CAN FD协议的,包括目前在售的部分CAN FD产品,CiA建议仅使用ISO CAN FD产品进行设计和开发,不过你可继续使用non-ISO CAN FD做评估和前期开发,因为协议的改变对于用户界面是不可见,但注意的是不能同一个网络混用non-ISO CAN FD和ISO CAN FD接口设备,这样会造成CAN总线错误无法完成发送和接收,如果仅仅是发送或接收传统的CAN帧将不会受到任何影响,幸运的是部分设备供应商提供的组件或者工具允许用户选择支持ISO或者non-ISO模式,这样能很好地在过渡时期帮助你完成工作。

三、总结:

传统CAN以及目前CAN FD采取的校验机制,保证传输过程中遭受破坏的帧数据几乎不会被接收以及应答成功,能有效防止物理层传输错误,让用户界面不需要额外关注帧传输数据的正确性。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。