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

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

3天内不再提示

CAN总线协议是什么?CAN总线协议有哪些?CAN总线协议知识分析

5RJg_mcuworld 来源:未知 作者:易水寒 2018-10-03 19:53 次阅读

本文说的CAN即是一种总线,也是一种协议。因此,我们常听见CAN总线,也常听见CAN协议。

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

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

1

CAN网络

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

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

1.1 MCU应用程序

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

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

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

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

1.2 CAN控制器

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

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

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

1.3 CAN收发器

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

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

2

ISO标准化的CAN协议

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

2.1 ISO/OSI基本参照模型

【注】

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

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

2.2 CAN在OSI模型中的定义

【注】

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

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

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

3

概述CAN总线协议

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

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

3.1 总线信号

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

3.2 优先级

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

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

3.3 位时序

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

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

3.4 帧的种类和格式

帧的种类有多种:

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

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

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

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

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

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

3.5 位填充

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

3.6 错误的种类

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

    关注

    146

    文章

    17152

    浏览量

    351260
  • 控制器
    +关注

    关注

    112

    文章

    16374

    浏览量

    178156
  • CAN总线
    +关注

    关注

    145

    文章

    1951

    浏览量

    130777

原文标题:嵌入式工程师常用的CAN总线协议,全面了解一下!

文章出处:【微信号:mcuworld,微信公众号:嵌入式资讯精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CAN总线协议简介

    CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN 为底层协议
    发表于 08-02 12:29 2023次阅读

    CAN总线协议知识科普

    本文说的CAN即是一种总线,也是一种协议。因此,我们常听见CAN总线,也常听见CAN
    发表于 09-15 12:47 3308次阅读

    浅谈CAN FD总线协议帧格式

    假期更新了一文搞懂CAN总线协议帧格式,CAN FD总线协议怎能错过?本篇博文将讲解
    发表于 10-14 12:49 3457次阅读
    浅谈<b class='flag-5'>CAN</b> FD<b class='flag-5'>总线</b><b class='flag-5'>协议</b>帧格式

    CAN总线通信协议的基础知识

    本文将介绍CAN总线通信协议的基础知识,目前的内容仅为通用的协议部分,暂不涉及具体的外设模块的用法。研究通信
    的头像 发表于 06-16 10:58 6623次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>通信<b class='flag-5'>协议</b>的基础<b class='flag-5'>知识</b>

    CAN总线知识】全面了解CAN总线协议

    提及总线,总是让人联想到那些交错在一起的计算机电线。那么这些电线如何发挥功效呢?这还得配合总线协议的管理来使用。那么今天我们介绍的就是CAN总线
    的头像 发表于 10-15 08:05 1476次阅读
    【<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>知识</b>】全面了解<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>协议</b>

    CAN总线协议分析

    `CAN总线接口协议分析通过OSC482L进行CAN总线接口的
    发表于 08-19 09:27

    CAN总线协议简介

    CAN总线协议1. CAN简介CAN(controller area network)控制器局域网是用于解决汽车众多控制部件之间的数据交换而
    发表于 03-01 06:29

    CAN总线的浅析CANopen协议

    本文分析CAN 总线的一些特点以及在国内的的应用状况,提出了引入国际上通用的CAN 总线高层应用协议
    发表于 03-27 15:37 104次下载
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>的浅析CANopen<b class='flag-5'>协议</b>

    CAN总线通信协议分析和实现 CAN总线通信协议以及其实现方法

    CAN总线通信协议分析和实现 CAN总线通信协议
    发表于 09-04 08:45 40次下载
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>通信<b class='flag-5'>协议</b>的<b class='flag-5'>分析</b>和实现 <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>通信<b class='flag-5'>协议</b>以及其实现方法

    CAN总线定义与CAN协议的基本概念

    CAN总线是什么?CAN总线定义是什么? CAN(Controller Area Network)是ISO国际标准化的串行通信
    发表于 12-27 13:40 3.2w次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>定义与<b class='flag-5'>CAN</b><b class='flag-5'>协议</b>的基本概念

    CAN总线通信协议分析实现

    CAN总线通信协议,才能完成数据准确可靠的传输。目前,也存在一些CAN总线产品开发公司定制的协议
    发表于 01-08 15:01 9次下载
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>通信<b class='flag-5'>协议</b><b class='flag-5'>分析</b>实现

    CAN总线协议教程|CAN报文分析

    CAN协议教程 介绍:CAN总线 CAN总线是广播类型的总线
    发表于 04-03 15:32 1.4w次阅读

    CAN总线通信协议

    CAN总线通信协议详细如下。
    发表于 04-19 16:54 78次下载

    CAN总线协议CAN在工业控制中的应用

    CAN总线协议CAN在工业控制中的应用说明。
    发表于 04-20 11:14 27次下载

    什么是CAN总线协议?它有哪些特性和应用?

    CAN总线协议(Controller Area Network,简称CAN),是一种在汽车和工业自动化领域广泛应用的串行通信协议。自1986
    的头像 发表于 05-27 16:32 1337次阅读