CAN总线学习记录之二:系统结构与帧结构
CAN总线系统结构
CAN 控制器
接收控制单元中微处理器发出的数据,处理数据并传给 CAN 收发器
CAN 收发器
将数据传到总线 or 从总线接收数据给 CAN 控制器
CAN 数据传递终端
避免数据传输终了反射回来
CAN 数据总线
传输数据的数据线,两根:CAN-high and CAN-low,差分信号


CAN 总线系统的数据传输
CAN 总线节点上的节点发送数据是以报文的形式广播给网络中所有节点。收发器接收到数据就把数据传送给控制器,再由控制器检查判断是不是所需数据。不是则忽略。
- 网络上任何一个节点在任何时候都可以发送数据
- 多个节点发送数据,优先级低主动退出发送
- 短帧结构,每帧数据信息为0~8字节(具体用户定义),对数据编码而不是地址编码
- CAN 每帧都有 CRC 校验和其他检验措施,严重错误的情况下具有自动关闭输出的功能
CAN 总线系统数据格式
CAN-bus 通信帧共分为数据帧、远程帧、错误帧、过载帧和帧间隔五种类型。
- 数据帧
结构上由7个段组成,其中根据仲裁段ID码长度的不同,分为标准帧(CAN2.0A)和扩展帧(CAN2.0B)。

帧起始、帧结束

仲裁段

显性隐性

总线仲裁


- 从该分析过程得出结论是:帧 ID 值越小,优先级越高
- 对于同为扩展格式数据帧、标准格式远程帧和扩展格式远程帧的情况同理。


控制段

数据段

CRC段

ACK段

远程帧

数据帧与远程帧的区别

CAN-bus 错误类型



过载帧

帧间隔


CAN总线学习记录之二:系统结构与帧结构的更多相关文章
- Lua和C++交互 学习记录之二:栈操作
主要内容转载自:子龙山人博客(强烈建议去子龙山人博客完全学习一遍) 部分内容查阅自:<Lua 5.3 参考手册>中文版 译者 云风 制作 Kavcc vs2013+lua-5.3.3 1 ...
- CAN总线学习系列之二——CAN总线与RS485的比较
CAN总线学习系列之二——CAN总线与RS485的比较 上 一节介绍了一下CAN总线的基本知识,那么有人会问,现在的总线格式很多,CAN相对于其他的总线有什么特点啊?这个问题问的好,所以我想与其它总线 ...
- 我的hibernate学习记录(二)
通过上一篇文章我的hibernate学习记录(一)基本上的入门了hibernate,但是,里面还有还多东西是通过迷迷糊糊的记忆,或者说copy直接弄进去的,所以这篇文章就需要对上篇的一些文件.对象进行 ...
- 我的Spring学习记录(二)
本篇就简单的说一下Bean的装配和AOP 本篇的项目是在上一篇我的Spring学习记录(一) 中项目的基础上进行开发的 1. 使用setter方法和构造方法装配Bean 1.1 前期准备 使用sett ...
- 我的three.js学习记录(二)
通过上一篇文章我的three.js学习记录(一)基本上是入门了three.js,但是这不够3D,这次我希望能把之前做的demo弄出来,然后通过例子来分析操作步骤. 1. 示例 上图是之前做的一个dem ...
- redis入门学习记录(二)
继第一节 redis入门学习记录(一)之后,我们来学习redis的基本使用. 接下来我们看看/usr/local/redis/bin目录下的几个文件作用是什么? redis-benchmark:red ...
- 我的Spring Boot学习记录(二):Tomcat Server以及Spring MVC的上下文问题
Spring Boot版本: 2.0.0.RELEASE 这里需要引入依赖 spring-boot-starter-web 这里有可能有个人的误解,请抱着怀疑态度看. 建议: 感觉自己也会被绕晕,所以 ...
- CAN总线学习记录之一:CAN简介
CAN 是 Controller Area Net 的缩写,即控制器局部网,是一种有效支持分布控制或实时控制的串行通信网络.CAN 是德国 Bosch 公司为汽车的监测.控制系统而设计的,如控制发动机 ...
- CAN协议,系统结构和帧结构
CAN:Controller Area Network,控制器局域网 是一种能有效支持分布式控制和实时控制的串行通讯网络. CAN-bus: Controller Area Network-bus,控 ...
随机推荐
- Oracle约束、索引
Oracle中的约束有五种,分别为: 非空:not null 主键:primary key 外键:foreign key 唯一:unique 检查:check 在数据字典视图 user_constra ...
- node 重新安装依赖模块
rm -rf node_modules rm package-lock.json npm cache clear --force npm install
- DHCP工作原理简析
引言 DHCP是网络体系结构中应用层的一个重要协议,它可以帮助我们对要连接到互联网的计算机进行IP地址等信息的配置.本文从DHCP的原理出发,就DHCP的工作过程 进行详细的探讨. 主要报文 发现报文 ...
- MVVM简介与运用
在介绍MVVM框架之前,先给大家简单介绍一下MVC.MVP框架(由于本博文主要讲解MVVM,所以MVC和MVP将简化介绍,如果需要我将在以后的博文中补充进来). MVC框架: M-Model : 业务 ...
- Java后期拓展(一)之Redis
1.NoSQL数据库简介 2.Redis的介绍及安装启动 3.Redis的五大数据类型 4.Redis的相关配置 5.Redis的Java客户端Jedis 6.Redis的事务 7.Redis的持久化 ...
- Python基础之自定义工具类
class ListHelper: @staticmethod def find_all(target, func_condition): """ 查找列表中满足条件的所 ...
- unittest中的测试固件
运行下面的两段代码,看看有什么不同? 第一段: import unittest from selenium import webdriver class F2(unittest.TestCase): ...
- iOS依赖库管理工具之Carthage
在iOS开发中,我们常会用CocoaPods来进行依赖库的管理.CoaoaPods 是一套整体解决方案,我们在 Podfile 中指定好我们需要的第三方库,然后 CocoaPods 就会进行下载,集成 ...
- 1.2 Why need pluggable?
When Android programmers write new features, bugs, or even crashes will exits in their App. Once a t ...
- 前端系列——jquery.i18n.properties前端国际化解决方案“填坑日记”
前言:最近,新的平台还没有开发完成,原来的老项目又提出了新的需求:系统国际化.如果是前后端完全分离的开发模式,要做国际化,真的太简单了,有现成的解决方案,基于Node构建的时下热门的任何一种技术选型都 ...