第07章CAN总线2_第1页
第07章CAN总线2_第2页
第07章CAN总线2_第3页
第07章CAN总线2_第4页
第07章CAN总线2_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、8.2.3 CAN总线的错误类型和界定n错误类型:错误类型:n位错误位错误n填充错误填充错误nCRC错误错误n形式错误形式错误n应答错误应答错误位错误位错误(Bit Error)填充错误填充错误(Stuff Error)n在应使用位填充方法进行编码的在应使用位填充方法进行编码的报文中,出现了第报文中,出现了第6个连续相同个连续相同的位电平时,将检出一个填充错的位电平时,将检出一个填充错误。误。CRC错误错误(CRC Error)nCRC序列是由发送器完成的序列是由发送器完成的CRC计算结果计算结果组成的。接收器以与发送器相同的方法计组成的。接收器以与发送器相同的方法计算算CRC。如果计算结果与

2、接收到的。如果计算结果与接收到的CRC序序列不相同,则检出一个列不相同,则检出一个CRC错误。错误。形式错误形式错误(Form Error)n当固定形式的位场中出现一个或更多非法当固定形式的位场中出现一个或更多非法位时,则检出一个形式错误。位时,则检出一个形式错误。应答错误应答错误(Acknowledgement Error)n在应答间隙期间,发送器未检测到在应答间隙期间,发送器未检测到“显性显性”位,则由它检出一个应答错误。位,则由它检出一个应答错误。错误标志发送n位错误、填充错误、形式错误或应答错误位错误、填充错误、形式错误或应答错误由检测出的站在下一位开始时发送错误标由检测出的站在下一位

3、开始时发送错误标志。志。nCRC错误由检测出的站在应答界定符后面错误由检测出的站在应答界定符后面那一位开始发送,除非用于其它错误状态那一位开始发送,除非用于其它错误状态的错误标志已经开始发送。的错误标志已经开始发送。CAN总线的错误状态n在在CAN总线中,就故障界定而言,一个单总线中,就故障界定而言,一个单元(节点)可能处于三种状态:元(节点)可能处于三种状态:n“错误激活错误激活”(“Error Active”)n“错误认可错误认可”(“Error Passive”)n“总线脱离总线脱离”(“Bus off”)CAN总线的错误状态三种错误状态转换三种错误状态转换总线单元中的两种计数:总线单元

4、中的两种计数:n发送错误计数发送错误计数n接收错误计数接收错误计数计数规则计数规则 n接收器检出错误时,接收错误计数加接收器检出错误时,接收错误计数加1。n接收器在送出错误标志后的第一位检出一接收器在送出错误标志后的第一位检出一个个“显性显性”位时,接收错误计数加位时,接收错误计数加8。计数规则计数规则 :n发送器送出一个错误标志时,发送错误计数加发送器送出一个错误标志时,发送错误计数加8。有两种例外情况,发送错误计数不改变。有两种例外情况,发送错误计数不改变。n一个是如果发送器为一个是如果发送器为“错误认可错误认可”,因未检测到,因未检测到“显性显性”应答而检测到一个应答错误,并且在送出应答

5、而检测到一个应答错误,并且在送出其认可错误标志时,未检测到其认可错误标志时,未检测到“显性显性”位。位。n另一个是如果由于仲裁期间(其填充位处于另一个是如果由于仲裁期间(其填充位处于RTR位位前)发生的填充错误,发送器送出一个错误标志,前)发生的填充错误,发送器送出一个错误标志,本应是本应是“隐性隐性”的,而且确实发送的是的,而且确实发送的是“隐性隐性”的,的,但监视到的为但监视到的为“显性显性”的。的。计数规则计数规则 n如果发送器送出一个激活错误标志或超载如果发送器送出一个激活错误标志或超载标志时,发送器检测到位错误,则发送错标志时,发送器检测到位错误,则发送错误计数加误计数加8 。n如果

