CAN是操控器局域网络(Controller Area Network, CAN)的简称,是由研制和出产轿车电子产品著称的德国BOSCH公司开发了的,并终究成为国际规范(ISO11898)。是国际上使用最广泛的现场总线之一。在树立之初,CAN总线就定坐落轿车内部的现场总线,具有传输速度快、可靠性高、灵活性强等长处。上世纪90年代CAN总线开端在轿车电子职业界逐步推广,现在已成为轿车电子职业首选的通讯协议,并且在医疗设备、工业出产、楼宇设备、交通运输等领域中取得了广泛的使用。
CAN的分层结构
CAN的数据链路层是其核心内容,其间逻辑链路操控(Logical Link control,LLC)完结过滤、过载告诉和办理康复等功用,媒体拜访操控(Medium Access Control,MAC)子层完结数据打包/解包、帧编码、媒体拜访办理、过错检测、过错信令、应对、串并转化等功用。这些功用都是环绕信息帧传送进程打开的。
逻辑链路操控子层(LLC)的功用:为数据传送和长途数据恳求供给服务,承认由LLC子层接纳的报文实际上已被接纳,为康复办理和告诉超载供给信息。在界说方针处理时,存在许多灵活性。
介质拜访操控子层(MAC)的功用:主要是传送规矩,即操控帧结构、履行裁定、过错检测、犯错标定和毛病界定。MAC子层也要确定当开端一次新的传送时,总线是否敞开或许是否立刻开端接纳。位守时特性也是MAC子层的一部分。
帧类型
在CAN2.0B的版别协议中有两种不同的帧格局,不同之处为标识符域的长度不同,含有11位标识符的帧称之为规范帧,而含有29位标识符的帧称为扩展帧。如CAN1.2版别协议所描绘,两个版别的规范数据帧格局和长途帧格局别离是等效的,而扩展格局是CAN2.0B协议新添加的特性。为使操控器规划相对简略,并不要求履行彻底的扩展格局,关于新式操控器而言,有必要不加任何约束的支撑规范格局。但无论是哪种帧格局,在报文传输时都有以下四种不同类型的帧。
在报文传输时,不同的帧具有不同的传输结构,下面将别离介绍四种传输帧的结构,只要严厉依照该结构进行帧的传输,才干被节点正确接纳和发送。
(1)数据帧
由七种不同的位域(Bit Field)组成:帧开端(Start of )、裁定域(Arbitraon Field)、操控域(Control Field)、数据域(DataField)、CRC域(CRC Field)、应对域(ACK Field)和帧完毕(End of )。数据域的长度可认为0~8个字节。
1)帧开端(SOF):帧开端(SOF)标志着数据帧和长途帧的开端,仅由一个“显性”位组成。在CAN的同步规矩中,当总线空闲时(处于隐性状况),才答应站点开端发送(信号)。一切的站点有必要同步于首要开端发送报文的站点的帧开端前沿(该方法称为“硬同步”)。
2)裁定域:裁定域由标识符和RTR位组成,规范帧格局与扩展帧格局的裁定域格局不同。规范格局里,裁定域由1l位标识符和RTR位组成。标识符位有ID28~IDl8。扩展帧格局里,裁定域包含29位标识符、SRR位、IDE(Idenfier Extension,标志符扩展)位、RTR位。其标识符有ID28~IDO。为了差异规范帧格局和扩展帧格局,CANl.0~1.2版别协议的保存位r1现表明为IDE位。IDE位为显性,表明数据帧为规范格局;IDE位为隐性,表明数据帧为扩展帧格局。在扩展帧中,代替长途恳求(Substute Remote Request,SRR)位为隐性。裁定域传输次序为从最高位到最低位,其间最高7位不能全为零。RTR的全称为“长途发送恳求(Remote TransmissionRequest)”。RTR位在数据帧里有必要为“显性”,而在长途帧里有必要为“隐性”。它是差异数据帧和长途帧的标志。
3)操控域:操控域由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位的帧是最佳的。
6)应对域:应对域由发送方宣布的两个(应对空地及应对界定)隐性位组成,一切接纳到正确的CRC序列的节点将在发送节点的应对空地大将发送的这一隐性位改写为显性位。因而,发送节点将一向监督总线信号已承认网络中至少一个节点正确地接纳到所发信息。应对界定符是应对域中第二个隐性位,由此可见,应对空地两头有两个隐性位:CRC域和应对界定位。
7)帧完毕域:每一个数据帧或长途帧均由一串七个隐性位的帧完毕域完毕。这样,接纳节点能够正确检测到一个帧的传输完毕。
(2)过错帧
过错帧由两个不同的域组成:第一个域是来自操控器的过错标志;第二个域为过错分界符。
1)过错标志:有两种方式的过错标志。
①激活(Acve)过错标志。它由6个接连显性位组成。
②认可(Passive)过错标志。它由6个接连隐性位组成。
它可由其他CAN总线协议操控器的显性位改写。
2)过错界定:过错界定符由8个隐性位组成。传送了过错标志今后,每一站就发送一个隐性位,并一向监督总线直到检测出1个隐性位停止,然后就开端发送其他7个隐性位。
(3)长途帧
长途帧也有规范格局和扩展格局,并且都由6个不同的位域组成:帧开端、裁定域、操控域、CRC域、应对域、帧完毕。与数据帧比较,长途帧的RTR位为隐性,没有数据域,数据长度编码域能够是0~8个字节的任何值,这个值是长途帧恳求发送的数据帧的数据域长度。当具有相同裁定域的数据帧和长途帧一起发送时,因为数据帧的RTR位为显性,所以数据帧取得优先。发送长途帧的节点能够直接接纳数据。
(4)过载帧
过载帧由两个区域组成:过载标识域及过载界定符域。下述三种状况将导致过载帧发送:
1)接纳方在接纳一帧之前需求过多的时刻处理当时的数据(接纳没有准备好);
2)在帧空地域检测到显性位信号;
3)假如CAN节点在过错界定符或过载界定符的第8位采样到一个显性位节点会发送一个过载帧。