版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第五章CAN器件及开发实例
与其他现场总线相比,CAN总线得到多家芯片厂商的支持。制造商产品型号器件功能及特点INTEL82526825278XC196CA/CBCAN通信控制器,符合CAN2.0ACAN通信控制器,符合CAN2.0B扩展的8XC196+CAN通信控制器,符合CAN2.0BPHILIP82C200SJA100082C15082C250P51XA-C3CAN通信控制器,符合CAN2.0ACAN通信控制器,符合CAN2.0A/B带数字及模拟I/O的CAN扩展器件,符合CAN2.0A高性能的CAN总线收发器16位微处理器+CAN通信控制器,符合CAN2.0BMOTOROLA68HC05X4系列68HC05X4微控制器+CAN通信控制器,符合CAN2.0ASINMENS81C90/91C167CCAN通信控制器,符合CAN2.0A微控制器+CAN通信控制器,符合CAN2.0A/B2
CAN器件既有独立CAN控制器,也有包含CAN内核的微控制器和DSP等,还有CAN收发器、CAN远程I/O等。器件的工作电压范围也已从传统的5V拓展到3V/3.3V
说明了CAN总线的诸多突出优点已得到人们的认可,另一方面,丰富价廉的CAN器件又进一步促进了CAN总线技术的迅速推广。。本章将重点介绍两种常用的CAN器件:CAN控制器SJA1000和收发器82C250,并结合一个开发实例,帮助读者理解在前面CAN技术规范中提到的标识符、屏蔽码、位定时、数据域及故障界定等内容是如何实现的。35.1独立CAN控制器SJA1000
SJA1000是适用于汽车和一般工业环境的独立CAN控制器。它是PHILIPS公司生产。
SJA1000有两种工作模式:
BasicCAN模式,
PeliCAN工作模式。
SJA1000的BasicCAN模式是PHILIPS公司生产的PCA82C200的替代品品,引脚兼容,电气兼容。PeliCAN工作模式支持CAN2.0B协议。在PeliCAN模式下,SJA1000具有与BasicCAN模式下完全不同的寄存器结构。SJA1000的PeliCAN模式一些新增特性:(详见教材并在PeliCAN模式下解释)4SJA1000的PeliCAN模式具有以下新增特性:接收和发送标准和扩展格式报文;达64字节的接收FIFO;对于标准和扩展帧都有单/双接收过滤器,接收过滤器包括屏蔽码和接收码寄存器;可读/写访问的错误计数器;可编程的错误报警限;最近一次错误代码寄存器;对于每一种CAN总线错误都能产生不同的出错中断;仲裁丢失中断,并带有详细丢失仲裁位置的信息;允许单次发送,当出错或丢失仲裁时不重发;只听模式(监视CAN总线,无应答,无出错标志);支持热插拔(对总线无干扰的传输速率检测);自身发送报文接收(自接收请求);硬件禁止CLKOUT输出。5CAN控制模块SJA1000功能框图解释来自CPU的命令,控制SJA1000内部寻址,向CPU提供中断信息和状态信息。发送缓冲器是CPU和位流处理之间的接口,能够存储发送到CAN总线上的完整报文,。接收缓冲器是接收过滤器和CPU之间的接口,用于储存从CAN总线上接收并采用的报文6SJA1000CAN控制器由下述几部分组成:1.接口管理逻辑(IML)
接口管理逻辑完成对外部主控制器的连接,外部主控制器可以是微型控制器或其他器件。经SJA1000复用的地址/数据总线,访问寄存器和控制读/写选通信号都在接口管理逻辑处理,并向该控制器提供中断信息和状态信息。解释来自CPU的命令,控制SJA1000内部寻址,向CPU提供中断信息和状态信息。
2.发送缓冲器(TXB)发送缓冲器是CPU和位流处理器之间的接口,能够存储发送到CAN总线上的完整报文,缓冲器长13字节,由CPU写入,位流处理器BSP读出。73.接收缓冲器(RXB,RXFIFO)
接收缓冲器是接收过滤器和CPU之间的接口,用于储存从CAN总线上接收并采用的报文。接收缓冲器(RXB,长13字节)作为接收FIFO(RXFIFO,长64字节)的一个窗口,可被CPU访问。在此FIFO的支持下,CPU可以在处理一个报文的同时接收其他报文。
信息2信息3信息1接受缓冲器窗口CAN地址输入信息释放接受缓冲器命令接受缓冲器中的当前可用信息是信息1图9-4RXFIFO中信息存储示例84.接收过滤器(ACF)所有收到的信息由接收过滤器接收并存储在接收FIFO。接收过滤器把接收数据和接收识别码的内容相比较,以决定是否接收信息。如果比较的结果为真,则报文完整地存入RXFIFO中。报文存入FIFO也就是报文被CAN控制器采用。通过可编程的过滤器,SJA1000能确定哪些信息实际上被主控制器收到。5.位流处理器:
位流处理器是一个序列发生器,控制发送缓冲器、RXFIFO和CAN总线之间的数据流。它还完成CAN总线上的错误检测、仲裁、填充和错误处理等功能。96.位定时逻辑:
位定时逻辑监视CAN总线并处理总线位定时。它同步于帧起始的从隐性到显性电平的跳变(硬同步)。位定时逻辑还提供可编程的时间段用于补偿传播延时和相位变化(例如,由于振荡器漂移引起的相位变化),它还定义采样时刻和一位时间内的采样次数。7.错误管理逻辑:
错误管理逻辑负责错误界定。它接收来自位流处理器的出错报告,并将分析出的出错状态传达给位流处理器和接口管理逻辑。10CAN控制模块SJA1000管脚排列图:控制线:7地址/数据:8时钟:2电源:6复位:1发送接收:411符号引脚说明AD7-02,1,28-23多路地址/数据总线ALE/AS3ALE输入信号(Intel模式),AS输入信号(Motorola模式)/CS4片选输入,低电平允许访问SJA1000(/RD)/E5微控制器的/RD信号(Intel模式)或E使能信号(Motorola模式)/WR6微控制器的/WR信号(Intel模式)或RD/(/WR)信号(Motorola模式)CLKOUT7SJA1000产生的提供给微控制器的时钟输出信号;时钟信号来源于内部振荡器,且通过编程驱动时钟控制;寄存器的时钟关闭位可禁止该引脚VSS18逻辑电路地XTAL19时钟振荡放大器输入,外部振荡器信号由此输入[注]XTAL210时钟振荡放大器输出,使用外部振荡器时该引脚应开路[注]MODE11模式选择输入:1=Intel模式0=Motorola模式CAN控制模块SJA1000管脚功能描述12VDD312输出驱动的5V电压源TX013从输出驱动器0到物理总线的输出端TX114从输出驱动器1到物理总线的输出端VSS315输出驱动器的地/INT16中断输出,用于中断微控制器;中断寄存器任意位被置位,/INT引脚置低(有效);/INT是开漏输出,可与系统中的其它/INT中断输出实现线与;此引脚上的低电平可以把SJA1000从睡眠模式中激活/RST17复位输入,用于复位CAN接口(低电平有效);把/RST引脚通过电容连到VSS,通过电阻连到VDD可自动上电复位(例如C=1μF;R=50kΩ)VDD218输入比较器的5V电压源RX0RX11920从CAN总线到SJA1000输入比较器的输入端;显性电平将会唤醒SJA1000的睡眠模式;如果RX1比RX0的电平高,就读回一个显性电平,反之读回隐性电平;如果时钟分频寄存器的CBP位被置位,就忽略CAN输入比较器以减少内部延时(此时连有外部收发电路);这种情况下只有RX0是激活的;RX0引脚高电平被认为是隐性,而低电平被认为是显性。VSS221输入比较器的接地端VDD122逻辑电路的5V电压源13振荡器和时钟
SJA1000能使用片内振荡器或带有片外时钟源工作。
另外CLKOUT管脚可被使能,为主控制器输出时钟频率。如果不需要CLKOUT信号,可以通过置位被时钟寄存器(clockOff=1)关掉。下图显示了四个不同的计时原理。145.2SJA1000的BasicCAN模式5.2.1BasicCAN模式下的地址分配
CAN控制器SJA1000对于CPU而言,是可编程外围芯片。CPU可以像操作扩展RAM一样操作SJA1000片内的寄存器。SJA1000的地址区包括控制段、发送、接收信息缓冲区三大部分:①控制段:在初始化期间,控制段可被编程来配置通讯参数,同时CPU通过这个段来控制CAN总线上的通信。CPU和SJA1000之间的状态、控制和命令的交换都在控制段中完成。在以下两种不同的模式中访问寄存器,其内容是不相同的:复位模式:当硬件复位或控制器掉线时会自动进入复位模式;在复位模式下进行初始化,某些寄存器只有在控制寄存器中的复位请求位(CR.0)被置1时,才可访问。(象接收码寄存器、屏蔽码寄存器、总线定时寄存器0、总线定时寄存器1以及输出控制寄存器等)工作模式:工作模式是通过置零控制寄存器的复位请求位激活的。15②发送缓冲区:一个报文在发送之前必须写入发送缓冲器,再向总线上串行送出。③接收缓冲区:在成功接收一个报文后,CPU从接收缓冲器读取报文并释放这部分缓存,使其可继续用于存储后续收到的报文。控制段:SJA1000在BasicCAN模式下的地址中共有10个字节,偏移地址分别为0~9。发送缓冲器:位于CAN地址的10~19,占10个字节,接收缓冲器:位于CAN地址的20~29,占10个字节,16CAN地址寄存器名称(符号)段工作模式复位模式读写读写0控制寄存器(CR)控制控制控制控制控制1命令寄存器(CMR)(FFH)命令(FFH)命令2状态寄存器(SR)状态-状态-3中断寄存器(IR)中断-中断-4接收码寄存器(ACR)(FFH)-接受代码接受代码5接收屏蔽寄存器(AMR)(FFH)-接受屏蔽接受屏蔽6总线定时寄存器0(BTR0)(FFH)-总时序0总时序07总线定时寄存器1(BTR1)(FFH)-总时序1总时序18输出控制寄存器(OCR)(FFH)-输出控制输出控制9测试寄存器(TR)测试测试[注2]测试测试[注2]1710识别码(ID10-3)发送缓冲器(10-3)(10-3)(FFH)-11识别码(ID2-0)+RTR和DLC(2-0)+RTR和DLC(2-0)+RTR和DLC(FFH)-12数据字节1数据字节1数据字节1(FFH)-13数据字节2数据字节2数据字节2(FFH)-14数据字节3数据字节3数据字节3(FFH)-15数据字节4数据字节4数据字节4(FFH)-16数据字节5数据字节5数据字节5(FFH)-17数据字节6数据字节6数据字节6(FFH)-18数据字节7数据字节7数据字节7(FFH)-19数据字节8数据字节8数据字节8(FFH)-CAN地址寄存器名称(符号)段工作模式复位模式读写读写1820识别码(ID10-3)接收缓冲器(10-3)(10-3)(10-3)(10-3)21识别码(ID2-0)+RTR和DLC(2-0)+RTR和DLC(2-0)+RTR和DLC(2-0)+RTR和DLC(2-0)+RTR和DLC22数据字节1数据字节1数据字节1数据字节1数据字节123数据字节2数据字节2数据字节2数据字节2数据字节224数据字节3数据字节3数据字节3数据字节3数据字节325数据字节4数据字节4数据字节4数据字节4数据字节426数据字节5数据字节5数据字节5数据字节5数据字节527数据字节6数据字节6数据字节6数据字节6数据字节628数据字节7数据字节7数据字节7数据字节7数据字节729数据字节8数据字节8数据字节8数据字节8数据字节830(FFH)-(FFH)-31时钟分频器(CDR)时钟分频器时钟分频器[注3]时钟分频器时钟分频器CAN地址寄存器名称(符号)段工作模式复位模式读写读写195.2.2复位值
SJA1000有两种复位方式:
硬件复位与软件复位。硬件复位是指在芯片的复位脚上提供一定宽度低电平(正常工作状态下为高电平),硬件复位需要足够的时间才能使控制寄存器中的复位请求位置1;
软件复位是指通过软件设置CR.0为1或由脱离总线引起的复位。
SJA1000检测到复位请求位为1后,将中止当前报文的接收/发送而进入复位模式。当复位请求位从1转变到0,SJA1000返回到工作模式。
20寄存器名称位符号名称值硬件复位软件或总线关闭复位CR.0控制CR.7-保留00CR.6-保留××CR.5-保留11CR.4OIE溢出中断使能××CR.3EIE错误中断使能××CR.2TIE发送中断使能××CR.1RIE接收中断使能××CR.0RR复位请求1(复位模式)1(复位模式)命令CMR.7-保留读命令寄存器的结果总是“11111111”[注3]读命令寄存器的结果总是“11111111”[注3]CMR.6-保留CMR.5-保留CMR.4GTS睡眠CMR.3CDO清除数据溢出CMR.2RRB释放接收缓冲器CMR.1AT忽略传送CMR.0TR发送请求置复位请求位为高时,对CR、CMR、SR和IR各位的影响如下表。21状态SR.7BS总线状态0(总线开启)×SR.6ES出错状态0(Ok)×SR.5TS发送状态0(空闲)0(空闲)SR.4RS接收状态0(空闲)0(空闲)SR.3TCS发送完毕状态1(完毕)×SR.2TBS发送缓冲器状态1(释放)1(释放)SR.1DOS数据溢出状态0(无溢出)0(无溢出)SR.0RBS接收缓冲器状态0(空)0(空)中断IR.7-保留11IR.6-保留11IR.5-保留11IR.4WUI唤醒中断0(复位)0(复位)IR.3DOI数据溢出中断0(复位)0(复位)IR.2EI错误中断0(复位)×[注4]IR.1TI发送中断0(复位)0(复位)IR.0RI接收中断0(复位)0(复位)225.2.3控制寄存器
(CR,地址0)位符号名称值功能说明CR.7---保留[注1]CR.6---保留[注2]CR.5---保留[注3]CR.4OIE溢出中断使能1使能:如果置位数据溢出位,微控制器接收溢出中断信号0禁能:微控制器不从SJA1000接收溢出中断信号CR.3EIE错误中断使能1使能:如果出错或总线状态改变,微控制器接收错误中断信号0禁能:微控制器不从SJA1000接收错误中断信号CR.2TIE发送中断使能1使能:当信息被成功发送或发送缓冲器又被访问时,微控制器接收SJA1000发出的一个发送中断信号0禁能:微控制器不从SJA1000接收发送中断信号CR.1RIE接收中断使能1使能:信息被无错接收时,SJA1000发出一个接收中断信号到微控制器0禁能:微控制器不从SJA1000接收发送中断信号CR.0RR复位请求[注4]1当前:SJA1000检测到复位请求后,忽略当前发送/接收的信息,进入复位模式0空缺:复位请求位由1变0后,SJA1000回到工作模式
控制寄存器的内容是用于改变CAN控制器的行为的。这些位可以被微控制器设置或复位,微控制器可以对控制寄存器进行读/写操作。23位符号名称值功能说明CMR.7---保留CMR.6---保留CMR.5---保留CMR.4GTS睡眠1睡眠:如果没有CAN中断等待和总线活动,SJA1000进入睡眠模式0唤醒:SJA1000正常工作模式CMR.3CDO清除数据溢出1清除:清除数据溢出状态位0无动作CMR.2RRB释放接收缓冲器1释放:接收缓冲器中存放信息的内存空间将被释放0无动作CMR.1AT忽略发送1当前:如果不是在处理过程中,等待处理的发送请求将取消0空缺:无动作CMR.0TR发送请求1当前:信息被发送0空缺:无动作5.2.4
命令寄存器
(CMR,地址1)命令寄存器对微控制器来说是只写存储器。如果去读这个地址,返回值是“11111111”24位符号名称值功能说明SR.7BS总线状态1总线关闭:SJA1000退出总线活动0总线开启:SJA1000加入总线活动SR.6ES出错状态1出错:至少出现一个错误计数器满或超过CPU报警限制0Ok:两个错误计数器都在报警限制以下SR.5TS发送状态1发送:SJA1000在传送信息0空闲:没有要发送的信息SR.4RS接收状态[注3]1接收:SJA1000正在接收信息0空闲:没有正在接收的信息SR.3TCS发送完毕状态[注4]1完毕:最近一次发送请求被成功处理0未完毕:当前发送请求未处理完毕SR.2TBS发送缓冲器状态[注5]1释放:CPU可以向发送缓冲器写信息0锁定:CPU不能访问发送缓冲器;有信息正在等待发送或正在发送SR.1DOS数据溢出状态[注6]1溢出:信息丢失,因为RXFIFO中没有足够的空间来存储它0自从最后一次清除数据溢出命令执行无数据溢出发生SR.0RBS接收缓冲器状态[注7]1满:RXFIFO中有可用信息0空:无可用信息5.2.5
状态寄存器
(SR地址2
)状态寄存器的内容反映了SJA1000的状态。状态寄存器对微控制器来说是只读存储器。25位符号名称值功能说明IR7-5---保留[注1]IR.4WUI唤醒中断[注2]1置位:退出睡眠模式时此位被置位0复位:微控制器的任何读访问将清除此位IR.3DOI数据溢出中断[注3]1设置:当数据溢出中断使能位被置为1时向数据溢出状态位传送“0-1”,此位被置位0复位:微控制器的任何读访问将清除此位IR.2EI错误中断1置位:错误中断使能时,错误状态位或总线状态位的变化会置位此位0复位:微控制器的任何读访问将清除此位IR.1TI发送中断1置位:发送缓冲器状态从0变为1(释放)和发送中断使能时,置位此位0复位:微控制器的任何读访问将清除此位IR.0RI接收中断[注4]1置位:当接收FIFO不空和接收中断使能时置位此位0复位:微控制器的任何读访问将清除此位5.2.6中断寄存器
(SR地址3)中断寄存器允许中断源的识别。当寄存器的一位或多位被置位时,/INT(低电平有效)引脚就被激活了。寄存器被微控制器读过之后,所有会导致/INT引脚上的电平漂移的位被复位。中断寄存器对微控制器来说是只读存储器。26发送缓冲器位于CAN地址的10~19,用来存储微控制器要SJA1000发送的信息。发送缓冲器的读/写只能由微控制器在工作模式下完成。在复位模式下读出的值总是“FFH”。(1)识别码(ID)识别码有11位(ID0-ID10)。ID10是最高位.在仲裁过程中是最先被发送到总线上的。识别码就象信息的名字,它在接收器的接受过滤器中被用到,也在仲裁过程中决定总线访问的优先级。识别码的二进制值越低,其优先级越高。这是因为在仲裁时有许多显性位开头的字节。(2)远程发送请求(RTR)如果此位置1,总线将以远程结构发送数据。这意味着此段中没有数据字节。如果RTR位没有被置位,数据将以数据长度码规定的长度来传送。5.2.7发送缓冲器27(3)数据长度码(DLC)信息数据区的字节数根据数据长度码编制。在远程结构传送中,因为RTR被置位,数据长度码是不被考虑的。这就迫使发送/接收数据字节数为0。数据长度码必须正确设置。数据字节数是0~8,用如下方法计算:数据字节数=8×DLC.3+4×DLC.2+2×DLC.1+DLC.0为了保持兼容性,数据长度码不超过8。如果选择的值超过8,则按照DLC规定认为是8。(4)数据区传送的数据字节数由数据长度码决定。发送的第一位是偏移地址12单元的数据字节1的最高位285.2.8接收缓冲器SJA1000从总线上接收到的信息存放在RXFIFO共有64字节的信息空间。接受缓冲器RXB是指在64字节RXFIFO中可以被CPU直接读写的寄存器。共10个字节,偏移地址是20~29。
如何理解RXB与RXFIFO之间的关系?信息2信息3信息1接受缓冲器窗口CAN地址输入信息释放接受缓冲器命令接受缓冲器中的当前可用信息是信息1RXFIFO中信息存储示例29RXFIFO合格的新报文如果RXFIFO中没有足够的空间来存储新的信息,CAN控制器会产生数据溢出。?数据溢出发生时,已部分写入
RXFIFO的当前信息将被删除。通过状态位SR.1置“1”如果中断允许,则数据溢出中断
反应到CPU。
64字节的RXFIFO中最多可以存储的报文数?
取决于各条报文的长度
10字节的RXB中可以存储一个完整的报文?可以(ID+RTR+DLC+数据区)305.2.9接收过滤器注意:ACR、AMR只有在控制寄存器CR的复位请求位CR.0置“1”时(也就是说SJA1000在复位状态时)才可以(读/写)接收过滤器的作用:
使得CAN控制器只接收识别码和接收过滤器中预设值相一致的信息进入到RXFIFO。报文存入RXFIFO的报文被CAN控制器采用。接收过滤器的组成:
由接受代码寄存器(ACR)和接受屏蔽寄存器(AMR)组成。
换句话讲,也就是对接收过滤器的设置通过ACR、AMR实现。
接收代码寄存器(ACR,地址4)接收屏蔽码寄存器(AMR,地址5)31接收码寄存器(ACR)的位分配BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0AC.7AC.6AC.5AC.4AC.3AC.2AC.1AC.0BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0AM.7AM.6AM.5AM.4AM.3AM.2AM.1AM.0接收屏蔽码寄存器(AMR)的位分配
接收码位(AC.7~AC.0)和报文标识符高8位(ID.10~ID.3)中被接收屏蔽码位(AM.7~AM.0)标记为“相关的”位必须相等,报文才会被接收;而对于“不相关的”位,则不受这一限制。
接收屏蔽码寄存器确定接收码寄存器中对应位在接收过滤中起不起作用。当AM.X=0时起作用即“相关的”,当AM.X=1不起作用即“不相关的”。32
一条信息通过了接受过滤器的测试,而且接收缓冲器有足够的空间,那么标识符和数据将被分别顺次写入RXFIFO;同时:
接收码位(AC.7~AC.0)和报文标识符高8位(ID.10~ID.3)中被接收屏蔽码位(AM.7~AM.0)标记为“相关的”位必须相等,报文才会被接收;而对于“不相关的”位,则不受这一限制。例:验收代码寄存器(ACR):00110110验收屏蔽寄存器(AMR):01010001允许接收的数据帧ID:0XXX1011XXX已部分写入RXFIFO的当前信息将被删除。状态寄存器SR的状态位SR.1置“1”如果溢出中断允许(CR.4=1),则数据溢出中断(IR.3=1)反应到CPU。
一条信息通过了接受过滤器的测试,如果接收缓冲区的空间已满,数据溢出位(状态寄存器SR.1)被置为“1”(超载)同时:接收缓冲器状态SR.0位置1(非空);如果接收中断允许位CR.1为1(允许),则接收中断IR.0位置1(产生中断)。335.2.10其它寄存器总线定时寄存器0(BTR0,地址6)总线定时寄存器1(BTR1,地址7)3.输出控制寄存器(OCR,地址8)4.时钟分频寄存器(CDR,地址31)以上寄存器是在BasicCAN与PeliCAN两种模式下共有的寄存器。
偏移地址相同各个位的功能定义不完全相同341.总线定时寄存器0(BTR0,地址6)总线定时寄存器0定义了比特率预设值(BRP)和同步跳转宽度(SJW)的值。复位模式下:总线定时寄存器0是可以被访问(读/写)的工作模式下:
如果选择的是PeliCAN模式,那么此寄存器是只读的;如果选择的是BasicCAN模式,那么读回的值总是FFH。总线定时寄存器0各位的功能如下:
BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SJW.1SJW.2BRP.5BRP.4BRP.3BRP.2BRP.1BRP.035(1)比特率预引比例因子BRPCAN系统时钟tSCL的周期是可编程的,而且决定了本系统的位定时CAN系统时钟由如下公式计算:tSCL=
2×tCLK×(32×BRP.5+16×BRP.4+8×BRP.3+
4×BRP.2+2×BRP.1+BRP.0+1)式中tCLK=XTAL的频率周期=1/fXTAL36(2)同步跳转宽度SJWtSJW=tSCL×(2×SJW.1+SJW.0+1)
为了补偿不同总线控制器的时钟振荡器之间的相位偏移,任何总线控制器必须在当前传送的相关信号沿进行重同步。
同步跳转宽度SJW定义了每一个位周期可以被重同步过程缩短或延长的时间长度,以时钟周期的数目来计算,计算公式如下:372.总线定时寄存器1(BTR1,地址7)复位模式下:总线定时寄存器1是可以被访问(读/写)的工作模式下:
如果选择的是PeliCAN模式,那么此寄存器是只读的;如果选择的是BasicCAN模式,那么读回的值总是FFH。总线定时寄存器1定义了每个位周期的长度、采样点的位置和在每个采样点的采样数目。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SAMTSEG2.2TSEG2.1TSEG2.0TSEG1.3TSEG1.2TSEG1.1TSEG1.0总线定时寄存器1各位的功能如下:
时间段TSEG1时间段TSEG2采样位38(1)采样SAMTSEG1和TSEG2决定了每一个位周期包含的时钟周期的数目和采样点的位置,其中:tSYNCSEG=1×tSCLtTSEG1=
tSCL×(8×TSEG1.3+4×TSEG1.2+2×TSEG1.1+TSEG1.0+1)tTSEG2=tSCL×(4×TSEG2.2+2×TSEG2.1+TSEG2.0+1)采样位:SAM=1时,总线采样3次,建议在低/中速总线(SAEA和B级)上使用,这对过滤总线上的毛刺是有益的;
SAM=0时,总线采样1次,建议用在高速总线上(SAEC级)。(2)时间段1(TSEG1)和时间段2(TSEG2)返回39一个位周期的总体结构CAN系统时钟与震荡周期关系?依据公式40波特率计算方法举例如下:假如外部晶振为16MHz时,如设定SJA1000总线定时寄存器0的值为#D3H=11010011
,设定SJA1000总线定时寄存器1的值为#0AFH=10101111,求系统时钟为多少?系统的波特率为多少?系统时钟tSCL=
2×tCLK×(32×BRP.5+16×BRP.4+8×BRP.3+
4×BRP.2+2×BRP.1+BRP.0+1)tscl=2×(16+2+1+1)×1/
(16×1000000)=2.5us每个位周期时间
=2.5×
[(8+4+2+1+1)+(2+1)+1]=50us波特率=1/50us=20KbpsTSEG1TSEG2TSYN413.输出控制寄存器(OCR,地址8)输出控制寄存器实现了软件对输出驱动器的不同配置。复位模式下:输出控制寄存器是可以被访问(读/写)的。工作模式下:
如果选择的是PeliCAN模式,那么此寄存器是只读的;如果选择的是BasicCAN模式,那么读回的值总是FFH。42BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0OCTP1OCTN1OCPOL1OCTP0OCTN0OCPOL0OCMODE1OCMODE0输出控制寄存器在复位模式下可读/写访问。
该寄存器各位功能如下:OCTP1控制输出晶体管P1;OCTN1控制输出晶体管N1;OCPOL1控制输出极性1;OCTP0控制输出晶体管P0;OCTN0控制输出晶体管N0;OCPOL0控制输出极性0;控制输出模式四种状态43当SJA1000在睡眠模式中时,TX0和TX1引脚根据输出控制寄存器的内容输出隐性的电平。
在复位状态(复位请求=1)或外部复位引脚/RST被拉低时,输出TX0和TX1悬空。44发送的输出阶段可以有不同的模式。表9-11列出了由输出方式(OCMODE1、OCMODE0)确定的四种方式设置。OCMODE1OCMODE0说明00双相输出模式01测试输出模式[注]10正常输出模式11时钟输出模式45①正常输出模式正常模式中位序列(TXD)通过TX0和TX1送出。输出驱动引脚TX0和TX1的电平取决于被OCTPx,OCTNx(悬空,上拉,下拉,推挽)编程的驱动器的特性和被OCPOLx编程的输出端极性。下拉上拉46②时钟输出模式
TX0引脚功能和正常模式中相同。
TX1上的数据流为发送时钟(TXCLK)。发送时钟的上升沿标志着一位的开始。时钟脉冲宽度是1×tscl。③双相输出模式为克服直流分量,隐性位期间输出悬空,显性位期间轮流使用TX0或TX1电平发送,例如,第一位在TX0上发送,第二位在TX1上发送,第三位在TX0上发送等等依此类推。④测试输出模式在测试输出模式中,RX上的电平在下一个系统时钟的上升沿映射到TXX上。
474.时钟分频寄存器(CDR,地址31)时钟分频寄存器控制CLKOUT的频率、屏蔽CLKOUT引脚。控制TX1用做专用的接收中断输出。控制BasicCAN模式与PeliCAN模式的选择。硬件复位后,该寄存器的默认状态在Motorola模式(00000101)12分频,而在Intel模式(00000000)2分频。该寄存器各位的功能如下:BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0CAN模式CBPRXINTEN(0)[注]关闭时钟CD.2CD.1CD.0注:此位不能被写,读值总为0。
48(1)CD.2-CD.0复位模式和工作模式中一样,CD.2-CD.0是可以无限制访问的。这些位是用来定义外部CLKOUT引脚上的频率的。可选的频率一览表见表CD.2CD.1CD.0时钟频率000fosc/2001fosc/4010fosc/6011fosc/8100fosc/10101fosc/12110fosc/14111fosc49(2)时钟关闭(BIT3)只有在复位模式中才可以写访问。置位此位可关闭SJA1000的外部CLKOUT引脚输出。关闭的CLKOUT引脚在睡眠模式中是低,而其它情况下是高。(3)RXINTEN(BIT5)复位模式中只能写访问。此位允许TX1输出用来做专用接收中断输出。当一条已接收的信息成功的通过接受过滤器,一位时间长度的接收中断脉冲就会在TX1引脚输出。发送输出阶段,TX1应该工作在正常输出模式。极性和输出驱动可以通过输出控制寄存器编程。50(4)CBP(BIT6)只可在复位模式中写入。置位CBP,忽略CAN输入比较器,此时只有RX0被激活。没有被使用的RX1输入应被连接到一个确定的电平(例如VSS)。(5)CAN模式(BIT7)只有在复位模式中是可以写的。
如果CDR.7是0,CAN控制器工作于BasicCAN模式。如果CDR.7是1,
CAN控制器工作于PeliCAN模式。515.3SJA1000的PeliCAN模式
CAN控制器SJA1000的内部寄存器对于CPU而言,表现为片上内存映射的外设寄存器,共128字节。从偏移地址32起的所有内部RAM(80字节)被直接映射到CPU接口。在工作和复位模式下,SJA1000具有不同的内部地址定义,因此必须予以区分。教材表518列出了SJA1000在PeliCAN模式下内部寄存器地址的分配情况。需要着重说明的是:从偏移地址11到15是PeliCAN功能的扩展从偏移地址16到28在复位模式与工作模式下功能完全不同,使用时要特别注意。525.3.3模式寄存器MOD5.3.4命令寄存器CMR5.3.5状态寄存器SR5.3.6中断寄存器IR5.3.7中断允许寄存器IER5.3.10错误报警限寄存器EMLR535.3.8仲裁丢失捕捉寄存器ALC偏移地址11)
这个寄存器包括了丢失仲裁的位置信息。仲裁丢失捕捉寄存器对CPU来说是只读存储器。保留位的读回值为0。寄存器各位含义如下:BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0ALC.7
ALC.6
ALC.4ALC.3ALC.2ALC.1ALC.0ALC.5显示了仲裁丢失位置,其值表示丢失仲裁位在一帧报文中所处位置的二进制编码
保留位
54仲裁丢失举例图仲裁丢失时,如果中断允许会产生相应的仲裁丢失中断。读中断寄存器时,中断寄存器中相应的中断标志位被清除。55同时,位流处理器的当前位位置被捕捉送入仲裁丢失捕捉寄存器。寄存器中的内容将不会改变,直到用户通过软件读出这个值。随后,捕捉机制再次被激活。仲裁丢失位解释565.3.9错误代码捕捉寄存器ECC(偏移地址12)
这个寄存器包含了总线错误类型和位置的信息错误代码捕捉寄存器对CPU来说是只读存储器。读中断寄存器时,中断寄存器中相应的中断标志位被清除。但直到捕捉寄存器的值被读出之后,才有可能产生新的总线错误中断。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0ECC.7
ECC.6ECC.5ECC.4ECC.3ECC.2ECC.1ECC.0总线错误类型
错误位置的信息见P153表5-2900位错误01格式错误10填充错误11其他错误错误方向1接收错误0发送错误57
发送缓冲器的布局:无论是标准帧格式SFF或扩展帧格式EFF配置,发送缓冲器允许定义长达8个数据字节的发送报文。
5.3.13发送缓冲器
58(1)发送缓冲器组成发送缓冲器被分为描述符区和数据区,描述符区的第一个字节是帧信息字节(帧信息)。它说明了帧格式(SFF或EFF)、远程或数据帧和数据长度。SFF有2字节的标识符码,EFF有4字节的标识符码。数据区最多包含8个数据字节。发送缓冲器长13字节,对应偏移地址16~28。值得注意的是,使用偏移地址96~108可以直接访问发送缓冲器的RAM。这个RAM区是为发送缓冲器保留的。随后的3字节(偏移地址109、110和111)是通用寄存器。(2)发送缓冲器的描述符区BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0FF
RTRXDLC.3DLC.2DLC.1DLC.0XTX帧信息SFF(偏移地址16)0标准帧0数据帧59注意:1.无论是标准帧格式还是扩展帧格式,标识符连续放置。发送的数据字节数由数据长度码决定。在SFF中最先发送的是在偏移地址19的数据字节的最高位。在EFF中最先发送的是在偏移地址21的数据字节的最高位。2.在BASICCAN中标识符的标记为ID10~ID0,
在PELICAN中标识符的标记在标准帧格式为ID28~ID18,在扩展帧格式为ID28~ID18605.3.14接收缓冲器
接收缓冲器的布局与发送缓冲器很相似。接收缓冲器是RXFIFO的可访问部分,位于偏移地址的16~28之间(13字节)
与发送缓冲器地址相同,依据是读还是写命令来区分是对区分,读接收缓冲器,写发送缓冲器615.3.15接收过滤器
接收过滤器的作用是使SJA1000能够只让标识符与接收过滤器中预设值相一致的报文传给RXFIFO。报文存入FIFO被CAN控制器采用。接收过滤器由接收码寄存器ACRn和接收屏蔽码寄存器AMRn定义。要接收的报文的位组合格式在接收码寄存器中定义。相应的接收屏蔽码寄存器可定义某些位为“不相关”(即可为任意值)的。有两种不同的过滤器模式可在模式寄存器中(MOD.3,AFM)选择:单过滤器模式(AFM位是1);双过滤器模式(AFM位是0)。621.单过滤器配置
这种过滤器配置可以定义一个长度为4字节的过滤器。过滤器字节和报文字节之间位的对应关系取决于当前接收帧格式。(1)标准帧
当接收到的是标准帧报文时,不仅可以对报文ID进行过滤,还可以对接收到有效数据的前2个字节进行过滤。虽然过滤器可以对这2个数据字节进行过滤,但如果此次发送的报文没有数据字节或不足2个数据字节报文仍可能成功通过接收过滤。
63或与比较单过滤器接收标准帧报文的过滤(P151图5-12)64
当收到的是扩展帧报文时,过滤器对29位的标识符和RTR位进行过滤。为了成功接收一条报文,要求所有逐位的比较结果都满足接收的条件。应该注意的是,AMR3和ACR3的最低两位是未使用的。为了和将来的产品兼容,最低两位AMR3.1和AMR3.0应该设置为1(不相关)。(2)扩展帧65单过滤器接收扩展帧报文662.双过滤器配置当命令寄存器(MOD)中的AFM(MOD.3)位为0时,SJA1000有两个过滤器。两个过滤器分别对报文进行过滤,只要报文可以通过其中的一个过滤器,SJA1000就接收该报文。过滤器字节和报文字节之间位的对应关系取决于当前接收帧格式。标准帧
当接收到的报文为标准帧时,两个过滤器的作用是不同的。过滤器1不仅可以对标识符(包括RTR)进行过滤,还可以对接收到的第一个字节进行过滤;而过滤器2仅可对标识符(包括RTR)进行过滤。报文的接收与否,由两个过滤器过滤的结果相“或”决定。67双过滤器配置接收标准帧报文(P163图5-14)68(2)扩展帧
当接收到的报文为扩展帧时,两个过滤器的作用是一样的,都对标识符域的前16位进行过滤。为了成功接收一条报文,要求逐位比较后,至少其中一个过滤器表示“采用”。69双过滤器接收扩展帧报文(P164图5-15)705.4CAN驱动器82C250/82C251
PCA82C250/82C251驱动收发器是CAN控制器(如SJA1000)和物理传输线路之间的接口。它们可以用高达1Mb/s的位速率实现在两条差动电压总线电缆上的传输数据。82C250的主要特性如下:与ISO/DIS11898标准完全兼容;高速(最高可达1Mb/s);具有抗汽车环境下的瞬间干扰,保护总线能力;降低射频干扰(RFI,RadioFrequencyInterference)的斜率控制;过热保护;对电源或地的短路保护;支持低电流待机方式;某一个节点掉电不会影响总线;可连接110个节点。715.4.182C250的硬件结构及引脚定义基本性能参数见P167表5-49725.4.282C250的功能描述PCA82C250器件向总线提供差动发送能力和向CAN控制器提供差动接收能力。它与ISO11898标准完全兼容。引脚8(Rs)允许
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 炼铁过程中的物料流动与传输考核试卷
- 智能消费设备的价格定位策略考核试卷
- 焙烤食品制造企业的产品定价与利润管理考核试卷
- 危险品仓储风险管控技术考核试卷
- 南京信息工程大学《天气学原理和方法Ⅱ》2022-2023学年第一学期期末试卷
- 2023中级注册安全工程师《安全生产专业实务道路运输安全》冲刺提分卷
- 宠物友好城市评选意义考核试卷
- 安全文化的落地实施持续改进与创新发展考核试卷
- 《补肾活血调冲汤治疗肾虚肝郁型排卵障碍性不孕症临床研究》
- 论企业内部控制建设和财务风险防范
- 金属材料试样制作规范
- 110KV变电所竣工初步验收方案
- 统编语文一上《江南》课例点评
- 《一元二次方程》(复习课)说课稿
- 律师事务所金融业务部法律服务方案
- 施工人员计划配置表(共1页)
- 装修工程施工进度计划表excel模板
- 发电机组自动控制器
- 宿舍管理流程图
- 骨科复试问答题
- 新版慢病随访表3页
评论
0/150
提交评论