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

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

3天内不再提示

CANOpen系列教程02_ 理解CAN总线协议

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 2020-03-06 16:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1写在前面

上一篇文章讲述了CAN和CANOpen,相信大家CAN和CANOpen有一定理解了。本文说的CAN即是一种总线,也是一种协议。因此,我们常听见CAN总线,也常听见CAN协议。

CAN协议和CANOpen协议是两套不同的协议。从软硬件层次来划分,CAN协议属于硬件协议,而CANOpen属于软件协议。

本篇文章先概述一下CAN网络,让大家对CAN总线协议有一个全局的概念,再到底层的CAN总线协议知识。

2

CAN网络

CAN网络可以理解为多台CAN设备连接在同一条CAN总线上组合成的网络,其中的CAN设备我们称之为节点。CAN网络拓扑结构如下图:

如上图,一个CAN节点主要包含三类:MCU应用程序、CAN控制器、CAN收发器

2.1 MCU应用程序

MCU应用程序我将其分为三块:业务逻辑代码、协议层代码、底层驱动代码。

A.业务逻辑代码:是根据项目需求而定,也很好理解。比如我读取一个传感器数据,并对其做出相应逻辑处理。

B.协议层代码:比如后续要讲述的CANOpen。

C.底层驱动代码:配置CAN总线相应参数、控制收发的代码。

2.2 CAN控制器

CAN控制器内部结构还是挺复杂的,一般现在CAN控制器都是与处理器集成在一起。

其实对于编程的人来说,无非也就是包含一些控制、状态、配置等寄存器

比如我们看到有些STM32芯片带有CAN,也就是说CAN控制器已经集成在STM32芯片中了,我们只需要编程操作其中的寄存器即可。

2.3 CAN收发器

CAN收发器:将CAN收发引脚(CAN_TX和CAN_RX)的TTL信号转换成CAN总线的电平信号。

PS:你可以把CAN总线通信认为是UART通过485进行通信:CAN控制器就如UART的控制器,而CAN收发器就如485转换芯片。

3

ISO标准化的CAN协议

写这一章节的主要目的就是想让大家了解CAN总线位于OSI所在层次。

3.1 ISO/OSI基本参照模型

【注】

ISO:International Standardization Organization国际标准化组织;

OSI:Open Systems Interconnection开放式系统间互联;

3.2 CAN在OSI模型中的定义

【注】

LLC:Logical Link Control逻辑链路控制;

MAC:Medium Access Control媒介访问控制;

从上图可以知道CAN总线底层硬件的内容(CAN控制器、收发器)主要位于OSI的第1层和第2层。

4

概述CAN总线协议

CAN总线协议:就是为了保证通信(收发)数据在CAN总线上能稳定传输而制订的一套协议。

CAN总线协议的内容很多,为方便初学者理解,本文先大概描述一下CAN总线协议,后续文章详细讲述CAN总线协议的内容。

4.1 总线信号

CAN总线为「两线」「差分」信号,用隐形代表逻辑1,显性代表逻辑0。如下图:

4.2 优先级

假如某一时刻,一个设备(节点)往总线发0,一个设备往总线发1。那么总线会呈现什么现象?

答案:最后总线呈现为显性,也就是0。

4.3 位时序

位时序逻辑将监视串行总线,执行采样并调整采样点,在调整采样点时,需要在起始位边沿进行同步并后续的边沿进行再同步。

简单的说就是对一个bit位分几段进行采样,目的就是提高数据传输稳定性。在STM32中底层驱动代码就需要进行位时序编程,在STM32参考手册中也会发现如下位时序图:

4.4 帧的种类和格式

帧的种类有多种:

数据帧:用于发送单元向接收单元传送数据的帧。

遥控帧:用于接收单元向具有相同 ID 的发送单元请求数据的帧。

错误帧:用于当检测出错误时向其它单元通知错误的帧。

过载帧:用于接收单元通知其尚未做好接收准备的帧。

帧间隔:用于将数据帧及遥控帧与前面的帧分离开来的帧。

数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有11个位的标识符ID,扩展格式有29个位的ID。

4.5 位填充

位填充是为防止突发错误而设定的功能。当同样的电平持续 5 位时则添加一个位的反型数据。如下图:

4.6 错误的种类

