0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术关于新CAN驱动的错误帧定义

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-05 10:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

CAN总线产生的错误以错误帧的形式上报给应用层。设置注册表[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CAN1] BusErrorReport项为1可以让驱动上报CAN总线错误帧,为0,驱动不会上报错误帧。

帧格式

CAN帧结构体定义如下,当CAN_FRAME中CAN_ID的error为1时,表示该帧为错误帧。

typedefstruct{

unsignedintid:29;

unsignedinterror:1;

unsignedintremote:1;

unsignedintextended:1;

}CAN_ID;

typedefstruct_can_frame

{

CAN_ID can_id; /* 32 bit CAN_ID + EFF/RTR/ERR flags */

BYTE can_dlc; /* frame payload length in byte*/

BYTE data[CAN_MAX_DLEN];

} CAN_FRAME, *PCAN_FRAME;

错误帧定义

可以参考例程中库头文件sdk_can.h,错误帧标记为CAN_ID的error,错误类型存放在CAN_ID中,根据不同类型的错误,详细信息存放在帧结构体CAN_FRAME的data中。

一个错误帧中,可以包含多种错误类型的错误信息。

CAN_ERR_TX_TIMEOUT错误

WINCE中暂时保留。

lost arbitration仲裁丢失错误

#defineCAN_ERR_LOSTARB0x00000002U

当错误帧结构体中CAN_ID& CAN_ERR_LOSTARB为真时,表明该错误产生。

controller problems控制器出错

#defineCAN_ERR_CRTL0x00000004U

当错误帧结构体中CAN_ID& CAN_ERR_CRTL为真时,表明该错误产生。

详细信息存放在错误帧结构体data[1]中。

接收buffer溢出

data[0] &0x01为真,表明该错误产生。

需要及时处理接收到的数据包。

发送buffer溢出

data[0] &0x02为真,表明该错误产生。

可能由于瞬间发送的数据包过多导致。

接收错误达到警告级别

data[0] &0x04为真,表明该错误产生。

当该错误提示,表明短期内接收产生的错误较多。

发送错误达到警告级别

data[0] &0x08为真,表明该错误产生。

当该错误提示,表明短期内发送产生的错误较多。

接收错误达到严重错误级别

data[0] &0x10为真,表明该错误产生。

当该错误提示,表明短期内接收产生的错误过多。应当暂停CAN通信,检查错误原因。

发送错误达到严重错误级别

data[0] &0x20为真,表明该错误产生。

当该错误提示,表明短期内发送产生的错误过多。应当暂停CAN通信,检查错误原因。

恢复到错误激活状态

data[0] &0x40为真,表明恢复到错误激活状态。

CAN通信协议出错

#defineCAN_ERR_PROT0x00000008U

当错误帧结构体中CAN_ID& CAN_ERR_PROT为真时,表明该错误产生。

详细信息存放在错误帧结构体data[2]和data[3]中,其中data[2]表明协议错误类型,data[3]表明协议出错的位置

(类型)单bit出错

data[2] &0x01为真,表明协议单bit出错。

(类型)帧格式出错

data[2] &0x02为真,表明帧格式出错。

(类型)位填充出错

data[2] &0x04为真,表明位填充出错。

(类型)dominant bit发送失败

data[2] &0x08为真,表明dominant bit发送失败。

(类型)recessive bit发送失败

data[2] &0x10为真,表明recessive bi发送失败。

(类型)总线过载

data[2] &0x20为真,表明总线过载。

(类型)active error announcement

data[2] &0x40为真,active error announcement。

(类型)传输出错

data[2] &0x80为真,传输出错。

位置

data[3]为0x03表明协议SOF帧头位置

data[3]为0x02表明协议ID第28-21bits(SFF:10-3)

data[3]为0x06表明协议ID第20-18bits(SFF:2-0)

data[3]为0x04表明协议substitute RTR位(SFF:RTR)

data[3]为0x05表明协议identifier extension标准扩展位

data[3]为0x07表明协议ID第17-13bits

data[3]为0x0F表明协议ID第12-5bits

data[3]为0x0E表明协议ID第4-0bits

data[3]为0x0C表明协议RTR位

data[3]为0x0D表明接收bit 1

data[3]为0x09表明接收bit 0

data[3]为0x0B表明DLC位

data[3]为0x0A表明DATA位

data[3]为0x08表明CRC序列

data[3]为0x18表明CRC分隔符

data[3]为0x19表明ACK应答位

data[3]为0x1B表明ACK分隔符

data[3]为0x1A表明帧尾

data[3]为0x12表明间歇

收发状态错误

#defineCAN_ERR_TRX0x00000010U

当错误帧结构体中CAN_ID& CAN_ERR_TRX为真时,表明在收发时CAN状态有误。

详细信息存放在错误帧结构体data[4]中,data[4]中1个字节8bit中,高4位表示CANL值,分别代表如下CANH错误

高4位表示CANH值,分别代表如下CANL错误

高低位值以排列组合方式存在。

无ACK错误

#defineCAN_ERR_ACK0x00000020U

当错误帧结构体中CAN_ID& CAN_ERR_ACK为真时,表明该错误产生。

总线关闭

#defineCAN_ERR_BUSOFF0x00000040U

当错误帧结构体中CAN_ID& CAN_ERR_BUSOFF为真时,表明总线关闭。

总线错误

#defineCAN_ERR_BUSERROR0x00000080U

