当前位置:首页 > 行业资料 > 其它行业文档 > 现场总线4-CAN总线协议
1第四章CAN(ControllerAreaNetwork)CAN即控制器局域网,最初是德国BOSCH公司为汽车的监测与控制而设计的,以解决汽车众多控制设备与仪器仪表之间的大量数据交换用硬件接线带来的问题。当今CAN的应用已不再局限于汽车行业,而向过程工业、机械工业、机器人、数控机床、医疗器械和传感器等领域发展。是一种有效支持分布式控制或实时控制的串行通信总线。CAN总线只制定了物理层和数据链路层,基于CAN又开发了DeviceNet、CANopen等。4.1概述本章内容:•CAN总线规范•CAN控制器及有关器件、带CAN未控制器•基于CAN总线的系统设计及实例21)CAN为多主方式工作,不分主从,通信方式灵活,通过报文标识符通信,无需站地址等节点信息;报文标识符可达204.8种(CAN2.0A),而CAN2.0B的报文标识符几乎不受限制;2)CAN上的节点信息分成不同的优先级,可满足不同的实时要求;3)CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负荷很重的情况下,也不会出现网络瘫痪情况;4)CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式的数据传送与接收,无需专门的“调度”;5)总线有“显性”和“隐性”两个状态,“显性”对应逻辑“0”,“隐性”对应逻辑“1”。6)采用短帧结构,传输时间短,受干扰概率低,具有极好的检错效果。7)CAN的每帧信息都有CRC及其他检错措施,降低了数据出错概率。8)CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响;9)CAN的通信介质可为双绞线、同轴电缆或光纤,选择灵活。CAN的主要特性34.2CAN的分层结构4.2.1分层结构CAN遵从OSI模型,CAN结构划分两层:数据链路层和物理层。CAN的数据链路层是其核心内容,其中逻辑链路控制子层(LogicalLinkcontrol,LLC)完成过滤、超载通知和管理恢复等功能,媒体访问控制子层(MediumAeeesscontrol,MAC)完成数据封装/拆装、帧编码、媒体访问管理、错误检测、出错标定、应答、串并转换等功能。数据链路层LLC接收滤波超载通知恢复管理MAC数据封装/拆码帧编码(填充/解除填充)媒体访问管理错误检测出错标定应答串行化/解除串行化物理层PLS(PhysicalSignalling)位编码/解码位定时同步PMA(PhysicalMediumAttachment)驱动器/接收器特性44.2.2逻辑链路控制子层LLC一、LLC子层功能1.帧接收滤波:帧内容由标识符描述、确定。接收器通过滤波器确定是否接收。2.超载通告:如果接收器内部条件要求延迟下一个LLC数据帧或远程帧,则通过LLC发送超载帧。最多可以产生两个超载帧。以延迟下一个数据帧或远程帧。3.恢复管理:发送期间,对于丢失仲裁或被错误干扰的帧,LLC子层具有自动重发功能。二、LLC子层帧结构LLC帧是同层LLC实体之间交换的数据单元。下面是LLC数据帧和远程帧结构:5(1)标识符:标识符长度为11位(CAN2.0A)或29位(CAN2.0B)。(2)DLC场:指出数据场长度,由4位构成,数据帧字节数为0-8。(3)LLC数据场:发送的数据,可为0-8个字节。标识符场DLC场LLC数据场1.LLC数据帧(1)标识符:与LLC数据帧的标识符格式相同。(2)DLC场:对应请求发送的数据帧的长度。标识符场DLC场2.LLC远程帧64.2.2媒体访问控制子层(MAC)一、MAC子层结构功能模型MAC子层划分为两个独立部分:发送部分和接收部分。两个部分功能如下:发送数据封装发送媒体访问管理接收数据拆装接收媒体访问管理LLC子层发送数据编码接收数据解码对物理接口访问MAC物理层7(1)发送数据封装•接收LLC帧及接口控制信息•CRC循环计算•向LLC帧附加SOF、RTR位、保留位、CRC、ACK和EOF构造MAC帧(2)发送媒体访问控制•确认总线空闲后,开始发送过程•MAC帧串行化•插入填充位(位填充)•在丢失仲裁情况下,退出仲裁并转入接收方式•错误检测(监控、格式校验)•应答校验•确认超载条件(LLC原因造成的超载)•构造超载帧并开始发送•构造出错帧并开始发送•输出串行位流至物理层准备发送1、发送部分功能8(1)接收媒体访问控制(与发送媒体访问控制过程相反)•由物理层接收串行位流•解除串行结构重新构筑帧结构•检测填充位(解除位填充)•错误检测(CRC、格式校验、填充规则校验)•发送应答•构造错误帧并开始发送•确认超载条件(MAC原因造成的超载)•重激活超载帧结构并开始发送(2)接收数据拆装•由接收帧中去除MAC特定信息•输出LLC帧和接口控制信息至LLC层2、接收部分功能91.帧类型在CAN2.0B的版本协议中有两种不同的帧格式,不同之处为标识符域的长度不同,含有11位标识符的帧称之为标准帧,而含有29位标识符的帧称为扩展帧。数据在发送器与接收器之间传送由四种不同类型的帧出现和控制。(1)数据帧:数据帧将数据从发送器传输到接收器。(2)远程帧:节点发出远程帧,请求发送具有同一标识符的数据帧。(3)错误帧:任何单元检测到总线错误就发出错误帧。(4)过载帧:过载帧用在相邻数据帧或远程帧之间提供附加的延时。数据帧或远程帧与前一个帧之间都会有一个隔离域,即帧间间隔。数据帧和远程帧可以使用标准帧及扩展帧两种格式。二、MAC帧结构102.MAC数据帧一个MAC数据帧由七个不同的位域(BitField)组成:帧起始(StartofFrame)、仲裁域(ArbitrationField)、控制域(ControlField)、数据域(DataField)、CRC域(CRCField)、应答域(ACKField)和帧结尾(EndofFrame)。数据域的长度可以为0~8个字节。数据帧格式1)帧起始(SOF):标志着数据帧和远程帧的起始,仅由一个“显性”位组成。在CAN的同步规则中,当总线空闲时(处于隐性状态),才允许站点开始发送数据帧和远程帧。所有的站点必须同步于首先开始发送报文的站点的帧起始前沿(该方式称为“硬同步”)。112)仲裁域:仲裁域如图所示,仲裁域由标识符和RTR位组成,标准帧格式与扩展帧格式的仲裁域格式不同。标准格式里,仲裁域由11位标识符和RTR位组成。标识符位有ID28~IDl8。扩展帧格式里,仲裁域包括29位标识符、SRR位、IDE(IdentifierExtension,标志符扩展)位、RTR位。其标识符有ID28~ID0。IDE位为显性,表示数据帧为标准格式;IDE位为隐性,表示数据帧为扩展帧格式。在扩展帧中,替代远程请求(SubstituteRemoteRequest,SRR)位为隐性。仲裁域传输顺序为从最高位到最低位,其中最高7位不能全为零。RTR的全称为“远程发送请求(RemoteTransmissionRequest)”。RTR位在数据帧里必须为“显性”,而在远程帧里必须为“隐性”。它是区别数据帧和远程帧的标志。显性位隐性位123)控制域:控制域由6位组成,包括2个保留位(r0、r1同于CAN协议扩展)及4位数据长度码,允许的数据长度值为0~8字节。4)数据域:发送缓冲区中的数据按照长度代码指示长度发送。对于接收的数据,同样如此。它可为0~8字节,每个字节包含8位,首先发送的是MSB(最高位)。5)CRC校验码域:它由CRC域(15位)及CRC边界符(一个隐性位)组成。CRC计算中,被除的多项式包括帧的起始域、仲裁域、控制域、数据域及15位为0的解除填充的位流给定。此多项式被下列多项式X15+X14+X10+X8+X7+X4+X3+1除(系数按模2计算),相除的余数即为发至总线的CRC序列。发送时,CRC序列的最高有效位被首先发送/接收。之所以选用这种帧校验方式,是由于这种CRC校验码对于少于127位的帧是最佳的。136)应答域:应答域由发送方发出的两个(应答间隙及应答界定)隐性位组成,所有接收到正确的CRC序列的节点将在发送节点的应答间隙上将发送的这一隐性位改写为显性位。因此,发送节点将一直监视总线信号以确认网络中至少一个节点正确地接收到所发信息。应答界定符是应答域中第二个隐性位,由此可见,应答间隙两边有两个隐性位:CRC域和应答界定位。7)帧结束域:每一个数据帧或远程帧均由一串七个隐性位的帧结束域结尾。这样,接收节点可以正确检测到一个帧的传输结束。14远程帧也有标准格式和扩展格式,而且都由6个不同的位域组成:帧起始、仲裁域、控制域、CRC域、应答域、帧结尾。与数据帧相比,远程帧的RTR位为隐性,没有数据域,数据长度编码域可以是0~8个字节的任何值,这个值是远程帧请求发送的数据帧的数据域长度。当具有相同仲裁域的数据帧和远程帧同时发送时,由于数据帧的RTR位为显性,所以数据帧获得优先。发送远程帧的节点可以直接接收数据。远程帧结构如图所示。3.远程帧15由两个不同的域组成:第一个域是来自节点的错误标志;第二个域为错误分界符。其结构如图所示。4.错误帧1)错误标志:有两种形式的错误标志。①活动(Active)错误标志。它由6个连续显性位组成。②认可(Passive)错误标志。它由6个连续隐性位组成。它可由其他CAN控制器的显性位改写。2)错误分界符:错误分界符由8个隐性位组成。16过载帧由两个区域组成:过载标识域及过载界定符域。下述三种状态将导致过载帧发送:1)接收方在接收一帧之前需要过多的时间处理当前的数据(接收尚未准备好);2)在帧空隙域检测到显性位信号;3)如果CAN节点在错误界定符或过载界定符的第8位采样到一个显性位节点会发送一个过载帧。过载帧的结构5.超载帧(过载帧)超载标志:由6位显性位构成。超载界定符:由8位隐性位组成。176.帧间空间数据帧和远程帧与其它四种帧以帧间空间位场隔开。超载帧和错误帧前面不存在帧间空间。帧帧间歇帧间空间总线空闲间歇场:由三个隐性位构成,间歇场期间不能发送数据帧和远程帧。总线空闲场:可以任意长度。18三、MAC帧编码帧起始、仲裁场、数据场、CRC序列均以位填充方法进行编码,连续5位相同位后自动插入一个补码位。数据帧、远程帧的其它位场(CRC界定符、ACK场合帧结束)为固定形式,不进行填充。错误帧和超载帧也是固定格式。四、媒体访问与仲裁媒体访问:检测到错误时,错误-活动节点和错误-认可节点可以访问总线。数据帧和远程帧只在总线空闲时可以访问总线。仲裁:当许多节点开始发送时,只有最高权限的节点变为主站。节点的竞争机制是仲裁:每个节点发送时对仲裁域的每一位进行检测,当发送隐性位而检测到显性位时,退出发送(本帧优先级低,先高后低发送,先检测到1的标志符数大,优先级低)。相同标识符的数据帧优先于远程帧。19五、错误类型与错误处理1.错误类型•位错误:节点向外发送时同时监测,位值不符时,产生位错误。•填充错误:应用位填充规则的报文中出现6个相同位。•CRC错误:CRC序列不符。•格式错误:固定格式域中还有非法位。•应答错误:在应答位器件没有检测到显性位。2.错误处理检测到出错条件,节点通过发送出错帧进行标识。204.2.3物理层一、物理层功能模型物理层划分为三部分:•物理信令:实现与位表示、位定时和同步功能。•总线发送/接收功能电路并可提供总线错误监测方法•机械和电气接口二、位编码、解码同步段传播段相位段1相位段2采样点正常位时间三、同步(硬同步、重同步)21电子控制装置(ECU)电子控制装置(ECU)电子控制装置(ECU)4.2.4CAN组网22返回
本文标题:现场总线4-CAN总线协议
链接地址:https://www.777doc.com/doc-4074645 .html