CAN总线协议内容很多,初学者先了解这些,后面文章具体到每一个点上,相信大家就会更明白其中的含义。

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

    关注

    58

    文章

    3010

    浏览量

    471391
  • CANopen
    +关注

    关注

    8

    文章

    456

    浏览量

    47561
  • 总线协议
    +关注

    关注

    0

    文章

    154

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    圆满收官 | 虹科CAN总线专题全系列直播精华回顾已上线!

    虹科CAN总线系列直播圆满收官!HongKeWebinars作为汽车电子通信领域的核心协议CAN总线
    的头像 发表于 11-24 17:55 2520次阅读
    圆满收官 | 虹科<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>专题全<b class='flag-5'>系列</b>直播精华回顾已上线!

    CANopen转Profinet是一种构建于控制局域网设备之上的协议网关

    CANopen作为构建于控制局域网(Controller Area Network, CAN)之上的高层通信协议,其体系架构包含通信子协议与设备子
    的头像 发表于 11-05 14:05 240次阅读
    <b class='flag-5'>CANopen</b>转Profinet是一种构建于控制局域网设备之上的<b class='flag-5'>协议</b>网关

    CANopen转Profient网关协议介绍

    CANopen介绍: CANopen是一种基于控制器局域网(CAN)的高层工业通信协议,由国际用户和制造商协会CiA于1995年发布,基础规范为CiA 301标准。该
    的头像 发表于 09-25 17:31 599次阅读
    <b class='flag-5'>CANopen</b>转Profient网关<b class='flag-5'>协议</b>介绍

    ProfiNet转CAN/CANopen网关技术详解

    1 产品概述与核心功能 三格电子的 SG-PN(h750)-COE/CAN 网关主要用于实现 PROFINET 与 CAN/CANopen (COE) 或自由 CAN 口之间的
    的头像 发表于 08-26 16:54 570次阅读
    ProfiNet转<b class='flag-5'>CAN</b>/<b class='flag-5'>CANopen</b>网关技术详解

    如何用泰克MSO5系列混合信号示波器调试IoT和CAN总线

    场景。然而,在IoT系统开发与维护中,CAN总线的调试常面临信号干扰、时序错误、协议冲突等问题。泰克MSO5系列混合信号示波器凭借其高分辨率、多通道同步、
    的头像 发表于 05-30 14:17 568次阅读
    如何用泰克MSO5<b class='flag-5'>系列</b>混合信号示波器调试IoT和<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>

    使用ES32实现CANopen从机

    CANopen是一种基于CAN的通信协议,已在工业领域得到了广泛应用。CAN提供可靠的底层数据传输,CANopen提供标准化的应用层
    的头像 发表于 03-26 19:05 1479次阅读
    使用ES32实现<b class='flag-5'>CANopen</b>从机

    CANOPEN协议详细介绍

             CANOPEN协议是基于CAN总线协议建立的应用层协议
    发表于 03-26 15:27 0次下载

    EtherCAN转CANopen网关,轻松搞定通信难题!

    在现代工业自动化和通信领域,兴达易控EtherCAN转CANopen网关XD-ECCOM20扮演着至关重要的角色。EtherCAN是一种高速现场总线协议,广泛应用于汽车电子、工业控制等领域;而
    的头像 发表于 03-22 11:42 577次阅读
    EtherCAN转<b class='flag-5'>CANopen</b>网关,轻松搞定通信难题!

    三格电子Modbus TCP转CANOpen网关相关问答

    TCP转CANOpen网关 ? A2: 协议差异 :Modbus TCP基于以太网,采用主从架构;CANOpen基于CAN总线,支持多主节
    的头像 发表于 03-13 10:22 679次阅读
    三格电子Modbus TCP转<b class='flag-5'>CANOpen</b>网关相关问答

    广成科技CANopenCAN模块的应用场景

    以下是广成科技CANopenCAN模块在不同领域的具体应用示例。
    的头像 发表于 02-17 11:28 962次阅读

    解析ECAN-E02单过滤器CAN硬件过滤

    什么是CAN总线CAN(ControllerAreaNetwork)总线是一种用于车辆电子设备之间通信的标准协议
    的头像 发表于 01-16 19:35 690次阅读
    解析ECAN-E<b class='flag-5'>02</b>单过滤器<b class='flag-5'>CAN</b>硬件过滤

    基于Xilinx的A7系列FPGA的CAN总线协议开发

    一、CAN总线协议介绍 CAN是 Controller Area Network 的缩写(以下称为 CAN ),是 ISO 国际标准化的串行
    的头像 发表于 12-21 14:49 3069次阅读
    基于Xilinx的A7<b class='flag-5'>系列</b>FPGA的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>协议</b>开发

    使用CAN总线进行数据采集的方法

    使用CAN总线进行数据采集的方法通常涉及一系列步骤,这些步骤确保了数据的准确采集、处理和存储。以下是一个详细的方法指南: 一、了解CAN总线
    的头像 发表于 12-20 18:18 3441次阅读

    CAN总线与其他通信协议对比

    在现代工业和汽车领域,通信协议扮演着至关重要的角色。它们允许不同的电子控制单元(ECU)之间进行数据交换,确保系统的正常运行和协调。CAN总线作为一种成熟的现场总线技术,以其高可靠性、
    的头像 发表于 12-20 17:59 2605次阅读