当错误帧结构体中CAN_ID& CAN_ERR_BUSERROR为真时,表明该错误产生。

该错误通常与其它错误一起发出。

控制器重启

#defineCAN_ERR_RESTARTED0x00000100U

当错误帧结构体中CAN_ID& CAN_ERR_RESTARTED为真时,表明控制器重启。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6107

    浏览量

    36952
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    龙芯中科助力2025教育信息技术应用创新大赛成功举办

    2025年11月13日-15日,由中国教育技术协会主办、浙江大学与中国教育技术协会网络安全专业委员会联合承办,中国电子工业标准化技术协会信息技术应用创新工作委员会、浙江高校信
    的头像 发表于 11-21 16:23 594次阅读

    嵌入式接口通识知识之CAN接口

    表示逻辑0,也称显性电平。当CAN收到一个高电平信号,CAN_High和CAN_Low输出均为2.5V,电压差是0V,此时表示逻辑1,也称隐性电平。为满足不同通信需求,CAN协议
    发表于 08-21 16:49

    佛瑞亚如何通过信息技术推动业务增长

    在数字化、信息化的浪潮下,信息技术已经不仅是后台工具,更成为驱动企业发展的关键力量。本期Women Inspiring Mobility,我们采访了佛瑞亚中国区信息技术总监马瑛,了解她
    的头像 发表于 07-29 14:00 729次阅读

    飞腾主板为信产业发展提高硬实力

    信息技术飞速发展的当下,信产业已成为我国实现科技自立自强、保障国家信息安全的关键领域。信,即信息技术应用创新,其核心目标是实现
    的头像 发表于 07-22 18:20 560次阅读

    DEKRA德凯成为沙特通信和信息技术设备技术法规认证机构

    近日,DEKRA德凯成功获得沙特标准、计量和质量组织(SASO)认可,正式成为沙特通信和信息技术设备技术法规(Technical Regulation for Communications
    的头像 发表于 07-15 14:27 733次阅读

    科普|信是什么?一文读懂“信息技术应用创新”战略

    什么是信?信,即“信息技术应用创新”,是国家推动IT系统自主可控、安全可控的重要战略工程。它不仅是技术层面的创新,更承载着保障国家网络安全、推动产业升级和实现数字主权的重任。简单来
    的头像 发表于 06-13 10:06 6319次阅读
    科普|信<b class='flag-5'>创</b>是什么?一文读懂“<b class='flag-5'>信息技术</b>应用创新”战略

    CAN芯片逻辑响应验证测试

    CAN芯片研发阶段,需要做诸多涉及通讯错误管理验证的问题。在ISO-16845国际标准中,规定完善的测试标准,如错误检测,传输相关检测
    的头像 发表于 04-30 18:24 606次阅读
    <b class='flag-5'>CAN</b>芯片逻辑响应验证测试

    如何验证CAN控制器的错误响应机制?

    CAN节点的稳定性、可靠性和安全性得益于其强大的错误管理机制。上一篇文章我们介绍了CAN控制器的错误管理机制的工作原理。本文将基于其工作原理及ISO16845-1:2016标准,为大家
    的头像 发表于 04-30 18:24 648次阅读
    如何验证<b class='flag-5'>CAN</b>控制器的<b class='flag-5'>错误</b>响应机制?

    龙芯中科荣获2024年度信息技术应用创新工作委员会卓越贡献成员单位

    近日,中国电子工业标准化技术协会信息技术应用创新工作委员会(以下简称“信工委会”)在北京召开2024年度工作总结座谈会暨信“大比武”总结大会。中国工程院院士、信
    的头像 发表于 01-23 10:50 981次阅读

    CAN错误的表现形式#汽车总线 #CAN #CANoe

    CAN
    北汇信息POLELINK
    发布于 :2025年01月22日 16:23:53

    芯盛智能荣获2024年信息技术应用创新工作委员会卓越贡献成员单位

    日前,中国电子工业标准化技术协会信息技术应用创新工作委员会(以下简称 “信工委会”)2024 年度总结座谈会于北京隆重举行。此次会议对在信工作中作出突出贡献的成员单位予以表彰。江苏
    的头像 发表于 01-20 09:56 929次阅读

    基于Vector工具进行CAN协议错误的分析实践

    广播发送的短结构,还体现在其错误检测机制上。通过总线数据以及总线波形来分析总线故障时,CAN协议错误检测机制中丰富的错误
    的头像 发表于 01-15 10:03 997次阅读
    基于Vector工具进行<b class='flag-5'>CAN</b>协议<b class='flag-5'>错误</b><b class='flag-5'>帧</b>的分析实践

    飞腾助力首届教育信息技术应用创新大赛圆满落幕

    近日,由中国教育技术协会主办,教育部教育管理信息中心教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信工委会支持,北京航空航天
    的头像 发表于 12-24 09:57 768次阅读

    有方科技参编的信息技术团体标准发布

    近日,有方科技参编的《信息技术产品供应链成熟度 共性指标 第1部分:企业背景评价》《信息技术产品供应链成熟度 共性指标 第2部分:技术掌控评价》《信息技术产品供应链成熟度 共性指标 第
    的头像 发表于 12-23 10:44 904次阅读

    龙芯中科助力2024首届教育信息技术应用创新大赛成功举办

    近日,2024首届教育信息技术应用创新大赛在北京航空航天大学成功举办。本次大赛由中国教育技术协会主办,教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信
    的头像 发表于 12-19 17:02 821次阅读