关闭

关闭

关闭

封号提示

内容

首页 BOSCH_CAN_V20_cn.pdf

BOSCH_CAN_V20_cn.pdf

BOSCH_CAN_V20_cn.pdf

上传者: alanliu 2012-04-02 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《BOSCH_CAN_V20_cnpdf》,可适用于IT/计算机领域,主题内容包含广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucomCAN-bus规范V版本引言随着串行通讯进入更多应用领域因此在一些应用符等。

广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucomCAN-bus规范V版本引言随着串行通讯进入更多应用领域因此在一些应用里需要对通讯功能的报文识别位提出分配标准化的要求。原先的地址范围由个识别位定义如果地址范围扩大则这些应用就可以更好地由CAN来实现。因此引入了第二种报文格式(‘扩展格式’)的概念其定义的地址范围更宽由位定义。系统设计者将从考虑定义良好的结构命名方案中得到解放。有的用户不需要由扩展格式提供的识别符范围可以继续沿用常规的位识别符范围(‘标准格式’)在这种情况下可以采用市场上可用的CAN仪器或使用兼容这两种模式的新控制器类仪器。为了区别标准格式和扩展格式按CAN规范定义使用了CAN报文格式的第一个保留位。因为CAN定义的信息格式相当于标准格式因此仍然是有效的。此外由于扩展格式已经定义因此网络中会共存标准格式和扩展格式的报文。这本CAN规范技术规范由两部分组成:•A部分:CAN的报文格式说明(按CAN规范定义)。•B部分:标准格式和扩展格式的说明。为了兼容CAN要求CAN的仪器应兼容A部分或B部分。注意:只要没有用到扩展格式那么根据A部分或CAN旧版本设计的仪器可以和根据B部分设计的仪器相互间进行通讯。广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucomA部分目录.介绍.基本概念.报文传输帧类型数据帧远程帧错误帧过载帧帧间空间发送器接收器的定义.报文校验.编码.错误处理错误检测错误标定.故障界定.位定时要求增加CAN振荡器容差协议修改广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucom.介绍控制器局域网(CAN)为串行通讯协议能有效地支持具有很高安全等级的分布实时控制。CAN的应用范围很广从高速的网络到低价位的多路接线都可以使用CAN。在汽车电子行业里使用CAN连接发动机控制单元、传感器、防刹车系统、等等其传输速度可达Mbits。同时可以将CAN安装在卡车本体的电子控制系统里诸如车灯组、电气车窗等等用以代替接线配线装置。这本技术规范的目的是为了在任何两个CAN仪器之间建立兼容性。可是兼容性有不同的方面比如电气特性和数据转换的解释。为了达到设计透明度以及实现柔韧性CAN被细分为以下不同的层次:•CAN对象层(theobjectlayer)•CAN传输层(thetransferlayer)•物理层(thephyicallayer)对象层和传输层包括所有由ISOOSI模型定义的数据链路层的服务和功能。对象层的作用范围包括:z查找被发送的报文。z确定由实际要使用的传输层接收哪一个报文。z为应用层相关硬件提供接口。在这里定义对象处理较为灵活。传输层的作用主要是传送规则也就是控制帧结构、执行仲裁、错误检测、出错标定、故障界定。总线上什么时候开始发送新报文及什么时候开始接收报文均在传输层里确定。位定时的一些普通功能也可以看作是传输层的一部分。理所当然传输层的修改是受到限制的。物理层的作用是在不同节点之间根据所有的电气属性进行位信息的实际传输。当然同一网络内物理层对于所有的节点必须是相同的。尽管如此在选择物理层方面还是很自由的。这本技术规范的目的是定义传输层并定义CAN协议于周围各层当中所发挥的作用(所具有的意义)。.基本概念CAN具有以下的属性:•报文的优先权•保证延迟时间•设置灵活•时间同步的多点接收•系统宽数据的连贯性•多主机•错误检测和标定•只要总线一处于空闲就自动将破坏的报文重新传输•将节点的暂时性错误和永久性错误区分开来并且可以自动关闭错误的节点广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucomCAN节点的层结构(LayeredStructureodaCANnode)应用层对象层报文滤波报文和状态的处理传输层故障界定错误检测和标定报文校验应答仲裁报文分帧传输速率和定时物理层信号电平和位表示传输媒体z物理层定义实际信号的传输方法。本技术规范没有定义物理层以便允许根据它们的应用对发送媒体和信号电平进行优化。z传输层是CAN协议的核心。它把接收到的报文提供给对象层以及接收来自对象层的报文。传输层负责位定时及同步、报文分帧、仲裁、应答、错误检测和标定、故障界定。z对象层的功能是报文滤波以及状态和报文的处理。这本技术规范的目的是为了定义传输层及定义CAN协议在周围各层中所发挥的作用(所具有的意义)。报文(Messages)总线上的信息以不同的固定报文格式发送但长度受限(见第节的报文传输)。当总线空闲时任何连接的单元都可以开始发送新的报文。信息路由(InformationRouting)在CAN系统里节点不使用任何关于系统配置的信息(比如站地址)。以下是几个重要的概念。z系统灵活性:不需要改变任何节点的应用层及相关的软件或硬件就可以在CAN网络中直接添加节点。z报文路由:报文的内容由识别符命名。识别符不指出报文的目的地但解释数据的含义。因此网络上所有的节点可以通过报文滤波确定是否应对该数据做出反应。z多播:由于引入了报文滤波的概念任何数目的节点都可以接收报文并同时对此报文做出反应。z数据连贯性:在CAN网络内可以确保报文同时被所有的节点接收(或同时不被接收)。因此系统的数据连贯性是通过多播和错误处理的原理实现的。位速率(Bitrate):不同的系统CAN的速度不同。可是在一给定的系统里位速率是唯一的并且是固定的。优先权(Priorities):在总线访问期间识别符定义一静态的报文优先权。广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucom远程数据请求(RemoteDataRequest):通过发送远程帧需要数据的节点可以请求另一节点发送相应的数据帧。数据帧和相应的远程帧是由相同的识别符(IDENTIFIER)命名的。多主机(Multimaster):总线空闲时任何单元都可以开始传送报文。具有较高优先权报文的单元可以获得总线访问权。仲裁(Arbitration):只要总线空闲任何单元都可以开始发送报文。如果个或个以上的单元同时开始传送报文那么就会有总线访问冲突。通过使用识别符的位形式仲裁可以解决这个冲突。仲裁的机制确保信息和时间均不会损失。当具有相同识别符的数据帧和远程帧同时初始化时数据帧优先于远程帧。仲裁期间每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同则这个单元可以继续发送。如果发送的是一“隐性”电平而监控视到一“显性”电平(见总线值)那么该单元就失去了仲裁必须退出发送状态。安全性(Safety):为了获得最安全的数据发送CAN的每一个节点均采取了强有力的措施以进行错误检测、错误标定及错误自检。错误检测(ErrorDetection):为了检测错误必须采取以下措施:监视(发送器对发送位的电平与被监控的总线电平进行比较)循环冗余检查位填充报文格式检查错误检测的执行(PerformanceofErrorDetection):错误检测的机制要具有以下的属性:检测到所有的全局错误检测到发送器所有的局部错误可以检测到一报文里多达个任意分布的错误检测到一报文里长度低于(位)的突发性错误检测到一报文里任一奇数个的错误对于没有被检测到的错误报文其残余的错误可能性概率低于:报文错误率**–。错误标定和恢复时间(ErrorSinallingandRecoveryTime):任何检测到错误的节点会标志出已损坏的报文。此报文会失效并将自动地开始重新传送。如果不再出现新错误的话从检测到错误到下一报文的传送开始为止恢复时间最多为个位的时间。故障界定(FaultConfinement):CAN节点能够把永久故障和短暂扰动区分开来。永久故障的节点会被关闭。连接(Connections):CAN串行通讯链路是可以连接许多单元的总线。理论上可连接无数多的单元。但由于实际上受延迟时间以及或者总线线路上电气负载的影响连接单元的数量是有限的。广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucom单通道(SingleChannel):总线是由单一进行双向位信号传送的通道组成。通过此通道可以获得数据的再同步信息。要使此通道实现通讯有许多的方法可以采用如使用单芯线(加上接地)、条差分线、光缆等等。这本技术规范不限制这些实现方法的使用即未定义物理层。总线值(Busvalue):总线可以具有两种互补的逻辑值之一:“显性”或“隐性”。“显性”位和“隐性”位同时传送时总线的结果值为“显性”。比如在执行总线的“线与”时逻辑代表“显性”等级逻辑代表“隐性”等级。本技术规范不给出表示这些逻辑电平的物理状态(比如电压、光)。应答(Acknowledgment):所有的接收器检查报文的连贯性。对于连贯的报文接收器应答对于不连贯的报文接收器作出标志。睡眠模式/唤醒(SleepModeWakeup):为了减少系统电源的功率消耗可以将CAN器件设为睡眠模式以便停止内部活动及断开与总线驱动器的连接。CAN器件可由总线激活或系统内部状态而被唤醒。唤醒时虽然传输层要等待一段时间使系统振荡器稳定然后还要等待一段时间直到与总线活动同步(通过检查个连续的“隐性”的位)但在总线驱动器被重新设置为“总线在线”之前内部运行已重新开始。为了唤醒系统上正处于睡眠模式的其他节点可以使用一特殊的唤醒报文此报文具有专门的、最低等级的识别符。(rrrrrrdrrrrr=‘’隐性’d=‘显性’).报文传输帧类型报文传输由以下个不同的帧类型所表示和控制:数据帧:数据帧携带数据从发送器至接收器。远程帧:总线单元发出远程帧请求发送具有同一识别符的数据帧。错误帧:任何单元检测到一总线错误就发出错误帧。过载帧:过载帧用以在先行的和后续的数据帧(或远程帧)之间提供一附加的延时。数据帧(或远程帧)通过帧间空间与前述的各帧分开。数据帧数据帧由个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结尾。数据场的长度可以为。帧起始它标志数据帧和远程帧的起始由一个单独的“显性”位组成。只在总线空闲(参见“总线空闲”)时才允许站开始发送(信号)。所有的站必须同步于首先开始发送信息的站的帧起始前沿(参见“硬同步”)。广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucomInterframeSpaceInterframeSpaceStartofFrameArbitrationFieldControlFieldDataFieldCRCFieldACKFieldEndofFrameorOverloadFrameDATAFRAME仲裁场仲裁场包括识别符和远程发送请求位(RTR)。识别符:识别符的长度为位。这些位的发送顺序是从ID到ID。最低位是ID。最高的位(ID到ID)必须不能全是“隐性”。RTR位:该位在数据帧里必须为“显性”而在远程帧里必须为“隐性”。InterframeSpaceStartofFrameIdentifierRTRBitControlFieldARBITRATIONFIELD控制场控制场由个位组成包括数据长度代码和两个将来作为扩展用的保留位。所发送的保留位必须为“显性”。接收器接收所有由“显性”和“隐性”组合在一起的位。数据长度代码:数据长度代码指示了数据场中字节数量。数据长度代码为个位在控制场里被发送。rrDLCDLCDLCDLCorCRCFieldArbitrationFieldDataFieldCONTROLFIELDDataLengthCodereservedbits广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucom数据长度代码中数据字节数的编码(DATALENGTHCODE):缩写:d“显性”r“隐性”ddddddddrddddrrrrdddrrddrrddrdrdrdrdDLCDLCDLCDLCNumberofDataBytesDataLengthCode数据帧:允许的数据字节数:{,,,,}。其他的数值不允许使用。数据场数据场由数据帧中的发送数据组成。它可以为~个字节每字节包含了个位首先发送MSB。CRC场CRC场包括CRC序列(CRCSEQUENCE)其后是CRC界定符(CRCDELIMITER)。DataorControlFieldCRCSequenceCRCDelimiterAckFieldCRCFIELDCRC序列:由循环冗余码求得的帧检查序列最适用于位数低于位〈BCH码〉的帧。为进行CRC计算被除的多项式系数由无填充位流给定组成这些位流的成分是:帧起始、仲裁场、控制场、数据场(假如有)而个最低位的系数是。将此多项式被下面的多项式发生器除(其系数以为模):XXXXXXX这个多项式除法的余数就是发送到总线上的CRC序列(CRCSEQUENCE)。为了实现这个功能可以使用位的位移寄存器CRCRG(:)。如果用NXTBIT标记指示位流的下一位它由从帧的起始到数据场末尾都由无填充的位序列给定。CRC序列(CRCSEQUENCE)的计算如下:CRCRG=初始化移位寄存器REPEAT广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucomCRCNXT=NXTBITEXORCRCRG()CRCRG(:)=CRCRG(:)寄存器左移位CRCRG()=IFCRCNXTTHENCRCRG(:)=CRCRG(:)EXOR(hex)ENDIFUNTIL(CRC序列开始或存在一个错误条件)在传送接收数据场的最后一位以后CRCRG包含有CRC序列。CRC序列之后是CRC界定符它包含一个单独的“隐性”位。应答场应答场长度为个位包含应答间隙(ACKSLOT)和应答界定符(ACKDELIMITER)。在应答场里发送站发送两个“隐性”位。当接收器正确地接收到有效的报文接收器就会在应答间隙(ACKSLOT)期间(发送ACK信号)向发送器发送一“显性”的位以示应答。CRCFieldACKSlotACKDelimiterEndofFrameACKFIELD应答间隙:所有接收到匹配CRC序列(CRCSEQUENCE)的站会在应答间隙(ACKSLOT)期间用一“显性”的位写入发送器的“隐性”位来作出回答。ACK界定符:ACK界定符是ACK场的第二个位并且是一个必须为“隐性”的位。因此应答间隙(ACKSLOT)被两个“隐性”的位所包围也就是CRC界定符(CRCDELIMITER)和ACK界定符(ACKDELIMITER)。帧结尾每一个数据帧和远程帧均由一标志序列界定。这个标志序列由个“隐性”位组成。远程帧通过发送远程帧作为某数据接收器的站通过其资源节点对不同的数据传送进行初始化设置。远程帧由个不同的位场组成:帧起始、仲裁场、控制场、CRC场、应答场、帧末尾。与数据帧相反远程帧的RTR位是“隐性”的。它没有数据场数据长度代码的数值是不受制约的(可以标注为容许范围里的任何数值)。此数值是相应于数据帧的数据长度代码。广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucomInterSpaceInterSpaceStartofFrameArbitrationFieldControlFieldCRCFieldACKFieldEndofFrameorOverloadFrameREMOTEFRAMEFrameFrameRTR位的极性表示了所发送的帧是一数据帧(RTR位“显性”)还是一远程帧(RTR“隐性”)。错误帧错误帧由两个不同的场组成。第一个场用作为不同站提供的错误标志(ERRORFLAG)的叠加。第二个场是错误界定符。DataFrameErrorFlagErrorDelimiterInterframeSpaceorERRORFRAMEOverloadFramesuperpositionofErrorFlags为了能正确地终止错误帧一“错误被动”的节点要求总线至少有长度为个位时间的总线空闲(如果“错误被动”的接收器有本地错误的话)。因此总线的载荷不应为。有两种形式的错误标志主动错误标志(Activeerrorflag)和被动错误标志(Passiveerrorflag)。主动错误标志由个连续的“显性”位组成。被动错误标志由个连续的“隐性”的位组成除非被其他节点的“显性”位重写。检测到错误条件的“错误主动”的站通过发送主动错误标志以指示错误。错误标志的形式破坏了从帧起始到CRC界定符的位填充规则(参见“编码”)或者破坏了应答场或帧末尾场的固定形式。所有其他的站由此检测到错误条件并与此同时开始发送错误标志。因此“显性”位(此“显性”位可以在总线上监视)的序列导致一个结果这个结果就是把各个单独站发送的不同的错误标志叠加在一起。这个顺序的总长度最小为个位最大为个位。检测到错误条件的“错误被动”的站试图通过发送被动错误标志以指示错误。“错误被动”的站等待个相同极性的连续位(这个位处于被动错误标志的开始)。当这个相同的位被检测到时被动错误标志的发送就完成了。广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucom错误界定符包括个“隐性”的位。错误标志传送了以后每一站就发送“隐性”的位并一直监视总线直到检测出一个“隐性”的位为止。然后就开始发送位以上的“隐性”位。过载帧过载帧包括两个位场:过载标志和过载界定符。有两种过载条件都会导致过载标志的传送:接收器的内部条件(此接收器对于下一数据帧或远程帧需要有一延时)。间歇场期间检测到一“显性”位。由过载条件而引发的过载帧只允许起始于所期望的间歇场的第一个位时间开始。而由过载条件引发的过载帧应起始于所检测到“显性”位之后的位。EndofFrameorOverloadOverloadDelimiterInterSpaceorOVERLOADFRAMEOverloadFramesuperpositionofOverloadFlagsFlagFrameErrorDelimiterorOverloadDelimiter通常为了延时下一个数据帧或远程帧两个过载帧都会产生。过载标志过载标志由个“显性”的位组成。过载标志的所有形式和主动错误标志的一样。过载标志的形式破坏了间歇场的固定形式。因此所有其他的站都检测到一过载条件并与此同时发出过载标志。(万一有的节点在间歇的第个位期间于本地检测到“显性”位则其他的节点将不能正确地解释过载标志而是将这个“显性”位中的第一个位解释为帧的起始。这第个“显性”的位破坏了产生错误条件的位填充的规则。)过载界定符过载界定符包括个“隐性”的位。过载界定符的形式和错误界定符的形式一样。过载标志被传送后站就一直监视总线直到检测到一个从“显性”位到“隐性”位的发送(过渡形式)。此时总线上的每一个站完成了过载标志的发送并开始同时发送个以上的“隐性”位。帧间空间(INTERFRAMESPACING)数据帧(或远程帧)与其前面帧的隔离是通过帧间空间实现的无论其前面的帧为何类型(数据帧、远程帧、错误帧、过载帧)。所不同的是过载帧与错误帧之前没有帧间空间多个过载帧之间也不是由帧间空间隔离的。帧间空间帧间空间包括间歇场、总线空闲的位场。如果“错误被动”的站已作为前一报文的发送器时则其帧空间除了间歇、总线空闲外还包括称作挂起传送(SUSPENDTRANSMISSION)的位场。对于不是“错误被动”的站或者此站已作为前一报文的接收器其帧间空间如下图所示:广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucom:FrameBusIdleINTERFRAMESPACEIntermissionFrame对于已作为前一报文发送器的“错误被动”的站其帧间空间如下图所示:FrameBusIdleINTERFRAMESPACEIntermissionFrameSuspendTransmission间歇间歇包括个“隐性”的位。间歇期间所有的站均不允许传送数据帧或远程帧唯一要做的是标示一个过载条件。总线空闲总线空闲的(时间)长度是任意的。只要总线被认定为空闲任何等待发送信息的站就会访问总线。在发送其他信息期间有报文被挂起对于这样的报文其传送起始于间歇之后的第一个位。总线上检测到的“显性”的位可被解释为帧的起始。挂起传送“错误被动”的站发送报文后站就在下一报文开始传送之前或总线空闲之前发出个“隐性”的位跟随在间歇的后面。如果与此同时另一站开始发送报文(由另一站引起)则此站就作为这个报文的接收器。发送器接收器的定义发送器(TRANSMITTER)产生报文的单元被称之为报文的“发送器”。此单元保持作为报文发送器直到总线出现空闲或此单元失去仲裁(ARBITRATION)为止。接收器(RECEIVER)如果有一单元不作为报文的发送器并且总线也不空闲则这一单元就被称之为报文的“接收器”。.报文校验校验报文是否有效的时间点发送器与接收器各不相同。发送器:广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucom如果直到帧的末尾位均没有错误则此报文对于发送器有效。如果报文破损则报文会根据优先权自动重发。为了能够和其他信息竞争总线重新传输必须在总线空闲时启动。接收器:如果直到一最后的位(除了帧末尾位)均没有错误则报文对于接收器有效。.编码位流编码:帧的部分诸如帧起始、仲裁场、控制场、数据场以及CRC序列均通过位填充的方法编码。无论何时发送器只要检测到位流里有个连续识别值的位便自动在位流里插入一补码位。数据帧或远程帧(CRC界定符、应答场和帧末尾)的剩余位场形式相同不填充。错误帧和过载帧的形式也相同但并不通过位填充的方法进行编码。其报文里的位流根据“不返回到零”(NRZ)之方法来编码。这就是说在整个位时间里位电平要么为“显性”要么为“隐性”。.错误处理错误检测有以下种不同的错误类型(这种错误不会相互排斥)•位错误站单元在发送位的同时也对总线进行监视。如果所发送的位值与所监视的位值不相符合则在此位时间里检测到一个位错误(BITERROR)。但是在仲裁场(ARBITRATIONFIELD)的填充位流期间或ACK间隙(ACKSLOT)发送一“隐性”位的情况是例外的此时当监视到一“显性”位时不会发出位错误(BITERROR)。当发送器发送一个被动错误标志但检测到“显性”位时也不视为位错误。•填充错误如果在使用位填充法进行编码的信息中出现了第个连续相同的位电平时将检测到一个填充错误。•CRC错误CRC序列包括发送器的CRC计算结果。接收器计算CRC的方法与发送器相同。如果计算结果与接收到CRC序列的结果不相符则检测到一个CRC错误(CRCERROR)。•形式错误当一个固定形式的位场含有个或多个非法位则检测到一个形式错误(FORMERROR)。•应答错误只要在ACK间隙(ACKSLOT)期间所监视的位不为“显性”则发送器会检测到一个应答错误(ACKNOWLEDGMENTERROR)。错误标定检测到错误条件的站通过发送错误标志指示错误。对于“错误主动”的节点错误信息为“主动错误标志”对于“错误被动”的节点错误信息为“被动错误标志”。站检测到无论是位错误、填充错误、形式错误还是应答错误这个站会在下一位时发出错误标志信息。只要检测到的错误的条件是CRC错误错误标志的发送开始于ACK界定符之后的位(其他的错误条件除外)。.故障界定至于故障界定单元的状态可能为以下三种之一:•“错误主动”广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucom•“错误被动”•“总线关闭”“错误主动”的单元可以正常地参与总线通讯并在错误被检测到时发出主动错误标志。“错误被动”的单元不允许发送主动错误标志。“错误被动”的单元参与总线通讯而且在错误被检测到时只发出被动错误标志。而且发送以后“错误被动”单元将在预设下一个发送之前处于等待状态。(见“挂起发送”)“总线关闭”的单元不允许在总线上有任何的影响(比如关闭输出驱动器)。在每一总线单元里实现两种计数以便故障界定:•发送错误计数•接收错误计数这些计数按以下规则改变(注意:在给定的报文发送期间可能要用到的规则不只一个):当接收器检测到一个错误接收错误计数就加。在发送主动错误标志或过载标志期间所检测到的错误为位错误时接收错误计数器值不加。当错误标志发送以后,接收器检测到的第一个位为“显性”时接收错误计数值加。当发送器发送一错误标志时发送错误计数器值加。例外情况:发送器为“错误被动”并检测到一应答错误(注:此应答错误由检测不到一“显性”应答以及当发送被动错误标志时检测不到一“显性”位而引起)。例外情况:发送器因为填充错误而发送错误标志(注:此填充错误发生于仲裁期间。引起填充错误是由于:填充位〈填充位〉位于RTR位之前并已作为“隐性”发送但是却被监视为“显性”)。例外情况和例外情况时发送错误计数器值不改变。发送主动错误标志或过载标志时如果发送器检测到位错误则发送错误计数器值加。当发送主动错误标志或过载标志时如果接受器检测到位错误(位错误)则接收错误计数器值加。在发送主动错误标志、被动错误标志或过载标志以后任何节点最多容许个连续的“显性”位。以下的情况每一发送器将它们的发送错误计数值加及每一接收器的接收错误计数值加:当检测到第个连续的“显性”位后在检测到第个跟随着被动错误标志的连续的“显性”位以后在每一附加的个连续“显性”位顺序之后。报文成功传送后(得到应答及直到帧末尾结束没有错误)发送错误计数器值减除非已经是。如果接收错误计数值介于和之间在成功地接收到报文后(直到ACK间隙接收没有错误及成功地发送了应答位)接收错误计数器值减。如果接收错误计数器值是则它保持如果大于则它会设一值介于到之间。当发送错误计数器值等于或超过时或当接收错误计数器值等于或超过时节点为“错误被动”。让节点成为“错误被动”的错误条件致使节点发出主动错误标志。当发送错误计数器值大于或等于时节点为“总线关闭”。当发送错误计数器值和接收错误计数器值都小于或等于时“错误被动”的节点重新变为“错误主动”。在总线监视到次出现个连续“隐性”位之后“总线关闭”的节点可以变成“错误主动”(不再是“总线关闭”)它的错误计数值也被设置为。备注:一个大约大于的错误计数值显示总线被严重干扰。最好能够采取措施测试这个条件。广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucom备注:起动睡眠:如果起动期间内只有个节点在线以及如果这个节点发送一些报文则将不会有应答如此检测到错误并重复报文。由于此原因节点会变为“错误被动”而不是“总线关闭”。.位定时要求标称位速率标称位率为一理想的发送器在没有重新同步的情况下每秒发送的位数量。标称位时间标称位时间=标称位速率可以把标称位时间划分成了几个不重叠时间的片段它们是:同步段(SYNCSEG)传播时间段(PROPSEG)相位缓冲段(PHASESEG)相位缓冲段(PHASESEG)位时间如下图所示:SYNCSEGPROPSEGPHASESEGPHASESEGSamplePointNOMINALBITTIME同步段(SYNCSEG)位时间的同步段用于同步总线上不同的节点。这一段内要有一个跳变沿。传播段(PROPSEG)传播段用于补偿网络内的物理延时时间。它是总线上输入比较器延时和输出驱动器延时总和的两倍。相位缓冲段、相位缓冲段(PHASESEG、PHASESEG):相位缓冲段用于补偿边沿阶段的错误。这两个段可以通过重新同步加长或缩短。采样点(SAMPLEPOINT):采样点是读总线电平并解释各位的值的一个时间点。采集点位于相位缓冲段(PHASESEG)之后。信息处理时间(INFORMATIONPROCESSTIME)信息处理时间是一个以采样点作为起始的时间段。采集点用于计算后续位的位电平。时间份额(TIMEQUANTUM)时间份额是派生于振荡器周期的固定时间单元。存在有一个可编程的预比例因子其整体数值范围为的整数以最小时间份额为起点时间份额的长度为:时间份额(TIMEQUANTUM)=m*最小时间份额(MINIMUMTIMEQUANTUM)(m为预比例因子)广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucom时间段的长度(LengthofTimeSegments)同步段(SYNCSEG)为个时间份额传播段(PROPSEG)的长度可设置为…个时间份额缓冲段(PHASESEG)的长度可设置为…个时间份额相位缓冲段(PHASESEG)的长度为阶段缓冲段(PHASESEG)和信息处理时间(INFORMATIONPROCESSINGTIME)之间的最大值信息处理时间少于或等于个时间份额。一个位时间总的的时间份额值可以设置在的范围。同步(SYHCHRONIZATION)硬同步(HARDSYHCHRONIZATION):硬同步后内部的位时间从同步段重新开始。因此硬同步强迫由于硬同步引起的沿处于重新开始的位时间同步段之内。重新同步跳转宽度(RESYHCHRONIZATIONJUMPWIDTH)重新同步的结果使相位缓冲段增长或使相位缓冲段缩短。相位缓冲段加长或缩短的数量有一个上限此上限由重新同步跳转宽度给定。重新同步跳转宽度应设置于和最小值之间(此最小值为PHASESEG)。时钟信息可以从一位值转换到另一位值的跳变中得到。后续位有固定的最大数值其数值相同。这个属性提供了总线单元在帧期间重新和位流同步的可能性。(这里有一个属性即:只有后续位的一固定最大值才具有相同的数值。这个属性使总线单元在帧期间重新同步于位流成为可能。可用于重新同步的两个过渡过程之间的最大长度为个位时间。)一个沿的相位误差一个沿的相位误差由相关于同步段的沿的位置给出以时间份额量度。相位误差定义如下:•e=如果沿处于同步段里(SYNCSEG)•e>如果沿位于采集点(SAMPLEPOINT)之前•e<如果沿处于前一个位的采集点(SAMPLEPOINT)之后重新同步当引起重新同步沿的相位误差的幅值小于或等于重新同步跳转宽度的设定值时重新同步和硬件同步的作用相同。当相位错误的量级大于重新同步跳转宽度时:•如果相位误差为正则相位缓冲段被增长。增长的范围为与重新同步跳转宽度相等的值。•如果相位误差为负则相位缓冲段被缩短。缩短的范围为与重新同步跳转宽度相等的值。同步的原则硬同步和重新同步都是同步的两种形式遵循以下规则:在一个位时间里只允许一个同步。仅当采集点之前探测到的值与紧跟沿之后的总线值不相符合时才把沿用作于同步。总线空闲期间有一“隐性”转变到“显性”的沿无论何时硬同步都会被执行。如果仅仅是将“隐性”转化为“显性”的沿用作于重新同步使用则其他符合规则和规则的所有从“隐性”转化为“显性”的沿可以用作为重新同步。有一例外情况即当发送一显性位的节点不执行重新同步而导致一“隐性”转化为“显性”沿此沿具有正的相位误差不能作为重新同步使用。增加CAN振荡器容差这章介绍CAN协议的向上兼容的修改就如同第到章介绍的那样。广州周立功单片机发展有限公司Tel:Fax:http:wwwzlgmcucom协议修改为了把振荡器最大容差从目前的增加到有必要作以下修改以便向上兼容现有的CAN规范:)如果CAN节点在间歇的第三位采集到一显性位则此位被解释为帧的起始位。)如果CAN节点有一信息等待发送并且节点在间歇的第三位采集到一显性位则此位被解释为帧的起始位并从下一个位开始发送具有识别符作为首位的报文而不是首先发送帧的起始位或成为一接收器。)如果节点在错误界定符或过载界定符的第八个位采集到一显性位则在下一位开始发送一过载帧(而不是错误帧)。错误计数器值不会增加。)仅为隐性转换到显性的沿才会用于重新同步。为符合现有的规范以下的规定仍然有效。)在硬同步时所有CAN控制器同步于帧起始位。)直到遇上三个隐性的间歇位CAN才发送帧起始位。)这个修改允许振荡器最大为的容差并在总线速度达到KB秒时使用一陶瓷谐振器。为

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/36
2下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部