版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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/B2CAN总线控制节点1控制节点n传感器、变送器MMI
TxRx微处理器CAN控制器CAN收发器图CAN模块装置传感器、变送器MMITxRx微处理器CAN控制器CAN收发器35.1独立CAN控制器SJA1000
SJA1000是适用于汽车和一般工业环境的独立CAN控制器。它是PHILIPS公司生产。SJA1000有两种工作模式:BasicCAN模式,PeliCAN工作模式。BasicCAN模式是PHILIPS公司生产的PCA82C200的替代产品,引脚兼容,电气兼容。PeliCAN工作模式支持CAN2.0B协议。PeliCAN模式下,SJA1000具有与BasicCAN模式下完全不同的寄存器结构。4SJA1000的PeliCAN模式具有以下新增特性:接收和发送标准和扩展格式报文;达64字节的接收FIFO;对于标准和扩展帧都有单/双接收过滤器;可读/写访问的错误计数器;可编程的错误报警限;最近一次错误代码寄存器;对于每一种CAN总线错误都能产生不同的出错中断;5仲裁丢失中断,并带有详细丢失仲裁位置的信息;允许单次发送,当出错或丢失仲裁时不重发;只听模式(监视CAN总线,无应答,无出错标志);支持热插拔;自身发送报文接收(自接收请求);硬件禁止CLKOUT输出。6CAN控制模块SJA1000功能框图7SJA1000CAN控制器由下述几部分组成:1.接口管理逻辑(IML)通过SJA1000复用的地址/数据总线,控制读/写选通信号等,完成对外部主控制器的连接。并向该控制器提供中断信息和状态信息。解释来自CPU的命令,控制SJA1000内部寻址,向CPU提供中断信息和状态信息。
82.发送缓冲器(TXB)发送缓冲器是CPU和位流处理器之间的接口。能够存储发送到CAN总线上的完整报文,缓冲器长13字节,由CPU写入,位流处理器BSP读出。93.接收缓冲器(RXB,RXFIFO)是接收过滤器和CPU之间的接口,用于储存从CAN总线上接收并采用的报文。RXB,长13字节,作为RXFIFO,长64字节,的一个窗口,可被CPU访问。在RXFIFO的支持下,CPU可以在处理一个报文的同时接收其他报文。10信息2信息3信息1接收缓冲器窗口CAN地址输入信息释放接收缓冲器命令接收缓冲器中的当前可用信息是信息1图RXFIFO中信息存储示例114.接收过滤器(ACF)接收过滤器把接收数据和接收识别码的内容相比较,以决定是否接收信息。如果比较的结果为真,则报文完整地存入RXFIFO中。125.位流处理器:位流处理器是一个序列发生器,控制发送缓冲器、RXFIFO和CAN总线之间的数据流。完成CAN总线上的错误检测、仲裁、填充和错误处理等功能。136.位定时逻辑:位定时逻辑监视CAN总线并处理总线位定时。它同步于帧起始的从隐性到显性电平的跳变(硬同步),并且在接收报文的过程中进行重同步(软同步)。提供可编程的时间段用于补偿传播延时和相位变化,定义采样时刻和一位时间内的采样次数。147.错误管理逻辑:负责错误界定。接收来自位流处理器的出错报告,并将分析出的出错状态传达给位流处理器和接口管理逻辑。15CAN控制模块SJA1000管脚排列图:控制线:7地址/数据:8时钟:2电源:6复位:1发送接收:416符号引脚说明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管脚功能描述17VDD312输出驱动的5V电压源TX013从CAN输出驱动器0输出到物理线路上TX114从CAN输出驱动器1输出到物理线路上VSS315输出驱动器接地/INT16中断输出,用于中断微控制器;/INT在内部中断寄存器各位都被置位时低电平有效;/INT是开漏输出,且与系统中的其它/INT是线或的;此引脚上的低电平可以把IC从睡眠模式中激活/RST17复位输入,用于复位CAN接口(低电平有效);把/RST引脚通过电容连到VSS,通过电阻连到VDD可自动上电复位(例如C=1μF;R=50kΩ)VDD218输入比较器的5V电压源RX0RX11920从物理的CAN总线输入到SJA1000的输入比较器;显性电平将会唤醒SJA1000的睡眠模式;如果RX1比RX0的电平高,就读回显性电平,反之读回隐性电平;如果时钟分频寄存器的CBP位被置位,就忽略CAN输入比较器以减少内部延时;这种情况下只有RX0是激活的;高电平被认为是隐性,而低电平被认为是显性。VSS221输入比较器的接地端VDD122逻辑电路的5V电压源18振荡器和时钟:四种不同的振荡器连接方法。195.2SJA1000的BasicCAN模式5.2.1BasicCAN模式下的地址分配
SJA1000对于CPU而言,是可编程外围芯片。SJA1000的地址区包括控制段、发送、接收信息缓冲区三大部分:①控制段:在初始化期间,控制段可被编程来配置通讯参数。同时CPU通过这个段来控制CAN总线上的通信。20复位模式:当硬件复位或控制器掉线时会自动进入复位模式;工作模式:工作模式是通过置零控制寄存器的复位请求位激活的。
接收码寄存器、屏蔽码寄存器、总线定时寄存器0、总线定时寄存器1以及输出控制寄存器只有在控制寄存器中的复位请求位(CR.0)被置1才可访问。21②发送缓冲区:一个报文在发送之前必须写入发送缓冲器,再向总线上串行送出。③接收缓冲区:在成功接收一个报文后,CPU从接收缓冲器读取报文并释放这部分缓存,使其可继续用于存储后续收到的报文。控制段:SJA1000在BasicCAN模式下的地址中共有10个字节,偏移地址分别为0~9。发送缓冲器:位于CAN地址的10~19,占10个字节,接收缓冲器:位于CAN地址的20~29,占10个字节,22CAN地址寄存器名称(符号)段工作模式复位模式读写读写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]2310识别码(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)-2420识别码(ID.10-3)接收缓冲器(10-3)(10-3)(10-3)(10-3)21识别码(ID.2-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)时钟分频器时钟分频器时钟分频器时钟分频器25SJA1000有两种复位方式:硬件复位与软件复位。硬件复位是指在芯片的复位脚上提供一定宽度低电平,硬件复位需要足够的时间才能使控制寄存器中的复位请求位置1;软件复位是指通过软件设置CR.0为1或由脱离总线引起的复位。
5.2.2复位值26SJA1000检测到复位请求位为1后,将中止当前报文的接收/发送而进入复位模式。当CR.0复位请求位从1转变到0,SJA1000返回到工作模式。27寄存器名称位符号名称值硬件复位软件CR.0或总线关闭复位控制CR.7-保留00CR.6-保留××CR.5-保留11CR.4OIE溢出中断使能××CR.3EIE错误中断使能××CR.2TIE发送中断使能××CR.1RIE接收中断使能××CR.0RR复位请求1(复位模式)1(复位模式)命令CMR.7-保留读命令寄存器的结果总是“11111111”读命令寄存器的结果总是“11111111”CMR.6-保留CMR.5-保留CMR.4GTS睡眠CMR.3CDO清除数据溢出CMR.2RRB释放接收缓冲器CMR.1AT忽略传送CMR.0TR发送请求复位模式下各寄存器的状态28状态SR.7BS总线状态0(在线)×SR.6ES出错状态0(无错)×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(复位)295.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回到工作模式30位符号名称值功能说明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”31位符号名称值功能说明SR.7BS总线状态1脱离总线:SJA1000退出总线活动0在线:SJA1000加入总线活动SR.6ES出错状态1出错:至少出现一个错误计数器超过CPU报警限制0Ok:两个错误计数器都在报警限制以下SR.5TS发送状态1发送:SJA1000在传送信息0空闲:没有要发送的信息SR.4RS接收状态1接收:SJA1000正在接收信息0空闲:没有正在接收的信息SR.3TCS发送完毕状态1完毕:最近一次发送请求被成功处理0未完毕:当前发送请求未处理完毕SR.2TBS发送缓冲器状态1释放:CPU可以向发送缓冲器写信息0锁定:CPU不能访问发送缓冲器;有信息正在等待发送或正在发送SR.1DOS数据溢出状态1溢出:信息丢失,因为RXFIFO中没有足够的空间来存储它0自从最后一次清除数据溢出命令执行无数据溢出发生SR.0RBS接收缓冲器状态1满:RXFIFO中有可用信息0空:无可用信息5.2.5状态寄存器(SR地址2):只读存储器32位符号名称值功能说明IR7-5---保留[注1]IR.4WUI唤醒中断1置位:退出睡眠模式时此位被置位0复位:微控制器的任何读访问将清除此位IR.3DOI数据溢出中断1设置:当数据溢出中断使能位被置为1时向数据溢出状态位传送“0-1”,此位被置位0复位:微控制器的任何读访问将清除此位IR.2EI错误中断1置位:错误中断使能时,错误状态位或总线状态位的变化会置位此位0复位:微控制器的任何读访问将清除此位IR.1TI发送中断1置位:发送缓冲器状态从0变为1(释放)和发送中断使能时,置位此位0复位:微控制器的任何读访问将清除此位IR.0RI接收中断1置位:当接收FIFO不空和接收中断使能时置位此位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数据字节1~812~19数据数据数据数据数据数据数据数据5.2.7发送缓冲器34发送缓冲器位于CAN地址的10~19。发送缓冲器的读/写只能由微控制器在工作模式下完成。在复位模式下读出的值总是“FFH”。(1)识别码(ID)识别码有11位(ID.0-ID.10)。ID.10是最高位.在仲裁过程中是最先被发送到总线上的。识别码的二进制值越低,其优先级越高。在接收过滤器中被用到,在仲裁过程中决定总线访问的优先级。(2)远程发送请求(RTR)如果此位置1,总线将以远程结构发送数据。这意味着此段中没有数据字节。如果没有置位RTR位,数据将以数据长度码规定的长度来传送。35(3)数据长度码(DLC)信息数据区的字节数根据数据长度码编制。数据字节数是0~8,用如下方法计算:数据字节数=8×DLC.3+4×DLC.2+2×DLC.1+DLC.0如果选择的值超过8,则按照DLC规定认为是8。(4)数据区传送的数据字节数由数据长度码决定。发送的第一位是地址12单元的数据字节1的最高位365.2.8接收缓冲器名称地址D7D6D5D4D3D2D1D0接收缓冲器标识符(RTR,DLC)20ID.10ID.9ID.8ID.7ID.6ID.5ID.4ID.321ID.2ID.1ID.0RTRDLC.3DLC.2DLC.1DLC.0数据字节1~822~29数据数据数据数据数据数据数据数据37SJA1000从总线上接收到的信息存放在RXFIFO共有64字节的信息空间。接收缓冲器RXB是指在64字节RXFIFO中可以被CPU直接读写的寄存器。共10个字节,偏移地址是20~29。
如何理解RXB与RXFIFO之间的关系?信息2信息3信息1接收缓冲器窗口CAN地址输入信息释放接收缓冲器命令接收缓冲器中的当前可用信息是信息1RXFIFO中信息存储示例38RXFIFO合格的新报文如果RXFIFO中没有足够的空间来存储新的信息,CAN控制器会产生数据溢出。数据溢出发生时,已部分写入
RXFIFO的当前信息将被删除。溢出状态位SR.1置“1”如果中断允许,则数据溢出中断
反应到CPU。
64字节的RXFIFO中最多可以存储的报文数?
取决于各条报文的长度
10字节的RXB中可以存储一个完整的报文?可以(ID+RTR+DLC+数据区)395.2.9接收过滤器注意:ACR、AMR只有在控制寄存器CR的复位请求位CR.0置“1”时(也就是说SJA1000在复位状态时)才可以(读/写)接收过滤器的作用:
使得CAN控制器只接收识别码和接收过滤器中预设值相一致的信息进入到RXFIFO。报文存入FIFO的报文被CAN控制器采用。接收过滤器的组成:
由接收代码寄存器(ACR)和接收屏蔽寄存器(AMR)组成。
接收代码寄存器(ACR,地址4)接收屏蔽码寄存器(AMR,地址5)40接收码寄存器(ACR)的位分配BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0AC.7AC.6AC.5AC.4AC.3AC.2AC.1AC.0BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0AM.7AM.6AM.5AM.4AM.3AM.2AM.1AM.0接收屏蔽码寄存器(AMR)的位分配接收屏蔽寄存器定义接收代码寄存器的相应位对接收过滤器是“相关”的或“不相关”的。1=“不相关”,0=“相关”。{[(ID.10-ID.3)≡(AC.7-AC.0)]或(AM.7-AM.0)}
≡1111111141例:ACR.7ACR.6ACR.5ACR.4ACR.3ACR.2ACR.1ACR.0ACR00110110AMR01010001信息ID0X1X011XXXXID.10ID.9ID.8ID.7ID.6ID.5ID.4ID.3ID.2ID.1ID.042一条信息通过了接收过滤器的测试,而且接收缓冲器有足够的空间,那么标识符和数据将被分别顺次写入RXFIFO;同时:接收缓冲器状态SR.0位置1(非空);如果接收中断允许位CR.1为1(允许),则接收中断IR.0位置1(产生中断)。如果接收缓冲区的空间已满:状态寄存器SR的数据溢出状态位SR.1置“1”已部分写入RXFIFO的当前信息将被删除。如果溢出中断允许(CR.4=1),产生数据溢出中断。
435.2.10其它寄存器总线定时寄存器0(BTR0,地址6)总线定时寄存器1(BTR1,地址7)3.输出控制寄存器(OCR,地址8)4.时钟分频寄存器(CDR,地址31)以上寄存器是在BasicCAN与PeliCAN两种模式下共有的寄存器。
偏移地址相同各个位的功能定义不完全相同441.总线定时寄存器0(BTR0,地址6)总线定时寄存器0定义了比特率预设值(BRP)和同步跳转宽度(SJW)的值。复位模式下:总线定时寄存器0是可以被访问(读/写)的工作模式下:
如果选择的是PeliCAN模式,那么此寄存器是只读的;如果选择的是BasicCAN模式,那么读回的值总是FFH。总线定时寄存器0各位的功能如下:
BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SJW.1SJW.2BRP.5BRP.4BRP.3BRP.2BRP.1BRP.045(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/fXTAL46(2)同步跳转宽度SJWtSJW=tSCL×(2×SJW.1+SJW.0+1)
为了补偿不同总线控制器的时钟振荡器之间的相位偏移,任何总线控制器必须在当前传送的相关信号沿进行重同步。
同步跳转宽度SJW定义了每一个位周期可以被重同步过程缩短或延长的时间长度,以时钟周期的数目来计算,计算公式如下:472.总线定时寄存器1(BTR1,地址7)复位模式下:总线定时寄存器1是可以被访问(读/写)的工作模式下:
如果选择的是PeliCAN模式,那么此寄存器是只读的;如果选择的是BasicCAN模式,那么读回的值总是FFH。总线定时寄存器1定义了每个位周期的长度、采样点的位置和在每个采样点的采样数目。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0SAMTSEG2.2TSEG2.1TSEG2.0TSEG1.3TSEG1.2TSEG1.1TSEG1.0总线定时寄存器1各位的功能如下:
时间段TSEG1时间段TSEG2采样位48(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次,建议在低/中速总线上使用。
SAM=0时,总线采样1次,建议用在高速总线上。(2)时间段1(TSEG1)和时间段2(TSEG2)返回49一个位周期的总体结构CAN系统时钟与振荡周期关系依据公式50波特率计算方法举例如下:假如外部晶振为16MHz时,如设定SJA1000总线定时寄存器0的值为#D3H=11010011
,设定SJA1000总线定时寄存器1的值为#0AFH=10101111,求系统时钟为多少?系统的波特率为多少?tscl=2×(16+2+1+1)/
16×1000000=2.5us每个位周期时间
=2.5×
[(8+4+2+1+1)+(2+1)+1]=50us波特率=1/50us=20KbpsTSEG1TSEG2TSYN513.输出控制寄存器(OCR,地址8)输出控制寄存器实现了软件对输出驱动器的不同配置。复位模式下:输出控制寄存器是可以被访问(读/写)的。工作模式下:
如果选择的是PeliCAN模式,那么此寄存器是只读的;如果选择的是BasicCAN模式,那么读回的值总是FFH。52BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0OCTP1OCTN1OCPOL1OCTP0OCTN0OCPOL0OCMODE1OCMODE0输出控制寄存器在复位模式下可读/写访问。
该寄存器各位功能如下:OCTP1控制输出晶体管P1;OCTN1控制输出晶体管N1;OCPOL1控制输出极性1;OCTP0控制输出晶体管P0;OCTN0控制输出晶体管N0;OCPOL0控制输出极性0;控制输出模式四种状态53当SJA1000在睡眠模式中时,TX0和TX1引脚根据输出控制寄存器的内容输出隐性的电平。
在复位状态(复位请求=1)或外部复位引脚/RST被拉低时,输出TX0和TX1悬空。54发送的输出阶段可以有不同的模式。OCMODE1OCMODE0说明00双相输出模式01测试输出模式[注]10正常输出模式11时钟输出模式55①正常输出模式正常模式中位序列(TXD)通过TX0和TX1送出。输出驱动引脚TX0和TX1的电平取决于被OCTPx,OCTNx,OCPOLx编程的输出端极性。56②时钟输出模式
TX0引脚功能和正常模式中相同。
TX1上的数据流为发送时钟(TXCLK)。发送时钟的上升沿标志着一位的开始。时钟脉冲宽度是1×tscl。57③双相输出模式
轮流使用TX0或TX1电平发送,例如,第一位在TX0上发送,第二位在TX1上发送,第三位在TX0上发送等等依此类推。58④测试输出模式在测试输出模式中,RX上的电平在下一个系统时钟的上升沿反映到TXX上。59时钟分频寄存器控制CLKOUT的频率、屏蔽CLKOUT引脚。控制TX1上的专用接收中断脉冲输出。控制接收比较器旁路。控制BasicCAN模式与PeliCAN模式的选择。硬件复位后,该寄存器的默认状态在Motorola模式(00000101)12分频,而在Intel模式(00000000)2分频。该寄存器各位的功能如下:4.时钟分频寄存器(CDR,地址31)60BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0CAN模式CBPRXINTEN(0)[注]关闭时钟CD.2CD.1CD.0注:此位不能被写,读值总为0。
61(1)CD.2-CD.0复位模式和工作模式中一样,CD.2-CD.0是可以无限制访问的。这些位是用来定义外部CLKOUT引脚上的频率的。可选的频率一览表见表CD.2CD.1CD.0时钟频率000fosc/2001fosc/4010fosc/6011fosc/8100fosc/10101fosc/12110fosc/14111fosc62(2)时钟关闭(BIT3)复位模式中才可以写访问。设置此位可禁能SJA1000的外部CLKOUT引脚。如果置位此位,CLKOUT引脚在睡眠模式中是低,而其它情况下是高。(3)RXINTEN(BIT5)复位模式中可写。此位允许TX1输出用来做专用接收中断输出。当一条已接收的信息成功的通过接收过滤器,一位时间长度的接收中断脉冲就会在TX1引脚输出。发送输出应该工作在正常输出模式。极性和输出驱动可以通过输出控制寄存器编程。63(4)CBP(BIT6)只可在复位模式中写入。置位CBP,忽略CAN输入比较器,只有RX0被激活。没有被使用的RX1输入应被连接到一个确定的电平VSS.(5)CAN模式(BIT7)只有在复位模式中是可以写的。
如果CDR.7是0,CAN控制器工作于BasicCAN模式。如果CDR.7是1,
CAN控制器工作于PeliCAN模式。645.3SJA1000的PeliCAN模式
CAN控制器SJA1000的内部寄存器对于CPU而言,表现为片上内存映射的外设寄存器,共128字节。从偏移地址32起的所有内部RAM(80字节)被直接映射到CPU接口。65在工作和复位模式下,SJA1000具有不同的内部地址定义,因此必须予以区分。见教材P138表5-18。需要着重说明的是:从偏移地址11到15是PeliCAN功能的扩展从偏移地址16到28在复位模式与工作模式下功能完全不同,使用时要特别注意。665.3.3模式寄存器675.3.4命令寄存器685.3.5状态寄存器695.3.6中断寄存器:地址3705.3.6中断寄存器:地址3715.3.7中断允许寄存器:地址4725.3.7中断允许寄存器:地址4735.3.8仲裁丢失捕捉寄存器ALC(偏移地址11)
这个寄存器包括了丢失仲裁的位置信息。仲裁丢失捕捉寄存器对CPU来说是只读存储器。保留位的读回值为0。寄存器各位含义如下:BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0ALC.7
ALC.6ALC.4ALC.3ALC.2ALC.1ALC.0ALC.5显示了仲裁丢失位置,其值表示丢失仲裁位在一帧报文中所处位置的二进制编码
保留位
74仲裁丢失举例图仲裁丢失时,如果中断允许会产生相应的仲裁丢失中断。读中断寄存器时,中断寄存器中相应的中断标志位被清除。75同时,位流处理器的当前位位置被捕捉送入仲裁丢失捕捉寄存器。寄存器中的内容将不会改变,直到用户通过软件读出这个值。随后,捕捉机制再次被激活。仲裁丢失位解释765.3.9错误代码捕捉寄存器ECC(偏移地址12)
这个寄存器包含了总线错误类型和位置的信息错误代码捕捉寄存器对CPU来说是只读存储器。BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0ECC.7
ECC.6ECC.5ECC.4ECC.3ECC.2ECC.1ECC.0总线错误类型
错误位置的信息见P153表5-2900位错误01格式错误10填充错误11其他错误错误方向1接收错误0发送错误77
发送缓冲器的布局:无论是标准帧格式SFF或扩展帧格式EFF配置,发送缓冲器允许定义长达8个数据字节的发送报文。
5.3.13发送缓冲器
78(1)发送缓冲器组成发送缓冲器被分为描述符区和数据区发送缓冲器长13字节,对应偏移地址16~28。(2)发送缓冲器的描述符区BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0FF
RTRXDLC.3DLC.2DLC.1DLC.0XTX帧信息SFF(偏移地址16)0标准帧0数据帧79注意:1.无论是标准帧格式还是扩展帧格式,标识符连续放置。发送的数据字节数由数据长度码决定。2.在SFF中最先发送的是偏移地址19,在EFF中最先发送的是在偏移地址21的数据字节的最高位。3.在BASICCAN中标识符的标记为ID.10~ID.0,
在PELICAN中标识符的标记在标准帧格式为ID.28~ID.18,在扩展帧格式为ID.28~ID.0
805.3.14接收缓冲器
接收缓冲器的布局与发送缓冲器很相似。接收缓冲器是RXFIFO的可访问部分,位于偏移地址的16~28之间
?
与发送缓冲器地址相同,依据是读还是写命令来区分,读接收缓冲器
,写发送缓冲器
815.3.15接收过滤器
接收过滤器的作用是使SJA1000能够只让标识符与接收过滤器中预设值相一致的报文传给RXFIFO。报文存入FIFO被CAN控制器采用。接收过滤器由接收码寄存器ACRn和接收屏蔽码寄存器AMRn定义。要接收的报文的位组合格式在接收码寄存器中定义。相应的接收屏蔽码寄存器可定义某些位为“不相关”(即可为任意值)的。有两种不同的过滤器模式可在模式寄存器中(MOD.3,AFM)选择:单过滤器模式(AFM位是1);双过滤器模式(AFM位是0)。821.单过滤器配置
这种过滤器配置可以定义一个长度为4字节的过滤器。过滤器字节和报文字节之间位的对应关系取决于当前接收帧格式。(1)标准帧
当接收到的是标准帧报文时,不仅可以对报文ID进行过滤,还可以对接收到有效数据的前2个字节进行过滤。虽然过滤器可以对这2个数据字节进行过滤,但如果此次发送的报文没有数据字节或不足2个数据字节报文仍可能成功通过接收过滤。
83或与比较单过滤器接收标准帧报文的过滤(P151图5-12)84当收到的是扩展帧报文时,过滤器对29位的标识符和RTR位进行过滤。为了成功接收一条报文,要求所有逐位的比较结果都满足接收的条件。应该注意的是,AMR3和ACR3的最低两位是未使用的。为了和将来的产品兼容,最低两位AMR3.1和AMR3.0应该设置为1(不相关)。(2)扩展帧85单过滤器接收扩展帧报文862.双过滤器配置当模式寄存器(MOD)中的AFM(MOD.3)位为0时,SJA1000有两个过滤器。只要报文可以通过其中的一个过滤器,SJA1000就接收该报文。标准帧:当接收到的报文为标准帧时,两个过滤器的作用是不同的。过滤器1不仅可以对标识符(包括RTR)进行过滤,还可以对接收到的第一个字节进行过滤;过滤器2仅可对标识符(包括RTR)进行过滤。报文的接收与否,由两个过滤器过滤的结果相“或”决定。87双过滤器配置接收标准帧报文(P163图5-14)88(2)扩展帧
当接收到的报文为扩展帧时,两个过滤器的作用是一样的,都对标识符域的前16位进行过滤。为了成功接收一条报文,要求逐位比较后,至少其中一个过滤器表示“采用”。89双过滤器接收扩展帧报文(P164图5-15)905.4CAN驱动器82C250/82C25182C250是CAN控制器和物理总线间的接口器件,也称为总线驱动器。提供对总线的差动发送和差动接收能力。9182C250主要特性:与ISO11898标准完全兼容速度最高可达1Mbps具有抗瞬间干扰,保护总线能力降低射频干扰(RFI)的斜率控制过热保护对电源或地的短路保护支持低电流待机方式某一个节点掉电不会影响总线可连接110个节点925.4.182C250的硬件结构及引脚定义基本性能参数见P167表5-499382C250基本性能数据如表945.4.282C250的功能描述PCA82C250器件向总线提供差动发送能力和向CAN控制器提供差动接收能力。它与ISO11898标准完全兼容。引脚8(Rs)允许选择3种不同的工作方式:高速、斜率控制和待机。95引脚8(RS)允许选择三种不同的工作方式:高速、斜率控制和待机。96通过将引脚8接地可选择高速方式。发送器输出晶体管尽可能快地启动和关闭。在这种模式下没有措施用于限制信号上升和下降的斜率。应使用屏蔽电缆避免射频干扰问题。97对于速度较低或长度较短的总线,可用非屏蔽双绞线或平行线。为降低射频干扰,应限制上升和下降斜率。上升和下降斜率可通过由引脚8至地连接的电阻进行控制。斜率正比于引脚8上的电流输出。若引脚8接高电平,则电路进入低电流待机方式。在这种方式下,发送器被关闭,而接收器转至低电流。由于在待机方式下,接收器比较慢,因此,第一个报文将被丢失。98CAN收发器真值表995.4.382C250的应用实例CAN收发器不采用和采用电流隔离时的两种情况。图5-18
CAN收发器不采用电流隔离时的应用实例100图5-19
CAN收发器采用电流隔离时的应用实例1015.5基于CAN总线的远程工业电表抄表系统开发实例
5.5.1远程抄表系统概述
基于CAN总线的远程抄表系统分为两个层次,一个是中央控制室的中央监控单元,一个是现场的远程采集单元。
102远程采集单元负责对现场的电能表进行实时脉冲采集,同时完成数据的统计、存储;中央监控单元可以定期或不定期地从远程采集单元获取所需数据,并完成数据统计、报表打印及数据库的管理。中央监控单元与远程采集单元之间通过CAN总线连接在一起。中央监控单元处于主控位置,远程采集单元可以随时响应中央监控单元的命令。103基于CAN总线的远程抄表系统结构图104远程采集单元远程采集单元涉及CAN通信方面的一些功能特点如下:手动设定远程采集单元地址;用电量和时段可以通过中央监控单元设置,每个远程采集单元各自具有内部实时时钟,可以通过通信方式统一校正时钟;可随时响应中央监控单元的查询命令,在与上位机进行数据通信的同时不影响脉冲计数。远程采集单元主要由单片机80C552及采集、存储、显示、遥控和通信接口等模块组成,每个采集单元能采集和处理16块电表的电脉冲信号。105CAN通信模块的硬件设计1065.5.3基于CAN的通信协议
远程抄表系统只用了CAN4种帧类型中的数据帧。假设系统将数据帧分为16种,有16个控制命令,中央监控单元向远程采集单元发送的数据帧格式为:
标识符的内容为远程采集单元的编号;命令号,范围是1~16;第4~10数据字节为命令参数。字节1字节2字节3字节4~10目的采集器号数据长度命令号参数107远程采集单元向中央监控单元发送的数据帧格式为:字节1字节2字节3字节4~10源采集器号数据长度帧号返回数据108
可以看到,对于一个数据帧,除了数据域可以携带用户信息外,仲裁域(标识符)和控制域(数据长度)同样可用于用户信息的传递。在本例中,标识符不仅仅是报文的编号,体现报文的优先级,同时也说明了该报文的来源或目的地。1095.5.5通信实例【例5.1】中央监控单元设置地址为15的远程采集单元的系统时钟,命令号为1:该命令无须远程采集单元返回任何数据,因而发送成功即认为命令已执行。110【例5.2】中央监控单元读取地址为15的远程采集单元的当前小时用电数据,命令号为4:远程采集单元返回33字节有效数据,共需5帧。每个表高字节表示整数部分,低字节表示小数部分。1115.6CAN通信软件设计
通信软件一般由三部分组成:初始化程序、发送程序和接收程序。
5.6.1初始化程序
三种方法进入初始化程序:①上电复位;②硬件复位;③软件复位:运行期间通过给CAN控制器发一个复位请求(置复位请求位为1)。CAN控制器SJA1000必须在复位,并运行初始化程序后才能用于CAN通讯。
112113在复位模式中,主控制器必须配置SJA1000控制段的有关寄存器有:时钟分频寄存器(CDR):BasicCAN或PeliCAN模式禁能CLKOUT管脚旁路CAN输入比较器TX1被用作专门的接收中断输出114验收代码和验收屏蔽寄存器(ACR、AMR)总线定时寄存器(BTR)定义总线上的位速率定义位周期上的采样点定义在一个位周期里采样的数目输出控制寄存器(OCR)定义CAN总线输出管脚TX0和TX1的输出模式定义TX0和TX1输出管脚配置1155.6.2数据发送程序发送程序只需要被发送的信息帧传送到CAN控制器的发送缓冲器。将命令寄存器里的“发送请求”标志置位——启动发送命令即可。发送程序可采用SJA1000的中断请求或查询状态标志两种控制方式来实现。
1165.6.2.1中断控制发送
采用中断控制的发送方式,发送程序分为两部分:一是主程序,二是中断服务程序。主程序主要用于控制信息的发送,同时当发送区满时,把要发送的信息暂存到临时存储区;中断发送程序负责把临时存储区中的暂存信息发送出去。1171185.6.2.2查询控制发送CAN控制器的发送中断被屏蔽。1195.6.2.3忽略发送
如果对一条发送的信息请求中止,可置位命令寄存器“中止发送”位,执行中止发送命令。例如,为了发送一个比当前信息更紧急的信息。可中止发送当前信息。
1201215.6.3数据接收程序5.6.3.1查询控制接收1225.6.3.2中断控制接收1235.6CAN通信软件设计将所有信息一次读出的过程:在释放了接收缓冲器后,SJA1000会检查状态寄存器中接收缓冲器状态“RBS”看是否有更多信息,而所有有效的信息都会被循环读出。
1241255.6.3.3数据溢出处理
万一接收缓冲区FIFO满了,但还在接收其他信息,就会通过置位状态寄存器中的数据溢出状态位,通知主控制器有数据溢出。如果数据溢出中断使能,SJA1000会产生一个数据溢出中断。检测到数据溢出后,可以根据“数据溢出”原则启动一个相应的处理程序。1265.6.4中断SJA1000在BasicCAN模式里有5个中断源,在PeliCAN模式里被扩展到8个。一旦CAN产生中断,SJA1000会将中断输出设为低电平,直到主控制器通过读SJA1000的中断寄存器对中断采取相应措施。中断被处理的次序取决于系统。由整个系统的设计者决定。127PeliCAN模式128CS BITP2.7;片选信号
;CAN寄存器描述
C0_CR EQU 00 ;控制寄存器
C0_CMR EQU 01 ;命令寄存器
C0_SREQU 02 ;状态寄存器
C0_IR EQU 03 ;中断寄存器
C0_ACR EQU 04 ;接收码寄存器
C0_AMR EQU 05 ;接收屏蔽寄存器
C0_BTR0 EQU 06 ;总线定时寄存器0 C0_BTR1 EQU 07 ;总线定时寄存器1 C0_OCR EQU 08 ;输出控制寄存器
C0_CDR EQU 31 ;时钟分频寄存器
RECSTART EQU 40H;存放接收数据RAM区首地址程序实例129 ORG 0000H LJMPMAIN ORG 0013H LJMPEXINT1 ;------------------------------------------ ;初始化SJA1000寄存器;------------------------------------------ORG 0030H MAIN:CLR EA;关中断WC0_CR:MOVR1,#C0_CR;设定控制寄存器
MOVA,#01H;复位请求位置1LCALLWCAN LCALLRCAN;读出SJA1000控制寄存器值130;------------------------------------------ ;读写SJA1000寄存器;------------------------------------------WCAN:CLR P2.7 MOVX@R1,A SETBP2.7 RET RCAN:CLRP2.7 MOVXA,@R1 SETBP2.7 RET131ANLA,#01H;该值与#01H数值相与JZWC0_CR;非复位模式,继续设定CRMOVR1,#C0_CDR;设定时钟分频寄存器MOVA,#48H;BasicCAN模式,禁能时钟引脚LCALLWCANMOVR1,#C0_ACR;设定ACRMOVA,#55;置接收代码为00110111(55)LCALLWCANMOVR1,#C0_AMR;设定AMRMOVA,#0FFHLCALLWCAN132MOVR1,#C0_BTR0;设定BTR0MOVA,#0D3H ;系统时钟2.5usLCALLWCANMOVR1,#C0_BTR1;设定BTR1MOVA,#0AFH ;位周期时间50us,波特率20KLCALLWCAN MOVR1,#C0_OCR;设定OCRMOVA,#00011010B;正常模式,推挽方式LCALLWCAN 133RC0_CR:MOV R1,#C0_CR;设定CR MOV A,#06H;允许发送、接收中断,
LCALLWCAN LCALLRCANANL A,#01H;与#01H数值相与
JNZ RC0_CR;非工作模式继续设定
SETBIT1;外部中断1后沿触发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度大数据分析服务及解决方案合同范本4篇
- 二零二五版房贷展期及续贷服务合同3篇
- 二零二五年度10kv配电设施安全检测与维护合同3篇
- 2025版房地产租赁合同:商业写字楼租赁协议4篇
- 二零二五年度珠宝首饰合伙经营合同范本3篇
- 二零二五年度智能制造临时操作员派遣协议4篇
- 二零二五年度房产买卖合同变更协议4篇
- 二零二五年度离异父母子女抚养权与责任协议3篇
- 2025年企业办公区绿植租赁与养护管理服务协议4篇
- 2025年洗车场综合服务及品牌形象转让合同3篇
- GB/T 15593-2020输血(液)器具用聚氯乙烯塑料
- 2023年上海英语高考卷及答案完整版
- 西北农林科技大学高等数学期末考试试卷(含答案)
- 金红叶纸业简介-2 -纸品及产品知识
- 《连锁经营管理》课程教学大纲
- 《毕淑敏文集》电子书
- 颈椎JOA评分 表格
- 员工岗位能力评价标准
- 定量分析方法-课件
- 朱曦编著设计形态知识点
- 110kV变电站工程预算1
评论
0/150
提交评论