CAN bus 基础知识

来源:互联网 发布:windows网络编程模型 编辑:程序博客网 时间:2024/05/02 01:00

CAN简介

        CAN[Control(Controller) Area Network]是控制(器)局域网的简称

        它是德国Bosch公司在1986年为解决现代汽车中众多测量控制部件之间的

数据交换而开发的一种串行数据通信总线。

        现已被列入ISO 国际标准,称为ISO11898

        CAN最初是为汽车的监测、控制系统而设计的,现已在航天、电力、石化、冶金、

纺织、造纸、仓储等行业广泛采用。在火车、轮船、机器人、楼宇自控、医疗器械、数控机

床、智能传感器、过程自动化仪表等自控设备中,都广泛采用CAN技术

CAN的主要技术特点

        CAN网络上的节点不分主从,任一节点均可在任意时刻主动地向网络上其他节点发

送信息,通信方式灵活,利用这一特点可方便地构成多机备份系统

         CAN网络上的节点信息具有不同的优先级,可满足对实时性的不同要求,高优先级

的数据最多可在134微秒内得到传输

        CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低

的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而节省了总

线冲突的仲裁时间。

        CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接

收数据,无需专门的"调度"

        CAN的直接通信距离最远可达10km(速率5kbps以下);通信速率最高可达1Mbps(此

时通信距离最长为40m)。

        CAN上的节点数主要决定于总线驱动电路,目前可达110个;报文标识符可达2032种

(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制

        采用短帧结构,传输时间短,受干扰概率低,具有良好的检错效果。 。

CAN节点中均有错误检测、标定和自检能力。检错的措施包括:发送自检、循环冗余校验、

位填充和报文格式检查等。保证了低出错率。

CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响

        CAN的通信介质可为双绞线、同轴电缆或光纤,选择灵活。

        CAN器件可被置于无任何内部活动的睡眠方式,相当于未连接到总线驱动器。这样

可降低系统功耗。其睡眠状态可借助总线激活或者系统的内部条件被唤醒。

CAN在汽车电子系统中得到广泛应用

        现代汽车越来越多地采用电子装置控制,如发动机控制、注油控制,加速、刹车控

制(ASC)及复杂的防死锁刹车系统(ABS)等。

        汽车内部所具有的控制器、执行器、监测仪器、传感器的数量很多,按模拟系统的

接线方式,一个传统车辆的典型连线束展开后,其长度约为1600多米,有将近300个接头

        这些控制需检测及交换大量数据,因而引入CAN通信技术,组成汽车内部网络,以

适应控制与数据通信的需要。

        世界上一些著名汽车制造厂商如BENZ(奔驰)、BMW(宝马)、PORSCHE(保时捷)

ROLLS-ROYCE(罗斯莱斯)JAGUAR(美洲豹)等都已开始采用CAN总线来实现汽车内部控制系

统与各检测和执行机构间的数据通信。

        基于CAN总线的数据通信与网络技术在汽车行业有良好的应用前景

汽车内部网络的构成

        汽车内部网络由一系列称之为ECU(电控单元)的不同功能部件作为网络节点而构

成的。

        可分为动力、照明、操作、显示、安全、娱乐等多个子系统。

        Motorola公司提出的基于CAN的汽车内部网络的解决方案。

        动力系统采用传输速率大于250kbps的CAN网段,车身电子系统采用传输速率不小于

125kbps的低速CAN网段,两个子网之间通过中央模块实现互连。

汽车内部网络的解决方案 ( Motorola )

 CAN通信技术

        CAN的通信参考模型

         CAN的通信模型的分层结构

        数据链路层

        包括逻辑链路控制子层LLC

        LLC的主要功能是:为数据传送和远程数据请求提供服务,确认由LLC子层接收的报

文实际已被接收,并为恢复管理和通知超载提供信息

        媒体访问控制子层MAC)

        MAC子层主要规定传输规则,即控制帧结构、执行仲裁、错误检测、出错标定和故

障界定

        物理层

        物理层规定了节点的全部电气特性

CAN节点网络的连接

CAN总线的显位与隐位

        显位(0)

        VCANH: 3.5v

        VCANL 1 1.5v

        隐位(1)

        VCANH 2.5v

        VCANL 2.5v

CAN的帧类型

        4种不同类型的帧:数据帧、远程帧、出错帧或超载帧

        数据帧携带数据由发送器至接收器

        远程帧用以请求总线上的相关单元发送具有相同标识符的数据帧

        出错帧由检测出总线错误的单元发送

        超载帧用于提供当前的和后续的数据帧的附加延迟

CAN的帧结构

        数据帧由7个不同的位场(域)组成:

        帧起始(1个显位),标志帧的起始

        仲裁场、控制场、数据场、CRC场、应答场和帧结束(7个隐位)。

        数据场长度可为零 。

CAN数据帧的组成

CAN2.0A 与CAN2.0B

        CAN2.0A:

        标识符的长度为11位,这些位从高位到低位的顺序发送,最低位为ID.0,其中最高

7位(ID.10-ID.4)不能全为隐位。

        远程发送请求位(RTR)在数据帧中必须是显位,而在远程帧中必须为隐位

        仲裁场由11位标识符和远程发送请求位RTR组成。

        CAN 2.0B:

        存在两种不同的帧格式,具有11位标识符的标准帧,29位标识符的扩展帧

        标准帧与CAN2.0A相同

        扩展帧的仲裁场由29位标识符和替代远程请求SRR位、标识位和远程发送请求位组

成,标识符位为ID.28至ID.0。

CAN数据帧的组成

远程帧

        远程帧由6个场组成:帧起始、仲裁场、控制场、CRC场、应答场和帧结束。远程帧

不存在数据场。

        远程帧的RTR位必须是隐位。

        DLC的数据值是独立的,它可以是0~8中的任何数值,为对应数据帧的数据长度。

出错帧

        出错帧由两个不同场组成,第一个场由来自各站的错误标志叠加得到,第二个场是

出错界定符

        错误标志具有两种形式:

        活动错误标志(Active error flag),由6个连续的显位组成

        认可错误标志(Passive error flag),由6个连续的隐位组成

        出错界定符包括8个隐位

超载帧

        超载帧包括两个位场:超载标志和超载界定符

        发送超载帧的超载条件:

        要求延迟下一个数据帧或远程帧

        在间歇场检测到显位

        超载标志由6个显位组成

        超载界定符由8个隐位组成

0 0
原创粉丝点击