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

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

3天内不再提示

CAN基础:电平、逻辑、报文是怎么来的

电子设计 来源:电子设计 作者:电子设计 2020-12-26 02:46 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

CAN总线的报文是怎么产生以及收发的,遇到通讯异常的问题时从什么角度分析?这篇文章将会带您快速了解报文的传输原理。

1、节点通讯的原理

图1 CAN节点示意图

如图1所示是一个CAN节点的示意图,整体包括了CAN收发器、CAN控制器MCU。我们以节点发送报文为例,当我们使用上位机软件发送一段报文时,报文会通过MCU发送给CAN控制器。CAN控制器将这段报文解析成逻辑信号后,再发送给CAN收发器。CAN收发器根据CAN-bus标准将接收到的逻辑信号转换成电信号,再通过CAN_H和CAN_L两根总线将电信号传到总线上的其他节点上。

简单说就是MCU将报文发送给控制器,控制器将报文转换成符合规范的CAN报文后,通过CAN收发器以电信号的形式在总线上进行传输。

2、电平是如何转换成逻辑?

图2 CAN-bus信号电平

如图2所示,CAN总线使用的是双线差分信号,所以分为CAN_H和CAN_L两根总线,根据两根总线之间电压的差值大小来判断其显隐性。而线缆上传输的电平信号只有两种可能,分别为显性电平和隐性电平,其中显性电平代表逻辑0,隐性电平代表逻辑1。

当接受到报文时,首先就要通过CAN收发器将电信号转换成逻辑信号。根据图3所示的ISO11898高速CAN电平标准进行判断,但是线路上经常会受到各种干扰,为了保证传输的稳定性。所以差分电平小于0.5V就是隐性电平代表逻辑1,差分电平大于0.9V就是显性电平代表逻辑0。

图3 ISO11898高速CAN电平

3、逻辑信号如何转换成报文?

CAN控制器是CAN-bus设备的核心元件,集成了CAN规范中数据链路层的全部功能,能够自动完成CAN-bus协议的解析。

当CAN收发器将逻辑信号传送给CAN控制器后,CAN控制器会将逻辑信号转换成符合CAN规范的CAN帧。而CAN帧的类型包括了数据帧、远程帧、帧间空间、错误帧和超载帧。

图4 标准帧格式

以最常见的数据帧为例,图4就是标准帧的格式,包括了帧起始、仲裁场、控制场、数据场等。

图5 报文解析实例

图5就是报文解析的实例,当接受到对应的逻辑信号后,CAN控制器就会根据规定的CAN帧格式进行解析,并将报文发给MCU。

4、上位机报文显示

图6 上位机报文显示

如图6所示,当CAN控制器完成了CAN-bus协议的解析后,就会将报文传输到MCU中在上0位机软件中进行显示。像帧起始、CRC场、ACK场这样的数据不读取,所以我们上位机软件只显示数据帧类型、帧ID和帧数据等信息。

5、总结

