CAN总线疑惑与解答
1 CAN总线2根数据线是怎么表示数据信息1和0的?
Can总线采用差分数据表示方法,平时2个数据线为2.5V,表示隐性(1)。当用数据0(显性)需要发送时1跟数据线上升到3.5V另一个下降到1.5V。如图a所示
所有节点都连接到这两根数据线,当所有节点都发送数据为隐性时总线数据才表示为隐性,如果有其中一个节点发送数据显性则总线数据表示为显性。数据仲裁也就是基于这样一个特点仲裁的。
2 CAN总线各个节点之间没有时钟线,如果各节点间时钟频率不一致或者即使时钟频率完全一致但相位偏移怎么办,它是怎么实现各个节点同步的?
网络的标准位速率,其中就是额定位时间(也称标准位周期)。如图1所示,CAN总线的额定位时间是由4部分组成的:同步段(SYNC_SEG),传播段(PROP_SEG),相位缓冲段1(PSEG1)和相位缓冲段2(PSEG2)。所以额定的位时间、位周期中的这些段都是可以编程设置的,且都可以用整数个基本时间单位(时间份额TQ)来表示。这个基本时间单位由振荡器分频而得的 ,(BRP为波特率预分频因子,也可以编程设置)。
图1 CAN总线额定位时间的结构
2.1 硬同步
硬同步只在总线空闲时通过一个下降沿(帧起始)来完成,此时不管有没有相位误差,所有节点的位时间重新开始。强迫引起硬同步的跳变沿位于重新开始的位时间的同步段(SS)之内
2.2 再同步
在消息帧的随后位中,每当有从“隐性位”到“显性位”的跳变,并且该跳变落在了同步段之外,就会引起一次重同步。重同步机制可以根据跳变沿增长或者缩短位时间以调整采样点的位置, 保证正确采样
3 CAN总线的帧类型和各种帧类型的作用?
3.1 数据帧
3.2 远程帧
3.3 出错帧
3.4 超载帧
4 CAN总线发送数据和回复ACK
每种类型的帧数据中会有2个bit隐形数据(00)表示ACK,当第一个收到数据节点会把后1个bit隐形数据改为显性数据(01),发送端如果检测到ACK变成显性则表示至少有一个节点收到数据。
5 CAN总线怎么表示总线是空闲状态?
如果总线中有连续11个隐形数据则表示总线空闲。
CAN总线疑惑与解答的更多相关文章
- [疑惑与解答] WxPython In Action -1
在学<活学活用wxPython>第三章的时候,我遇到一点疑惑,那就是下面语句的区别是什么 例 3.1 第4,5行: panel = wx.Panel(self, -1) button = ...
- 关于 android 的 view.getLeft(), getRight(), getTop(), getBottom() 的一些疑惑(坑)解答
(原创) 今天在做下滑刷新的时候碰到 view 的四个 get 函数有点特别,具体遇到的问题如下,经反复测试和查找资料,填坑如下: 1,为什么我有时候在使用getLeft(), getRight(), ...
- ThreadPoolExecutor 几个疑惑与解答
任务是否都要先放入队列? 当工作线程数小于核心线程数时,任务是不会经过队列,而是直接创建 Worker 时传入.但是如果工作线程数已经大于核心线程数,则任务是要先放入队列的.实际上只要是被创建的工作线 ...
- python新手中常见疑惑及解答
1 lambda函数 函数格式是lambda keys:express 匿名函数lambda是一个表达式函数,接受keys参数,返回表达式的值.所以不用return,也没有函数名,经常用在需要ke ...
- java学习中碰到的疑惑和解答(二)
路径问题是一个在平时学习和开发碰到的常见问题,对于初学者是一个比较值得研究的东西.因此对路径问题进行总结. 1. 编写路径为了告诉编译器如何找到其他资源. 2. 路径分类: 相对路径:从当前资源出 ...
- java学习中碰到的疑惑和解答(一)
今天写一个接口的时候发现,接口的方法不需要写修饰符,直接写数据类型加上方法名(参数)即可通过编译. import java.util.List; import com.bjm.pojo.Flower; ...
- 【论文总结】MapReduce论文
摘要: MR是啥:编程模型,用户只需编写Map,Reduce两个函数,系统完成分布式计算 MR系统是啥:在大量普通计算机上实现并行化计算,系统只关心如何分割数据.大规模集群的调度.集群容错.集群通信 ...
- ucore操作系统学习笔记(一) ucore lab1系统启动流程分析
一.ucore操作系统介绍 操作系统作为一个基础系统软件,对下控制硬件(cpu.内存.磁盘网卡等外设),屏蔽了底层复杂多样的硬件差异:对上则提供封装良好的应用程序接口,简化应用程序开发者的使用难度.站 ...
- Oracle事务之一:锁和隔离
Oracle事务之一:锁和隔离 一. 事务概述 事务管理是数据库处理的核心.数据库既要保证用户能并发地执行事务,还要保证数据库的一致性. 当第一条可执行的SQL开始执行,就隐形地开始了一个事务,直到遇 ...
随机推荐
- [JSOI2016]病毒感染[dp]
题意 有 \(n\) 个村庄按标号排列,每个村庄有一个死亡速度 \(a_i\) 表示每天死 \(a_i\) 人(除非你治好这个村庄). 你从 1 号村庄出发,每天可以选择向相邻的村庄进发或者治愈 ...
- 在Windows7上如何找到Cookie
摘要 出于兴趣爱好,前一阵子做了一个网页,网页中需要用到Cookie,但是,根据书上的说明,并没有找打教材中所说的Cookie的位置,本文就主要介绍在计算机(Win7)中Cookie的存放位置,同样适 ...
- CSS 分类 (Classification) 实例
CSS 分类 (Classification) 实例CSS 分类属性 (Classification)CSS 分类属性允许你控制如何显示元素,设置图像显示于另一元素中的何处,相对于其正常位置来定位元素 ...
- Iptables防火墙规则使用梳理
iptables是组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤.封包重定向和网络地址转换(NAT)等功能 ...
- npm脚本探析
什么是 npm 脚本? 在package.json文件里面,使用scripts字段定义的脚本命令 { // ... "scripts": { "build": ...
- 网络编程学习笔记:Socket编程
文的主要内容如下: 1.网络中进程之间如何通信? 2.Socket是什么? 3.socket的基本操作 3.1.socket()函数 3.2.bind()函数 3.3.listen().connect ...
- 关于在VB.NET中调用使用VC++编写的类库dll的一点笔记
前言 结对作业要求一出来,我就立刻想到了把“计算核心”封装成dll,然后使用vb.net编写UI调用dll的思路.然而在实现过程中却遇到了很多的问题. 我在这个过程中是负责使用vb.net编写UI并调 ...
- HTML 引入Css样式
- PyXB: Python XML Schema Bindings
http://pyxb.sourceforge.net/ PyXB (“pixbee”) is a pure Python package that generates Python source c ...
- Windows10下手工强制清理删掉安装版的JRE8导致java.exe无法运行的解决办法
error:could not open xxxx.jvm.cfg 参考:https://blog.csdn.net/u010102493/article/details/18425267 1.搜索并 ...