6、接收器送出一个激活错误标志或超载如果接收器送出一个激活错误标志或超载标志时,接收器检测到位错误,则接收错标志时,接收器检测到位错误,则接收错误计数加误计数加8。计数规则计数规则 n在送出激活错误标志、认可错误标志或超在送出激活错误标志、认可错误标志或超载标志后,任何节点都容许多至载标志后,任何节点都容许多至7个连续个连续的的“显性显性”位。在检测到第位。在检测到第14个连续的个连续的“显性显性”位后,或紧随认可错误标志检测位后,或紧随认可错误标志检测到第到第8个连续的个连续的“显性显性”位后,以及附加位后,以及附加的的8个连续的个连续的“显性显性”位的每个序列后,位的每个序列后,每个发送器的发

7、送错误计数都加每个发送器的发送错误计数都加8,并且,并且每个接收器的接收错误计数也都加每个接收器的接收错误计数也都加8。计数规则计数规则 n报文成功发送后,则发送错误计数减报文成功发送后,则发送错误计数减1,除非它已经为除非它已经为0。n报文成功接收后,如果接收错误计数处于报文成功接收后,如果接收错误计数处于1和和127之间,则减之间,则减1 。若接收错误计数。若接收错误计数为为0,则仍保留,则仍保留0,而若它大于,而若它大于127,它,它将其置为将其置为119和和127之间的某个数值。之间的某个数值。计数规则计数规则 n发送错误计数等于或大于发送错误计数等于或大于128或接收错误或接收错误计

8、数等于或大于计数等于或大于128时,节点为时,节点为“错误认错误认可可”。导致节点变为。导致节点变为“错误认可错误认可”的错误的错误状态使节点送出一个激活错误标志。状态使节点送出一个激活错误标志。n发送错误计数大于或等于发送错误计数大于或等于256时,节点为时,节点为“总线脱离总线脱离”。计数规则计数规则 n发送错误计数和接收错误计数两者均小于发送错误计数和接收错误计数两者均小于或等于或等于127时,时,“错误认可错误认可”节点再次变节点再次变为为“错误激活错误激活”节点。节点。n在检测到总线上在检测到总线上11个连续的个连续的“隐性隐性”位位发生发生128次后,次后,“总线脱离总线脱离”节点

9、将变为节点将变为其两个错误计数器均置为其两个错误计数器均置为0的的“错误激活错误激活”节点(不再是节点(不再是“总线脱离总线脱离”)。)。计数规则计数规则n当错误计数值大于当错误计数值大于96时,说明总线被严时,说明总线被严重干扰。它提供测试此状态的一种手段。重干扰。它提供测试此状态的一种手段。n若系统启动期间,仅有一个节点在线,此若系统启动期间,仅有一个节点在线,此节点发送报文后,将得不到应答,检出错节点发送报文后,将得不到应答,检出错误并重复该报文。它可以变为误并重复该报文。它可以变为“错误认错误认可可”,但不会因此,但不会因此“总线脱离总线脱离”。8.2.4 位定时与同步位定时与同步n位

10、定时的作用:位定时的作用:n(1)确定位时间,以便确定波特率,从而确定总线)确定位时间,以便确定波特率,从而确定总线的网络速度;或在给定总线的网络速度的情况下确定的网络速度;或在给定总线的网络速度的情况下确定位时间。位时间。n(2)确定)确定1位的各个组成部分位的各个组成部分同步段(同步段(SY)、传)、传播段(播段(PR)、相位缓冲段)、相位缓冲段1(PS1)和相位缓冲段)和相位缓冲段2(PS2)的时间长度,其中同步段用于硬同步,位于)的时间长度,其中同步段用于硬同步,位于相位缓冲段相位缓冲段1终点的采样点用于保证正确地读取总线终点的采样点用于保证正确地读取总线电平。电平。n(3)确定重同步