对于CAN总线报文错误来说,百分之90的错误都来自于物理层,而CANScope总线分析仪可以对CAN 波形与报文同步发送和接收,快速对CAN总线进行各项测试,帮助工程师们快速完成故障定位和问题排查。

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

    关注

    58

    文章

    3013

    浏览量

    471482
  • 电平
    +关注

    关注

    5

    文章

    370

    浏览量

    41253
  • 逻辑
    +关注

    关注

    2

    文章

    834

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MDD 逻辑IC的逻辑电平不兼容问题与解决方案

    )不断被引入市场,它们具有各自的优势,但也带来了逻辑电平不兼容的问题,尤其是在多个不同类型的逻辑IC互联时,电平不匹配的问题显得尤为突出。作为FAE,帮助客户理解
    的头像 发表于 10-29 09:39 160次阅读
    MDD <b class='flag-5'>逻辑</b>IC的<b class='flag-5'>逻辑</b><b class='flag-5'>电平</b>不兼容问题与解决方案

    如何同时指定can硬件滤波器的只接收id为0 和id为3的报文呢?

    如何同时指定can硬件滤波器的 只接收id为0 和id为3的报文呢 我目前只会用 RT_CAN_FILTER_STD_INIT(3, RT_NULL, RT_NULL)去指定id为3的报文
    发表于 09-28 07:46

    silex希CAN通信的无线化解决方案

    silex希CAN通信的无线化解决方案
    的头像 发表于 08-27 15:07 515次阅读
    silex希<b class='flag-5'>来</b>科<b class='flag-5'>CAN</b>通信的无线化解决方案

    ADG3301 1.15 V至5.5 V低压、单通道双向逻辑电平转换器技术手册

    ADG3301是一款单通道双向逻辑电平转换器,可用于多电压数字系统,如低压DSP/控制器与高压器件之间的数据传输等。该器件的内部结构允许执行双向逻辑电平转换,且无需借助额外的信号
    的头像 发表于 05-16 11:43 703次阅读
    ADG3301 1.15 V至5.5 V低压、单通道双向<b class='flag-5'>逻辑</b><b class='flag-5'>电平</b>转换器技术手册

    ADG3300 1.15 V至5.5 V低压、8通道双向逻辑电平转换器技术手册

    ADG3300是一款双向逻辑电平转换器,内置8个双向通道,可用于多电压数字系统,如低压DSP/控制器与高压器件之间的数据传输等。该器件的内部结构允许执行双向逻辑电平转换,且无需借助额外
    的头像 发表于 05-16 10:18 761次阅读
    ADG3300 1.15 V至5.5 V低压、8通道双向<b class='flag-5'>逻辑</b><b class='flag-5'>电平</b>转换器技术手册

    MAX14595高速、漏极开路逻辑电平转换器技术手册

    MAX14595为双通道、双向逻辑电平转换器,设计用于手持设备和电池供电等低功耗应用。 外部电压V~CC~和V~L~设置器件两侧的逻辑电平。 将V~L~侧的
    的头像 发表于 05-15 15:37 659次阅读
    MAX14595高速、漏极开路<b class='flag-5'>逻辑</b><b class='flag-5'>电平</b>转换器技术手册

    MAX14591高速、漏极开路逻辑电平转换器技术手册

    MAX14591为双通道、双向逻辑电平转换器,为多电压供电系统的数据传输提供必要的电平转换。外部电压V~CC~和V~L~设置器件两侧的逻辑电平
    的头像 发表于 05-15 15:28 624次阅读
    MAX14591高速、漏极开路<b class='flag-5'>逻辑</b><b class='flag-5'>电平</b>转换器技术手册

    MAX14611 4通道双向逻辑电平转换器技术手册

    MAX14611为4通道双向逻辑电平转换器,在多电压系统中提供数据传输所需的电平转换。外部电压V~CC~和V~L~设置器件每一侧的逻辑电平
    的头像 发表于 05-15 15:22 596次阅读
    MAX14611 4通道双向<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>芯片<b class='flag-5'>逻辑</b>响应验证测试

    CAN报文流程解析

    CAN报文流程解析,直流充电桩上的CAN通讯解析过程
    发表于 03-24 14:03 10次下载

    使用CAN以及CANIF配置了S32K310的CAN驱动模块,如何进行报文的接收呢?

    我使用CAN以及CANIF配置了S32K310的CAN驱动模块。我知道调用CAN_Write()函数进行报文的发送,但我存有以下的一些问题: 1.我该如何进行
    发表于 03-21 07:24

    CAN loopback模式测试

    (GPIO_Remap2_CAN, ENABLE) 启用重映射。 其他支持 CAN loopback 模式的芯片:不同的芯片可能有不同的引脚配置要求,但原理类似,都是将 CAN 的发
    发表于 01-18 16:29

    使用TTL电平时的常见问题

    问题 问题描述: 在不同TTL电路或TTL与CMOS电路之间进行接口时,可能会出现电平不兼容的问题。 解决方案: 使用电平转换器或逻辑缓冲器匹配不同
    的头像 发表于 01-16 10:31 1508次阅读

    TTL电平与高电平信号的转换

    在电子工程领域,信号电平的转换是一个常见的需求,尤其是在不同技术标准之间。TTL(晶体管-晶体管逻辑电平和高电平信号是两种不同的电平标准,
    的头像 发表于 01-16 10:28 1482次阅读

    TTL电平与低电平信号的区别

    在数字电子学中,信号的传输和处理依赖于电压水平表示逻辑状态。TTL电平和低电平信号是两种常见的电压水平,它们在数字电路中扮演着重要的角色。 TTL
    的头像 发表于 01-16 10:21 1837次阅读