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

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

3天内不再提示

如何才能更好实现CAN模块之间数据传输

AGk5_ZLG_zhiyua 来源:互联网 作者:佚名 2017-11-29 06:25 次阅读

ISO 11898-1定义了哪些内容?相关项目如何测试?本文为您解读。

一、关于ISO 11898

ISO是世界性的标准化组织,主要任务是制定国际标准,协调世界范围内的标准化工作,与其他国际性组织合作研究有关标准化问题。IS0 11898由以下部分组成:

  • ISO11898-1:数据链路层和物理层信号

  • ISO11898-2:高速接入单元

  • ISO11898-3:低速容错接入单元

  • ISO11898-4:时间触发通讯

  • ISO11898-5:低功耗的高速接入单元

  • ISO11898-6:选择性唤醒的高速接入单元

最新的ISO 11898-2、ISO 11898-5和ISO 11898-6已经取代ISO 11898-2:2003、ISO 11898-5:2007和ISO 11898-6:2013。

二、ISO11898-1的定位

对比标准的OSI通讯协议模型,ISO 11898-1定义了CAN的数据链路层和部分物理层,如图1。数据链路层和物理层具体可分为逻辑链路控制、媒介访问控制、物理层编码、物理层介质、物理层媒介依赖。

图1 ISO 11898的定位

三、适用范围

ISO11898-1旨在实现CAN模块之间数据链路层上的信息规范。控制器区域的网络是一种串行通信协议,用于道路车辆和其他控制领域,支持分布式实时控制和多路复用。ISO11898-1:2015适用于经典CAN帧与灵活CAN帧(CAN-FD)。经典的CAN帧有效载荷达8个字节,比特率最高允许1 Mbit/s。最新的CAN帧(CAN-FD)帧格式允许比特率高于1 mbit/s,并且有效载荷大于每帧8字节。新帧架构(CAN-FD)兼容经典帧结构。

图2 新旧帧关系

四、基本概念

SO11898-1详细列举出CAN总线涉及到的基本概念。具体细节请读者参考原文,此处不再展开。

图3 基本概念

四、CAN层体结构

ISO 11898-1包含逻辑链接控制子层(LLC)、介质访问控制子层(MAC)、物理编码子层(PCS)。其中LLC包括接受过滤、过载通知以及恢复管理;MAC层包括数据封装与解封、帧编码、介质访问管理、错误检测、序列及反序列;PCS层包括位编码、位解码以及同步。

图4 ISO 11898包含的规范

五、MAC数据的一致性

要传送的消息是由LLC产生的,通过节点的控制器主机接口和数据链路层的子层传输到MAC子层。MAC子层将把整个消息存储在一个临时缓冲区中,该缓冲区在传输开始之前被填充。当传送的信息被传送到MAC的子层时,LLC子层应检查数据错误。如果检测到数据错误,就不会启动传输。如果在检测到数据错误时已经启动,那么节点将被切换到总线监控模式或进入受限的操作模式,接收节点将不会看到一条有效消息。

图5 自动错误过滤

六、错误及恢复

为了避免设备因自身原因影响其他正常节点,11898-1固定每个CAN控制器都有一个发送错误计数器(TEC)和接收错误计数器(REC)。转换流程如图6。

  • 主动错误状态:这是设备正常状态,设备正常参加通信,当检测到错误时发送错误标识。

  • 被动错误状态:检测出错误后,设备将发送被动错误标识。

  • 总线状态关闭:因为自身严重问题使总线自身进入总线关闭状态,该状态下无数据收发。

图6 设备状态转换

七、一致性测试

CAN总线实际应用中总会遇到很多问题,因此对总线的各个方面做一致性测试十分必要。CAN的一致性测试包括物理层一致性测试、数据链路层一致性测试、应用层一致性测试。参考ISO 11898-1,可使用CANScope对CAN总线做数据链路层一致性测试,包括图7内的测试项目。

图7 一致性测试项目

  • 采样点测试:该测试旨在验证CAN 控制器的波特率采样点位置。采用干扰的手段,将采样点位置的逻辑电平破坏,则这个 CAN 报文将出现错误。以此就可以确定干扰的位置为采样点位置。

图8 采样点测试

  • CAN2.0B 兼容测试:测试被测设备DUT 是否能兼容CAN2.0B 的扩展帧,不会发出错误帧。根据GMW14242,要求在DUT在接收扩展帧时,不会有错误帧发出。测试平台架构如图9所示。

图9 CAN2.0B兼容性测试

  • 报文标示符测试:测试被测DUT 发出的报文标识符(ID)是否符合预期。根据ISO11898-1,要求在DUT在发送所有应用报文,都具备正确的ID。如图10在数据长度框、帧ID框内进行关键字检索,查找异常帧。

