CAN全称为“ControllerAreaNetwork”,简称CAN,是国际上应用最广泛的现场总线之一。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发出来。出于这些系统之间通信所用的数据类型及对可靠性要求不尽相同,且因多条总线构成的情况复杂、线束数量增加。为了适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需求,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。此后,CAN通过IS011898及IS0 11519进行了标准化,在欧洲已是汽车网络的标准协议,CAN的高性能和可靠性已被认同,并广泛应用于工业自动化、船舶、医疗设备、工业设备等方面。

CAN总线的特点

1、CAN是一种多主总线,即每个节点机均可成为主机,他们之间都可进行通信。

2、硬件方面,通信介质可以是双绞线、同轴电缆或光导纤维,通信速率可达1mb/s。

3、CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余校验、优先级判别等项工作。

4、CAN协议的一个最大特点是废除了传统的站地址编码,改为从通信数据块进行编码。采用这种方法的优点是可使网络内的节点个数在理论上不受限制,数据块的标识码可由11位或29位二进制数组成,因此可以定义211或229个不同的数据块,这种数据块编码方式,还可使不同的节点同时接收到相同的数据,这一点在分步式控制中非常重要。

5、数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。

6、CAN协议采用了crc检验并可提供相应的错误处理功能,保证了数据通信的可靠性。CAN总线所具有的极高的可靠性和独特设计,特别适合工业设各测控单元互连。工业界的地位不可小觑,并已公认为最有前途的现场总线之一。

CAN总线的工作原理

CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。CAN与I2C总线的许多细节很类似,但也有一些明显的区别。

当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,所有数据均进行了接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。

当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。

由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。所以在CAN总线中加进一些新站非常便利且无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。

CAN总线的优点

1、高性能:具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点;

2、抗干扰:采用双线串行通信方式,纠错能力强,可在高噪声多干扰环境中工作;

3、高集成:具有优先权和仲裁功能,可实现多个控制模块通过CAN 控制器集合到CAN-bus 上,从而形成多主机局部网络;

4、可控性:可根据报文的ID决定接收或屏蔽该报文;

5、验证与纠错:可靠的错误处理和检错机制;

6、修复能力:发送的信息遭到破坏后,可自动重发;

7、智能化:节点在错误严重的情况下具有自动退出总线的功能;

8、安全性:报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。

CAN总线缺点

1、可能出现的数据不一致性

2、可能出现的不可预估错误

3、信道堵塞情况

CAN总线的应用

1.楼宇自动化

在楼宇自动化中,现代的建筑安装系统(通风、照明、安全、监控)越来越多地建立在CAN总线系统上,通过其现实开关、按钮、传感器、照明设备、其他执行器和多控制系统之间的数据交换,实现建筑中各操作单元之间的协作,并对各单元不断变化的状态实时控制。

2.安全监控

在当前的各种监控系统中,普遍存在可靠性、实时性不高,分站缺乏统一规范等缺点,不能够很好地满足实时监控的要求。CAN总线由于具有高数据传输率、完善的规范和协议、高实时性、安全性、可靠性等,可很好解决上述各种问题。多应用如:水电站高边坡监控系统、大型远程高边坡监控网络、辊道陶瓷窖等监控系统。

3.汽车工业

在汽车工业领域,CAN被设计作为汽车环境中的微控制器通信,在车载各电子控制装置ECU之间进行信息交换,并形成汽车电子控制网络。如:汽车动力系统、制动控制系统、变速箱控制器、仪表、车载网络、电子主干系统中,均嵌入CAN控制装置。其应用使汽车的安全性、舒适性、动力性等性能更智能现代化。现在CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面,CAN总线在当今自动化领域成长迅速、被誉为自动化领域的计算机局域网络。它实现了分布式控制系统对象各节点之间进行实时、可靠的数据通信。