11、跳转宽度以用于重同步。)确定重同步跳转宽度以用于重同步。8.2.4 位定时与同步位定时与同步n一个节点应既能在位时间的采样点正确地一个节点应既能在位时间的采样点正确地读取总线电平,也能检测来自总线的沿以读取总线电平,也能检测来自总线的沿以进行硬同步或重同步。进行硬同步或重同步。n在在CAN技术规范的时间份额的表达式中,技术规范的时间份额的表达式中,对于常用的独立对于常用的独立CAN控制器控制器SJA1000和和P8xC591中的中的CAN控制器,时间份额控制器,时间份额tq为系统时钟周期为系统时钟周期tscl;预引比例因子;预引比例因子m为为可编程的,其值取决于总线定时寄存器可编程的,其值取决

12、于总线定时寄存器0(BTR0)的内容;最小时间份额为振荡)的内容;最小时间份额为振荡器周期器周期tCLK的的2倍,即倍,即2tCLK。8.2.4 位定时与同步位定时与同步nCAN 总线中,同步包括硬同步和重同步总线中,同步包括硬同步和重同步两种形式。同步与位定时密切相关。同步两种形式。同步与位定时密切相关。同步也是由节点自身完成的。节点将检测到的也是由节点自身完成的。节点将检测到的来自总线的沿与其自身的位定时相比较,来自总线的沿与其自身的位定时相比较,并通过硬同步或重同步适配(调整)位定并通过硬同步或重同步适配(调整)位定时。时。硬同步硬同步 n所谓硬同步,就是由节点检测到的来自总所谓硬同步,

13、就是由节点检测到的来自总线的沿强迫节点立即确定出其内部位时间线的沿强迫节点立即确定出其内部位时间的起始位置(同步段的起始时刻)。硬同的起始位置(同步段的起始时刻)。硬同步一般用于报文开始,即总线上的各个节步一般用于报文开始,即总线上的各个节点的内部位时间的起始位置(同步段)是点的内部位时间的起始位置(同步段)是由来自总线的一个报文帧的帧起始的前沿由来自总线的一个报文帧的帧起始的前沿决定的。决定的。8.2.4 位定时与同步位定时与同步重同步重同步 n所谓重同步,就是节点根据沿相位误差的大所谓重同步,就是节点根据沿相位误差的大小调整其内部位时间。重同步的结果是使小调整其内部位时间。重同步的结果是使

14、PS1加长或使加长或使PS2缩短,达到节点内部位时缩短,达到节点内部位时间与来自总线的报文位流的位时间接近或相间与来自总线的报文位流的位时间接近或相等,从而使节点能够正确地接收报文。沿相等,从而使节点能够正确地接收报文。沿相位误差由来自总线的沿相对于节点内部位时位误差由来自总线的沿相对于节点内部位时间同步段的位置给定,以时间份额量度。间同步段的位置给定,以时间份额量度。8.2.4 位定时与同步位定时与同步调整同步的规则调整同步的规则n(1)1个位中只进行一次同步调整。n(2)只有当上次采样点的总线值和边沿后的总线值不同时,该边沿才能用于调整同步。n(3)在总线空闲且存在隐性电平到显性电平的边沿

15、时,则一定要进行硬件同步。n(4)在总线非空闲时检测到的隐性电平到显性电平的边沿如果满足条件(1)和(2),将进行再同步。但还要满足发送单元观测到自身输出的显性电平有延迟时不进行再同步。发送单元在帧起始到仲裁段有多个单元同时发送的情况下,对延迟边沿不进行再同步。8.3 CAN通信控制器SJA1000 8.3.1 SJA1000简介nSJA1000是Philips公司1997年推出的一种CAN控制器;n工作目的是实现CAN总线的物理层和数据链路层;n支持CAN2.0A协议和CAN2.0B协议。SJA1000的特点n支持CAN2.0A协议和CAN2.0B协议;n扩展的接收缓冲器64 字节先进先出F