图10 报文标示符测试

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

    关注

    112

    文章

    16342

    浏览量

    177870
  • CAN
    CAN
    +关注

    关注

    57

    文章

    2744

    浏览量

    463640
  • 周立功
    +关注

    关注

    38

    文章

    130

    浏览量

    37620

原文标题:【CAN高阶】带您认识ISO11898-1:数据链路层和物理层信号

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【OK210申请】无线数据传输模块设计

    和单片机的接口电路。(3) 编写控制无线数据传输器件进行数据。目标:(1) 单片机系统:通过串口传输向上位机发送数据,同时,控制无线数据传输
    发表于 07-24 10:39

    基于SDRAM的u***与pc之间数据传输资料

    请问各位大神有没有基于SDRAM的u***与pc之间数据传输资料啊,急用!
    发表于 11-27 08:30

    请问怎么验证Hyperlink的片间数据传输功能?

    本帖最后由 一只耳朵怪 于 2018-6-25 10:07 编辑 贵公司目前只推出了开发板,上面只有一个dsp芯片,怎么验证Hyperlink的片间数据传输功能?
    发表于 06-25 06:23

    无线数据传输模块的实际应用

    数据传输模块的实际应用一、智能安防安防是物联网的一大应用市场,传统安防对人员的依赖性比较大,非常耗费人力,而智能安防能够通过设备实现智能判断。目前,智能安防最核心的部分在于智能安防系统,该系统中应用无线
    发表于 06-18 04:21

    openmv与STM32之间数据传输怎么实现

    openmv与STM32之间数据传输怎么实现
    发表于 12-13 07:35

    如何正确实现EndDevice和Coordinator之间数据传输

    无法将数据从Coordinator传输到EndDevice。虽然模板提供了数据传输的功能,但它并没有告诉我如何以及在哪里调用该功能。所以我需要你帮助告诉我如何正确实现EndDevice
    发表于 03-24 08:38

    WNS无线数据传输模块

      WNS是为传感器实现无线网络数据传输而设计的产品。该产品有嵌入式无线数据传输模块和独立部件可满足各类传感器配套选择。
    发表于 09-25 17:20 13次下载
    WNS无线<b class='flag-5'>数据传输</b><b class='flag-5'>模块</b>

    Linux0.11-内核和用户空间的数据传输

    内核空间数据段的选择符为0x10,用户空间数据段选择符为0x17。内核空间、用户空间之间数据传输,是段间数据传输。C语言中的赋值语句编译成
    发表于 05-15 15:34 1183次阅读

    一种面向MapReduce的中间数据传输流水线优化机制

    送给 Reducer任务,由此导致的大量传输延迟成为 Mapreduce框架性能的重要瓶颈。为此,文中提出了一种面向 Mapreduce的中间数据传输流水线优化机制,将有效计算与中间数据传输解耦,以流水线的方式重叠执行各个阶段,
    发表于 04-13 14:19 4次下载
    一种面向MapReduce的中<b class='flag-5'>间数据传输</b>流水线优化机制

    无线数据传输模块的功能特点

    无线数据传输模块主要采用RS485通讯方式,将有线采集端的数据传送到模块中,再以无线方式进行数据传输
    发表于 07-20 10:21 1646次阅读

    如何在主机和主机之间实现数据传输优化

      这篇文章的重点是提高数据传输的效率。在 下一篇文章 中,我们讨论了如何将数据传输与计算和其他数据传输重叠。
    的头像 发表于 04-11 10:32 2263次阅读
    如何在主机和主机<b class='flag-5'>之间</b><b class='flag-5'>实现</b><b class='flag-5'>数据传输</b>优化

    如何实现MQTT协议数据传输

    如何实现MQTT协议数据传输? 随着物联网技术的不断发展,越来越多的设备和应用需要实现互联互通。而MQTT作为一种轻量级的发布/订阅消息传输协议,在物联网领域应用广泛,成为了许多设备
    的头像 发表于 11-15 17:23 1130次阅读

    虹科方案 | 如何破解CAN与车载以太网之间数据传输和协议转换的难题?

    在车辆网络时代,数据传输和协议转换在通信领域中扮演着至关重要的角色。它们不仅能够实现车辆内部系统之间的互联互通,还支持车辆与外部网络进行通信,从而为驾驶者带来更智能、便捷的驾驶体验。本文将介绍
    的头像 发表于 11-27 09:55 917次阅读
    虹科方案 | 如何破解<b class='flag-5'>CAN</b>与车载以太网<b class='flag-5'>之间数据传输</b>和协议转换的难题?

    CAN转以太网模块数据传输时有时无的问题如何解决?

    CAN转以太网模块数据传输时有时无的问题可能由多种原因引起。
    的头像 发表于 05-17 09:19 472次阅读

    CAN总线数据传输速率设置

    CAN(Controller Area Network)总线是一种串行通信协议,主要用于汽车和工业控制系统中,以实现电子控制单元(ECU)之间的通信。CAN总线的
    的头像 发表于 11-12 10:03 488次阅读