CAN总线知识点概述相关推荐

  1. PCI总线体系结构概述

    §1.PCI总线体系结构概述  PCI总线体系结构是一种层次式的(Hierarchical)体系结构.在这种层次式体系结构中,PCI桥设备占据着重要的地位,它将父总线与子总线连接在一起,从而使整个系统 ...

  2. 片上总线协议学习(1)——SiFive的TileLink与ARM系列总线的概述与对比

    link 片上总线协议学习(1)--SiFive的TileLink与ARM系列总线的概述与对比 finally 27 人赞同了该文章 一.背景介绍 随着超大规模集成电路的迅速发展,半导体工业进入深亚微 ...

  3. MySQL8数据库知识点概述

    MySQL8数据库知识点概述 MySQL数据库简介 一.为什么要学习数据库 二.数据库的相关概念 三.数据库存储数据的特点 表设计三大范式 MySQL数据库简介 MySQL数据库是由瑞典的MySQL ...

  4. FPGA高速接口设计之SpaceWire——总线协议概述

    目录 一.SpaceWire总线协议概述 1.物理层 2.信号层 2.1 低电压差分信号(LVDS)技术 2.2 数据-滤波(DS)编码技术 3. 字符层 3.1 控制字符 3.2 数据字符 3.3 ...

  5. I3C总线技术概述(一)

    官方I3C协议规范技术文档中文版 在本篇文章之前,我们通过I2C协议研读(一)-(十一)回顾了I2C总线协议,从本篇开始将开展I3C协议的研读.大概分为以下几点: 1.I3C总线技术概述 2.I3C总 ...

  6. 1553B总线通信概述

    1.概述 MIL-STD-1553是一种严格.复杂的通信协议,SM61580正是这样一款组件,该组件是通过存储空间的管理来方式来实现组织严密的MIL-STD-1553协议.不言而喻,在使用SM6158 ...

  7. ES6常用知识点概述

    前言 国庆假期已过一半,来篇干货压压惊. ES6,并不是一个新鲜的东西,ES7.ES8已经赶脚了.但是,东西不在于新,而在于总结.每个学前端的人,身边也必定有本阮老师的<ES6标准入门>或 ...

  8. cancase vector_基于Vector总线设备的CAN总线测试方法概述

    3.3采样点位置测试 测试设备:CANoe.CANStressDR.测试系统架构中需将CANScope旁路处理.测试设备正确接线后(CANStressDR串接在回路中),CANoe发送报文,CANSt ...

  9. Java数组知识点概述

    01. 数组的概述 /** 一.数组的概述* 1.数组的理解:数组(Array),是多个相同类型数据按一定顺序排列的集合,* 并使用一个名字命名,并通过编号的方式对这些数据进行统一管理.* * 2.数 ...

最新文章

  1. Kali渗透测试——快速查找Metasploit的模块
  2. .mdb_MDB!= JMS,反之亦然
  3. 根据使用频率为 5 个字符设计的哈夫曼编码不可能是( )
  4. 使用Dropwizard度量标准监视和测量无功应用
  5. 力扣算法001_两数之和
  6. 华为畅享8plus停产了吗_牢记华为手机“三不买”原则,不花冤枉钱,选错要吃亏!...
  7. 分散mysql的写入压力_缓解MySQL写入压力和主从延迟的尝试
  8. 51Nod 1109 01组成的N的倍数
  9. Oracle 中session和processes的初始设置
  10. PowerBuilder 开发的游戏(找找看)
  11. vscode 搭建SSM项目环境
  12. 网络诊断显示“DNS服务器可能不可用”
  13. JAVA多线程模拟火车站售票大厅
  14. Intel汇编-LOOP循环检查ECX含零值
  15. 台式计算机怎么加一个硬盘,台式机加装一个机械硬盘图解 但建议直接在windows下...
  16. javascript 中的window, document, screen都有什么区别?
  17. Linux后端开发-POSIX标准以及shell编程
  18. 读《活着》【思维导图版】
  19. Self6D: Self-Supervised Monocular 6D Object Pose Estimation论文翻译
  20. 第五章 光学系统中成像光束的选择

热门文章

  1. 正确获取Java事件通知
  2. 企业中的微服务:敌是友?
  3. 具有WildFly,Arquillian,Jenkins和OpenShift的Java EE 7部署管道
  4. 使用Spring Data REST将Spring Data JPA存储库导出为REST服务
  5. Couchbase 101:从Java应用程序创建视图(MapReduce)
  6. 从GlassFish 3.x扩展到WebLogic 12c Server
  7. 织梦mysql安装教程视频教程_织梦DedeCMSV6系统安装步骤教程
  8. Pytorch机器学习/深度学习代码笔记
  9. python初学者代码示例_Selenium 快速入门笔记和代码示例(Python版)
  10. python psycopg2使用_Python中用psycopg2模块操作PostgreSQL方法