16、IFOn位速率可达1Mbits/sn可读/写访问的错误计数器n可编程的错误报警限制n最近一次错误代码寄存器n对每一个CAN 总线错误的中断n具体控制位控制的仲裁丢失中断SJA1000的特点n单次发送(无重发)n只听模式(无确认、无活动)的出错标志n支持热插拔,软件位速率检测n验收滤波器扩展(4 字节代码、4 字节屏蔽)n自身信息接收(自接收请求)n24MHz 时钟频率n对不同微处理器的接口n可编程的CAN 输出驱动器配置n增强的温度适应-40-+125 8.3.2 SJA1000的功能框图与引脚说明SJA1000的功能框图SJA1000SJA1000的功能框图的功能框图n接口管理逻辑IML:接

17、口管理逻辑解释来自CPU 的命令,控制CAN 寄存器的寻址,向主控制器提供中断信息和状态信息。n发送缓冲器TXB:发送缓冲器是CPU 和BSP (位流处理器)之间的接口,能够存储发送到CAN 网络上的完整信息,缓冲器长13 Bytes,由CPU 写入,BSP 读出。n接收缓冲器RXB RXFIFO:接收缓冲器是验收滤波器和CPU 之间的接口,用来储存从CAN 总线上接收的报文。接收缓冲器(RXB,13B)作为接收FIFO(RXFIFO,64Bytes)的一个窗口,可被CPU 访问。SJA1000SJA1000的功能框图的功能框图nCPU 在此FIFO 的支持下可以在处理信息的时候接收其它信息n

18、验收滤波器ACF:验收滤波器把它其中的数据和接收的识别码的内容相比较,以决定是否接收信息。在纯粹的接收测试中,所有的信息都保存在RXFIFO 中。n位流处理器BSP:位流处理器是一个在发送缓冲器TXB 和CAN 总线之间控制数据流的程序装置。它还在CAN 总线上执行错误检测、仲裁、填充和错误处理。SJA1000SJA1000的功能框图的功能框图n位时序逻辑BTL:位时序逻辑监视串口的CAN 总线,并处理与总线有关的位时序。它在信息开头,由隐性到显性的变换同步CAN 总线位流(硬同步),接收信息时再次同步下一次传送(重同步)。BTL 还提供了可编程的时间段来补偿传播延迟时间、相位转换(例如,由于

19、振荡漂移)和定义采样点和每一位的采样次数。n错误管理逻辑EML:EML负责传送层模块的错误界定。它接收BSP 的出错报告,并将错误统计数字通知BSP 和IML。SJA1000SJA1000的引脚说明的引脚说明n 引脚说明引脚说明nAD7-AD0:多路地址/数据总线。nALE/AS:ALE输入信号(Intel模式),AS输入信号(Motorola模式)。n/CS:片选,输入低电平允许访问SJA1000。n/RD /E : 微控制器的/RD信号(Intel模式)或E使能信号(Motorola模式)。n/WR:微控制器的/WR信号(Intel模式)或R/(/WR) 信号(Motorola模式)。引脚

20、说明nCLKOUT:SJA1000产生的提供给微控制器的时钟输出信号。时钟信号来源于内部振荡器,且通过编程驱动时钟控制寄存器的时钟关闭位可禁止该引脚。nVSS1:接地nXTAL1:输入到振荡器放大电路外部振荡信号由此输入。nXTAL2:振荡放大电路输出使用外部振荡信号时左开路输出。nMODE:模式选择输入1=Intel模式;0=Motorola模式。nVDD3:输出驱动的5V电压源。引脚说明nTX0:从CAN输出驱动器0输出到物理线路上。nTX1:从CAN输出驱动器1输出到物理线路上。nVSS3:输出驱动器接地。n/INT:中断输出,用于中断微控制器。/INT在内部中断寄存器各位都被置位时激活

