©2008.HiRainTechnologies.Allrightsreserved.CAN总线快速入门©2007.HiRainTechnologies.Allrightsreserved.Slide:目录CAN总线概述数据链路层物理层2©2007.HiRainTechnologies.Allrightsreserved.Slide:目录CAN总线概述CAN总线起源CAN发展历史CAN总线相关标准CAN总线概述数据链路层物理层3©2007.HiRainTechnologies.Allrightsreserved.Slide:三个问题为什么需要总线?人类需要交流,ECU也需要人类的交流手段:书信、电话-网络ECU的交流手段:线束-总线什么是CAN总线?CAN(ControllerAreaNetwork)是二十世纪八十年代初德国Bosch公司为解决现代汽车中众多电控单元(ECU)之间的数据交换而开发的一种串行通信协议。为什么是CAN总线?技术完美+价格低廉=优胜劣汰4©2007.HiRainTechnologies.Allrightsreserved.Slide:什么是汽车?轮子上的沙发还是轮子上的计算机?5©2007.HiRainTechnologies.Allrightsreserved.Slide:汽车——从机械液压到机械电子动力性从空间的扩大到推背感经济性从石油危机到日系汽车崛起排放从温室效应到清洁(新能源)汽车舒适性汽车仅仅是交通工具吗?6©2007.HiRainTechnologies.Allrightsreserved.Slide:汽车电子发展趋势7©2007.HiRainTechnologies.Allrightsreserved.Slide:早期的ECU通信8©2007.HiRainTechnologies.Allrightsreserved.Slide:基于总线(CAN)的ECU通信9©2007.HiRainTechnologies.Allrightsreserved.Slide:优胜劣汰曾经的车用总线SAEJ1850(Class2)SAEJ1708K-LineBEANbyteflight,K-BusD2B10当前的车用总线CANLINFlexRayMOST©2007.HiRainTechnologies.Allrightsreserved.Slide:CAN总线的发展历史1983由Bosch和Intel共同开发1987第一块CAN控制器芯片(Intel)1990第一辆应用CAN的量产车:MercedesS-Class1991CAN2.0发布(PARTA与PARTB)1993CAN成为ISO标准(ISO11898)11©2007.HiRainTechnologies.Allrightsreserved.Slide:很好很强大的CAN总线与CAN总线相关的标准ISO11898,ISO16845SAEJ1939,ISO11783,NMEA2000,CANopen…ISO15765/14229ISO17356/OSEKCCP(CANCalibrationProtocol)GMLAN,VWTP,FNOS,DCNet,MCNet12©2007.HiRainTechnologies.Allrightsreserved.Slide:CAN总线概述多主系统最高速率1Mbit/sec短帧结构(每条报文最多8字节数据)错误检测与处理机制数据校验,帧内应答总线型拓扑结构广播发送基于优先级的总线仲裁机制13©2007.HiRainTechnologies.Allrightsreserved.Slide:CAN总线基本结构14©2007.HiRainTechnologies.Allrightsreserved.Slide:CAN总线基本概念在CAN总线上传输的数据报文不包含发送节点和接收节点的信息每个报文的内容通过标识符(ID)识别,标识符在网络中是唯一的标识符描述了数据的含义,同时也是决定优先级的主要因素报文可以被所有节点同时接收(广播)可以进行报文过滤15©2007.HiRainTechnologies.Allrightsreserved.Slide:广播与过滤(1/2)16CAN-KnotenCAN-KnotenCAN-KnotenCAN-KnotenCAN-KnotenCAN-BusCAN-KnotenCAN-KnotenCAN-KnotenCAN-KnotenCAN-KnotenCAN-BusIDDatenCANmessageCANnodeCANnodeCANnodeCANnodeCANnodeCAN-BusIDdataCANmessagefilterfilterfilterfilter©2007.HiRainTechnologies.Allrightsreserved.Slide:广播与过滤(2/2)17IDENTIFIERSELECTORMASK010010011010000101111100111101000110010100010100XXXXXIDCodeMask©2007.HiRainTechnologies.Allrightsreserved.Slide:标识符(ID)标识符是唯一的,它描述了数据的特定含义,也决定了报文的优先级标识符数值越小,优先级越高最高优先级的报文在总线仲裁的过程中获得总线访问权低优先级报文在下一个总线空闲自动重发18©2007.HiRainTechnologies.Allrightsreserved.Slide:NRZ(Non-ReturntoZero)编码脉冲跳变最少,对外界干扰的抵抗能力强19曼彻斯特编码NRZ编码©2007.HiRainTechnologies.Allrightsreserved.Slide:位填充位填充是为了提供足够的跳变沿填充位出现在5个连续的相同极性的位之后填充位与其前面的位极性相反20©2007.HiRainTechnologies.Allrightsreserved.Slide:国际标准ISO1189811898-1Datalinklayerandphysicalsignalling11898-2High-speedmediumaccessunit11898-3Low-speed,fault-tolerant,medium-dependentinterface11898-5High-speedmediumaccessunitwithlow-powermode21CANControllerCANTransceiverCAN国际标准实现CANProtocolCANPhysicalLayerISO11898-1ISO11898-2ISO11898-3ISO11898-5©2007.HiRainTechnologies.Allrightsreserved.Slide:显性位与隐性位显性位=0隐性位=1222.5电压V1.53.5显性隐性隐性时间2.5电压V05显性隐性隐性时间3.51.5高速CAN低速CAN©2007.HiRainTechnologies.Allrightsreserved.Slide:线与23©2007.HiRainTechnologies.Allrightsreserved.Slide:回读节点在发送每个位的同时读取总线上的电平信号24节点AController节点BController节点CControllerTransceiverTransceiverTransceiverRxDTxDRxDTxDRxDTxDCAN_LCAN_H©2007.HiRainTechnologies.Allrightsreserved.Slide:总线长度与波特率25©2007.HiRainTechnologies.Allrightsreserved.Slide:OSI参考模型26应用层表示层会话层传输层网络层数据链路层物理层CANopenDeviceNetSAEJ1939GMLANCAN©2007.HiRainTechnologies.Allrightsreserved.Slide:目录CAN总线概述数据链路层总线访问仲裁帧格式错误处理位定时与同步物理层27©2007.HiRainTechnologies.Allrightsreserved.Slide:总线仲裁(1/2)总线访问机制载波侦听和带冲突检测协议的多路访问(CSMA/CD)CAN报文的优先级由标识符值决定标识符的数值在系统设计的初始阶段分配不同节点不允许发送相同ID报文(远程帧除外)标识符数值越小,优先级越高。总线冲突通过非破坏性位序列仲裁解决。28©2007.HiRainTechnologies.Allrightsreserved.Slide:总线仲裁(2/2)29SOF109876543210RTRControlData隐性显性只听只听节点A节点B节点C总线©2007.HiRainTechnologies.Allrightsreserved.Slide:帧格式数据帧远程帧错误帧过载帧帧间空间30©2007.HiRainTechnologies.Allrightsreserved.Slide:数据帧31IdentifierChecksumDLCEOF111Bits14Bits15Bits1SOFRTRIDEIrEDELDELACK11117BitsControlfieldACKfieldBus-IdleDataFieldDatafieldITM3ArbitrationfieldDataframeCheckfield0-8ByteSOFStartOfFrame帧起始位RTRRemoteTransmissionRequest远程传输请求位IDEIdentifierExtension标识符扩展DLCDataLengthCode数据长度代码ACKAcknowledgement应答EOFEndOfFrame帧结束场©2007.HiRainTechnologies.Allrightsreserved.Slide:SOF和标识符32SOF一个显性位,表明一帧的开始Identifier(ID)姓名职务IdentifierChecksumDLCEOF111Bits14Bits15Bits1SOFRTRIDEIrEDELDELACK11117BitsControlfieldACKfieldBusIdleDatafieldDatafieldITM3ArbitrationfieldDataframeCheckfield0-8Byte©2007.HiRainTechnologies.Allrightsreserved.Slide:RTR33RTR–远程传输请求位RTR=0:数据帧RTR=1:远程帧IdentifierChecksumDLCEOF111Bits14Bits15Bits1SOFRTRIDEIrEDELDELACK11117BitsBusIdleDatafieldITM3Dataframe0-8ByteIERemoteframeRTR=1NoDatafieldRTRControlfieldACKfieldDatafieldArbitrationfieldCheckfield©2007.HiRainTechnologies.Allrightsreserved.Slide:远程帧的使用34©2007.HiRainTechnologies.Allrightsreserved.Slide:IDE35IDE–标识符扩展位IDE=0:11bits标准CANIDE=1:29bits扩展CANIdentifierChecksumDLCEOF111Bits14Bits15Bits1SOFRTR