前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【CAN公开课】对面的猿猿你看过来

【CAN公开课】对面的猿猿你看过来

作者头像
用户1605515
发布2018-04-10 13:34:15
7230
发布2018-04-10 13:34:15
举报
文章被收录于专栏:嵌入式程序猿嵌入式程序猿
这个周末,各位猿友过的怎么样呢?对面的猿猿你CAN过来,CAN过来,这里的内容很精彩,请不要假装不理不睬。今天我们开始来学习CAN总线,今天先来简单介绍下一些基础知识。

1

CAN总线简介

CAN(Controller AreaNetwork)总线最早由BOSCH博世公司开发,控制器局域网(CAN)为串行通讯协议,最早知识应用在汽车电子领域,但随着技术的发展,应用的需要,由于其高性能、高可靠性、及独特的设计,CAN越来越受到人们的重视。 CAN 的应用已经拓展到很多领域,像传动控制,变频器,楼宇控制,农业机械,船舶等等,范围很广,从高速的网络到低价位的多路接线都可以使用 CAN。在汽车电子行业里,使用 CAN 连接发动机控制单元、传感器、防刹车系统、等等,其传输速度可达 1 Mbit/s。我们曾经介绍过的SAE J1939协议就是基于CAN总线的一种高层协议,被应用在重卡,农机,船舶等对安全要求较高的领域。下图就是一个简单的CAN网络。

2

CAN-Bus发展

1993年CAN 成为国际标准ISO11898(高速应用)和ISO11519(低速应用)。CAN的规范从CAN 1.2 规范(标准格式)发展为兼容CAN 1.2 规范的CAN2.0规范(CAN2.0A为标准格式,CAN2.0B为扩展格式),目前应用的CAN器件大多符合CAN2.0规范。CAN总线是一种串行数据通信协议,其通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。

3

CAN总线特性

报文的优先权

保证延迟时间

设置灵活

时间同步的多点接收

多主机

完善的错误检测处理机制

CAN总线的特性远不止这些,关于更多CAN总线基础的一些要求以及参数请参考BOSCH官方文档,建议大家阅读英文原版的官方文档,这里就不在赘述,简单几句话也讲不完,具体开发时候,对着示波器抓几个波形,在对着文档阅读记忆会比较深刻,后面的课程我们会以飞思卡尔kv4x系列32位MCU来带领大家学习CAN-bus。

4

飞思卡尔FlexCAN模块

飞思卡尔kv4x系列MCU包含一个称为FlexCAN的模块,这个模块完全实现遵守ISO11898-1和CAN2.0B的标准。下图为该模块的框图。

虚线框内为片内,虚线框外为片外,应用的时候,外部电路要接收发器,最好用隔离收发器。片内主要包含协议引擎,消息缓冲RAM块,外设总线接口,发送仲裁,接收匹配,总线接口单元等。支持标准帧和扩展帧。FlexCAN模块有很多特点:

支持CAN2.0B的全功能

兼容ISO11898-1 标准

灵活的消息邮箱数据长度(0~8字节)

支持FIFO和DMA功能

可编程的时钟源(外设时钟源或者晶振时钟源,对应的波特率配置不太一样, 应用时候要注意)

支持回环模式和只听模式

可编程的传输优先级机制

可屏蔽中断

低功耗模式

强大的FIFO功能

5

工作模式

正常模式 (用户或者管理)

在正常模式下,模块可以收发消息帧,错误处理,所有CAN一些功能都被使能。用户和管理模式的不同在与对一些控制寄存器的权限不同。

冻结模式:

在这种模式下,不能收发数据,并且会丢失同步到can总线

回环模式:

在这种模式下,可以实现自发自收,常用于测试。发送器的数据位流会返回接收器

只听模式:

在这种模式下,发送被禁止,所有的错误计数会被冻结

低功耗模式:

低功耗模式下又分为:禁止模式,打盹模式和停止模式

6

信号描述;

Rx:CAN 接收,0代表显性,1代表隐性,在协议的描述内容里,常常会看到显性隐性的术语,其实就是0和1.

Tx; CAN发送,0代表显性,1代表隐性。

CAN的寄存器比较多,设置也较复杂,后面的课程会专门来介绍。

7

功能概述

在应用中有消息邮箱和FIFO 两种应用方案配置,但都会涉及以下过程。

主要分为:

发送过程

发送仲裁过程接收过程

接收过程

接收匹配过程

8

中断

发送接收中断

错误中断

唤醒中断

发送警告中断

接收警告中断

9

协议时序

下图是CAN模块时钟源配置的一个简图,关于如何根据这个图的描述来配置波特率,会在后面的专题里详细讲解,现在大概了解下有两种选择方案,一种是晶振,一种是外设时钟。

这两种配置都已经成功调试和应用,并在250kbps和1Mbps下测试通过。据数据手册所言,晶振源模式比外设时钟模式精度高。

10

帧类型

报文传输由以下4 个不同的帧类型所表示和控制: 数据帧:数据帧将数据从发送器传输到接收器。 远程帧:总线单元发出远程帧,请求发送具有同一识别符的数据帧。 错误帧:任何单元检测到总线错误就发出错误帧。 过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。 数据帧和远程帧可以使用标准帧及扩展帧两种格式。它们用一个帧间空间与前面的帧分隔。

标准帧格式:

扩展帧格式:

今天先讲到这里,简单介绍了下CAN-bus的内容,希望对大家有所帮助。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档