第5章 CAN 器件及开发实例_第1页
第5章 CAN 器件及开发实例_第2页
第5章 CAN 器件及开发实例_第3页
第5章 CAN 器件及开发实例_第4页
第5章 CAN 器件及开发实例_第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

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

文档简介

1、1第五章 CAN 器件及开发实例与其他现场总线相比,CAN总线得到多家芯片厂商的支持。 制造商制造商产品型号产品型号器件功能及特点器件功能及特点INTELINTEL82526825278XC196CA/CBCAN通信控制器通信控制器,符合符合CAN2.0ACAN通信控制器通信控制器,符合符合CAN2.0B扩展的扩展的8XC196 CAN通信控制器,符合通信控制器,符合CAN2.0BPHILIPPHILIP82C200SJA100082C15082C250P51XA-C3CAN通信控制器通信控制器,符合符合CAN2.0ACAN通信控制器通信控制器,符合符合CAN2.0A/B带数字及模拟带数字及模

2、拟I/O的的CAN扩展器件扩展器件,符合符合CAN2.0A高性能的高性能的CAN总线收发器总线收发器16位微处理器位微处理器+ CAN通信控制器通信控制器,符合符合CAN2.0BMOTOROLAMOTOROLA68HC05X4系列系列68HC05X4微控制器微控制器+CAN通信控制器通信控制器,符合符合CAN2.0ASINMENSSINMENS81C90/91C167CCAN通信控制器通信控制器,符合符合CAN2.0A微控制器微控制器+CAN通信控制器通信控制器,符合符合CAN2.0A/B2CAN总线总线控制节点控制节点1控制节点控制节点n传感器、变送器传感器、变送器MMI Tx Rx微处理器

3、微处理器CAN控制器控制器CAN收发器收发器图图 CAN 模块装置模块装置传感器、变送器传感器、变送器MMITx Rx微处理器微处理器CAN控制器控制器CAN收发器收发器35.1独立独立CAN控制器控制器SJA1000 n SJA1000SJA1000是是适用于适用于汽车和一般工业环境的独立汽车和一般工业环境的独立CANCAN控制器。它是控制器。它是PHILIPSPHILIPS公司生产。公司生产。nSJA1000SJA1000有两种工作模式:有两种工作模式:BasicCANBasicCAN模式,模式, PeliCANPeliCAN工作模式工作模式。 nBasicCANBasicCAN模式模式是

4、是PHILIPSPHILIPS公司生产的公司生产的 PCA82C200PCA82C200的替代产品,引脚兼容,电气兼容。的替代产品,引脚兼容,电气兼容。 PeliCANPeliCAN工作模式支持工作模式支持CAN2.0BCAN2.0B协议。协议。nPeliCANPeliCAN模式下模式下,SJA1000SJA1000具有与具有与BasicCANBasicCAN模式模式下完全不同的寄存器结构。下完全不同的寄存器结构。4SJA1000的PeliCAN模式具有以下新增特性:n接收和发送标准和扩展格式报文;接收和发送标准和扩展格式报文;n达达64字节的接收字节的接收FIFO;n对于标准和扩展帧都有单对

