CAN详解--协议详解
基础知识
- 一、背景
- 二、发展
- 三、总线优点
- 四、总线要点
- 1、CAN的应用
- (1)车载网络构想
- (2)应用实例
- (3)连接图
- 2、CAN协议基本概念
- (1)ISO模型与CAN协议
- (2)ISO11898 和 11519-2 物理层的主要不同点
- (3)通信速度和最大总线长度
- (4)ISO11898、ISO11519-2 的物理层特征
- (5)CAN 协议和标准规格
- (6)通信协议分类
- 3、CAN协议
- 帧的种类及用途
- (1)数据帧
- A、数据帧的构成
- (2)遥控帧
- A、遥控帧的构成
- (3)错误帧
- A、错误帧的构成
- (4)过载帧
- A、过载帧的构成
- (5)帧间隔
- A、帧间隔的构成
- 五、补充要点
- 1、信号传输技术数据
- 2、干扰问题
- 3、can收发器接口
- 4、显性电平和隐性电平
- 六、参考
一、背景
1、随着车用电气设备增加,对应的电气节点剧增(高档车节点有上千之多),一般的通信协议需要的线束太多。需要减少线束,支持更多节点的协议。
二、发展
1、CAN ( Controller Area Network ) 即控制器局域网络。由于其高性能、高可靠性、及独特的设计,CAN越来越受到人们的重视。CAN最初是由德国的BOSCH公司为汽车监测、控制系统而设计的。现代汽车越来越多地采用电子装置控制,如发动机的定时、注油控制,加速、刹车控制(ASC)及复杂的抗锁定刹车系统(ABS)等。由于这些控制需检测及交换大量数据,采用硬接信号线的方式不但烦琐、昂贵,而且难以解决问题,采用CAN总线上述问题便得到很好地解决。
2、1983-1986年 大众与Bosch制定 软件协议,由Intel 生产控制器。
3、1990年 首次应用于汽车 奔驰 S级 12 缸发动机的汽车。
4、1991年9月,NXP半导体公司制定并发布CAN技术规范CAN2.0A/B,其中CAN2.0A协议规范定义了标准帧格式,CAN2.0B协议规范定义了扩展帧格式。
5、1993年11月,ISO组织正式颁布CAN国际标准ISO11898(高速应用,数据传输速率小于1Mbps)和ISO11519(低速应用,数据传输速率小于125Kbps)。
6、1996年 用于奥迪 A8 D2自动变速器 3.7升 V8 01V AG5的汽车。
7、1997年 用于帕萨特 B5 AG。
8、1998年 用于宝来、高尔夫 A4 AG。
9、VAN Bus 用于标志、雷诺、雪铁龙等,菲利普公司产品。
10、J1850-HBCC 用于福特,莫托罗拉公司产品。
11、J1850-DLC 用于通用,莫托罗拉公司产品。
三、总线优点
1、数据传递更安全可靠;
2、低成本(通信介质可采用双绞线,同轴电缆和光导纤维,一般采用廉价的双绞线即可,无特殊要求);
3、高速实时传递;
4、有条件实现单线功能;
5、适用于各种汽车;
6、开放的标准。
四、总线要点
1、CAN的应用
(1)车载网络构想
(2)应用实例
(3)连接图
2、CAN协议基本概念
(1)ISO模型与CAN协议
(2)ISO11898 和 11519-2 物理层的主要不同点
(3)通信速度和最大总线长度
(4)ISO11898、ISO11519-2 的物理层特征
(5)CAN 协议和标准规格
(6)通信协议分类
3、CAN协议
帧的种类及用途
(1)数据帧
A、数据帧的构成
数据帧由7个段构成,分别是:
(1) 帧起始:表示数据帧开始的段。
(2) 仲裁段:表示该帧优先级的段。
(3) 控制段:表示数据的字节数及保留位的段。
(4) 数据段:数据的内容,可发送 0~8 个字节的数据。
(5) CRC 段:检查帧的传输错误的段。
(6) ACK 段:表示确认正常接收的段。
(7) 帧结束:表示数据帧结束的段。
(2)遥控帧
A、遥控帧的构成
遥控帧由6个段构成,分别是:
(1) 帧起始(SOF):表示帧开始的段。
(2) 仲裁段:表示该帧优先级的段。可请求具有相同 ID 的数据帧。
(3) 控制段:表示数据的字节数及保留位的段。
(4) CRC 段:检查帧的传输错误的段。
(5) ACK 段:表示确认正常接收的段。
(6) 帧结束:表示遥控帧结束的段。
(3)错误帧
A、错误帧的构成
(1) 错误标志
错误标志包括主动错误标志和被动错误标志两种。
主动错误标志:6 个位的显性位。
被动错误标志:6 个位的隐性位。
(2) 错误界定符
错误界定符由 8 个位的隐性位构成
(4)过载帧
A、过载帧的构成
(1) 过载标志
6 个位的显性位。
过载标志的构成与主动错误标志的构成相同。
(2) 过载界定符
8 个位的隐性位。
过载界定符的构成与错误界定符的构成相同。
(5)帧间隔
A、帧间隔的构成
帧间隔是用于分隔数据帧和遥控帧的帧。数据帧和遥控帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。
过载帧和错误帧前不能插入帧间隔。
(1) 间隔
3 个位的隐性位。
(2) 总线空闲
隐性电平,无长度限制(0 亦可)。本状态下,可视为总线空闲,要发送的单元可开始访问总线。
(3) 延迟传送(发送暂时停止)
8 个位的隐性位。只在处于被动错误状态的单元刚发送一个消息后的帧间隔中包含的段。
五、补充要点
1、信号传输技术数据
(1)CAN bus最高传播速度:1 Mbps
(2)ISO 分类:
低速型 低于10 kbps (用于后视镜调整、电动窗、灯光照明、雨刷器等,称作LIN总线)
低速型 10 -125 kbps (用于舒适系统、仪表显示等)
高速型 125 kbps -1Mbps (用于发动机控制、ABS、传动控制等)
(3)最多接入控制单元数:32个
(4)通用版本:Bosch CAN 2.0
2、干扰问题
(1)两条数据线相互缠绕,防止电磁波干扰和向外辐射,规定绞距20mm。
3、can收发器接口
(1)常用三种接口器件
M12小型连接器、OPEN5连接端子、DB9插座
4、显性电平和隐性电平
总线上的电平有显性电平和隐性电平两种。
总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。“显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比隐性电平更强。)
六、参考
1、《上海大众帕萨特CAN数据总线的结构原理》
2、《CAN 入门书》 作者 瑞萨科技
3、CAN总线要点
CAN详解--协议详解相关推荐
- HTTP协议详解(真的很经典)
转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...
- Http 协议详解笔记
HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第 ...
- Http协议 详解(转载)
http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分 ...
- ARP协议详解之ARP动态与静态条目的生命周期
ARP协议详解之ARP动态与静态条目的生命周期 ARP动态条目的生命周期 动态条目随时间推移自动添加和删除. q 每个动态ARP缓存条目默认的生命周期是两分钟.当超过两分钟,该条目会被删掉.所以,生 ...
- ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御
ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3 ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...
- HTTP协议详解 转自小坦克
HTTP协议详解 转自小坦克 -- 有些文章是引用别人的,为了方便我以后或不再备注;引用目的是因为直接网摘里面的地址经常被重置,找不到原来的文章 当今web程序的开发技术真是百家争鸣,ASP.NET, ...
- nbns协议_网络协议详解1 - NBNS
NetBIOS 简介 NetBIOS,Network Basic Input/Output System的缩写,一般指用于局域网通信的一套API,相关RFC文档包括 RFC 1001, RFC 100 ...
- 转:SSL 握手协议详解
SSL 握手协议详解 RSA作为身份认证,ECDHE来交换加密密钥,AES/DES等作为加密. 如果RSA来加解密,那么身份认证后,直接用认证后的RSA公钥解密.不需要再额外交换加密密钥了. 相关报文 ...
- 【HTTP协议】超详细的HTTP协议详解
基本介绍 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/ ...
- HTTP 协议详解(超级经典)
协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器 什么是HT ...
最新文章
- 2006年上半年 网络工程师 上下午试卷【附带答案】
- python爬虫如何配置动态爬虫代理
- java 1.8 tar.gz_linux安装java1.8
- 成功解决TypeError: Singleton array array('data_input/xgboost/data_RentListingInquries/RentListingInqurie
- 【数学题】男女的比例
- python tensorflow教程_TensorFlow入门教程
- mock方法常用框架_什么是Mock测试?
- java 中如何比较时间先后,java中如何进行日期时间比较?4种方法介绍
- Hololens UnityChatSDK配置教程 Unity跨平台音视频通讯SDK汇总
- 日本公司为东京大学开设区块链课程捐款80万美元
- 小程序之跨平台黑魔法
- 【异常】because it is a JDK dynamic proxy that implements
- 无线网络 开启nat共享服务器,wifi共享大师开启NAT服务出错的解决方案
- 【微信小程序】合法域名校验出错,不在以下合法域名列表中 解决方法
- 开放IPTV论坛(OIPF)的HBB TV标准规范
- 比较motif和一条长序列的相似性
- matlab int double类型,( ) 一个 int 型与一个 double 型数据进行混合运算时,其结果是 double 型。...
- 什么是固态功率放大器?射频固态功率放大器?
- 监听器到底是什么,有什么用
- 重启计算机怎么一键还原系统还原,小编教你电脑怎么一键还原系统
热门文章
- php注册页面 邮件回复,PHP发送邮件确认验证注册功能示例【修改别人邮件类】...
- 完成网络传真,网络扫描。
- 关于linux系统无法启动,提示Give root password for maintenace的解决办法
- 【深度学习】U-Net简介
- python做大数据可视化软件_四款最受欢迎的大数据可视化工具
- 民航订票管理系统设计
- 传染病模型——波利亚坛子
- C# 将Big5繁体转换简体GB2312的代码
- Android代码修改SIM的PIN码,关于设置SIM卡PIN码及查询PUK码的教程
- 关于WiFi密码破解的一些心得