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

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    龙芯中科携手五所高校加速构建自主信息技术人才体系

    为推动国产自主可控处理器深度融入高校人才培养全链条,加速构建自主信息技术人才体系,龙芯校园行活动相继走进中国科学技术大学、安庆师范大学、湖南大学、广西大学、大连理工大学5所高校,聚焦龙芯自主信息技术
    的头像 发表于 04-13 14:32 503次阅读

    基于FPGA的轻量级CAN总线控制器实现方案

    ) 的标准和29bit-ID(长ID) 的扩展,另外,还有远程这种数据请求机制。关于CAN总线的更多知识可以参考这个科普文章。
    的头像 发表于 04-03 10:10 4819次阅读
    基于FPGA的轻量级<b class='flag-5'>CAN</b>总线控制器实现方案

    CAN总线报错看不懂?5种错误+5步排查法一次讲清

    其他节点,进而丢弃错误报文并触发重发机制,确保数据传输的准确性。在CAN通信调试中,错误是定位问题的重要线索。五种错误
    的头像 发表于 03-16 11:36 656次阅读
    <b class='flag-5'>CAN</b>总线报错看不懂?5种<b class='flag-5'>错误</b><b class='flag-5'>帧</b>+5步排查法一次讲清

    S32K310 MCAL CAN 在初始通电时触发错误怎么解决?

    时 ,总线上会发送一个错误。此外,即便CAN2处于禁用状态,错 误仍会触发。(如图所示,PAGE1为CAN2,PAGE2为
    发表于 03-12 07:47

    CAN_DeInit API 错误的原因?怎么解决?

    我尝试在 BOOTLOADER 跳转到 APP 之前关闭 CAN 控制器,但当我调用 CAN_DeInit 时,它实际上没有重新初始化,导致跳转后在 CAN 总线上发送了错误
    发表于 03-06 08:26

    龙芯中科成功举办2025信息技术应用创新产教融合交流会

    11月30日,在教育部教育管理信息中心、山东省电化教育馆的支持和指导下,龙芯中科联合浪潮集团、济南幼儿师范高等专科学校(以下简称“济南幼高专”),成功举办信息技术应用创新产教融合交流会,并同步举行信息技术应用创新实践基地启用仪式
    的头像 发表于 12-08 14:53 1041次阅读

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

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

    诚迈科技信电脑助力2025第二届教育信息技术应用创新大赛圆满收官

    11月15日,由中国教育技术协会主办、浙江大学与中国教育技术协会网络安全专业委员会联合承办,中国电子工业标准化技术协会信息技术应用创新工作委员会、浙江高校信
    的头像 发表于 11-17 17:58 893次阅读
    诚迈科技信<b class='flag-5'>创</b>电脑助力2025第二届教育<b class='flag-5'>信息技术</b>应用创新大赛圆满收官

    宝马南京信息技术有限公司开业

    今日,宝马(南京)信息技术有限公司在南京正式“挂牌运行”。这家华晨宝马全资子公司由领悦数字信息技术有限公司南京分公司“迭代”而来,代表着一次里程碑式的“进化”。这次升级不仅加速了宝马在华数字化转型进程,更通过深化本土创新,为“未来智慧出行”的发展谱写了核心“代码”。
    的头像 发表于 10-29 15:17 866次阅读

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

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

    易华录入选国家级信息技术应用创新典型解决方案

    近日,工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)公布了“2024年信息技术应用创新解决方案”评选结果。易华录申报的“基于节能高效蓝光的超级智能存储解决方案”凭借显著的
    的头像 发表于 08-07 15:35 1872次阅读

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

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

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

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

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

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

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

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