5、于标准和扩展帧都有单/双接收过滤器;双接收过滤器;n可读可读/写访问的错误计数器;写访问的错误计数器;n可编程的错误报警限;可编程的错误报警限;n最近一次错误代码寄存器;最近一次错误代码寄存器;n对于每一种对于每一种CAN总线错误都能产生不同的出错总线错误都能产生不同的出错中断;中断;5n仲裁丢失中断,并带有详细丢失仲裁位置的信仲裁丢失中断,并带有详细丢失仲裁位置的信息;息;n允许单次发送,当出错或丢失仲裁时不重发;允许单次发送,当出错或丢失仲裁时不重发;n只听模式(监视只听模式(监视CAN总线,无应答,无出错标总线,无应答,无出错标志);志);n支持热插拔;支持热插拔;n自身发送报文接收(自

6、接收请求);自身发送报文接收(自接收请求);n硬件禁止硬件禁止CLKOUT 输出。输出。6CANCAN控制模块控制模块SJA1000SJA1000功能框图功能框图7SJA1000CAN控制器由下述几部分组成:n1 1接口管理逻辑(接口管理逻辑(IMLIML)n通过通过SJA1000SJA1000复用的地址复用的地址/ /数据总线数据总线 ,控制读,控制读/ /写选通信号等,完成对外部主控制器的连接。写选通信号等,完成对外部主控制器的连接。并向该控制器提供中断信息和状态信息。并向该控制器提供中断信息和状态信息。n解释来自解释来自CPUCPU的命令,控制的命令,控制SJA1000SJA1000内部

7、寻址,内部寻址,向向CPUCPU提供中断信息和状态信息。提供中断信息和状态信息。 8n2 2发送缓冲器(发送缓冲器(TXBTXB)n发送缓冲器是发送缓冲器是CPUCPU和位流处理器之间的接和位流处理器之间的接口。口。n能够存储发送到能够存储发送到CANCAN总线上的完整报文,总线上的完整报文,缓冲器长缓冲器长1313字节字节,由,由CPUCPU写入,位流处理写入,位流处理器器BSPBSP读出。读出。9n3 3接收缓冲器(接收缓冲器(RXBRXB,RXFIFORXFIFO)n是是接收过滤器接收过滤器和和CPUCPU之间之间的接口,用于储的接口,用于储存从存从CANCAN总线上接收并采用的报文。总

8、线上接收并采用的报文。nRXBRXB,长,长1313字节,字节,作为作为RXFIFORXFIFO,长,长6464字节,字节,的一个窗口,可被的一个窗口,可被CPUCPU访问。访问。n在在RXFIFORXFIFO的支持下,的支持下,CPUCPU可以在处理一个可以在处理一个报文的同时接收其他报文。报文的同时接收其他报文。10信息信息2信息信息3信息信息1接收缓冲器窗接收缓冲器窗口口CAN地址地址输入信息输入信息释放接收缓冲器命令释放接收缓冲器命令接收缓冲器中的当前可用信息接收缓冲器中的当前可用信息是信息是信息1图图 RXFIFO中信息存储示例中信息存储示例114 4接收过滤器(接收过滤器(ACFA

9、CF)n接收过滤器把接收数据和接收识别码的接收过滤器把接收数据和接收识别码的内容相比较,以决定是否接收信息。如内容相比较,以决定是否接收信息。如果比较的结果为真,则报文完整地存入果比较的结果为真,则报文完整地存入RXFIFORXFIFO中。中。125.5.位流处理器:位流处理器:n位流处理器是一个序列发生器,控制发位流处理器是一个序列发生器,控制发送缓冲器、送缓冲器、RXFIFORXFIFO和和CANCAN总线之间的数据总线之间的数据流。流。n完成完成CANCAN总线上的错误检测、仲裁、填充总线上的错误检测、仲裁、填充和错误处理等功能。和错误处理等功能。136.6.位定时逻辑:位定时逻辑:n位

10、定时逻辑监视位定时逻辑监视CANCAN总线并处理总线位定时。总线并处理总线位定时。n它同步于帧起始的从隐性到显性电平的跳变它同步于帧起始的从隐性到显性电平的跳变(硬同步硬同步),并且在接收报文的过程中进行重),并且在接收报文的过程中进行重同步(同步(软同步软同步)。)。n提供可编程的时间段用于补偿传播延时和相位提供可编程的时间段用于补偿传播延时和相位变化,变化,n定义采样时刻和一位时间内的采样次数。定义采样时刻和一位时间内的采样次数。147.7.错误管理逻辑错误管理逻辑:n负责错误界定。负责错误界定。n接收来自位流处理器的出错报告,并将接收来自位流处理器的出错报告,并将分析出的出错状态传达给位

11、流处理器和分析出的出错状态传达给位流处理器和接口管理逻辑。接口管理逻辑。15CAN控制模块SJA1000管脚排列图:控制线:7地址/数据:8时钟:2电源:6复位:1发送接收:416符号符号引脚引脚说说 明明AD7-0AD7-02,1,28-232,1,28-23多路地址多路地址/ /数据总线数据总线ALE/ASALE/AS3 3ALEALE输入信号(输入信号(IntelIntel模式),模式),ASAS输入信号(输入信号(MotorolaMotorola模式)模式)/CS/CS4 4片选输入,低电平允许访问片选输入,低电平允许访问SJA1000SJA1000(/RD/RD)/E/E5 5微控制

12、器的微控制器的/RD/RD信号(信号(IntelIntel模式)或模式)或E E使能信号(使能信号(MotorolaMotorola模式)模式)/WR/WR6 6微控制器的微控制器的/WR/WR信号(信号(IntelIntel模式)或模式)或RD/RD/(/WR/WR)信号)信号(MotorolaMotorola模式)模式)CLKOUTCLKOUT7 7SJA1000SJA1000产生的提供给微控制器的时钟输出信号;时钟信号产生的提供给微控制器的时钟输出信号;时钟信号来源于内部振荡器,且通过编程驱动时钟控制;寄存器来源于内部振荡器,且通过编程驱动时钟控制;寄存器的时钟关闭位可禁止该引脚的时钟关

13、闭位可禁止该引脚V VSS1SS18 8接地接地XTAL1XTAL19 9输入到振荡器放大电路;外部振荡信号由此输入输入到振荡器放大电路;外部振荡信号由此输入 注注 XTAL2XTAL21010振荡放大电路输出;使用外部振荡信号时左开路输出振荡放大电路输出;使用外部振荡信号时左开路输出 注注 MODEMODE1111模式选择输入:模式选择输入:1=Intel1=Intel模式模式 0=Motorola0=Motorola模式模式CAN控制模块SJA1000管脚功能描述17VDD3VDD31212输出驱动的输出驱动的5V5V电压源电压源TX0TX01313从从CANCAN输出驱动器输出驱动器0

14、0输出到物理线路上输出到物理线路上TX1TX11414从从CANCAN输出驱动器输出驱动器1 1输出到物理线路上输出到物理线路上VSS3VSS31515输出驱动器接地输出驱动器接地/INT/INT1616中断输出,用于中断微控制器;中断输出,用于中断微控制器;/INT/INT在内部中断寄存器各位在内部中断寄存器各位都被置位时低电平有效;都被置位时低电平有效;/INT/INT是开漏输出,且与系统中的其是开漏输出,且与系统中的其它它/INT/INT是线或的;此引脚上的低电平可以把是线或的;此引脚上的低电平可以把ICIC从睡眠模式中从睡眠模式中激活激活/RST/RST1717复位输入,用于复位复位输

15、入,用于复位CANCAN接口(低电平有效);把接口(低电平有效);把/RST/RST引脚通引脚通过电容连到过电容连到VSSVSS,通过电阻连到通过电阻连到VDDVDD可自动上电复位(例如可自动上电复位(例如C=1FC=1F;R=50kR=50k)VDD2VDD21818输入比较器的输入比较器的5V5V电压源电压源RX0RX0RX1RX119192020从物理的从物理的CANCAN总线输入到总线输入到SJA1000SJA1000的输入比较器;显性电平将的输入比较器;显性电平将会唤醒会唤醒SJA1000SJA1000的睡眠模式;如果的睡眠模式;如果RX1RX1比比RX0RX0的电平高,就读回的电平

16、高,就读回显性电平,反之读回隐性电平;如果时钟分频寄存器的显性电平,反之读回隐性电平;如果时钟分频寄存器的CBPCBP位位被置位,就忽略被置位,就忽略CANCAN输入比较器以减少内部延时;这种情况下输入比较器以减少内部延时;这种情况下只有只有RX0RX0是激活的;高电平被认为是隐性,而低电平被认为是是激活的;高电平被认为是隐性,而低电平被认为是显性。显性。VSS2VSS22121输入比较器的接地端输入比较器的接地端VDD1VDD12222逻辑电路的逻辑电路的5V5V电压源电压源18振荡器和时钟振荡器和时钟:四种不同的振荡器连接方法。四种不同的振荡器连接方法。195.2 SJA1000的Basi

17、cCAN模式 5.2.1 BasicCAN5.2.1 BasicCAN模式下的地址分配模式下的地址分配 nSJA1000SJA1000对于对于CPUCPU而言,是而言,是可编程外围芯片可编程外围芯片。nSJA1000SJA1000的地址区包括的地址区包括控制段、发送、接控制段、发送、接收信息缓冲区三大部分收信息缓冲区三大部分: 控制段:控制段:在初始化期间,控制段可被编在初始化期间,控制段可被编程来配置通讯参数。同时程来配置通讯参数。同时CPUCPU通过这个段通过这个段来控制来控制CANCAN总线上的通信。总线上的通信。20n复位模式:复位模式:当硬件复位或控制器掉线时当硬件复位或控制器掉线时

18、会自动进入复位模式;会自动进入复位模式;n工作模式:工作模式:工作模式是通过工作模式是通过置零置零控制寄控制寄存器的复位请求位激活的。存器的复位请求位激活的。 n接收码寄存器、屏蔽码寄存器、总线定接收码寄存器、屏蔽码寄存器、总线定时寄存器时寄存器0 0、总线定时寄存器、总线定时寄存器1 1以及输出以及输出控制寄存器控制寄存器只有在控制寄存器中的复位只有在控制寄存器中的复位请求位(请求位(CR.0CR.0)被置)被置1 1才可访问。才可访问。21 发送缓冲区:发送缓冲区:一个报文在发送之前必须写入发送缓冲一个报文在发送之前必须写入发送缓冲器,再向总线上串行送出。器,再向总线上串行送出。 接收缓冲

19、区:接收缓冲区:在成功接收一个报文后,在成功接收一个报文后,CPUCPU从接收缓从接收缓冲器读取报文并释放这部分缓存,使其可继续用于存冲器读取报文并释放这部分缓存,使其可继续用于存储后续收到的报文。储后续收到的报文。控制段控制段:SJA1000在在BasicCAN模式下的地址中模式下的地址中共有共有10个字节,偏移地址分别为个字节,偏移地址分别为09。发送缓冲器发送缓冲器:位于位于CAN地址的地址的1019, ,占占10个字节,个字节,接收缓冲器接收缓冲器:位位于于CAN地址的地址的2029, ,占占10个字节,个字节,22CANCAN地址地址寄存器名称(符号)寄存器名称(符号)段段工作模式工

20、作模式复位模式复位模式读读写写读读写写0 0控制寄存器(控制寄存器(CRCR)控控制制控制控制控制控制控制控制控制控制1 1命令寄存器(命令寄存器(CMRCMR)(FFHFFH)命令命令(FFHFFH)命令命令2 2状态寄存器(状态寄存器(SRSR)状态状态- -状态状态- -3 3中断寄存器(中断寄存器(IRIR)中断中断- -中断中断- -4 4接收码寄存器(接收码寄存器(ACRACR)(FFHFFH)- -接收代码接收代码接收代码接收代码5 5接收屏蔽寄存器接收屏蔽寄存器(AMRAMR)(FFHFFH)- -接收屏蔽接收屏蔽接收屏蔽接收屏蔽6 6总线定时寄存器总线定时寄存器0 0(BTR

21、0BTR0)(FFHFFH)- -总时序总时序0 0总时序总时序0 07 7总线定时寄存器总线定时寄存器1 1(BTR1BTR1)(FFHFFH)- -总时序总时序1 1总时序总时序1 18 8输出控制寄存器输出控制寄存器(OCROCR)(FFHFFH)- -输出控制输出控制输出控制输出控制9 9测试寄存器(测试寄存器(TRTR)测试测试测试测试 注注22测试测试测试测试 注注22231010识别码(识别码(ID10-3ID10-3)发送发送缓冲缓冲器器(10-310-3)(10-310-3)(FFHFFH)- -1111识别码(识别码(ID2-0ID2-0)+RTR+RTR和和DLCDLC(

22、2-02-0)+RTR+RTR和和DLCDLC(2-02-0)+RTR+RTR和和DLCDLC(FFHFFH)- -1212数据字节数据字节1 1数据字节数据字节1 1数据字节数据字节1 1(FFHFFH)- -1313数据字节数据字节2 2数据字节数据字节2 2数据字节数据字节2 2(FFHFFH)- -1414数据字节数据字节3 3数据字节数据字节3 3数据字节数据字节3 3(FFHFFH)- -1515数据字节数据字节4 4数据字节数据字节4 4数据字节数据字节4 4(FFHFFH)- -1616数据字节数据字节5 5数据字节数据字节5 5数据字节数据字节5 5(FFHFFH)- -17

23、17数据字节数据字节6 6数据字节数据字节6 6数据字节数据字节6 6(FFHFFH)- -1818数据字节数据字节7 7数据字节数据字节7 7数据字节数据字节7 7(FFHFFH)- -1919数据字节数据字节8 8数据字节数据字节8 8数据字节数据字节8 8(FFHFFH)- -242020识别码(识别码(ID.10-3ID.10-3)接接收收缓缓冲冲器器(10-310-3)(10-310-3)(10-310-3)(10-310-3)2121识别码(识别码(ID.2-0ID.2-0)+RTR+RTR和和DLCDLC(2-02-0)+RTR+RTR和和DLCDLC(2-02-0)+RTR+R

24、TR和和DLCDLC(2-02-0)+RTR+RTR和和DLCDLC(2-02-0)+RTR+RTR和和DLCDLC2222数据字节数据字节1 1数据字节数据字节1 1数据字节数据字节1 1数据字节数据字节1 1数据字节数据字节1 12323数据字节数据字节2 2数据字节数据字节2 2数据字节数据字节2 2数据字节数据字节2 2数据字节数据字节2 22424数据字节数据字节3 3数据字节数据字节3 3数据字节数据字节3 3数据字节数据字节3 3数据字节数据字节3 32525数据字节数据字节4 4数据字节数据字节4 4数据字节数据字节4 4数据字节数据字节4 4数据字节数据字节4 42626数据

25、字节数据字节5 5数据字节数据字节5 5数据字节数据字节5 5数据字节数据字节5 5数据字节数据字节5 52727数据字节数据字节6 6数据字节数据字节6 6数据字节数据字节6 6数据字节数据字节6 6数据字节数据字节6 62828数据字节数据字节7 7数据字节数据字节7 7数据字节数据字节7 7数据字节数据字节7 7数据字节数据字节7 72929数据字节数据字节8 8数据字节数据字节8 8数据字节数据字节8 8数据字节数据字节8 8数据字节数据字节8 83030(FFHFFH)- -(FFHFFH)- -3131时钟分频器(时钟分频器(CDRCDR)时钟分频时钟分频器器时钟分频时钟分频器器时

26、钟分频时钟分频器器时钟分频时钟分频器器25nSJA1000SJA1000有两种复位方式:有两种复位方式:硬件复位与软件复硬件复位与软件复位。位。n硬件复位硬件复位是指在芯片的复位脚上提供一定宽度是指在芯片的复位脚上提供一定宽度低电平,硬件复位需要足够的时间才能使控制低电平,硬件复位需要足够的时间才能使控制寄存器中的复位请求位置寄存器中的复位请求位置1 1;n软件复位软件复位是指通过软件设置是指通过软件设置CR.0CR.0为为1 1或由脱离或由脱离总线引起的复位。总线引起的复位。 5.2.2复位值复位值26nSJA1000SJA1000检测到检测到复位请求位为复位请求位为1 1后,将中后,将中止

27、当前报文的接收止当前报文的接收/ /发送而进入复位模式。发送而进入复位模式。n当当CR.0CR.0复位请求位从复位请求位从1 1转变到转变到0 0,SJA1000SJA1000返回到工作模式。返回到工作模式。27寄存器寄存器名称名称位位符号符号名称名称值值硬件复位硬件复位软件软件CR.0CR.0或总线或总线关闭复位关闭复位控制控制CR.7CR.7- -保留保留0 00 0CR.6CR.6- -保留保留CR.5CR.5- -保留保留1 11 1CR.4CR.4OIEOIE溢出中断使能溢出中断使能CR.3CR.3EIEEIE错误中断使能错误中断使能CR.2CR.2TIETIE发送中断使能发送中断使

28、能CR.1CR.1RIERIE接收中断使能接收中断使能CR.0CR.0RRRR复位请求复位请求1(1(复位模式复位模式) )1(1(复位模式复位模式) )命令命令CMR.7CMR.7- -保留保留读命令寄存器的结果总读命令寄存器的结果总是是“1111 1111” 1111 1111” 读命令寄存器的结果读命令寄存器的结果总是总是“1111 1111”1111 1111”CMR.6CMR.6- -保留保留CMR.5CMR.5- -保留保留CMR.4CMR.4GTSGTS睡眠睡眠CMR.3CMR.3CDOCDO清除数据溢出清除数据溢出CMR.2CMR.2RRBRRB释放接收缓冲器释放接收缓冲器CM

29、R.1CMR.1ATAT忽略传送忽略传送CMR.0CMR.0TRTR发送请求发送请求复位模式下各寄存器的状态复位模式下各寄存器的状态28状态状态SR.7SR.7BSBS总线状态总线状态0(0(在线在线) )SR.6SR.6ESES出错状态出错状态0(0(无错无错) )SR.5SR.5TSTS发送状态发送状态0(0(空闲空闲) )0(0(空闲空闲) )SR.4SR.4RSRS接收状态接收状态0(0(空闲空闲) )0(0(空闲空闲) )SR.3SR.3TCSTCS发送完毕状态发送完毕状态1(1(完毕完毕) )SR.2SR.2TBSTBS发送缓冲器状态发送缓冲器状态1(1(释放释放) )1(1(释放

30、释放) )SR.1SR.1DOSDOS数据溢出状态数据溢出状态0(0(无溢出无溢出) )0(0(无溢出无溢出) )SR.0SR.0RBSRBS接收缓冲器状态接收缓冲器状态0(0(空空) )0(0(空空) )中断中断IR.7IR.7- -保留保留1 11 1IR.6IR.6- -保留保留1 11 1IR.5IR.5- -保留保留1 11 1IR.4IR.4WUIWUI唤醒中断唤醒中断0(0(复位复位) )0(0(复位复位) )IR.3IR.3DOIDOI数据溢出中断数据溢出中断0(0(复位复位) )0(0(复位复位) )IR.2IR.2EIEI错误中断错误中断0(0(复位复位) ) 注注44IR

31、.1IR.1TITI发送中断发送中断0(0(复位复位) )0(0(复位复位) )IR.0IR.0RIRI接收中断接收中断0(0(复位复位) )0(0(复位复位) )29.2.3 .2.3 控制寄存器控制寄存器 (CR,(CR,地址地址0)0)位位符号符号名称名称值值功能说明功能说明CR.7CR.7- - - -保留保留 注注11CR.6CR.6- - - -保留保留 注注22CR.5CR.5- - - -保留保留 注注33CR.4CR.4OIEOIE溢出中断溢出中断使能使能1 1使能使能:如果置位数据溢出位如果置位数据溢出位,微控制器接收溢出中断信号微控制器接收溢出中断信号0 0禁能禁能:微控

32、制器不从微控制器不从SJA1000SJA1000接收溢出中断信号接收溢出中断信号CR.3CR.3EIEEIE错误中断错误中断使能使能1 1使能使能:如果出错或总线状态改变如果出错或总线状态改变,微控制器接收错误中断信号微控制器接收错误中断信号0 0禁能禁能:微控制器不从微控制器不从SJA1000SJA1000接收错误中断信号接收错误中断信号CR.2 CR.2 TIETIE发送中断发送中断使能使能1 1使能使能:当信息被成功发送或发送缓冲器又可访问时当信息被成功发送或发送缓冲器又可访问时,微控制器接微控制器接收收SJA1000SJA1000发出的一个发送中断信号发出的一个发送中断信号0 0禁能禁

33、能:微控制器不从微控制器不从SJA1000SJA1000接收发送中断信号接收发送中断信号CR.1CR.1RIERIE接收中断接收中断使能使能1 1使能使能:信息被无错接收时信息被无错接收时,SJA1000SJA1000发出一个接收中断信号到微控发出一个接收中断信号到微控制器制器0 0禁能禁能:微控制器不从微控制器不从SJA1000SJA1000接收发送中断信号接收发送中断信号CR.0 CR.0 RRRR复位请求复位请求 注注441 1当前当前:SJA1000SJA1000检测到复位请求后检测到复位请求后, ,忽略当前发送忽略当前发送/ /接收的信息接收的信息,进进入复位模式入复位模式0 0空缺

34、空缺:复位请求位由复位请求位由1 1变变0 0后后,SJA1000SJA1000回到工作模式回到工作模式30位位符号符号名称名称值值功能说明功能说明CMR.7CMR.7- - - -保留保留CMR.6CMR.6- - - -保留保留CMR.5CMR.5- - - -保留保留CMR.4CMR.4GTSGTS睡眠睡眠1 1睡眠睡眠:如果没有如果没有CANCAN中断等待和总线活动中断等待和总线活动,SJA1000SJA1000进进入睡眠模式入睡眠模式0 0唤醒唤醒:SJA1000SJA1000正常工作模式正常工作模式CMR.3CMR.3CDOCDO清除数据清除数据溢出溢出1 1清除清除:清除数据溢出

35、状态位清除数据溢出状态位0 0无动作无动作CMR.2CMR.2RRBRRB释放接收释放接收缓冲器缓冲器1 1释放释放:接收缓冲器中存放信息的内存空间将被释放接收缓冲器中存放信息的内存空间将被释放0 0无动作无动作CMR.1CMR.1ATAT中止发送中止发送1 1当前当前:如果不是在处理过程中如果不是在处理过程中, ,等待处理的发送请求将等待处理的发送请求将取消取消0 0空缺空缺:无动作无动作CMR.0CMR.0TRTR发送请求发送请求1 1当前当前:信息被发送信息被发送0 0空缺空缺:无动作无动作5.2.4 5.2.4 命令寄存器命令寄存器 (CMR (CMR ,地址,地址1)1)命令寄存器对

36、微控制器来说是只写存储器。如果去读这个地址,返回值是命令寄存器对微控制器来说是只写存储器。如果去读这个地址,返回值是“1111 1111”1111 1111”31位位符号符号名称名称值值功能说明功能说明SR.7SR.7BSBS总线状态总线状态1 1脱离总线:脱离总线:SJA1000SJA1000退出总线活动退出总线活动0 0在线:在线:SJA1000SJA1000加入总线活动加入总线活动SR.6SR.6ESES出错状态出错状态1 1出错:至少出现一个错误计数器超过出错:至少出现一个错误计数器超过CPUCPU报警限制报警限制0 0Ok Ok :两个错误计数器都在报警限制以下:两个错误计数器都在报

37、警限制以下SR.5SR.5TSTS发送状态发送状态1 1发送:发送:SJA1000SJA1000在传送信息在传送信息0 0空闲:没有要发送的信息空闲:没有要发送的信息SR.4SR.4RSRS接收状态接收状态1 1接收:接收:SJA1000SJA1000正在接收信息正在接收信息0 0空闲:没有正在接收的信息空闲:没有正在接收的信息SR.3SR.3TCSTCS发送完毕状发送完毕状态态1 1完毕:最近一次发送请求被成功处理完毕:最近一次发送请求被成功处理0 0未完毕:当前发送请求未处理完毕未完毕:当前发送请求未处理完毕SR.2 SR.2 TBSTBS发送缓冲器发送缓冲器状态状态1 1释放:释放:CP

38、UCPU可以向发送缓冲器写信息可以向发送缓冲器写信息0 0锁定:锁定:CPUCPU不能访问发送缓冲器;有信息正在等待发送或不能访问发送缓冲器;有信息正在等待发送或正在发送正在发送SR.1SR.1DOSDOS数据溢出状数据溢出状态态1 1溢出:信息丢失,因为溢出:信息丢失,因为RXFIFORXFIFO中没有足够的空间来存储它中没有足够的空间来存储它0 0自从最后一次清除数据溢出命令执行无数据溢出发生自从最后一次清除数据溢出命令执行无数据溢出发生SR.0 SR.0 RBSRBS接收缓冲器接收缓冲器状态状态1 1满:满:RXFIFORXFIFO中有可用信息中有可用信息0 0空:无可用信息空:无可用信

39、息5.2.5 状态寄存器状态寄存器 (SR 地址地址2 ):只读存储器:只读存储器32位位符号符号名称名称值值功能说明功能说明IR7-5IR7-5- - - -保留保留 注注11IR.4IR.4WUIWUI唤醒中断唤醒中断1 1置位:退出睡眠模式时此位被置位置位:退出睡眠模式时此位被置位0 0复位:复位: 微控制器的任何读访问将清除此位微控制器的任何读访问将清除此位IR.3IR.3DOIDOI数据溢出数据溢出中断中断1 1设置:当数据溢出中断使能位被置为设置:当数据溢出中断使能位被置为1 1时向数据溢出状态位传送时向数据溢出状态位传送“0-1”0-1”,此位被置位,此位被置位0 0复位:微控制

40、器的任何读访问将清除此位复位:微控制器的任何读访问将清除此位IR.2 IR.2 EIEI错误中断错误中断1 1置位:错误中断使能时,错误状态位或总线状态位的变化会置置位:错误中断使能时,错误状态位或总线状态位的变化会置位此位位此位0 0复位:微控制器的任何读访问将清除此位复位:微控制器的任何读访问将清除此位IR.1IR.1TITI发送中断发送中断1 1置位:发送缓冲器状态从置位:发送缓冲器状态从0 0变为变为1 1(释放)和发送中断使能时,(释放)和发送中断使能时,置位此位置位此位0 0复位:微控制器的任何读访问将清除此位复位:微控制器的任何读访问将清除此位IR.0 IR.0 RIRI接收中断

41、接收中断1 1置位:当接收置位:当接收FIFOFIFO不空和接收中断使能时置位此位不空和接收中断使能时置位此位0 0复位:微控制器的任何读访问将清除此位复位:微控制器的任何读访问将清除此位5.2.6中断寄存器中断寄存器 (SR 地址3):只读存储器:只读存储器33名称名称地址地址D7D6D5D4D3D2D1D0发送缓冲器发送缓冲器标识符标识符(RTR,DLC)10ID.10ID.9ID.8ID.7ID.6ID.5ID.4ID.311ID.2ID.1ID.0RTRDLC.3DLC.2DLC.1DLC.0数据字节数据字节181219数据数据数据数据数据数据数据数据数据数据数据数据数据数据数据数据5

42、.2.75.2.7发送缓冲器发送缓冲器34 发送缓冲器位于发送缓冲器位于CANCAN地址的地址的10101919。发送缓冲器的读。发送缓冲器的读/ /写写只能由微控制器在只能由微控制器在工作模式下工作模式下完成。在复位模式下读出完成。在复位模式下读出的值总是的值总是“FFH”FFH”。(1 1)识别码()识别码(IDID) 识别码有识别码有1111位位(ID.0-ID.10)(ID.0-ID.10)。ID.10ID.10是最高位是最高位. .在仲裁过在仲裁过程中是最先被发送到总线上的。识别码的二进制值越低,程中是最先被发送到总线上的。识别码的二进制值越低,其优先级越高。其优先级越高。 在接收过

43、滤器中被用到,在仲裁过程中决定总线访问的在接收过滤器中被用到,在仲裁过程中决定总线访问的优先级。优先级。(2 2)远程发送请求()远程发送请求(RTRRTR) 如果如果此位置此位置1 1,总线将以远程结构发送数据。这意味着此,总线将以远程结构发送数据。这意味着此段中没有数据字节。段中没有数据字节。 如果如果没有置位没有置位RTRRTR位位,数据将以数据长度码规定的长度来,数据将以数据长度码规定的长度来传送。传送。 35(3 3)数据长度码()数据长度码(DLCDLC) 信息数据区的字节数根据数据长度码编制。数信息数据区的字节数根据数据长度码编制。数据字节数是据字节数是0 08 8,用如下方法计

44、算:,用如下方法计算:数据字节数数据字节数8 8DLC.3DLC.34 4DLC.2DLC.22 2DLC.1DLC.1DLC.0DLC.0如果选择的值超过如果选择的值超过8 8,则按照,则按照DLCDLC规定认为是规定认为是8 8。(4 4)数据区)数据区 传送的数据字节数由数据长度码决定。传送的数据字节数由数据长度码决定。 发送的第一位是地址发送的第一位是地址1212单元的数据字节单元的数据字节1 1的最的最高位高位365.2.8接收缓冲器接收缓冲器名称名称地址地址D7D6D5D4D3D2D1D0接收缓冲器接收缓冲器标识符标识符(RTR,DLC)20ID.10ID.9ID.8ID.7ID.

45、6ID.5ID.4ID.321ID.2ID.1ID.0RTRDLC.3DLC.2DLC.1DLC.0数据字节数据字节182229数据数据数据数据数据数据数据数据数据数据数据数据数据数据数据数据37 SJA1000从总线上接收到的信息存放在从总线上接收到的信息存放在RXFIFO共有共有64字节的信息空间。字节的信息空间。 接收缓冲器接收缓冲器RXB是指在是指在64字节字节RXFIFO中可以被中可以被CPU直接读写的寄存器。共直接读写的寄存器。共10个字节,偏移地址是个字节,偏移地址是2029。 如何理解如何理解RXB与与RXFIFO之间的关系?之间的关系?信息信息2信息信息3信息信息1接收缓冲器

46、接收缓冲器窗口窗口CAN地址地址输入信息输入信息释放接收缓冲器释放接收缓冲器命令命令接收缓冲器中的当前可用接收缓冲器中的当前可用信息是信息信息是信息1RXFIFO中信息存储示例中信息存储示例38RXFIFO合格的新报文合格的新报文如果如果RXFIFO中没有足够的空间中没有足够的空间来存储新的信息,来存储新的信息,CAN控制器会控制器会产生产生数据溢出数据溢出。数据溢出发生时,已部分写入数据溢出发生时,已部分写入 RXFIFORXFIFO的当前信息将被删除。的当前信息将被删除。溢出状态位溢出状态位SR.1SR.1置置“1 1”如果中断允许,则数据溢出中断如果中断允许,则数据溢出中断 反应到反应到

47、CPUCPU。 64字节的字节的RXFIFO中最多中最多可以存储的报文数?可以存储的报文数? 取决于各条报文的长度取决于各条报文的长度 10字节的字节的RXB中中可以存储一个完整的报文?可以存储一个完整的报文?可以(可以(ID+RTR+DLC+ID+RTR+DLC+数据区)数据区)395.2.9 5.2.9 接收过滤器接收过滤器注意:注意:ACR、AMR只有在控制寄存器只有在控制寄存器CR的的复位复位请求位请求位CR.0置置“1”时时(也就是说(也就是说SJA1000在复在复位状态时)才可以(读位状态时)才可以(读/写)写)接收过滤器的作用: 使得使得CANCAN控制器只接收识别码和接收过滤器

48、中预设值相一致控制器只接收识别码和接收过滤器中预设值相一致的信息进入到的信息进入到RXFIFO RXFIFO 。报文存入。报文存入FIFOFIFO的报文被的报文被CANCAN控制器采用。控制器采用。 接收过滤器的组成: 由接收代码寄存器(由接收代码寄存器(ACRACR)和接收屏蔽寄存器()和接收屏蔽寄存器(AMRAMR)组成。)组成。 接收代码寄存器(ACR ,地址4) 接收屏蔽码寄存器(AMR ,地址5)40接收码寄存器(接收码寄存器(ACRACR)的位分配)的位分配BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0AC.7AC.6AC.5AC.4AC.3AC.2AC.1AC.

49、0BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0AM.7AM.6AM.5AM.4AM.3AM.2AM.1AM.0接收屏蔽码寄存器(接收屏蔽码寄存器(AMRAMR)的位分配)的位分配接收屏蔽寄存器定义接收代码寄存器的相应位对接收过滤器接收屏蔽寄存器定义接收代码寄存器的相应位对接收过滤器是是“相关相关”的或的或“不相关不相关”的。的。1“不相关不相关”,0“相关相关”。(ID.10-ID.3)(AC.7-AC.0)或(或(AM.7-AM.0) 1111111141例:ACR.7ACR.6ACR.5ACR.4ACR.3ACR.2ACR.1ACR.0ACRACR0 00 01 11

50、10 01 11 10 0AMRAMR0 01 10 01 10 00 00 01 1信息信息IDID0 0X X1 1X X0 01 11 1X XX XX XX XID.10ID.9ID.8ID.7ID.6ID.5ID.4ID.3ID.2ID.1ID.042 一条信息通过了接收过滤器的测试,而且接收一条信息通过了接收过滤器的测试,而且接收缓冲器有足够的空间,那么标识符和数据将被缓冲器有足够的空间,那么标识符和数据将被分别顺次写入分别顺次写入RXFIFORXFIFO;同时:;同时: 接收缓冲器状态接收缓冲器状态SR.0位置位置1(非空);(非空); 如果接收中断允许位如果接收中断允许位CR.

51、1为为1(允许),则接(允许),则接收中断收中断IR.0位置位置1(产生中断)。(产生中断)。 如果接收缓冲区的空间已满:如果接收缓冲区的空间已满: 状态寄存器状态寄存器SR的数据溢出状态位的数据溢出状态位SR.1置置“1” 已部分写入已部分写入RXFIFO的当前信息将被删除。的当前信息将被删除。 如果溢出中断允许(如果溢出中断允许(CR.4=1),产生数据溢出,产生数据溢出中断。中断。 435.2.10 其它寄存器总线定时寄存器总线定时寄存器0 0(BTR0 BTR0 ,地址,地址6 6 )总线定时寄存器总线定时寄存器1 1 (BTR1BTR1,地址,地址7 7 )3 3输出控制寄存器(输出

52、控制寄存器(OCR OCR ,地址,地址8 8)4 4时钟分频寄存器(时钟分频寄存器(CDRCDR,地址,地址3131)以上寄存器是在以上寄存器是在BasicCANBasicCAN与与PeliCANPeliCAN两种模式下两种模式下共有共有的寄存器。的寄存器。偏移地址相同偏移地址相同各个位的功能定义不完全相同各个位的功能定义不完全相同44.总线定时寄存器总线定时寄存器0(BTR0 ,地址,地址6 )总线定时寄存器总线定时寄存器0定义了比特率预设值(定义了比特率预设值(BRP)和)和同步跳转宽度(同步跳转宽度(SJW)的值。)的值。复位模式下复位模式下: :总线定时寄存器总线定时寄存器0 0是可

53、以被访问(读是可以被访问(读/ /写)的写)的工作模式下工作模式下: : 如果选择的是如果选择的是PeliCANPeliCAN模式,那么此寄存器是只读的;模式,那么此寄存器是只读的; 如果选择的是如果选择的是BasicCANBasicCAN模式,那么读回的值总是模式,那么读回的值总是FFHFFH。总线定时寄存器总线定时寄存器0 0各位的功能如下:各位的功能如下: BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SJW.1SJW.2BRP.5BRP.4BRP.3BRP.2BRP.1BRP.045(1) 比特率预引比例因子比特率预引比例因子BRPCANCAN系统时钟系统时钟t tS

54、CLSCL的周期的周期是可编程的,而且决定了是可编程的,而且决定了本系统的位定时本系统的位定时CANCAN系统时钟由如下公式计算:系统时钟由如下公式计算:tSCL 2tCLK(32BRP.516BRP.48BRP.3 4BRP.22BRP.1BRP.01)式中式中t tCLKCLK =XTAL =XTAL的频率周期的频率周期=1/f=1/fXTALXTAL46(2 2) 同步跳转宽度同步跳转宽度SJWSJWtSJWtSCL(2SJW.1+SJW.0+1) 为了补偿不同总线控制器的时钟振荡器之间的为了补偿不同总线控制器的时钟振荡器之间的相位相位偏移偏移,任何总线控制器必须在当前传送的相关信号沿,

55、任何总线控制器必须在当前传送的相关信号沿进行重同步。进行重同步。 同步跳转宽度同步跳转宽度SJWSJW定义了每一个位周期可以被重同步定义了每一个位周期可以被重同步过程缩短或延长的时间长度,以时钟周期的数目来计算,过程缩短或延长的时间长度,以时钟周期的数目来计算,计算公式如下:计算公式如下:472.总线定时寄存器总线定时寄存器1 (BTR1,地址,地址7 )复位模式下复位模式下: :总线定时寄存器总线定时寄存器1 1是可以被访问(读是可以被访问(读/ /写)的写)的工作模式下工作模式下: : 如果选择的是如果选择的是PeliCANPeliCAN模式,那么此寄存器是只读的;模式,那么此寄存器是只读

56、的; 如果选择的是如果选择的是BasicCANBasicCAN模式,那么读回的值总是模式,那么读回的值总是FFHFFH。总线定时寄存器总线定时寄存器1定义了定义了每个位周期的长度每个位周期的长度、采样点的位置采样点的位置和在每个和在每个采样点的采样数目采样点的采样数目。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SAMTSEG2.2TSEG2.1TSEG2.0TSEG1.3TSEG1.2TSEG1.1TSEG1.0总线定时寄存器总线定时寄存器1 1各位的功能如下:各位的功能如下: 时间段时间段TSEG1时间段时间段TSEG2采样位48(1) 采样采样SAMTSEG1和TSE

57、G2决定了每一个位周期包含的时钟周期的数目和采样点的位置。tSYNCSEGSYNCSEG1tSCLtTSEG1tSCL(8TSEG1.3+4TSEG1.2+2TSEG1.1+TSEG1.0+1)tTSEG2tSCLSCL(4TSEG2.2+2TSEG2.1+TSEG2.0+1)采样位采样位: : SAM=1SAM=1时时,总线采样,总线采样3 3次,建议在低次,建议在低/ /中速总线上使用。中速总线上使用。 SAM=0SAM=0时时,总线采样,总线采样1 1次,建议用在高速总线上。次,建议用在高速总线上。(2) 时间段时间段1(TSEG1)和时间段)和时间段2(TSEG2)返回49一个位周期的

58、总体结构一个位周期的总体结构CAN系统时钟与振荡系统时钟与振荡周期关系周期关系依据公式50波特率计算方法举例如下:假如外部晶振为假如外部晶振为16MHz时,时,如设定如设定SJA1000总线总线定时寄存器定时寄存器0的值为的值为#D3H=11010011 ,设定设定SJA1000总线定时寄存器总线定时寄存器1的值为的值为#0AFH=10101111,求系统时钟,求系统时钟为多少?系统的波特率为多少?为多少?系统的波特率为多少?tscl=2 (16+2+1+1) / 161000000=2.5us每个位周期时间每个位周期时间 2.5 (8421 1)+(2+1)+1=50us波特率波特率=1/5

59、0us=20KbpsTSEG1 TSEG2 TSYN 513 3输出控制寄存器(输出控制寄存器(OCR OCR ,地址,地址8 8)输出控制寄存器实现了软件对输出驱动器的不同配置。输出控制寄存器实现了软件对输出驱动器的不同配置。复位模式下复位模式下:输出控制寄存器输出控制寄存器是可以被访问(读是可以被访问(读/写)的。写)的。工作模式下工作模式下: 如果选择的是如果选择的是PeliCAN模式,那么此寄存器是只读的;模式,那么此寄存器是只读的; 如果选择的是如果选择的是BasicCAN模式,那么读回的值总是模式,那么读回的值总是FFH。52BIT7BIT6BIT5BIT4BIT3BIT2BIT1

60、BIT0OCTP1OCTN1OCPOL1OCTP0OCTN0OCPOL0OCMODE1OCMODE0输出控制寄存器输出控制寄存器在复位模式下可读在复位模式下可读/ /写访问。写访问。该寄存器各位功能如下:该寄存器各位功能如下:OCTP1控制输出晶体管P1;OCTN1控制输出晶体管N1;OCPOL1控制输出极性1;OCTP0控制输出晶体管P0;OCTN0控制输出晶体管N0;OCPOL0控制输出极性0;控制输出模式四种状态53当当SJA1000在在睡眠模式睡眠模式中时,中时,TX0和和TX1引脚根据输出控制寄存器引脚根据输出控制寄存器的内容的内容输出隐性的电平输出隐性的电平。在在复位状态复位状态(

温馨提示

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

评论

0/150

提交评论