《CAN总线1培训讲学》由会员分享,可在线阅读,更多相关《CAN总线1培训讲学(69页珍藏版)》请在金锄头文库上搜索。
1、工 业 控 制 网 络(现场总线),3.2.1.4 错误类型和界定,错误类型: 位错误 填充错误 CRC错误 形式错误 应答错误,3.2.1.4 错误类型和界定,位错误(Bit Error) 向总线送出一位的某个单元同时也在监视总线。当监视到的总线位数值与送出的位数值不同时,则在该位时刻检出一个位错误。例外:仲裁场的填充位流期间、应答期间、认可错误标志。,3.2.1.4 错误类型和界定,CRC错误(CRC Error) CRC序列是由发送器完成的CRC计算结果组成的。接收器以与发送器相同的方法计算CRC。如果计算结果与接收到的CRC序列不相同,则检出一个CRC错误。,3.2.1.4 错误类型和
2、界定,形式错误(Form Error) 当固定形式的位场中出现一个或更多非法位时,则检出一个形式错误。,3.2.1.4 错误类型和界定,应答错误(Acknowledgement Error) 在应答间隙期间,发送器未检测到“显性”位,则由它检出一个应答错误。,3.2.1.4 错误类型和界定,位错误、填充错误、形式错误或应答错误由检测出的站在下一位开始时发送错误标志。 CRC错误由检测出的站在应答界定符后面那一位开始发送,除非用于其它错误状态的错误标志已经开始发送。,3.2.1.4 错误类型和界定,在CAN总线中,就故障界定而言,一个单元(节点)可能处于三种状态: “错误激活”(“Error A
3、ctive”) “错误认可”(“Error Passive”) “总线脱离”(“Bus off”),3.2.1.4 错误类型和界定,总线单元中的两种计数: 发送错误计数 接收错误计数,3.2.1.4 错误类型和界定,计数规则 : 接收器检出错误时,接收错误计数加1。 接收器在送出错误标志后的第一位检出一个“显性”位时,接收错误计数加8。,3.2.1.4 错误类型和界定,计数规则 : 发送器送出一个错误标志时,发送错误计数加8。有两种例外情况,发送错误计数不改变。 一个是如果发送器为“错误认可”,因未检测到“显性”应答而检测到一个应答错误,并且在送出其认可错误标志时,未检测到“显性”位。 另一个
4、是如果由于仲裁期间(其填充位处于RTR位前)发生的填充错误,发送器送出一个错误标志,本应是“隐性”的,而且确实发送的是“隐性”的,但监视到的为“显性”的。,3.2.1.4 错误类型和界定,计数规则 : 如果发送器送出一个激活错误标志或超载标志时,发送器检测到位错误,则发送错误计数加8 。 如果接收器送出一个激活错误标志或超载标志时,接收器检测到位错误,则接收错误计数加8。,3.2.1.4 错误类型和界定,计数规则 : 在送出激活错误标志、认可错误标志或超载标志后,任何节点都容许多至7个连续的“显性”位。在检测到第14个连续的“显性”位后,或紧随认可错误标志检测到第8个连续的“显性”位后,以及附
5、加的8个连续的“显性”位的每个序列后,每个发送器的发送错误计数都加8,并且每个接收器的接收错误计数也都加8。,3.2.1.4 错误类型和界定,计数规则 : 报文成功发送后,则发送错误计数减1,除非它已经为0。 报文成功接收后,则接收错误计数减1,如果它处于1和127之间。若接收错误计数为0,则仍保留0,而若它大于127,它将其置为119和127之间的某个数值。,3.2.1.4 错误类型和界定,计数规则 : 发送错误计数等于或大于128或接收错误计数等于或大于128时,节点为“错误认可”。导致节点变为“错误认可”的错误状态使节点送出一个激活错误标志。 发送错误计数大于或等于256时,节点为“总线
6、脱离”。,3.2.1.4 错误类型和界定,计数规则 : 发送错误计数和接收错误计数两者均小于或等于127时,“错误认可”节点再次变为“错误激活”节点。 在检测到总线上11个连续的“隐性”位发生128次后,“总线脱离”节点将变为其两个错误计数器均置为0的“错误激活”节点(不再是“总线脱离”)。,3.2.1.4 错误类型和界定,当错误计数值大于96时,说明总线被严重干扰。它提供测试此状态的一种手段。 若系统启动期间,仅有一个节点在线,此节点发送报文后,将得不到应答,检出错误并重复该报文。它可以变为“错误认可”,但不会因此“总线脱离”。,3.2.1.5 位定时要求,一些重要概念: 正常位速率(Nom
7、inal Bit Rate)在非重同步情况下,借助理想发送器每秒发送的位数。 正常位时间(Nominal Bit Time)正常位速率的倒数。,3.2.1.5 位定时要求,正常位时间可划分为几个互不重叠的时间段。这些时间段包括:同步段(SYNC-SEG)、传播时间段(PROP-SEG)、相位缓冲器段1(PHASE-SEG1)和相位缓冲器段2(PHASE-SEG2)。,3.2.1.5 位定时要求,同步段(SYNC-SEG)用于使总线上的各个节点同步。期望有一个跳变沿位于此段内。 传播段(PROP-SEG)用于补偿网络内的物理延时。它是信号在总线上传播时间的两倍与输入比较器延时和输出驱动器延时之和
8、。,3.2.1.5 位定时要求,相位缓冲段1(PHASE-SEG1)和相位缓冲段2(PHASE-SEG2)用于补偿沿的相位误差,使总线上的各个节点同步。通过重同步,这2个时间段可被延长或缩短。 采样点(Sample Point)是这样一个时刻,在此时刻上,总线电平被读,并被理解为其自身位的数值。它位于相位缓冲段1的终点。,3.2.1.5 位定时要求,信息处理时间是由采样点开始、为计算后续位电平而保留的时间段。 时间份额(Time Quantum)是由振荡器周期派生出的一个固定时间单元。时间份额的总数必须被编程为至少由8至25。,3.2.1.5 位定时要求,正常位时间中各时间段长度:SYNC-S
9、EG为1个时间份额;PROP-SEG长度可编程为1,2,8个时间份额; PHASE-SEG1长度可编程为1,2,8个时间份额; PHASE-SEG2 长度为PHASE-SEG1和信息处理时间的最大值;信息处理时间长度小于或等于2个时间份额。,3.2.1.5 位定时要求,硬同步(Hard Synchronization)硬同步后,内部位时间从SYNC-SEG重新开始。硬同步强迫引起硬同步的沿处于重新开始的位时间同步段之内。 重同步(Resynchronization)当引起重同步的沿的相位误差数值小于或等于重同步跳转宽度编程值时,重同步的作用与硬同步的作用相同。当相位误差数值大于重同步跳转宽度,
10、且相位误差为正时,则PHASE-SEG1延长数值等于重同步跳转宽度。当相位误差数值大于重同步跳转宽度,且相位误差为负时,则PHASE-SEG2缩短数值等于重同步跳转宽度。,3.2.1.5 位定时要求,重同步跳转宽度(Resynchronization Jump Width)作为重同步的结果, PHASE-SEG1可被延长或PHASE-SEG2可被缩短。这两个相位缓冲段的延长或缩短的数值有一个由重同步跳转宽度给定的上限。重同步跳转宽度应编程为1和min(4,PHASE-SEG1)之间。 时钟信息可由一位数值到另一位数值的跳变取得。具有相同数值的连续位的最大个数是唯一而固定的,这一特性提供了在帧期
11、间总线单元重同步于位流的可能性。可被用于重同步的两个跳变之间的最大长度是29个位时间。,3.2.1.5 位定时要求,沿相位误差(Phase Error of an Edge) 沿相位误差由沿相对于SYNC-SEG的位置给定,以时间份额量度。相位误差的符号定义如下: 若沿处于SYNC-SEG之内,则e = 0 若沿处于采样点之前,则e 0 若沿处于前一位采样点之后,e 0,3.2.1.5 位定时要求,同步规则 (Synchronization Rules): 在一个位时间内仅允许一种同步。 只要在先前采样点上检测到的数值与一个沿过后立即得到的总线数值不同,则该沿将被用于同步。 在总线空闲期间,无
12、论何时当存在一个“隐性”至“显性”的跳变沿,则执行一次硬同步。 所有履行规则和的其它“隐性”至“显性”的跳变沿(和在低位速率的情况下,选择的“显性”至“隐性”的跳变沿)都将被用于重同步。,3.2.1.6 CAN振荡器容差的提高,为使振荡器容差最大值由当前的0.5%提高到1.5%,并与当前CAN指标向前兼容,CAN2.0进行了下列修正: 1.若一个CAN节点在间歇场的第3位采样到一个显性位,则它将此位理解为帧起始位; 2.若一个CAN节点有一个等待发送的报文,且它在间歇场的第3位采样到一个显性位则它将此位理解为帧起始位,并在下一位以其标识符的第一位开始发送报文,而不是首先发送帧起始位,也不变成为
13、接收器;,3.2.1.6 CAN振荡器容差的提高,3.若一个CAN节点在错误界定符或超载界定符的第8位(最后一位)采样到一个显性位,它将在下一位开始发送一个超载帧(不是错误帧),错误计数器不增加; 4.仅隐性至显性的跳变沿用于同步,为了与当前规范相统一,以下规则仍有效;,3.2.1.6 CAN振荡器容差的提高,5.硬同步时,所有CAN控制器均同步于帧起始位; 6.没有CAN控制器发送帧起始位,直至它计完间歇场的3个隐性位。,3.2.2 CAN技术规范2.0B,3.2.2.1 CAN节点的分层结构 3.2.2.2 帧格式和帧类型 3.2.2.3 振荡器容差,3.2.2.1 CAN节点的分层结构,
14、3.2.2.2 帧格式和帧类型,1数据帧 数据帧由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结束,3.2.2.2 帧格式和帧类型,3.2.2.2 帧格式和帧类型,3.2.2.2 帧格式和帧类型,2远程帧 3错误帧 4超载帧 5帧间空间,3.2.2.3 振荡器容差,振荡器容差最大额定值为1.58%,因而根据经验,使用陶瓷谐振器总线速度最高可达125kbps。,3.3 CAN总线基本技术阐释与分析,3.3.1 总线典型电平 3.3.2 LLC子层和MAC子层 3.3.3 MAC 机制 3.3.4 位定时的作用及硬同步与重同步 3.3.5 数据帧与 CAN中断速率 3.
15、3.6 标准格式及扩展格式的数据帧、远程帧的区分 3.3.7 总线长度与位速率,3.3.1 总线典型电平,3.3.1 总线典型电平,3.3.1 总线典型电平,3.3.1 总线典型电平,3.3.2 LLC子层和MAC子层,LLC子层的主要功能: 接收过滤是指LLC子层通过对报文整个标识符或部分标识符的屏蔽/筛选来决定是否接收报文; 超载通知是指在发生超载条件时,LLC子层发送超载帧以示通告,从而延迟下一个数据帧或远程帧; 恢复管理是指在发送期间,对于丢失仲裁的或已损的报文,LLC子层具有自动重发的功能。,3.3.2 LLC子层和MAC子层,根据ISO11898,存在两种类型的来自/传给用户的帧:
16、LLC数据帧和LLC远程帧。对于这两种类型的帧,LLC子层均向用户通告帧是否成功发送或接收。 LLC子层传给/接收来自MAC子层的帧为:数据帧、远程帧和超载帧。,3.3.2 LLC子层和MAC子层,LLC数据帧和远程帧的结构分别如图319和图320所示。应该指出,用户传给LLC子层的标准格式的数据帧包括4部分:标识符、RTR位(为“0”)、DLC和数据场,前3部分的位数分别为11、1和4,即前3部分共有16位,刚好为2个字节(占用2个地址单元,若每个地址单元为1个字节)。 许多CAN控制器(如SJA1000、P8xC591中的CAN控制器)就要求将标识符、RTR位和DLC写入2个地址单元或从2个地址单元中读出。用户传给LLC子层的标准格式的远程帧包括3部分:标识符、RTR位(为“1”)和DLC。,3.3.2 LLC子层和MAC子层,MAC子层提供的主要功能是传送协议,即发送/接收数据的封装(成帧)/拆装,帧编码及位填充(若需要)/去除填充位(若有),媒体访问管理(执行仲裁)