您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > CAN总线控制器SJA1000资料
第六章CAN总线控制器SJA10006.1、CAN控制器的作用6.2、SJA1000介绍6.3、SJA1000内部结构框图6.4、基本模式(BasicCAN)6.5、控制段寄存器6.6、数据段寄存器6.7、扩展模式(PeliCAN)6.8、CAN控制器--SJA1000的应用指南6.1CAN控制器的作用CAN控制器扮演网络协议的角色它提供了微处理器的物理线路的接口进行数据的发送和接受6.1CAN控制器的作用6.2SJA1000介绍•管脚与独立CAN控制器PCA82C200兼容•电气特性与独立CAN控制器PCA82C200兼容•具有PCA82C200模式(即默认的BasicCAN模式)•扩展的接收缓存器(64字节的FIFO队列)•支持CAN2.0A和CAN2.0B协议•支持11位和29位标识码•位速率最高可达1Mbps•可与不同的微处理器接口•可编程的CAN输出驱动器配置•温度适应范围大(-40℃—+125℃)6.2SJA1000介绍机电工程与自动化学院6.3SJA1000内部结构框图逻辑管理接口发送缓冲器接收过滤器位流处理器错误管理逻辑位时序逻辑接收缓冲器振荡器复位机电工程与自动化学院6.3SJA1000内部结构框图逻辑管理接口逻辑管理接口发送缓冲器接收过滤器位流处理器错误管理逻辑位时序逻辑接收缓冲器振荡器复位解释来自CPU的命令控制CAN寄存器的寻址,向CPU提供中断信息和状态信息机电工程与自动化学院6.3SJA1000内部结构框图逻辑管理接口发送缓冲器接收过滤器位流处理器错误管理逻辑位时序逻辑接收缓冲器振荡器复位CPU和BSP(位流处理器)之间的接口。它能够存储要通过CAN网络发送的一条完整报文机电工程与自动化学院6.3SJA1000内部结构框图逻辑管理接口发送缓冲器接收过滤器位流处理器错误管理逻辑位时序逻辑接收缓冲器振荡器复位接受过滤器和CPU之间的接口,用来存储从CAN总线上接受并被确认的信息6.3SJA1000内部结构框图逻辑管理接口发送缓冲器接收过滤器位流处理器错误管理逻辑位时序逻辑接收缓冲器振荡器复位是一个在发送缓冲器、RXFIFO和CAN总线之间控制数据流的队列发生器。还执行总线上的错误检测、仲裁、填充和错误处理。机电工程与自动化学院6.3SJA1000内部结构框图逻辑管理接口发送缓冲器接收过滤器位流处理器错误管理逻辑位时序逻辑接收缓冲器振荡器复位验收滤波器(ACK)把它的内容和接收到的标识码相比较,以决定是否接收下这条报文。机电工程与自动化学院6.3SJA1000内部结构框图逻辑管理接口发送缓冲器接收过滤器位流处理器错误管理逻辑位时序逻辑接收缓冲器振荡器复位•位时序逻辑(BTL)监视串行的CAN总线和位时序•BTL还提供了可编程的时间段来补偿传播延时、相位偏移和定义采样点和每一位的采样次数机电工程与自动化学院6.3SJA1000内部结构框图逻辑管理接口发送缓冲器接收过滤器位流处理器错误管理逻辑位时序逻辑接收缓冲器振荡器复位•负责限制传输层模块的错误•它接收来自BSP的出错报告•后把有关错误统计告诉BSP和IML6.4基本模式(BasicCAN)一、基本模式下的寄存器地址分配控制段1.系统初始化时对控制段进行编程,以配置通讯参数2.微处理器也可通过控制段来控制总线通讯数据段1.报文被发送前,微处理器将报文写入发送缓冲区2.成功接收一个报文后,写入接收缓冲区3.微处理器读接收缓冲区并释放缓冲区6.4基本模式(BasicCAN)BasicCan寄存器地址分配寄存器地址功能段寄存器运行模式复位模式读写读写0各类控制器控制寄存器CR√√√√1命令寄存器CMRFFH√FFH√2状态寄存器SR√×√×3中断寄存器IR√×√×4屏蔽码寄存器ACRFFH×√√6接收屏蔽寄存器AMRFFH×√√6总线定时寄存器0BTR0FFH×√√7总线定时寄存器1BTR1FFH×√√8输出控制寄存器OCRFFH×√√9仅用于测试10~19发送缓冲器输出缓冲寄存器TXB√√FFH×20~29接收缓冲器输入缓冲寄存器RX√√√√30未用FFH×FFH×31时钟分频器时钟分频寄存器OCR√部分√√√6.4基本模式(BasicCAN)二、SJA1000的工作状态两种状态:复位状态和运行状态1.复位状态三种情况下,SJA1000进入复位状态(1).软件复位:通过设置控制寄存器CR的RR位为1(2).硬件复位:在复位引脚上出现一个低电平脉冲(3).BUS_OFF状态(总线脱离状态)2.运行状态在CR的RR位上出现“1-0”的下跳沿时,SJA1000返回运行状态,可通过检测RR来判断SJA1000的工作状态6.5控制段寄存器一、控制寄存器CR(CAN地址0)CR.7CR.6CR.5CR.4CR.3CR.2CR.1CR.0保留未用OIEEIETIERIERR6.5控制段寄存器(1)OIE:超载中断允许位,置位时超载将会产生中断,复位时不产生超载中断。(2)EIE:错误中断允许位,置位时发生错误或总线状态改变都将产生中断,复位时无错误中断产生。(3)TIE:发送中断允许位,若置位,当一个报文成功发送或发送缓冲区再次可访问时(如在中止的发送命令后),将会产生中断,复位时无发送中断产生。(4)RIE:接收中断允许位,若置位,当一个报文被无误地接收时将会产生接收中断,复位时无接收中断产生。6.5控制段寄存器(5)RR:复位请求位,该位置位后,SJA1000将会终止当前报文的接收或发送而进入复位工作状态。在硬件复位期间或总线状态为BUS-OFF时,复位请求位将被置1。如这位可通过软件访问,其值的改变将被反映出来,并在内部时钟的下一个上升沿有效(内部时钟频是外部晶振频的1/2)。在硬件复位期间(外部复位引脚为低电平),微控制器不能将复位请求位RR清零。因此当微控制器发出RR清零命令之后,必须检测此位,以确保SJA1000进入了运行模式。复位请求位的改变与内部分频时钟同步,复位请求位的读取反映了同步状态。6.5控制段寄存器二、命令寄存器CMR(CAN地址1)CMR.7CMR.6CMR.5CMR.4CMR.3CMR.2CMR.1CMR.0保留未用GTSCDORRBATTR6.5控制段寄存器(1)GTS:睡眠命令位,若没有未决中断和总线活动,置“1”将使SJA1000进入睡眠状态。进入睡眠状态后,SJA1000的CLKOUT端的输出将持续15位时间,以使主控器通过此信号进入待命状态。下列三种情况下,SJA1000将被唤醒而进入运行状态:a、GTS位被复位;b、出现总线活动;c、有未决中断使端为低。由于总线活动而被唤醒的SJA1000在检测到11个连续隐性位(总线空闲标志)前将不能接收总线信息。在复位状态下,该位不可置位。(2)CDO:清除数据超载命令位,置位时有效。(3)RRB:释放接收缓存器命令位,置位时有效。在MCU读取数据后,应该释放接收缓存器以使MCU接收下一批数据。该位和CDO可同时有效。6.5控制段寄存器(4)AT:中止发送命令位,该命令用于MCU请求挂起当前数据发送,例如有更紧急的数据要发送时。但已经在进行的数据发送不会被中止。(5)TR:发送请求位,置位时有效,复位时可取消当前发送。6.5控制段寄存器三、状态寄存器SR(CAN地址2)SR7SR6SR5SR4SR3SR2SR1SR0BSESTSRSTCSTBSDOSRBS6.5控制段寄存器(1)BS:总线状态标志,“1”表示处于总线脱离状态。当发送错误计数器超过255的极限时,SJA1000自动将BS置“1”并产生一个错误中断(若允许),同时控制器进入复位工作方式,直到MCU清除BS。(2)ES:错误状态标志,当至少有一个错误计数器达到或超过警告极限时该位被置“1”,若允许错误中断还将产生中断。(3)TS:发送状态标志,“1”表示SJA1000正在发送数据。(4)RS:接收状态标志,“1”表示SJA1000正在接收数据,若TS和RS同时为“0”,则表明总线空闲。6.5控制段寄存器(5)TCS:发送完成标志,“1”表示上次的发送已成功完成。(6)TBS:发送缓冲区状态标志,“1”表示发送缓冲区可写。若该位为“0”时,MCU写发送缓冲区,则写入数据无效且被丢失。(7)DOS:数据超载标志,“1”表示由于RXFIFO没有足够的空间,收到的报文丢失。(8)RBS:接收缓冲区状态标志,“1”表示RXFIFO中至少有一个报文。当MCU读取报文后,应给出释放接收缓冲区的命令,该标志才会清零。若RXFIFO中还有未读报文,该位又将被置位。6.5控制段寄存器四、中断寄存器IR(CAN地址3)IR.7IR.6IR.5IR.4IR.3IR.2IR.1IR.0保留未用WUIDOIEITIRI6.5控制段寄存器(1)WUI:唤醒中断,当SJA1000离开睡眠状态时,该位将被置位。当MCU试图在SJA1000有未决中断或仍有总线活动时使其进入睡眠状态时,也会产生唤醒中断。(2)DOI:数据超载中断,DOS位的“0-1”变化时该位即被置位,即DOS与DOI的置位是同步的。(3)EI:错误中断,任何错误状态标志位或总线状态标志位的变化都会使该位置位。(4)TI:发送中断,与TBS同步被置位。(5)RI:接收中断,当接收缓冲区非空时该位被置位。6.5控制段寄存器五、验收代码寄存器ACR(CAN地址4)接收码寄存器决定接收滤波。当接收码(AC7~AC0)与报文高8位(ID10~ID3)相等时,报文通过接收滤波。如果1条报文通过了接收滤波,而且接收缓冲区有可用空间,那么,对应的描述符和数据场就依次进入RXFIFO。报文正确接收之后,接收状态位置1,如果接收中断允许(RIE=1),那么接收中断位置1。6.5控制段寄存器六、验收屏蔽寄存器AMR(CAN地址5)屏蔽码寄存器影响接收滤波。在屏蔽码(AMC7~AMC0)为0的相应位置上,接收码(AC7~AC0)与报文标志符的高8位(ID10~ID3)必须相等时,报文才可通过接收滤波。如[(AC7~AC0)=(ID10~ID3)]或(AMC7~AMC0)=[11111111B]。6.5控制段寄存器七、总线定时寄存器BTR0(CAN地址6)6.5控制段寄存器七、总线定时寄存器BTR0(CAN地址6)76543210SJW.1SJW.0BRP.5BRP.4BRP.3BRP.2BRP.1BRP.0BTR0•位域BRP:使得CAN系统时钟周期T_scl可编程T_scl=2×T_clk×(1+BRP.0+2×BRP.1+4×BRP.2+8×BRP.3+16×BRP.4+32×BRP.5)•位域SJW:使得同步跳转宽度可编程T_sjw=T_scl×(1+SJW.0+2×SJW.1)6.5控制段寄存器•同步跳转宽度:定义了一个位周期可以被一次重新同步缩短或延长的时钟周期的最大数目。6.5控制段寄存器一位时间的一般结构图6.5控制段寄存器七、总线定时寄存器BTR1(CAN地址1)76543210SAMTSEG2.2TSEG2.1TSEG2.0TSEG1.3TSEG1.2TSEG1.1TSEG1.0BTR1总线定时寄存器1定义了每个位周期的长度、采样点的位置和每个采样点的采样数目。6.5控制段寄存器•位周期=同步段(T_syncseg)+采样前段(T_tseg1)+采样后段(T_tseg2)•同步段:T_syncseg=T_scl•采样前段:T_tseg1=T_scl×(1+TSEG1.0+2×TSEG1.1+4×TSEG1.2+8×TSEG1.3)•采样后段:T_tseg2=T_scl×(1+TSEG2.0+2×TSEG2.1+4×TSEG2.2)•采样位(SAM):设置采样次数置1:总线采样3次置0:总线采样1次6.5控制段寄存器例1:在晶振频率为16MHz,BTR0=3FH,BTR1=FFH,计算位速率。例2:在晶振频率为16MHz,BTR0=7FH,BTR1=7FH,计算位速率。6.5控制段寄存器八、输出控制寄存器OCR(CAN地址8)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BI
本文标题:CAN总线控制器SJA1000资料
链接地址:https://www.777doc.com/doc-3316191 .html