下载

3下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 CAN协议完全讲解

CAN协议完全讲解.pdf

CAN协议完全讲解

qcmc
2010-04-02 0人阅读 举报 0 0 暂无简介

简介:本文档为《CAN协议完全讲解pdf》,可适用于IT/计算机领域

Rev发行:年月日CAN入门书wwwrenesascomGuideRCJB瑞萨科技应用手册RCJBRevPageofCAN入门书概要本资料是面向CAN总线初学者的CAN入门书。对CAN是什么、CAN的特征、标准规格下的位置分布等、CAN的概要及CAN的协议进行了说明。使用注意事项本资料对博世(BOSCH)公司所提出的CAN概要及协议进行了归纳可作为实际应用中的参考资料。对于具有CAN功能的产品不承担任何责任。目录概要使用注意事项CAN是什么?CAN的应用示例总线拓扑图CAN的特点错误错误状态的种类错误计数值CAN协议的基本概念CAN协议及标准规格ISO标准化的CAN协议ISO和ISO的不同点CAN和标准规格CAN协议帧的种类数据帧遥控帧错误帧过载帧帧间隔优先级的决定位填充错误的种类错误帧的输出位时序取得同步的方法硬件同步再同步调整同步的规则应用手册RCJBRevPageofCAN是什么?CAN是ControllerAreaNetwork的缩写(以下称为CAN)是ISO*国际标准化的串行通信协议。在当前的汽车产业中出于对安全性、舒适性、方便性、低公害、低成本的要求各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同由多条总线构成的情况很多线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN进行大量数据的高速通信”的需要年德国电气商博世公司开发出面向汽车的CAN通信协议。此后CAN通过ISO及ISO进行了标准化现在在欧洲已是汽车网络的标准协议。现在CAN的高性能和可靠性已被认同并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。图是车载网络的构想示意图。CAN等通信协议的开发使多种LAN通过网关进行数据交换得以实现。CAN~kbpsCANkbpsCANkbps马达马达空调子网●LIN~kbps仪表板遥控门锁车身部信息部●MOST●引爆管传感器安全部子网●SafebyWire(kbps)车门制动子网●FlexRay*(Mbps)胎压故障诊断部●CAN(规格)诊断工具网关开关开关转向发动机・传动部自动变速箱CANkbps前大灯窗电动组合灯自适应前灯音视频MDCD碟盒底盘部白线检测雷达ITS部发动机交通信息导航马达电子防盗系统气囊控制乘客检测自适应巡航图车载网络构想【注】*ISO:InternationalOrganizationforStandardization(国际标准化组织)*FlexRayTM为戴姆勒克莱斯勒公司注册商标。应用手册RCJBRevPageofCAN的应用示例图为CAN的应用示例ClimateControlClusterEngineSeatDoorRoof„Motorcontrol„Centerunit„Clustercontrol„Wipercontrol„Winkercontrol„Caraudio„Lightcontrol„Columnswitch„Automobilephone„Sensor„Motorcontrol„Passengerdetection„Switchcontrol„Sidemirror„Doorlock„Powerwindow„Doorswitch„Rainsensor„Sunroof:CANbus:kbps:CANbus:kbps:LINbus:kbpskbps:CANunitLINmasterunits:CANunitLINmasterunits:LINslaveunit图CAN的应用示例应用手册RCJBRevPageof总线拓扑图CAN控制器根据两根线上的电位差来判断总线电平。总线电平分为显性电平和隐性电平二者必居其一。发送方通过使总线电平发生变化将消息发送给接收方。图是CAN的连接示意图…收发器收发器CANHCANLRxDTxDRxDTxDCANHCANLABSSASCANControllerCPUETMECMDDMPDM…RxDTxDCANkbpsCANkbps图CAN连接图应用手册RCJBRevPageofCAN的特点CAN协议具有以下特点。()多主控制在总线空闲时所有的单元都可开始发送消息(多主控制)。最先访问总线的单元可获得发送权(CSMACA方式*)。多个单元同时开始发送时发送高优先级ID消息的单元可获得发送权。()消息的发送在CAN协议中所有的消息都以固定的格式发送。总线空闲时所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时根据标识符(Identifier以下称为ID)决定优先级。ID并不是表示发送的目的地址而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时对各消息ID的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息仲裁失利的单元则立刻停止发送而进行接收工作。()系统的柔软性与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时连接在总线上的其它单元的软硬件及应用层都不需要改变。()通信速度根据整个网络的规模可设定适合的通信速度。在同一网络中所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样此单元也会输出错误信号妨碍整个网络的通信。不同网络间则可以有不同的通信速度。()远程数据请求可通过发送“遥控帧”请求其他单元发送数据。()错误检测功能·错误通知功能·错误恢复功能所有的单元都可以检测错误(错误检测功能)。检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。正在发送消息的单元一旦检测出错误会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。()故障封闭CAN可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能当总线上发生持续数据错误时可将引起此故障的单元从总线上隔离出去。()连接CAN总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度可连接的单元数增加提高通信速度则可连接的单元数减少。【注】*CSMACA:CarrierSenseMultipleAccessCollisionAvoidance应用手册RCJBRevPageof错误错误状态的种类单元始终处于种状态之一。()主动错误状态主动错误状态是可以正常参加总线通信的状态。处于主动错误状态的单元检测出错误时输出主动错误标志。()被动错误状态被动错误状态是易引起错误的状态。处于被动错误状态的单元虽能参加总线通信但为不妨碍其它单元通信接收时不能积极地发送错误通知。处于被动错误状态的单元即使检测出错误而其它处于主动错误状态的单元如果没发现错误整个总线也被认为是没有错误的。处于被动错误状态的单元检测出错误时输出被动错误标志。另外处于被动错误状态的单元在发送结束后不能马上再次开始发送。在开始下次发送前在间隔帧期间内必须插入“延迟传送”(个位的隐性位)。()总线关闭态总线关闭态是不能参加总线上通信的状态。信息的接收和发送均被禁止。这些状态依靠发送错误计数和接收错误计数来管理根据计数值决定进入何种状态。错误状态和计数值的关系如表及图所示。表错误状态和计数值单元错误状态发送错误计数值(TEC)接收错误计数值(REC)主动错误状态~且~被动错误状态~或~总线关闭态~应用手册RCJBRevPageof初始状态主动错误状态总线关闭态被动错误状态在总线上检测到次连续的个位的隐性位TEC≤且REC≤TEC>或REC>TEC:发送错误计数值REC:接收错误计数值TEC>图单元的错误状态应用手册RCJBRevPageof错误计数值发送错误计数值和接收错误计数值根据一定的条件发生变化。错误计数值的变动条件如表所示。一次数据的接收和发送可能同时满足多个条件。错误计数器在错误标志的第一个位出现的时间点上开始计数。表错误计数值的变动条件接受和发送错误计数值的变动条件发送错误计数值(TEC)接收错误计数值(REC)接收单元检测出错误时。例外:接收单元在发送错误标志或过载标志中检测出“位错误”时接收错误计数值不增加。接收单元在发送完错误标志后检测到的第一个位为显性电平时。发送单元在输出错误标志时。发送单元在发送主动错误标志或过载标志时检测出位错误。接收单元在发送主动错误标志或过载标志时检测出位错误。各单元从主动错误标志、过载标志的最开始检测出连续个位的显性位时。之后每检测出连续的个位的显性位时。发送时接收时检测出在被动错误标志后追加的连续个位的显性位时。发送时接收时发送单元正常发送数据结束时(返回ACK且到帧结束也未检测出错误时)。−TEC=时±接收单元正常接收数据结束时(到CRC未检测出错误且正常返回ACK时)。≤REC≤时REC=时±REC>时设REC=处于总线关闭态的单元检测到次连续个位的隐性位。TEC=REC=应用手册RCJBRevPageofCAN协议的基本概念CAN协议如表所示涵盖了ISO规定的OSI*基本参照模型中的传输层、数据链路层及物理层。CAN协议中关于ISOOSI基本参照模型中的传输层、数据链路层及物理层具体有哪些定义如图所示。表ISOOSI基本参照模型ISOOSI基本参照模型各层定义的主要项目层:应用层由实际应用程序提供可利用的服务。层:表示层进行数据表现形式的转换。如:文字设定、数据压缩、加密等的控制层:会话层为建立会话式的通信控制数据正确地接收和发送。层:传输层控制数据传输的顺序、传送错误的恢复等保证通信的品质。如:错误修正、再传输控制。软件控制层:网络层进行数据传送的路由选择或中继。如:单元间的数据交换、地址管理。层:数据链路层将物理层收到的信号(位序列)组成有意义的数据提供传输错误控制等数据传输控制流程。如:访问的方法、数据的形式。通信方式、连接控制方式、同步方式、检错方式。应答方式、通信方式、包(帧)的构成。位的调制方式(包括位时序条件)。硬件控制层:物理层规定了通信时使用的电缆、连接器等的媒体、电气信号规格等以实现设备间的信号传送。如:信号电平、收发器、电缆、连接器等的形态。【注】*OSI:OpenSystemsInterconnection(开放式系统间互联)CAN入门书RCJBRevPageofOSI基本参照模型应用层表示层会话层传输层数据链路层物理层网络层LLC*MAC*在各层中CAN定义事项层层层(LLC)层(MAC)层定义事项功能再发送控制接收消息的选择(可接收消息的过滤)过载通知错误恢复功能消息的帧化连接控制方式数据冲突时的仲裁故障扩散抑制功能错误通知错误检测应答方式通信方式位编码方式位时序同步方式永久再尝试可点到点连接、广播、组播。通知接收准备尚未完成再次发送有数据帧、遥控帧、错误帧、过载帧种帧类型。竞争方式(支持多点传送)根据仲裁优先级高的ID可继续被发送自动判别暂时错误和持续错误排除故障节点。CRC错误、填充位错误、位错误、ACK错误、格式错误。所有单元都可随时检测错误ACK、NACK两种半双工通信NRZ方式编码个位的插入填充位。位时序、位的采样数(用户选择)根据同步段(SS)实现同步(并具有再同步功能)图ISOOSI基本参照模型和CAN协议【注】*LLC:LogicalLinkControl(逻辑链路控制)*MAC:MediumAccessControl(媒介访问控制)应用手册RCJBRevPageof数据链路层分为MAC子层和LLC子层MAC子层是CAN协议的核心部分。数据链路层的功能是将物理层收到的信号组织成有意义的消息并提供传送错误控制等传输控制的流程。具体地说就是消息的帧化、仲裁、应答、错误的检测或报告。数据链路层的功能通常在CAN控制器的硬件中执行。在物理层定义了信号实际的发送方式、位时序、位的编码方式及同步的步骤。但具体地说信号电平、通信速度、采样点、驱动器和总线的电气特性、连接器的形态等均未定义*。这些必须由用户根据系统需求自行确定。【注】*驱动器及总线的电气特性等在博世公司的CAN规格书中没有定义。但在CAN的ISO标准(ISO、ISO等)中分别定义了总线及驱动器的电气特性等。应用手册RCJBRevPageofCAN协议及标准规格ISO标准化的CAN协议CAN协议经ISO标准化后有ISO标准和ISO标准两种。ISO和ISO标准对于数据链路层的定义相同但物理层不同。()关于ISOISO是通信速度为kbpsMbps的CAN高速通信标准。目前ISO追加新规约后成为ISO新标准。()关于ISOISO是通信速度为kbps以下的CAN低速通信标准。ISO是ISO追加新规约后的版本。图表示CAN协议和ISO及ISO标准的范围。表示层会话层传输层网络层CAN协议定义的部分CAN协议中ISO定义标准化的部分●ISO未对此部分进行标准化。CAN的再发送控制功能未在ISO中标准化。●链路层及物理层的一部分在ISO中进行了标准化。应用层对于数据链路层ISO和ISO定义的内容相同。对于物理层ISO和ISO定义的内容不同。物理层ISOISO不同ISOISO相同数据链路层数据图ISO标准化的CAN协议应用手册RCJBRevPageofISO和ISO的不同点()物理层的不同点如图所示ISO和ISO在CAN协议中物理层的标准有所不同。CAN协议的物理层如图所示定义了三个子层ISO和ISO在物理层中的PMA层和MDI层有所不同。应用层会话层传输层网络层数据链路层CAN协议定义的部分CAN协议中ISO标准化的部分●ISO未对此部分标准化CAN的再发送控制功能未在ISO中标准化●●CAN协议对物理层中的驱动器、收发器、连接器、电缆等的形态没有规定。物理层:PLS层*:PMA层*:MDI层*物理层表示层数据链路层及物理层的一部分在ISO中进行了标准化。ISO和对物理层的PMA层及MDI层中定义内容不相同。●图物理层【注】*PLS:PhysicalSignalingSublayer(物理信号子层)*PMA:PhysicalMediumAttachment(物理介质连接)*MDI:MediumDependentInterface(介质相关接口)应用手册RCJBRevPageof在物理层(PMA层、MDI层)ISO和ISO的主要不同点如表所示表ISO和物理层的主要不同点物理层ISO(Highspeed)ISO(Lowspeed)通信速度*最高Mbps最高kbps总线最大长度*mMbpskmkbps连接单元数最大最大隐性显性隐性显性总线拓扑*MinNomMaxMinNomMaxMinNomMaxMinNomMaxCANHigh(V)CANLow(V)电位差(HL)(V)双绞线(屏蔽非屏蔽)闭环总线阻抗(Z):Ω(MinΩMaxΩ)总线电阻率(r):mΩm总线延迟时间:nsm终端电阻:Ω(MinΩMaxΩ)双绞线(屏蔽非屏蔽)开环总线阻抗(Ζ):Ω(MinΩMaxΩ)总线电阻率(Γ):mΩm总线延迟时间:nsm终端电阻:kΩ(MinkΩMaxkΩ)CANL与GND间静电容量pFmCANH与GND间静电容量pFmCANL与GND间静电容量pFm【注】*通信速度通信速度根据系统设定。*总线长度总线的长度根据系统设定。通信速度和最大总线长度的关系如图所示。应用手册RCJBRevPageofkkkM通信速度bps总线长度m图通信速度和最大总线长度*总线拓扑CAN收发器根据两根总线(CANHigh和CANLow)的电位差来判断总线电平。总线电平分为显性电平和隐性电平两种。总线必须处于两种电平之一。总线上执行逻辑上的线“与”时显性电平为“”隐性电平为“”。物理层的特征如图所示。应用手册RCJBRevPageofCANHighCANLow隐性显性隐性VCANLowCANHighCANBusLineΩ逻辑值CAN总线的物理信号“”“”单元【ISO(K~Mbps)】VCANLowCANHighCANBusLinekΩ逻辑值CAN总线的物理信号“”“”CANHighCANLow【ISO(k~kbps)】单元n单元n单元隐性显性隐性Ω图ISO、ISO的物理层特征()驱动IC的选择ISO与ISO的物理层的规格不同每种规格需要有专门的驱动IC与之相对应。ISO及ISO所对应的主要的驱动IC如表所示。表ISO及ISO所对应的驱动ICISOISO驱动ICHARPJE(RENESAS)PCAC(Philips)Si(Siliconix)CF(Bosch)PCAC(Philips)TJA(Philips)SNLBC(TexasInstruments)应用手册RCJBRevPageofCAN和标准规格不仅是ISOSAE*等其它的组织、团体、企业也对CAN协议进行了标准化。基于CAN的各种标准规格如表所示如图所示面向汽车的通信协议以通信速度为准进行了分类。表CAN协议和标准规格名称波特率规格适用领域SAEJk双线式、屏蔽双绞线卡车、大客车SAEJk双线式、屏蔽双绞线、V供电农用机械SAEJk双线式、双绞线(非屏蔽)汽车(高速:动力、传动系统)SAEJk、k单线式汽车(低速:车身系统)NMEAk、k、k、k、M双线式、屏蔽双绞线供电船舶DeviceNetk、k、k双线式、屏蔽双绞线V供电工业设备CANopenk、k、k、k、k、k、k、M双线式、双绞线可选(屏蔽、供电)工业设备SDSk、k、k、M双线式、屏蔽双绞线可选(供电)工业设备Class*ClassAClassBClassCClassD电通信光通信通信速度用途协议•J•VAN•SafebyWire•DBOptical•MOST•IEEE~kbps(车身系统)kbps~kbps(状态信息系统)kbps~Mbps(实时控制系统)Mbps~(多媒体)灯光类、电动窗、门锁、电动椅、遥控门锁等电子仪表、驾驶信息、自动空调、故障诊断发动机控制、变速器控制、刹车控制、悬挂控制、ABS等各汽车厂商自有协议LIN••低速CAN(~kbps)高速CAN(kbps~Mbps)图通信协议分类【注】*SAE:SocietyofAutomotiveEngineers*Class:SAE的分类名称应用手册RCJBRevPageofCAN协议帧的种类通信是通过以下种类型的帧进行的。•数据帧•遥控帧•错误帧•过载帧•帧间隔另外数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有个位的标识符(Identifier:以下称ID)扩展格式有个位的ID。各种帧的用途如表所示各种帧的构成如图~图所示。表帧的种类及用途帧帧用途数据帧用于发送单元向接收单元传送数据的帧。遥控帧用于接收单元向具有相同ID的发送单元请求数据的帧。错误帧用于当检测出错误时向其它单元通知错误的帧。过载帧用于接收单元通知其尚未做好接收准备的帧。帧间隔用于将数据帧及遥控帧与前面的帧分离开来的帧。应用手册RCJBRevPageofDDRRRD标准格式扩展格式帧起始仲裁段控制段CRC段帧结束ACK段rrDLCSOFIdentifier(ID)RTRIDErDLCCRCSequenceData数据段CRC界定符ACK槽(ACKSlot)ACK界定符EOFIdentifier(ID)Identifier(ID)IDESRRRTR与标准格式相同ACK位槽发送位接收位图数据帧的构成界定符SOFRTRIdentifier(ID)rDLCCRCSequenceCRCACK槽(ACKSlot)ACK界定符EOFrr与标准格式相同IDERTRIDESRRDLC标准格式扩展格式DDRRRDACK位槽发送位接收位帧起始仲裁段控制段CRC段ACK段帧结束Identifier(ID)Identifier(ID)图遥控帧的构成应用手册RCJBRevPageofD:被动错误标志主动错误标志R错误界定符~错误标志的重叠部分错误标志R:图错误帧R过载标志的重叠部分D过载标志过载界定符图过载帧DR~∞间隔延迟传送~∞总线空闲间隔总线空闲图帧间隔应用手册RCJBRevPageof数据帧数据帧由个段构成。数据帧的构成如图所示。()帧起始表示数据帧开始的段。()仲裁段表示该帧优先级的段。()控制段表示数据的字节数及保留位的段。()数据段数据的内容可发送~个字节的数据。()CRC段检查帧的传输错误的段。()ACK段表示确认正常接收的段。()帧结束表示数据帧结束的段。下面对帧的构成进行说明。DDRRRD标准格式扩展格式rrDLCSOFIdentify(ID)RTRIDErDLCCRCSequenceDataCRCACKEOFIdentify(ID)Identify(ID)IDESRRRTR与标准格式相同ACK位槽发送位接收位数据段CRC段帧结束控制段帧起始ACK段界定符界定符ACK槽(ACKSlot)仲裁段图数据帧的构成应用手册RCJBRevPageof()帧起始(标准、扩展格式相同)表示帧开始的段。个位的显性位。SOFD仲裁段数据段控制段CRC段ACK段EOF图数据帧(帧起始)总线上的电平有显性电平和隐性电平两种。总线上执行逻辑上的线“与”时显性电平的逻辑值为“”隐性电平为“”。“显性”具有“优先”的意味只要有一个单元输出显性电平总线上即为显性电平。并且“隐性”具有“包容”的意味只有所有的单元都输出隐性电平总线上才为隐性电平。(显性电平比隐性电平更强。)显性电平和隐性电平应用手册RCJBRevPageof()仲裁段表示数据的优先级的段。标准格式和扩展格式在此的构成有所不同。DDRRSOFRTR基本ID*基本ID*RTRIDESRR扩展ID*标准格式扩展格式控制段数据段CRC段EOFACK段图数据帧(仲裁段)【注】*ID标准格式的ID有个位。从ID到ID被依次发送。禁止高位都为隐性。(禁止设定:ID=XXXX)扩展格式的ID有个位。基本ID从ID到ID扩展ID由ID到ID表示。基本ID和标准格式的ID相同。禁止高位都为隐性。(禁止设定:基本ID=XXXX)应用手册RCJBRevPageof()控制段控制段由个位构成表示数据段的字节数。标准格式和扩展格式的构成有所不同。DDRRSOF标准格式扩展格式保留位*数据长度码*保留位*SOF数据长度码*数据段CRC段数据段CRC段仲裁段仲裁段IDErrrDLCDLCACK段ACK段EOFEOF图数据帧(控制段)【注】*保留位(r、r)保留位必须全部以显性电平发送。但接收方可以接收显性、隐性及其任意组合的电平。*数据长度码(DLC)数据长度码与数据的字节数的对应关系如表所示。数据的字节数必须为~字节。但接收方对DLC=~的情况并不视为错误。表数据长度码和字节数的关系数据长度码数据字节数DLCDLCDLCDLCDDDDDDDRDDRDDDRRDRDDDRDRDRRDDRRRRDDD“D”:显性电平“R”:隐性电平应用手册RCJBRevPageof()数据段(标准、扩展格式相同)数据段可包含~个字节的数据。从MSB(最高位)开始输出。DR标准扩展格式相同CRC段仲裁段SOF控制段数据EOFACK段图数据帧(数据段)()CRC段(标准扩展格式相同)CRC段是检查帧传输错误的帧。由个位的CRC顺序*和个位的CRC界定符(用于分隔的位)构成。DREOFRSOFCRC仲裁段数据段控制段ACK段标准扩展格式相同CRC界定符图数据帧(CRC段)【注】*CRC顺序CRC顺序是根据多项式生成的CRC值CRC的计算范围包括帧起始、仲裁段、控制段、数据段。接收方以同样的算法计算CRC值并进行比较不一致时会通报错误。应用手册RCJBRevPageof()ACK段ACK段用来确认是否正常接收。由ACK槽(ACKSlot)和ACK界定符个位构成。DREOF标准扩展格式相同ACK界定符SOF控制段数据段CRC段仲裁段发送位*接收位*ACK槽(ACKSlot)ACK槽(ACKSlot)图数据帧(ACK段)【注】*发送单元的ACK段发送单元在ACK段发送个位的隐性位。*接收单元的ACK段接收到正确

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/49

CAN协议完全讲解

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利