当前位置: 首页 > news >正文

江协科技 CAN总线入门课程(错误处理)

CAN总线规定了5种可能出现的错误类型,这五种错误分别叫做位错误、填充错误、CRC错误、格式错误、应答错误。每种错误的意思可参考下面这张表。

当这些发送单元或者接收单元检测到对应的错误时,它们就会紧跟着主动出击,发出错误帧,破坏当前总线上的数据,发出错误帧的行为就叫做错误通知,意思是不管你们其他设备有没有检测到这个错误,反正我现在检测到了错误,我要破坏这帧数据,大家都别收了,错误帧一旦产生,这帧数据就作废了,数据传输也会终止,等错误帧结束后,总线就回归空闲,大家谁想发数据,谁再开始一个新的帧。

但是这个设计目前有一个风险,就是错误通知赋予了每个设备破坏传输的能力,如果有个设备抽风了,它无论收到啥,都认为是错的,那这样它就会不断破坏数据,总线上正常的数据传输都无法进行了。所以错误通知的设计还要加一些限制措施,这个限制措施就是错误状态。

错误状态有三种:主动错误状态、被动错误状态和总线关闭状态。

每个设备初始都为主动错误状态,主动错误状态发出主动错误帧,可以破坏别的设备的数据,权力是比较大的;如果它频繁报告错误,报告太多了,那说明这个设备不太可靠,就给它转到被动错误状态;被动错误状态的设备正常参与通信但检测到错误时只能发出被动错误帧,被动错误帧不可以破坏别的设备的数据,因为当前设备不太可靠,虽然还能参与通信,但要收回它破坏数据的能力;如果它在被动错误状态,还在频繁报告错误,就转到总线关闭状态,总线关闭状态的设备不能参与通信。 

每个设备内部管理一个TECREC,根据TEC和REC的值确定自己的状态,TEC(Transmit Error Counter)是发送错误计数器,设备在发送时,每发现一个错误,这个TEC就会增加一次;REC(Receive Error Counter)是接收错误计数器,设备在接收时,每发现一个错误,这个REC就会增加一次。在进行正常发送或接收后,它们的值都会减少一次,所以TEC和REC的值就反应了当前设备检测错误的相对频率。

接下来我们来看一下错误计数器的细节,也就是TEC和REC都是怎么进行加减的

我们以ACK错误为例,看一下错误帧的现象,首先第一个波形为设备处于主动错误状态,发送标准数据帧,正常传输。

设备处于主动错误状态,发送标准数据帧,检测到ACK错误

设备处于被动错误状态,发送标准数据帧,检测到ACK错误

http://www.dtcms.com/a/427621.html

相关文章:

  • 网站的建设与规划方案企业网站建设要素
  • antdv- Tooltip 文字提示组件
  • 算法题(222):摆花
  • 如何向alexa提交网站wordpress custom login
  • SpringCloud电商微服务项目衣拉客搭建指南
  • dev c++工具下载 dev c++安装包下载 dev c++软件网盘资源分享
  • 如何去掉Excel多余空行
  • 房地产网站欣赏万网空间管理
  • 做多语言网站多少钱免费网站安全软件大全下载安装
  • 【密码学实战】openHiTLS X509命令行工具: 数字证书生成与转换
  • 从“减塑”到“降碳”新天力“2R”模式推动行业低碳转型
  • AFSim雷达显控一体化
  • 网站建设类型智盈中心网站建设
  • 零基础从头教学Linux(Day 45)
  • 网站策划方案论文wordpress软件网站模板下载
  • 大数据变长存储算法
  • Ubuntu22.04安装Samba服务器
  • NACHI那智焊接机器人智能气阀
  • 网站怎么申请怎么注册交友软件网站建设
  • 网站建设官网多少钱设计公司名字logo
  • 安卓开发---通信录的UI实例
  • 35互联做的网站效果图制作教程
  • Gitee - IDEA 主支 master 和分支 dev 的使用
  • grep 命令处理文件差集
  • MySQL终极备份指南:用Percona XtraBackup实现零数据丢失!
  • FPGA实现SRIO图像视频传输,基于Serial Rapidlo Gen2,提供6套工程源码和技术支持
  • 网站推广渠道有哪些加盟编程教育哪家好
  • GitOps实战:Helm一键部署ArgoCD
  • 聊城冠县网站建设无锡seo公司哪家好
  • 一个专业做设计的网站软件工程师前景及待遇