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