CAN总线技术1--协议摘要
来源:互联网 发布:当老师 知乎 编辑:程序博客网 时间:2024/05/07 15:27
CAN总线技术1--协议摘要
去年开始参加一个项目,由于涉及的内容比较多,且参与的人比较少,所以一直到现在,项目仍在进行中。最近这阶段,完成CAN总线设备在Rtems下的驱动。所以这里就写篇关于CAN总线设备的学习笔记。水平有限,错误在所难免,请各位大牛指正,欢迎各位看官拍砖。
这篇文章准备写如下几个方面的内容:
CAN总线协议重要内容摘要
CAN总线相关芯片
*网络控制控芯片SJA1000
*CAN总线收发器
CAN总线模块的硬件、软件设计
1.CAN总线协议重要内容摘要
(1)CAN分为数据链路层和物理层
逻辑链路子层包括:接收滤波、超载通知、恢复管理
媒体访问控制子层包括:数据封装/拆装、帧编码(填充/解除)、媒体访问管理、错误监测、出错标定、应答、串行化/解除串行化
图1
(2)CAN报文的帧类型
CAN2.0A中规定了4种帧格式:数据帧、远程帧、错误帧、超载帧。
数据帧:由7个不同的、场位组成,即起始位、仲裁场、控制场、数据场、CRC场、ACK场、帧结束。
图2
CAN报文的帧格式:以CAN2.0B扩展帧为例,每帧13B,包括两个部分:信息和数据两部分。前5个字节为信息部分,后8个字节为数据部分。
图3
(3)CAN总线的仲裁原理CAN总线使用的是一种叫做“载波监测,多主掌握/冲突避免”的通信模式。当总线空闲时呈现隐电平,此时任何一个节点都可以向总线发送一个显性电平作为一个帧的开始。当发生冲突,CAN总线的解决总线竞争的方法是,按位对标识符进行仲裁。
按位对标识符进行仲裁:...
图4
(4)报文滤波原理
CAN总线中,存在多种传送和接收数据的方式,比如点对点、一点对多点、全局广播等几种方式。这几种方式的选择和转换就是通过CAN总线中的报文滤波技术实现的。
在SJA1000中,无论何种模式,CAN的某一地址存在于验收滤波器中。CAN控制器能够允许RXFIFO只接收同识别码和验收滤波器中预设值相一致的信息。只有当接收信息中的识别为和验收滤波器预定义的值相等时,CAN控制器才允许将已接收信息存入RXFIFO。
图5
(5)CAN总线的通信错误及其处理
在CAN总线中存在5种错误类型:
位错误:某个节点向总线发一位的同时也在读取总线数值是否和发出的该位相等,不同则视为检测到一个位错误。例外情况,在仲裁场的填充位流期间或应答间隙送出隐位而检测到显位时,不视为位错误。
填充错误:
CRC错误:
形式错误:
应答错误:
- CAN总线技术1--协议摘要
- CAN总线技术
- 谈汽车CAN总线技术
- CAN总线技术详解
- (2)can总线技术规范
- (3)can总线技术规范
- 浅析CAN总线技术的现状与未来
- 总线技术
- CAN总线技术2--CAN网络控制芯片SJA1000
- CAN总线技术在船舶监控系统的应用
- CAN、USART、SPI、SCI等常见总线技术介绍
- (5)can总线技术规范----位定时与同步技术
- 游戏协议加密(1)-消息摘要
- 游戏协议加密(1)-消息摘要
- LIN总线技术及应用——协议规范(一)
- LIN总线技术及应用——协议规范(一)
- CAN协议
- 微机原理复习笔记—总线技术1
- 与或运算短路,及
- 软键盘挡住输入框的解决方案(记录一下,未测试)
- MAC OS X 终端命令入门 (简单常用整理)
- 教你如何迅速秒杀掉:99%的海量数据处理面试题
- 通过javascript:和事件操作js的不同
- CAN总线技术1--协议摘要
- 求两个整数的最大公约数
- 第一次写博客
- POJ 1236 Network of Schools HDU 3836 Equivalent Sets 强连通分量+缩点 tarjan or kosaraju
- typedef和define的详细区别
- 在Mac OS X中配置Apache
- ASM + 接口 动态生成类
- 新装Fedora16,一点记录
- MVC UpdateModel的未能更新XXXXX的类型模型