工业通信与网络技术(11)哈工大网络与电气智能化研究所刘勇2015(春)第五章CAN总线1概述CAN(ControllerAreaNetwork,控制器局域网)是20世纪80年代(1983)德国Bosch(博世)公司为解决众多的测量控制部件之间的数据交换问题而开发的一种串行数据通信总线。CAN已成为国际标准ISO11898和ISO11519。CAN的发展历程:以CiA推出的CANSpecification2.0为底层的高层协议有:CANKingdomDeviceNetCANopenSAEJ1939SDSCAN在汽车电子系统中得到了广泛应用,已成为世界汽车制造业的主体行业标准,代表着汽车电子控制网络的主流发展趋势。世界上一些著名的汽车制造厂商都已采用CAN总线来实现汽车内部控制系统与各检测及执行机构间的数据通信。如BENZ(奔驰)、BMW(宝马)、PORSCHE(保时捷)、ROLIS-ROYCE(劳斯莱斯)、JAGUAR(美洲豹)和MAZDA(马自达)等都。CAN与其他现场总线相比,具有突出的可靠性、实时性和灵活性,其技术特点如下:(1)CAN从本质上讲是一种多主或对等网络,网络上任一节点均可主动发送报文。(2)废除了传统的站地址编码,而代之以对通信数据进行编码;通过报文过滤,可实现点对点、多点播送(传送)、广播等几种数据传送方式。(3)采用短帧结构,传输时间短,受干扰概率低。(4)具有多种检错措施及相应的处理功能,检错效果极好,处理功能很强,保证了通信的高可靠性。位错误和位填充错误检测、CRC校验、报文格式检查和应答错误检测及相应的错误处理。(5)通信介质(媒体)可为双绞线、同轴电缆或光纤,选择灵活。(6)总线长度可达10km(速率为5kbps及其以下);网络速度可达1Mbps(总线长度为40m及其以下)。(7)网络上的节点数主要取决于总线驱动电路,目前可达110个;标准格式的报文标识符可达2032个,而扩展格式的报文标识符的个数几乎不受限制。(8)通过报文标识符来定义节点报文的优先级。对于实时性要求不同的节点报文,可定义不同级别的优先级,从而保证高优先级的节点报文得到优先发送。(9)采用非破坏性逐位仲裁机制来解决总线访问冲突。通过采用这种机制,即使在网络负载很重时,也不会出现网络瘫痪现象。(10)发生严重错误的节点具有自动关闭输出的功能,以使总线上其他节点的通信能够继续进行。CAN最初虽然是为汽车的监测、控制系统而设计的,但由于它在性能、可靠性等方面的突出优势,现已广泛应用于航天、电力、石化、冶金、纺织、造纸、仓储等行业。如在自动化仪表、智能传感器、数控机床、医疗器械、机器人、楼宇自动化装置、火车、轮船等元件、设备、设施中,CAN总线都得到了良好的应用。2CAN节点的分层结构3CAN物理层3.1CAN总线典型电平显性电平(Dominant):逻辑“0”隐性电平(Recessive):逻辑“1”ISO11898中规定:在隐性状态下:VCAN-H=VCAN-L=2.5V,Vdiff=0V在显性状态下:VCAN-H=3.5V,VCAN-L=1.5V,Vdiff=2V3.2CAN接插件管脚分配3.3CAN总线终端电阻120Ω±10%,ISO118983.4CAN总线使用的编码NRZ编码(非归零编码),采用位填充规则编码(无论何时,当发送器在将被发送的位流中检测到数值相同的5个连续位时,会自动地在实际的发送位流中插入一个补码位)。3.5CAN总线的位速率5k~1M(bps)3.6CAN总线长度40m~10kmCAN总线位速率与总线长度的关系:主要影响因素:(1)CAN总线要求发送器在发送每一位的同时,都要监视总线电平,用以确定是否发送器竞争发送权失败,是否总线发生了位错误,是否获得了应答;(2)为实现(1)中的目的,要考虑传播延时的影响。铜导线中,电信号的传播速度是光速的2/3;(3)还要考虑发送器延时、接收器延时,以及可靠采样的要求。3.7CAN总线的位定时同步段——用于使总线上的各个节点同步。期望有一个跳变沿位于此段内。传播段——用于补偿网络内的物理延时。它是信号在总线上传播时间的两倍与输入比较器延时和输出驱动器延时之和。相位缓冲段1和相位缓冲段2——用于补偿沿的相位误差,使总线上的各个节点同步。通过重同步,这2个时间段可被延长或缩短。采样点——是这样一个时刻,在此时刻上,总线电平被读,并被理解为其自身位的数值。它位于相位缓冲段1的终点。信息处理时间——是由采样点开始、为计算后续位电平而保留的时间段。时间份额——是由振荡器周期派生出的一个固定时间单元。同步段:1个时间份额;传播段:1~8个时间份额;相位缓冲段1:1~8个时间份额;相位缓冲段2:相位缓冲段1和信息处理时间的最大值;信息处理时间:≤2个时间份额;时间份额总数:8~25。由于各个CAN节点所使用的振荡器频率不可能都是精确的理想值,一般都与其存在着一定的误差,使得发送器与接收器各自对位时间的理解实际上存在差异。又由于CAN总线使用了NRZ编码,若没有一定的位定时机制,随着累积误差的增大,终归会使接收器错误地采样到总线上的其它位上。硬同步与重同步就是用于准确位定时的保障机制。3.8CAN总线的位同步硬同步:只发生在帧起始的位置。硬同步后,内部位时间从同步段重新开始。因而,硬同步强迫引起硬同步的沿处于重新开始的位时间同步段之内。重同步:发生在帧内。通过在每个时间段采样总线,并与前一个采样点处的总线电平做比较,可以检测到跳变沿。如果跳变沿发生在同步段内,则认为接收节点与发送节点是同步的;否则说明二者不同步,需要进行重同步。重同步的目的是通过延长相位缓冲段1或缩减相位缓冲段2来控制跳变沿和采样点之间的距离,以补偿振荡器误差。CAN2.0规范规定:只有隐性电平到显性电平的跳变沿才用于重同步。沿相位误差e:由沿相对于当前同步段的位置给定,计为时间份额的整数倍。如果沿出现在当前同步段之前,e被计为负,如果沿出现在当前同步段之后,e被计为正。重同步跳转宽度(SJW)用于设定相位缓冲段延长或缩短的上限,应被编程为1~4个时间份额,并且不能长于任何一个相位缓冲段长度。重同步规则:当e0时,相位缓冲段1要延长。如果eSJW,相位缓冲段1要延长e,否则延长SJW;当e0时,相位缓冲段2要缩减。如果eSJW,相位缓冲段2要缩减e,否则缩减SJW;当eSJW时,重同步和硬同步的效果是一样的。如果eSJW,重同步不能充分补偿e,误差(e-SJW)仍然存在。(a)节点内部时间序列(以时间份额tq为周期)SYPRPS1PS2SYPRPS1PS2采样点采样点第1位位时间第2位位时间(b)节点内部位时间01第1位(帧起始)第2位t1t2(c)总线位流位时间同步规则(SynchronizationRules):①在一个位时间内仅允许一种同步。②只要在先前采样点上检测到的数值与一个沿过后立即得到的总线数值不同,则该沿将被用于同步。③在总线空闲期间,无论何时当存在一个“隐性”至“显性”的跳变沿,则执行一次硬同步。④所有履行规则①和②的其它“隐性”至“显性”的跳变沿都将被用于重同步。4报文传送及其帧类型接收器/发送器发出一个报文的单元称为该报文的发送器。若一个单元不是某个报文的发送器,并且总线不处于空闲状态,则称该单元为该报文的接收器。报文的有效性对于发送器而言,如果直到“帧结束”终结一直未出错,则报文有效。对于接收器而言,如果直到最后(除“帧结束”的那一位)一直未出错,则报文有效。帧类型数据帧携带数据由发送器至接收器;远程帧通过总线单元发送,以请求发送具有相同标识符的数据帧;错误帧由检测到总线错误的任何单元发送;超载帧用于提供当前的和后续的数据帧或远程帧之间的附加延迟。数据帧由7个不同的位场(BitFrame)组成:帧起始(StartofFrame)仲裁场(ArbitrationField)控制场(ControlField)数据场(DataField)CRC场(CRCField)应答场(ACKField)帧结束(EndofField)数据帧(DataFrame)帧起始(SOF—StartOfFrame)标志数据帧和远程帧的起始,它仅由一个“显性”位构成。仲裁场由标识符和远程发送请求(RTR)位组成。帧间空间控制场帧起始仲裁场标识符RTR位标识符(Identifier)的长度为11位。这些位以ID-10至ID-0的顺序发送,最低位为ID-0,其中最高7位(ID-10~ID-4)必须不是全“隐性”。RTR位(RemoteTransmissionRequestBit)在数据帧中,必须是“显性”的,而在远程帧中,RTR位必须是“隐性”的。控制场由6位组成,包括两个用于将来扩展的保留位和4位数据长度码。仲裁场控制场数据场或r1r0DLC3DLC2DLC1DLC0CRC场保留位数据长度码表数据长度码中数据字节数目编码数据场由数据帧中被发送的数据组成,它可包括0至8个字节,每个字节包括8位,其中首先发送最高有效位。CRC场包括CRC序列、CRC界定符。数据场或ACK场CRC场控制场CRC序列CRC界定符参加CRC校验的位场包括帧起始、仲裁场、控制场、数据场(假若存在)在内的无填充位流。CRC序列后随CRC界定符,它只包括一个“隐性”位。应答场为两位长度,包括应答间隙和应答界定符。CRC场帧结束ACK场ACK间隙ACK界定符在应答场中发送站送出两个“隐性”位。一个正确地接收到有效报文的接收器,在应答间隙期间,通过传送一个“显性”位将此信息报告给发送器(接收器发送“应答”)。所有接收到匹配CRC序列的站,在应答间隙期间通过把“显性”位写入发送器的“隐性”位来报告此信息。应答界定符是应答场的第二位,并且必须是“隐性”位。因此,应答间隙被两个“隐性”位(CRC界定符和应答界定符)包围。帧结束每个数据帧和远程帧均是由7个“隐性”位组成的标志序列界定的。