21、;此引脚上的低电平可以把IC从睡眠模式中激活。n/RST:复位输入用于复位CAN接口,低电平有效。nVDD2:输入比较器的5V电压源。引脚说明nRX0 RX1:从物理总线输入到SJA1000的输入比较器的输入端;显性位时将会唤醒SJA1000的睡眠模式;如果RX1比RX0的电平高就读出位显性位,反之读出为隐性位;如果时钟分频寄存器的CBP位被置位,就旁路CAN输入比较器以减少内部延时(此时连有外部收发电路)。这种情况下只有RX0是激活的;隐性位为1,而显性位认为0。nVSS2:输入比较器的接地端nVDD1:逻辑电路的5V电压源8.3.3 SJA1000两种工作模式nBasicCAN:目的是保证

22、SJA1000与CAN总线早期产品PCA82C200的软件兼容。此模式下能够实现CAN2.0A的协议标准。nPeliCAN:支持CAN2.0A和 CAN2.0B的协议标准,并增加一些新功能。8.3.4 SJA1000 Basic CanBasic Can相关寄存器相关寄存器n(1)控制寄存器(CR)(地址0、可读写)n用于改变CAN控制器的状态n57位:保留n4位:超载中断使能n3位:错误中断使能n2位:发送中断使能n1位:接收中断使能(使能全为1有效)n0位:复位请求。1常态:检测到复位请求后,进入复位; 0非常态:此位接到一个下降沿后回到工作模式(2)命令寄存器()命令寄存器(CMR)(地

23、址)(地址1、只写)、只写)n初始化CAN控制器传输层的动作n57位:保留n4位:睡眠 (1睡眠,0唤醒)n3位:清除超载状态(1清除,0无作用)n2位:释放接收缓冲器(1释放,0无作用)n1位:夭折发送(1忽略发送请求,0无作用)n0位:发送请求(1报文被发送,0无作用)(3)状态寄存器(SR)(地址2、只读)n反应CAN控制器的状态n7位:总线状态(1关闭,0开启) 6位:出错状态(1出错,0正常)n5位:发送状态(1发送,0空闲) 4位:接收状态(1接收,0空闲)n3位:发送完毕状态(1完成,0未完成)n2位:发送缓冲器状态(1释放,0锁定)n1位:数据超载状态(1超载,0未超载)n0位

24、:接收缓冲状态(1满,0空)(4)中断寄存器(IR)(地址3、只读)n反应CAN控制器的中断原因n7 5位:保留n4位:唤醒中断(1退出睡眠模式,0微处理器任何读访问)n3位:数据超载中断(1数据超载,0微处理器任何读访问)n2位:错误中断(1错误发生, 0微处理器任何读访问)n1位:发送中断(1发送缓冲器从低到高的变化, 0微处理器任何读访问)n0位:接收中断( 1接收缓冲器不空, 0微处理器任何读访问)n(5)验收代码寄存器(ACR)(地址4、复位时可读写)n(6)验收屏蔽寄存器(AMR)(地址5、复位时可读写)n数据接收条件:(ID.10ID3) (AC.7AC.0)V(AM.7AM.0

25、)=11111111ACRAMRID(7)总线时序寄存器0(BTR0)(地址6、复位时可读写)n确定波特率预引比例因子(BRP)和同步跳转宽度(SJW)的值。在BasicCAN总为FF。n76位:同步跳转宽度位域SJWntsjw = tclk(2BTR0.7+BTR0.6+1)tsjw:同步跳转宽度。定义了一个周期可以被一次重新同步缩短或延长的时钟周期最大数。tclk:外晶振的振荡周期。n50位:波特率预置位域BRP,定义CAN的系统时钟tsclntscl = 2tclk(BTR0.5 BTR0.0+1)(8)总线时序寄存器1(BTR1)(地址7、复位时可读写)n确定位时间的长度、采样点的位置和在每个采样点欲获取的采样数目。如果复位模式有效,这个寄存器可以被访问(读/写)。n7位:采样位1:3次采样0: 1次采

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论