• 561.00 KB
  • 45页

现场总线技术 ch2-can技术规范介绍

  • 45页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'现场总线技术第二章CAN技术规范介绍教材:现场总线CAN原理与应用技术作者:绕运涛、邹继军、郑勇荟中国矿业大学/徐海学院2012-08 2CAN技术规范介绍-标准标准BOSCH公司V1.2V2.0AV2.0B(V2.0B完全兼容2.0A)国际标准化组织ISO11898-道路交通运载工具-数字交换-高速通信控制器局部网现在所有厂家生产的CAN控制器都已支持V2.0B 3CAN技术规范介绍-应用应用CAN连接发动机控制单元,各种传感器,刹车系统、减震系统、防滑系统、转向系统车灯组,电气车窗,代替接线配线装置音响、视频等娱乐、辅助单元车身环境控制系统…… 4CAN特性CAN特性支持报文优先权保证报文延迟时间设置灵活时间同步的多点接收系统内数据的一致性(SystemWideDataConsistency)多主机网络(对等网)错误监测和错误标定只要总线空闲,就自动将被破坏的报文重新传输将节点的暂时性错误和永久性错误区分开,自动关闭CAN的错误节点 5CAN分层模型依据ISO-OSI参考模型的分层结构物理层数据链路层物理层定义信号如何实际地传输涉及位定时、位编码/解码、同步未定义物理层的驱动器/接收器特性,以便允许根据实际的应用对发送媒体和信号电平进行优化 6CAN分层模型-数据链路层数据链路层介质访问控制子层MAC(MediaAccessControl)CAN的核心将接收到的报文提供给LLC子层接收来自LLC子层的报文MAC子层负责分帧、仲裁、应答、错误检测和标定受“故障界定”管理实体监管-故障界定为自检机制,将永久故障和暂时扰动区分开逻辑链路控制子层LLC(LogicalLinkControl)进行报文过滤、过载通知、恢复管理 7CAN基本概念-报文报文(Message)总线上的信息以几个不同类型的固定格式的报文发送,但是长度受限当总线空闲时,任何连接在网络上的单元都可以开始发送新的报文 8CAN基本概念-信息路由信息路由(InformationRouting)CAN系统中,CAN的节点不使用任何关于系统结构的信息(如节点地址)系统灵活性不需要应用层以及任何节点软件和硬件的任何改变,可以在CAN网络中直接添加站点报文路由报文的寻址内容由标识符指定标识符不指出报文的目的地,但是这个数据的特定含义使得网络上所有节点通过报文滤波来判断该数据是否应该由它(们)接收多点传送(Multicast)由于报文的滤波作用,任何数目的节点对同一条报文都可以接收并同时对此报文作出反应数据一致性(Consistency)在CAN网络里确保报文同时被所有的节点接收(或无节点接收)系统的这种数据一致性是靠多点传送和错误处理机制来实现 9CAN基本概念(续1)位速率(BitRate)在一个给定的CAN系统中,位速率是唯一的,并且是固定的优先权(Priorities)在总线访问期间,标识符定义一个静态的(固定的)报文优先权远程数据请求(RemoteDataRequest)通过发送远程帧,需要数据的节点可以请求另一节点发送相应的数据帧数据帧和对应的远程帧具有相同的标识符多主机(Multimaster)总线空闲时,任何节点都可以开始传送报文具有较高优先权报文的节点可以获得总线访问权 10CAN基本概念(续2)仲裁(Arbitration)如果两个或两个以上的单元同时开始传送报文,就会发生总线访问冲突通过使用标识符逐位仲裁解决冲突仲裁机制确保报文和时间均不损失具有相同标识符的远程帧和数据帧同时发送时,数据帧优先于远程帧仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较,如果电平相同,则这个单元可以继续发送如果发送电平和监视电平不符,这个单元失去仲裁,必须退出发送状态 11CAN基本概念-安全性安全性(Safety)为了获得安全的数据发送,每个CAN节点均采取措施进行错误检测、错误标定、错误自检错误检测(ErrorDetection)进行错误检测,需要采取以下措施监视-发送器对发送位的电平与被监控的总线电平进行比较循环冗余(CRC)检查位填充报文格式检查 12CAN基本概念-安全性(续1)错误检测的性能(PerformanceorErrorDetection)错误检测的机制具有以下属性:检测所有全局错误检测到发送器的所有局部错误可以检测到报文里多达5个任意分布的错误检测到报文里长度低于15位的突发性错误检测到报文里任意奇数个错误对于未检测到错误的报文,其遗漏错误的概率低于:4.7×10-11 13CAN基本概念-安全性(续2)错误标定和恢复时间(ErrorSignalingandRecoveryTime)任何检测到错误的节点会标示出损坏的报文,此报文会失效并将自动重新传送如果不再出现错误,那么从检测到错误到下一条报文传送开始为止,恢复时间最多为31个位的时间故障界定(FaultConfinement)CAN节点能够把永久故障和暂时干扰区别开,关闭故障节点 14CAN基本概念(续3)连接(Connections)CAN串行通讯链路是可以连接许多单元的总线,理论上可以连接无数个单元实际连接数量受延迟时间以及总线驱动能力的影响单一通道(SingleChannel)总线由单一通道组成,传输位流从传输的数据中可以再获得同步信息规范没有规定通道实现通信的方法,因此可以采用单芯线(加地线)、两条差分线、光缆等 15CAN基本概念(续4)总线值的表示(BusValue)总线上有两个互补的逻辑值中的一个:“显性,Dominant”和“隐性,Recessive”当显性位和隐性位同时传送时,其结果是总线的值是显性,例如在总线上执行“线-与”时,显性位代表逻辑“0”,隐性位代表逻辑“1”,0and1=0规范没有规定表示逻辑值的物理状态:比如电压、光强度 16CAN基本概念(续5)应答(Acknowledgement)所有的接收器对接收到的报文进行一致性检查,对于一致的报文,接收器给予应答;不一致的报文,接收器作出标志睡眠模式/唤醒(SleepMode/Wake-up)CAN器件可以设置为睡眠模式节省电能,睡眠模式停止活动并与总线驱动器断开睡眠模式可以由于总线运作或系统内部条件改变而结束总线唤醒时,等待振荡器工作稳定,等待与总线活动同步(等待11个连续隐性位) 17振荡器误差(OscillatorTolerance)振荡器误差(OscillatorTolerance)位定时的精度要求允许在传输率为125Kbps以内的应用中使用陶瓷谐振器为了满足CAN协议的整个速度范围(达到1Mbps)位定时的精度,需要使用晶体振荡器 18报文传输帧格式标准帧BOSCHV2.0A11位标识符扩展帧BOSCHV2.0B29位标识符帧类型4种不同类型的帧数据帧(DataFrame)将数据从发送站点传送到接收站点,发送数据远程帧(RemoteFrame)请求发送具有同一标识符的数据帧,请求数据错误帧(ErrorFrame)任何单元检测到总线错误即发出错误帧过载帧(OverloadFrame)在相邻的数据帧或远程帧之间提供更多的延时 19数据帧数据帧7个位域构成帧起始(StartofFrame)仲裁域(ArbitrationField)控制域(ControlField)数据域(DataField)CRC域(CRCField)应答域(ACKField)帧结尾(EndofFrame)数据域长度可以为0帧起始(SoF)适合标准格式和扩展格式标示报文帧的开始由一个显性位组成(逻辑0)总线空闲时允许站点开始发送所有站点必须同步于总线空闲期间第一个发送帧的起始前沿 20数据帧-仲裁域-标准格式标准格式仲裁域由11位标识符+RTR位组成11位标识符ID-28~ID18标准格式标识符标准格式标识符11位,相当于扩展格式基本ID按照ID-28~ID18顺序发送,高位在前7个最高位ID-28~ID22中不能全是隐形(逻辑1) 21数据帧-仲裁域-扩展格式扩展格式29位标识符ID28~ID0SRRIDERTR扩展格式标识符11位基本ID+18位扩展ID基本ID:相当于标准格式标识符,定义扩展帧的基本优先权扩展ID:ID17~ID0 22数据帧-仲裁域(续)RTR远程发送请求位(RemoteTransmissionRequestBit)RTR在数据帧中为显性(逻辑0)RTR在远程帧中为隐性(逻辑1)SRR替代远程请求位(SubstituteRemoteRequestBit)隐性位(逻辑1)代替标准帧中RTR位置当标准帧与扩展帧发生冲突,扩展帧的基本ID与标准帧的标识符相同时,标准帧优先IDE标识符扩展位(IdentifierExtensionBit)标准格式中IDE显性位(逻辑0),扩展格式中IDE为隐性位(逻辑1) 23数据帧-控制域控制域6位,标准格式和扩展格式不同标准格式IDE显性位,r0保留位-显性位扩展格式保留位r1,r0—显性位 24数据帧-控制域-数据长度代码数据长度代码标识帧中数据的个数0~8个数据右表中d–dominant,显性,逻辑0r–recessive,隐性,逻辑1数据字节数据长度代码DLC3DLC2DLC1DLC00dddd1dddr2ddrd3ddrr4drdd5drdr6drrd7drrr8rddd 25数据帧-数据域、CRC域数据域数据帧中实际发送的数据0~8字节先发送高字节MSBCRC域循环冗余码CRC(CyclicRedundancyCheck)CRC序列CRC界定符,1个隐性位CAN控制器中硬件提供CRC计算和校验 26数据帧-应答域、帧结尾应答域(ACKField)应答间隙1位+应答界定符1位应答域中发送器发送两个隐性位应答间隙所有收到匹配CRC序列的站点会在应答间隙期间用一个显性位做出回应接收站发出的显性位位于发送器的隐性位位置应答界定符应答界定符为一个隐性位帧结尾每个数据帧或远程帧由称为帧结尾的标志序列界定帧结尾为7个隐性位构成 27远程帧(RemoteFrame)远程帧希望接收数据的站通过发送远程帧,启 动资源节点传送数据标准格式扩展格式6部分组成帧起始仲裁域控制域(数据域,远程帧中无此域)CRC域应答域帧结尾RTR位远程帧RTR位----隐性(1)数据域没有数据域控制域中数据长度代码可为0~8之间任意数 28错误帧(ErrorFrame)2个域不同站点提供的错误标志的叠加错误界定符错误标志激活错误标志认可错误标志激活错误标志6个连续的显性位认可错误标志6个连续的隐性位错误界定符8个隐性位传送错误标志后,每站发送一个隐性位,然后监视总线,直到检测到一个隐性位为止,然后发送连续7个隐性位 29过载帧(OverloadFrame)2个位域过载标志,过载界定符过载接收器内部原因,需要延迟下一个数据帧或远程帧在间歇的第一位和第二位之间检测到一个显性位CAN节点在错误界定符或过载界定符的第8位(最后一位)采样到一个显性位,节点发送一个过载帧过载标志6个显性位组成与错误标志类似过载界定符8个隐性位 30帧间空间(InterframeSpace)帧间空间分隔数据帧或远程帧与前面的帧过载帧与错误帧之前没有帧间空间多个过载帧之间没有帧间空间2个位域间歇,总线空闲间歇3个隐性位间歇期间,所有站点不允许传送数据帧或远程帧总线空闲(BusIdle)时间任意等待发送报文的站将在间歇之后第一个位期间开始发送数据…… 帧间空间(InterframeSpace)(续)发送前一个报文的”错误认可”的站点,帧间空间中包括“挂起传送,SuspendTransmission”位域挂起传送“错误认可”的站点发送报文后,在下一报文开始传送之前或确认总线空闲之前发出8个隐形位跟随在间歇的后面如果此时有另一个站点开始发送报文,则此站点就成为接收站31 32发送器和接收器发送器产生报文的单元称为发送器总线空闲或该单元失去仲裁时,这个单元不叫“发送器”接收器如果一个单元不叫发送器同时总线也不在空闲期间,这个单元叫“接收器” 33报文滤波、报文校验报文滤波通过标识符判别报文性质报文滤波取决于如何识别标识符屏蔽寄存器中的任何标识符都可以设置为“无关,Don’tCare”报文校验校验报文是否有效发送器直到帧的末尾未发现错误,则此报文对发送器有效如果报文错误,根据优先权自动重发在竞争总线时,必须在总线一旦空闲就开始重新传输接收器如果直到帧末尾位外的最后的位没有错误,报文对接收器有效帧末尾最后的位被置于“无关”状态,即使是显性电平也不会引起格式错误 34编码位流编码,BitStreamCoding位填充在帧的帧起始、仲裁域、数据域、CRC序列中,通过位填充方式编码无论何时,发送器检测到位流中有连续5个相同值的位,将自动在位流中插入一个补充位数据帧、远程帧的其余位域(CRC界定符、应答域、帧结尾)格式固定,没有填充错误帧和过载帧格式固定,没有填充不归零编码在整个“位”时间,位的电平处于显性或隐性,没有第三种状态 35错误处理错误检测5种错误类型,可能同时出现多种位错误(BitError)边发送边监视,发送的位值与监视到的位值不同时,检测到位错误例外仲裁域的填充位流期间、应答间隙发送隐性位期间 此时即使监视到显性电平不认为是错误发送“认可错误”标志但检测到显性位时填充错误(StuffError)在应当使用位填充法进行编码的报文域中,出现连续6个相同的位电平 错误处理(续1)CRC错误(CRCError)发送器自动计算报文的CRC序列并发送接收站计算的CRC与接收到的CRC不同即检测到CRC错误格式错误(FormError)如果一个格式固定的位域出现一个或以上的非法位,则检测到一个格式错误例外接收器接收帧末尾最后一位期间的显性位不被当作格式错误应答错误在应答间隙期间监视到的位不为显性,发送器检测到一个应答错误36 37错误处理(续2)错误信号的发出检测到错误的站通过发出标志(ErrorFlag)表示错误对于“错误激活”站点,该错误标志为“激活错误”标志对于“错误认可”的站点,该错误标志为“认可错误”标志任何站点检测到位错误、填充错误、格式错误、应答错误,将会在下一位时发出“错误标志”检测到CRC错误时,在ACK界定符之后位时发出“错误标志” 38故障界定(FAULTCONFINEMENT)每个站点的三种故障状态“错误激活”(ErrorActive)“错误激活”单元可以参与总线通信,在检测到错误时发出“激活错误”标志“错误认可”(ErrorPasitive)“错误认可”的站点不允许发出“激活错误”标志“错误认可”单元参与总线通信,在检测到错误时发出“认可错误”标志发出“认可错误”标志以后,“错误认可”单元在启动下一次发送之前处于等待状态“总线关闭”(BusOff)“总线关闭”单元不允许有任何影响总线的活动(例如--关闭输出驱动器)故障界定任何单元有两个计数器界定故障发送错误计数器,接收错误计数器计数规则1.当接收器检测到一个错误,接收错误计数就加1。在发送"错误激活"标志或过载标志期间所检测到的错误为位错误时,接收错误计数器值不加12.当错误标志发送以后,接收器检测到的第一个位为“显性”时,接收错误计数值加8 39故障界定(续1)3.当发送器发送一个错误标志时,发送错误计数器值加8例外情况1发送器为“错误认可”,并检测到一应答错误注:此应答错误由检测不到一个“显性”应答以及当发送"错误认可"标志时检测不到一个“显性”位而引起例外情况2发送器因为填充错误而发送错误标志注:此填充错误发生于仲裁期间引起填充错误是由于:填充位位于RTR位之前,并已作为“隐性”发送,但是却被监视为“显性”例外情况1和例外情况2时,发送错误计数器值不改变4.发送“错误激活”标志或过载标志时,如果发送器检测到位错误,则发送错误计数器值加8 40故障界定(续2)5.当发送"错误激活"标志或过载标志时,如果接受器检测到位错误,则接收错误计数器值加86.在发送"错误激活"标志、"错误认可"标志或过载标志以后,任何节点最多容许7个连续的“显性”位以下的情况,每一发送器将它们的发送错误计数值加8,以及每一接收器的接收错误计数值加8当检测到第14个连续的“显性”位后在检测到第8个跟随着"错误认可"标志的连续的“显性”位以后在每一附加的8个连续“显性”位序列之后7.报文成功传送后(得到应答及直到帧末尾结束没有错误),发送错误计数器值减1,除非已经是08.如果接收错误计数值介于1和127之间在成功地接收到报文后(直到ACK间隙接收没有错误,以及成功地发送了应答位),接收错误计数器值减1如果接收错误计数器值是0,则它保持0如果大于127,则它会设一个介于119到127之间的值 41故障界定(续3)9.节点为“错误认可”当发送错误计数器值等于或超过128时或当接收错误计数器值等于或超过128时“错误认可”节点发出“错误激活”标志10.当发送错误计数器值大于或等于256时,节点为“总线关闭”11.当发送错误计数器值和接收错误计数器值都小于或等于127时,“错误认可”的节点重新变为“错误激活”节点12.在总线监视到128次出现11个连续“隐性”位之后,“总线关闭”的节点可以变成“错误激活”(不再是“总线关闭”),它的两个错误计数值也被设置为0备注:一个大约大于96的错误计数值显示总线被严重干扰最好能够采取措施测试这个条件备注:启动/睡眠:如果启动期间内只有1个节点在线,以及如果这个节点发送一些报文,将不会有应答,该节点会检测到错误并重复报文由于此原因,节点会变为“错误认可”,而不是“总线关闭” 42位定时要求标称位速率标称位速率为一理想的发送器在没有重新同步的情况下每秒发送的位数量标称位时间标称位时间=1/标称位速率标称位时间的划分可以把标称位时间划分成几个不重叠时间的片段,它们是同步段(SYNC_SEG)传播段(PROP_SEG)相位缓冲段1(PHASE_SEG1)相位缓冲段2(PHASE_SEG2) 43位定时要求(续1)同步段(SYNCSEG)位时间的同步段用于同步总线上不同的节点同步段内要有一个跳变沿传播段(PROPSEG)传播段用于补偿网络内的物理延时时间总线上输入比较器延时和输出驱动器延时总和的两倍相位缓冲段1、相位缓冲段2(PHASESEG1、PHASESEG2)相位缓冲段用于补偿边沿阶段的错误这两个段可以通过重新同步加长或缩短采样点(SAMPLEPOINT)采样点是读总线电平并解释各位位值的一个时间点采样点位于相位缓冲段1(PHASE_SEG1)之后信息处理时间(INFORMATIONPROCESSTIME)信息处理时间是一个以采样点作为起始的时间段采集点用于计算后续位的位电平 44位定时要求(续2)时间量程(TIMEQUANTUM)时间量程是派生于振荡器周期的固定时间单元存在有一个可编程的预比例因子,其整体数值范围为1~32的整数以最小时间量程为起点,时间量程的长度为:时间量程=m*最小时间量程(m为预比例因子,1~32) 45位定时要求(续3)时间段的长度(LengthofTimeSegments)一个位时间总的时间份额值可以设置在8—25的范围值同步段为1个时间量程传播段的长度可设置为1,2,…,8个时间量程相位缓冲段的长度可设置为1,2,…,8个时间量程相位缓冲段2的长度为相位缓冲段1和信息处理时间之间的最大值信息处理时间少于或等于2个时间量程'