CAN Message Process In Application Layer

本文介绍了在应用层处理CAN消息的方法,包括报文超时、丢帧、rollingcounter错误和checksum错误的判断逻辑。报文超时设定为超过5帧未收到报文时发生,报文丢帧是当报文间隔超过周期时发生。rollingcounter错误检查是基于接收到的rollingcounter是否按步长1递增,而checksum错误则通过计算接收到的报文数据的校验和与接收的校验和比较来判断。
摘要由CSDN通过智能技术生成

对于应用层对底层传来的报文即 Rx的处理,主要思路:

主要包括报文超时、报文帧丢失、checksum错误、rollingcounter 错误、报文有效的判断

1 首先底层要有CAN data 和data flag,data 至少是8*8byte的报文数据, flag在底层应该表示为一旦底层接收到1个完整的8*8byte,则表示当前帧报文接收完毕,通过置位flag告诉应用层可以进行当前接收的报文帧数据的分析。

2-需要对接收到的data进行分析前应当判断当前帧报文的有效或者真实性并置位对应的标志位:

主要包括报文超时、报文帧丢失、checksum错误、rollingcounter 错误、报文有效。

下面将一一 对这几种报文错误的判断逻辑进行初步设计:

A 报文超时 Message Timeout:

假设报文周期是100ms 应用层调度周期为10ms 我们设定丢失报文超过5帧则判断为报文超时。一旦报文超时,相关信号要使用默认值

需要一个参数来表示两条报文的相距时间,且参数在每次接收到报文时候置0,在接收到第二条报文前参数累计时间。

实现方式:设置data memory/read/write 模块,在每次收到报文时 write 0 到变量中,实现每次收到新的报文将计时重置。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值