can总线第三讲
一 CAN控制器
官方定义:CAN控制器用于将欲收发的信息(报文),转换为符合CAN规范的CAN帧,通过CAN收发器,在CAN-bus上交换信息。
举个便于理解的例子:就像您发快递一样,要根据快递公司提供的快递单填写具体的信息(发件人和收件人的地址、联系电话等),快递公司将之标准化(统一的快递单格式,并对每一件快递进行编号),随后才能传递信息(您快递的具体东西,如文件、衣服、手机等)。
(1)CAN控制器分类
CAN控制器芯片分为两类: 一类是独立的控制器芯片,如SJA1000;另一类是和微控制器做在一起,如NXP半导体公司的Cortex-M0内核LPC11Cxx系列微控制器、LPC2000系列32位ARM微控制器。CAN控制器的大致分类及相应的产品可参见
(2)CAN控制器的工作原理
为了便于读者理解CAN控制器的工作原理,下面给出了一个SJA1000 CAN控制器的经过简化的结构框图如图1所示。
接口管理逻辑
接口管理逻辑如图1所示。接口管理逻辑用于连接外部主控制器,解释来自主控制器的命令,控制CAN控制器寄存器的寻址,并向主控制器提供中断信息和状态信息。
CAN核心模块
CAN核心模块如图1所示。收到一个报文时,CAN核心模块根据CAN规范将串行位流转换成用于接收的并行数据,发送一个报文时则相反。
发送缓冲器
发送缓冲器如图1所示。发送缓冲器用于存储一个完整的报文,当CAN控制器发送初始化时,接口管理逻辑会使CAN核心模块从发送缓冲器读CAN报文。
验收滤波器
验收滤波器如图1所示,验收滤波器可以根据用户的编程设置,过滤掉无须接收的报文。
接收FIFO
接收FIFO如图1所示。接收FIFO是验收滤波器和主控制器之间的接口,用于存储从CAN 总线上接收的所有报文。
工作模式
CAN控制器可以有两种工作模式(BasicCAN和PeliCAN)。BasicCAN仅支持标准模式,PeliCAN支持CAN2.0B的标准模式和扩展模式。
二 CAN收发器
官方定义:CAN收发器是CAN控制器和物理总线之间的接口,将CAN控制器的逻辑电平转换为CAN总线的差分电平,在两条有差分电压的总线电缆上传输数据。
举个便于理解的例子:这类似于快递员,负责收发快递的工作。
目前市面上常见CAN收发器的分类及相应产品参见表2。
三 CAN-bus接口电路保护器件
在汽车电子中,CAN-bus系统往往用于对安全至关重要的功能,比如引擎控制、ABS系统以及气囊等,如果受到干扰导致工作失常将出现严重事故;此外,在不受到干扰的的同时,CAN-bus系统也不能干扰其它电子元件;所以CAN-bus系统必须满足电磁干扰(EMI)和静电放电(ESD)标准的严格要求。此外,在许多场合CAN-bus接口有可能会遭到雷电、大电流浪涌的冲击(例如许多户外安装的设备),所以还需要使用保护器件以防浪涌。
(1)共模扼流圈。如:EPCOS B8793。
(2)ESD防护。常见的CAN-bus专用ESD保护元件型号有NXP PESD1CAN或Onsemi NUP2105L等ESD元件。
四CAN总线控制器芯片滤波器的作用
官方定义:CAN总线控制器芯片滤波器用来设置自己的CAN地址。
在CAN总线上,CAN帧信息由一个节点发送,其它节点同时接收。每当总线上有帧信息,节点都会把滤波器的设置和接收到的帧信息的标识码相比较,节点只接收符合一定条件的信息,对不符合条件的CAN帧不予接收,只给出应答信号。
便于理解的例子:这类似于家门口收信件的邮箱,用来标明自己家的详细地址。邮递员分发邮件的时候,带着一堆信件在小区内投寄,邮箱地址则表明自己家的收信件地址,如果地址正确,邮递员就会把信件投递进邮箱(成功接收邮件);如果地址不符,邮递员则不会投送邮件(拒收该邮件)。
五 CAN总线控制器滤波的作用:
1、降低硬件中断频率,只有成功接收时才响应接收中断。类似于:快递员找到您家地址的时候,才会给您打电话。
2、简化软件实现的复杂程度,提高软件运行的效率。
不同的CAN控制器芯片的滤波器设置有所不同,下文中将针对具体的CAN控制器芯片进行详细讲解。
can总线第三讲的更多相关文章
- Linux设备管理(三)_总线设备的挂接
扒完了字符设备,我们来看看平台总线设备,平台总线是Linux中的一种虚拟总线,我们知道,总线+设备+驱动是Linux驱动模型的三大组件,设计这样的模型就是将驱动代码和设备信息相分离,对于稍微复杂一点的 ...
- C# Azure 消息队列ServiceBus (服务总线队列)
1. 前言 在阅读本文之前,可以查看微软官方的说明. https://www.azure.cn/documentation/articles/service-bus-create-queues/ 2. ...
- EventBus总线讲解
在我们公司经常用到总线,具体的总线是什么让我理解我也不清楚,但是在这几个月下来,我已经知道总线如何使用,现在加上示例讲解总线如何使用. 1. 首先我们的新建一个类,这个类其实是用于总线传递的模型 us ...
- Android事件总线
Android中Activity.Service.Fragment之间的相互通信比较麻烦,主要有以下一些方法: (1)使用广播,发送者发出广播,接收者接收广播后进行处理: (2)使用Handler和M ...
- 设备模型(device-model)之平台总线(bus),驱动(driver),设备(device)
关于关于驱动设备模型相关概念请参考<Linux Device Drivers>等相关书籍,和内核源码目录...\Documentation\driver-model 简单来说总线(bus) ...
- 分布式消息总线,基于.NET Socket Tcp的发布-订阅框架之离线支持,附代码下载
一.分布式消息总线以及基于Socket的实现 在前面的分享一个分布式消息总线,基于.NET Socket Tcp的发布-订阅框架,附代码下载一文之中给大家分享和介绍了一个极其简单也非常容易上的基于.N ...
- 分享一个分布式消息总线,基于.NET Socket Tcp的发布-订阅框架,附代码下载
一.分布式消息总线 在很多MIS项目之中都有这样的需求,需要一个及时.高效的的通知机制,即比如当使用者A完成了任务X,就需要立即告知使用者B任务X已经完成,在通常的情况下,开发人中都是在使用者B所使用 ...
- Windows Azure 服务总线和物联网
机器到机器 (M2M) 计算正迅速成为一种技术,所有开发人员和架构师需要拥抱. 许多研究表明一个未来世界的数百亿美元的设备 (在地球上的每一个人的出现).MSDN杂志有2篇文章讨论Azure服务总线和 ...
- ABP理论学习之事件总线和领域事件
返回总目录 本篇目录 事件总线 定义事件 触发事件 处理事件 句柄注册 取消注册 在C#中,我们可以在一个类中定义自己的事件,而其他的类可以注册该事件,当某些事情发生时,可以通知到该类.这对于桌面应用 ...
随机推荐
- 原生数据类型 nint,nuint,nfloat
原生数据类型根据操作系统32位 64位的不同,用这个关键定义的数据大小也不一样. 比如 nint 在 Xamarin.iOS 中,是 native int(原生整数)的缩写.当设备是 Apple 发布 ...
- fibnacci数列的python实现
费波那契数列(Successione di Fibonacci) 又译为费波拿契数.斐波那契数列.费氏数列.黄金分割数列 在数学上,费波那契数列是以递归的方法来定义: 用文字来说,就是费波那契数列由0 ...
- python+selenium+pycharm使用
上一章节讲了安装python及selenium,该章节讲解下使用pycharm编辑器进行代码编写 下载地址:http://www.jetbrains.com/pycharm/download/#sec ...
- 矩池云 | 使用LightGBM来预测分子属性
今天给大家介绍提升方法(Boosting), 提升算法是一种可以用来减小监督式学习中偏差的机器学习算法. 面对的问题是迈可·肯斯(Michael Kearns)提出的:一组"弱学习者&quo ...
- laravel 框架资源路由
- docker学习(三) - docker理解及命令
Docker 包括三个基本概念 镜像(Image) 容器(Container) 仓库(Repository) 镜像 Docker 镜像就是一个只读的模板. 例如:一个镜像可以包含一个完整的 ubunt ...
- 打靶笔记-02-vulhub-Hackademic.RTB1
打靶笔记-02-vulhub-Hackademic.RTB1 一.靶机信息 Name: Hackademic: RTB1(中等难度) Date release: 6 Sep 2011 Author: ...
- .NET MAUI 已在塔架就位 ,4月份RC
最美人间三月天,春光不负赶路人.在充满无限希望的明媚春天里,一路风雨兼程的.NET 团队正奋力实现新的突破. 根据计划,新一代移动开发平台MAUI 将于4月份 发布RC. 目前,MAUI的测试工作和火 ...
- 10 分钟讲完 QUIC 协议。
建议阅读本文需要搭配作者 HTTP 相关文章食用. 历史 HTTP 系列文章: 看完这篇HTTP,跟面试官扯皮就没问题了 HTTP 2.0 ,有点炸 ! 这里先来回顾一下 HTTP 的发展过程.首先, ...
- Windows XP系统搜索故障及处理办法点点通
故障1:单击资源管理器工具栏上的"搜索"按钮或者按F3,系统无任何响应. 解决方法:首先进入C:\Windows\inf文件夹(该文件夹属性为隐藏),右键单击srchasst.in ...