参考技术-sja1000独立can控制器中文_第1页
参考技术-sja1000独立can控制器中文_第2页
参考技术-sja1000独立can控制器中文_第3页
参考技术-sja1000独立can控制器中文_第4页
参考技术-sja1000独立can控制器中文_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

SJA1000CAN接口管理逻辑发送缓冲器接收缓冲器TXB验收滤波器位流处理器位时序逻辑错误管理逻辑PCA82C200BasicCANPeliCAN模式的区BasicCAN控制寄存器命令寄存器状态寄存器中断寄存器PeliCAN模式寄存器命令寄存器状态寄存器中断寄存器中断使能寄存器仲裁丢失捕捉寄存器误码捕捉寄存器错误时序寄存器RX错误计数寄存器TX错误计数寄存器RX信息计数器RX缓冲器起始地址寄存器01输出控制寄存器时钟分频寄存器1特性PCA82C200模式即默认的BasicCAN模扩展的接收缓冲器64字节先进先出CAN2.0B协议兼容PCA82C200--可编程的错误限--对每一个CAN--单次发送无重发--只听模式无确认无活动的出错标志--支持热插拔软件位速率检--验收滤波器扩展4字节代码4字--自身信息接收自接收请求增强的温度适应-40SJA1000是一种独于移动目标和一般工业环境中的区域网络控制CANPHILIPSPCA82C200CAN控制器BasicCAN的替代产品而且它增加了一种新的工作模式PeliCAN,这种模式支持具有很多新特性的CAN2.0B协议塑质双列直插封装28引脚塑质小型线外封装28引脚外宽ALE/AS,CS,RD/E,WR,MODE,AD7to

3to11, 782,位流处理28位流处理

8接口管接口管理逻位时位时序逻

复振荡图复振荡2128-3ALE输入信号In模式AS输入信号Motorola模4片选输入低电平允许/RD5微控制器的/RD信号In模式或E使能信号Motorola模6微控制器的/WR信号In模式或RD//WR信号7SJA1000产生的提供给微控制器的时钟输出信号时钟信号来动时可该引89输入到振荡器放大电路输入注振荡放大电路输出输出注中断输出用于中断微控制器/INT置位时低电平有效/INT是开漏输出且与系统中的其它/INT是线或的此引脚上的低电平可以把IC从睡眠模式中激活复位输入用于复位CAN接口低电平有效把/RST引脚通过电容连到 通过电阻连到VDD可自动上电复位例如RX019从物理的CAN总线输入到SJA1000的输入比较器支配控制电平将会唤醒SJA1000的睡眠模式如果RX1比RX0的电平高就读支配控制电平反之读弱势电平如果时钟分频寄存器的CBP位见表49被置位就旁路CAN输入比较器以减少部延时此时连有外部收发电路这种情况下只有RX0是激活的弱势电平被认为是高而支配电平被认为是低注 1123456 图 引脚配置 图 引脚配置接口管理逻辑IML接口管理逻辑解释来自CPU令控制CAN寄存器的寻址向主控制器提供中断信息和状态信发送缓冲器TXB发送缓冲器是CPU和BSP位流处理器之间的接口能够发送到CAN网络上的完整信息缓冲器长13个字节由CPU写入BSP读出接收缓冲器RXBRXFIFO接收缓冲器是验收滤波器和CPU之间的接口用来从CAN总线上接收和接收的信息接收缓器RXB13个字节作为接收FIFORXFIFO64字节的一个窗口可被CPUCPUFIFO的支持下可以在处理信息的时候接收其它信息验收滤波器验收滤波器把它其中的数据和接收的识别码的内容相比较以决定是否接收信息在纯粹的接收测试中所有的信息都保存在RXFIFO中位流处理器BSP位流处理器是一个在发送RXFIFOCAN总线之间控制数据流的程序装还CAN总线上执行错误检测仲裁填充和错误处理位时序逻辑BTL位时序逻辑监视串口的CAN总线和处理与总线有关的位时序它在信息开头弱势-支配的总线传输时同步CAN总线位流硬同步接收信息时再次同步下一次传送软同步BTL还提供了可编程的时间段来补偿延迟时间相位转换例如由于振荡漂移和定义采样点和一位时间内的采样次数错误管理逻辑EMLEML负责传送层模块的错 它接收BSP的出错报告通知BSP和IML进行错误统SJA1000在软件和引脚上都是与它的前一款PCA82C200独立控制器兼容的在此基础上它增加了很多新的功能为了实现软件兼容SJA1000增加修改了两种模式BasicCAN模式与PCA82C200兼PeliCAN模式扩展特工作模式通过时钟分频寄存器中CAN模式位来选择复位默认模式BasicCAN模在SJA1000的控制寄存器中没有SYNC位在PCA82C200中是CR.6位同步只有在CAN总线上弱势-支配控制的转换时才有可能发生写这一位是没有任何影响的为了与现有软件兼容这一位时是可以把以前写入的值读出的对触发电路无影响时钟分频寄存器用来选择CAN工作模式BasicCAN/PeliCAN它使用从PCA82C200保留下来的PCA82C200中一样写一个0-7之间的值就将进入BasicCAN模式默认状态是12分频的Motorola模式和2分频的In模式保留的另一位补充了一些附加的功能CBP位见表49的置位使内部RX输入比较器旁路这样在使用外部传送电路时可以减少内部延时PCA82C200中双接收缓冲器的概念PeliCANFIFO所代替出的可能性之外不会产生应用上的影响在数据溢出之前缓冲器可以接收两条以上信息最多64字节CANSJA1000被设计为全面支CAN2.0B协议在处差被修正了在BasicCAN模式下只可以发送和接收标准帧信息11字节长的识别码如果此时检测到CAN总线上有扩展帧的信息如果信息正确也会被允许且给出一个确认信号但没有接收中断产生BasicCANPeliCAN在PeliCAN模式SJA1000有一个含很多新功能的重组SJA1000包含了设计在PCA82C200中的所有位及一些新功能位PeliCAN模式支CAN2.0B协议规定的所有功能29字节的识别码FIFO64字在标准和扩展格式中都有单/双验收滤波器含和代码寄存 发送当错误或仲裁丢失时不重发只听模式CAN总 无应答无错误标支持热插无干扰软件驱动位速检测硬件CLKOUT输BasicCANSJA1000I/O设备基于内存编址的微控制设备的独立操作是RAM一样的片内寄存SJA1000的地址区包括控制段和信息缓制段在初始化载入是可被编程来配置通讯参数的如位时序微控制器也是通过这个段来控制CAN总线上的通讯的在初始化时CLKOUT信号可以被微控应发送的信息会被写入发送缓冲器成功接收信息后微控制器从接收缓冲器中接收的信息然后释始载入后寄存器的验收代码验收总线定时寄存器0和1以及输出控制就不能改变了只有控制寄存器的复位位被置高时才可以这些寄存器当硬件复位或控制器掉线表5状态寄存器的总线状态会自动进入复3控制寄1BasicCAN地址分配表段读写读写012--3--4-5-6-总线定时总线定时7-总线定时总线定时8-9测试注测试注(10-3(10-3 -识别码2-0识别码2-0 -数据字节数据字节-数据字节数据字节-数据字节数据字节-数据字节数据字节-数据字节数据字节-数据字节数据字节-数据字节数据字节-数据字节数据字节-10-10-10-10-识别码2-0识别码2-0识别码2-0识别码2-0数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节数据字节--3注必须注明的是寄存器在高端CAN地址区被重复8位CPU地址的最是不参与的许多位在复位模式中是只写的CAN模式检测到有复位请求后将中止当前接收/发送的信息而进入复位模式一旦向复位位传送了1-0的下降沿CAN控制器将返回工作模式2复位模式的配置1位值-00--11-注注--0(无溢出0(无溢出0(空0(空-11-11-11;注总线定时同步跳转宽度同步跳转宽度波特率预设值波特率预设值波特率预设值波特率预设值波特率预设值波特率预设值总线定时时间段时间段时间段时间段时间段时间段时间段输出控制极性输出控制极性输出控制模式输出控制模式--;注;注-0000注读命令寄存器的结果总是1111RXFIFO的内部读/写指针被设置成初始化值连续的读RXB会得到一些未定义的数据部分旧信息发送信息时信息并行写入接收缓冲器但不产生接收中断且接收缓冲区是不锁定的所以即使接收缓冲器是空的最近一次发送的信息也可从接收缓冲器读出直到它被下一条发送或接收的信息硬件复位时RXFIFO的指针指到物理地址0RAM单元软件CR.0或因为总线关闭的缘故RXFIFO的指针将被设置到当前有FIFO的开始地个地址不同于物理RAM地址0,而是第控制寄存器CR控制寄存器的内容是用于改CAN控制器的行为的器可3控制寄存器各位的说明CAN位值保留;注保留;注保留;注溢出中断使10错误中断使10;号发送中断使1问时,(例如,中止发送命令后),微控制器接收0禁能;微控制器不从SJA1000接收发送中断信接收中断使10禁能;微控制器不从SJA1000接收发送中断信复位请求;410空缺;复位请求位接收到一个下降沿注控制寄存器的任何写都将设置该位为逻辑 复PCA82C200中这一位是用来选择同步模式的因为这种模式不在使用了所以这一位的设置不会影响微控制器为了软件上的兼容这一位是可以被设置的硬件或软件复位后不改变这一位读此位的值总是逻辑在硬启动或总线状态位设置为1总线关闭时复位请求位被置为1当前如果这些位被软件其值将发生变化而且会影响内部时钟的下一个上升沿内部时钟的频率是外部晶振的1/2在外部复位期间微控制器不能把复位请求位置为0空缺如果把复位请求位设为0微控制器就必须检查这一位以保位请求位的变化是同内部分频时钟同步的读复位请求位能够反映出这种同步状态0后SJA1000将会等一个总线空闲信号11个弱势位如果前一次复位请求是硬件复位或CPU初始复128个总线空闲如果前一次复位请求是CAN控制器在重新进入总线开启模式前初始化总线造成的必须说明的是如果复位请求位被置位一些寄存器的值会被改变的命令寄存器CMR命令位初始化SJA1000传输层上的动作命令寄存器对微控制器来说是只写器如果去读这个地址返回值是11111111两条命令之间至少有一个内部时钟周期内部时钟的频率是外部振荡频率的表4命令寄存器各位的功能说明CMRCAN地址位值---------睡眠;注1睡眠;如果没有CAN中断等待和总线活0清除数据溢10释放接收缓10中止发送;410发送请求;510注1SJA1000进入睡眠模式等待种情GTS式后CLKOUT15位的时间以使被这个信号锁定的微控制器在CLKOUT信号变低之前进入准备模式如果前面提到的三种条件之一被破坏SJA1000将被唤醒GTS位被置为低后总线转入活动或/INT有效低电平一旦唤醒振荡器就将启动而且产生一个唤醒中断因为总线活动而唤醒SJA1000直到11序列信息式中GTS位是不能被置位的在清除复位请求后且再一次检测到总线空闲GTS位才可以被置位这个命令位是用来清除由数据溢出状态位的数据溢出情况的如果数据溢出位被置位就不会产生数据溢出中断了在释放接收缓冲器命令的同时是可以发出清除数据溢出命令的读接收缓冲器之后可以通过设置释放接1RXFIFO中当前信息的内存空间这可能会导致接收缓冲器中的另一条信息立即有效这样会再产生一次接收中断使能条件下如果没有其它可用信息就不会再产生接收中断接收缓冲器状态位被清除中止传送位是CPU要求当前传送暂停时使如一条紧急进行的传送是不停止的要查看原始信息是否被成功发送可以通过传送成功状态位来检测不过这必须在发送缓冲器状态位为1释放或发送中断产生的情况下才能实现如果发送请求面令中被置位它就不可以通过直接设置为0来取消它了不过可以通过设置中止发送位为0来取消状态寄存器SR状态寄存器的内容反映了SJA1000的状态状态寄存器对微控制器来说是只读表5状态寄存器各位的功能说 位值总线状态注110出错状态;21出错;至少出现一个错误计数器满或超CPU限0发送状态;310接收状态;310发送完毕状10发送缓冲器10数据溢出状10接收缓冲器10注当传输错误计数器超过限制255 总线状态位置1总线关闭 CAN控制器就会将复位请求位置1当前在错误中断允许的情况下会产生一个错误中断这种状态会持续直到CPU清除复位请求位所有这些完成之后CAN控制器将会等待协议规定的最小时间128个总线空闲信号总线状态位被清除后总线开启错误状态位被置为0ok错误计数器复位且产生一个错误中断中断允许CAN2.0B协议说明计数满或超出CPU警告限制96时错误状态位被置位在允许情况下会产生错误中断如果接收状态位和发送状态位都0CAN无论何时发送请求位被置为1发送完毕位都会被置为0未完毕发送完毕位的0会一直保持如果CPU在发送缓冲器状态位是0锁定时试图写发送缓冲器则写入的字节被接收且会在当要被接收的信息成功的通过验收滤波器后例如仲裁后之 CAN控制器需要在 这条信息的描述符因此必须有足够的空间 接收的每一个数据字节 信息信息将会丢失且只向CPU提示数据溢出情况如果这个接收到的信息除了最后一位之外都无错误信息有效中还有可用信息此位将在下一位的时限tSCL中被重新设中断寄存器IR中断寄存器允许中断源的识别当寄存器的一位或多位被置位时/INT低电平有效引脚就被激活了寄存器被微控制器读过之后所有位复位这导致了/INT引脚上的电平漂移中断寄存器对微控制器来说是6中断寄存器各位的功能说明CAN位值---保留;注---保留;注---保留;注唤醒中断;210复位;微控制器的任何读将清除此数据溢出中1出状态位0-1跳变此位被置位0复位;微控制器的任何读将清除此10复位;微控制器的任何读将清除此10复位;微控制器的任何读将清除此接收中断;410复位;微控制器的任何读将清除此注如果CANCANCPU试图进入睡眠中断也溢出中断位中断允许情况下和溢出状态位是同时被置位接收中断位中断允许时必须说明的是接收中断位在读的时候被清FIFO中还命令执行后接收缓冲器中还有其它可用信息接收中断中断允许时会在下一个tSCL被重置发送缓冲区的全部内容列表如表7缓冲器是用来微控制器要SJA1000发送的信息的它被分为描述符区和数据区发送缓冲器的读/写只能由微控制器在工作模式下完成在复位模式下读出的值总是7发送缓冲器列区位76543210发送数据字节发送数据字节发送数据字节发送数据字节发送数据字节发送数据字节发送数据字节发送数据字节识别码ID识别码有11位ID0-ID10ID10是最 在仲裁过程中是最先被发送到总线上的识别码就象信息的名字它在的验收滤波器中被用到也在仲裁过程中决定总线的优先级识别码的值越低其优先级越高这是因为在仲裁时有许多支配控制位开头的字节发送请求RTR如果此位置1总线将以帧发送数据这意味着此段中没有数据字节尽管如此也需要同识别码RTR位没有被置位数据将以数据长度码规定的长度来传数据长度码DLC信息数据区的字节数根据数据长度码编制在帧传送中因为RTR被置位数据长度码是不被考虑的这就迫使发送/接收数据字节数为0总之数据长度码必须正确设置以避免两个CAN控制器用同样的识别机制启动帧传送而发生总线错误数据字节数是0-8是以如下方法计算的数据字节数=8DLC.3+4DLC.2+2为了保持兼容性数据88则按DLC规定8字节发发送的第一位接收缓冲器的全部列表和发送缓冲器类似接收缓冲器是RXFIFO中可的部分位于CAN地址的20-29之间

信息

信息信息释输缓冲命信息CAN接收缓冲器当前的可用信息是信息图 识别码发送请求位和数据长度码同发送缓冲器的相同只不过是在地址20-29如图4所示RXFIFO共有64字节的信息空间在任何情况下FIFO中可以的信息数取决于各条信息的长度如RXFIFO中没有足够的空间来新的信息CAN控制器会产生数据溢出数据溢出发生时已部分写入RXFIFO的当前信息将被删除这种情况将通过状态位或数据溢出中断中断允许时果除了最后一位整个数据块被无误接收也使RX信息有效反应到微控制器的信息验收滤波器通过验收代码寄存器ACR见6.3.9.1节和验收寄存器AMR见6.3.9.2节验收代码寄存器ACR8ACR的位分配CANBITBITBITBITBITBITBITBIT复位请求位被置高当前时这个寄存器是可以读/写的如果一条信息通过了验收滤波器的测试而且接收缓冲器有空么描述符和数据将被分别顺次写RXFIFO当信息被正确的接收完毕就会接收状态位置高满接收中断使能位置高使能接收中断置高产生中断验收代码位AC.7-AC.0和信息识别码的高8位ID.10-ID.3相等且与验收位AM.7-的相应位相1即如果满足以下方程的描述则被接[ID.10- AC.7-AC.0 AM.7-验收寄存器AMR9AMR位配置CANBITBITBITBITBITBITBITBIT如果复位请求位置高当前这个寄存器可以被 的相应位对验收滤波器是相关的或无影响的 即可为任意值PeliCANCAN控制寄存器的内部寄存器CPU来说是以外部寄存器形式存在而作片内内存使CAN控制器可以工作于不同模式工作/复位见6.4.3节所以必须区分不同的内部地址定义从CAN地址32起所有的内部RAM80字节被映象为CPU的接口10PeliCAN地址分配读写读写012--3--45--6总线定时-总线定时总线定时7总线定时-总线定时总线定时8-9检测;注检测;注------错误限-错误限错误限--RX帧信息RX帧信息TX帧信TX帧信息验收代码验收代码验收代码验收代码验收代码验收代码验收代码验收代码验收验收验收验收验收验收验收验收----------------------注必须说明的是在CAN的高端地址区的寄存器是重复的CPU地址的高8位是不参与的测试寄存器只用于产品测试这些地址分配反映当前信息之后FIFORAM息的下一条信息的开头如果没有信息要接收这里会出现部分旧的信息一些位在复位模式中是只写的CAN模式CBPRXINTEN和时钟关检测到复位模式设置位后止当前发送/接收信息而进入复位模式1-0位值-位值-0(无动作0(无动作0(无动作0(无动作0(空0(空;注E总线定时同步跳转宽度同步跳转宽度波特率预设值波特率预设值波特率预设值波特率预设值波特率预设值波特率预设值总线定时时间段时间段时间段时间段时间段时间段时间段输出控制极性输出控制极性输出控制模式输出控制模式-0-0--;注-;注--;注;注--验收寄存-00-0000-注若是因为总线关闭而进入复位模式接收错误计数器被清0发送错误计数器被初始化到127以CAN定义的包括12811位连续隐藏弱势位的总线关闭恢复时间RXFIFO的内部读/写指针复位到初始化值续的RXB口将会得到一些未定义分是老的信息如果有信息被发送就被并行写入接收缓冲器只有这次传送是自接收请求引起的才会产生接收中断所以即使接收缓冲器是空的最后一次发送的信息也可以从接收缓冲器中读出除非它被下一条要发送或接收的信息覆盖硬件复位时RXFIFO的指针指向物理RAM地址0CR.0或总线关闭会使RXFIFO的指针指向当前有效FIFO寄存器这个地址不同于第一次释放接收缓冲器命令后的RAM地址模式寄存器MOD模式寄存器的内容是用来改CAN控制器的行为的CPU把控制寄存器作为读/写寄存器可以设置这些位保留位读值为逻辑012模式寄存器的各位的功能CAN地址位值---------睡眠模式;注1010101只听;这种模式中,即使成功接收信息,CAN控0复位模式;注10注1sleepSJA1000将进入睡眠模式没有总线活动和中断等待至少破坏这SM产生唤醒中断设置为睡眠模式后CLKOUT15位CLKOUT信号电平变低而被锁住之前进入准备模式前面提到的三种条件之一被破坏时SJA1000将被唤醒SM电平设为低唤醒之后总线进入活动状态或/INT被激活变低唤醒后振荡器启动且产生一个唤醒中断由于总线活动唤醒的直到检测11个连续的隐藏弱势位总线空闲序列后才能接收这条信息注意在复位模式中是不能SM的清除复位模式后再一次检测到总线空闲时SM的设置才开始有效如果先进入复位模式MOD.1-MOD.3是只写CAN不可热插时可使用只听模式所有其它功能都能象在正常工作模式中一样使用在硬件复位或总线状态1总线关闭时复位模式位也被置为1当前如果通过软件访问这一位值将发生变化且下一个内部时钟频率为外部振荡器的1/2的上升沿有效在外部复位期间微控制器不能将复位模式位设置为0空闲因此将复位模式位设为1后微控制器必须检查此位以确保外部复位引脚上位请求位的改变和内部分频时钟同步复位请求位能够反映出这种同步状态复位模式位为0后CAN控制器会等待一个总线空闲信号11个隐藏弱势位如果上一次复位是硬件复位或CPU初始复128个总线空闲CAN命令寄存器CMR命令位初始化CAN控制器传输层的一个动作这个寄存器是只写的所有位的读出值都是逻辑0因处理的需要两条命令之间至少有一个内部时钟周期内部时钟周期的频率是外部振荡器的一半13命令寄存器CMR各位的功能说明CAN位值---------10清除数据溢出;注10-(无动作10-(无动作1010注如果验收滤波器已设置了相应的识别码当发送自接收请求信息时同时开始接收接收和发送中断对自接收是有效的模式寄存器的自检测模式也有类似情况设置命令位CMR.0和CM.1会立即产生一次当发生错误或仲裁丢失时是不会重发的单次发送设置命令位CMR.4和CMR.1会立即产生一次自接收性质的发生错误或仲裁丢失时是不会重发CMR.0CMR.1CMR.4会立即产生一个CMR.0一旦状态寄存器的发送状态位被置位同时设置CMR.0CMR.4会忽略CMR.4位这个命令位用于清除数据溢出位的数据溢出情况如果数据溢出位被置位就不会再有数据溢出读接收缓冲器之后CPU1来释RXFIFO的内存空间这样就会导致接收缓冲器内的另一条信息立即有效如果没有其它有用的信息就复位接收中断CPU需要当前请求发送等待时例如先发送一条比较紧急的信息时但当前正在处理的传送是不停止的要想知道源信息是否成功发送可以通过传送完毕状态位来查看不过这应在在发送缓冲器状态位置1或产生发送中断后要注意的是即使因为发送缓冲器状态位变为释放而使信息被中止也会产生发送中如果前一条指令中发送请求被置10来取消应通过中止发送位为0取消状态寄存器SR位值总线状态;注10位值总线状态;注10出错状态;注1 0发送状态;注10接收状态;注10发送完毕状态;注1010锁定;CPU不能发送缓冲器;信息不是数据溢出状态;注1 010注当发送错误计数器超过限制255总线状态位被置为1总线关闭CAN控制器将设置复位模式位为1当前而且产生一个错误中断相应的中断允许时发送错误计数器被置为127接收错误计数器被清除CPU将复位模式位清除完成这些之后CAN控制器将通过发送错误计数器的减1计数以等待协议规定的最少时间128个总线空闲信号之后总线状态位被清除总线开启错误状态位被置为0ok错误计数器复位且产生一个错误警断中断允许时这期间读TX错误计数器给出关于总线关闭修复的状态信CAN2.0B协议规定数器器满或超过CPU限制EWLR时错误状态位被置位中断允许时会产生错误中断0空闲CAN1则控制器正在等待下一次空闲硬件启动后11个连续的隐藏弱势位总线关闭后会产生12811位的连续隐藏弱势位一旦发送请求位或自接收请求位被置1发送成功状态位就会被置0不成功发送成功状态CPU0器写CANRXFIFO中有足够的空间来信息描述符和每一个接收的数据字节如果没有足够的空间来信息信息就会丢失在信息变为无效时向CPU提示数据溢出如果信息没有被成功接收例如由于错误就没有数据RXFIFO中的所有信息和用释放接收缓冲器命令释放它们的内存空间之后此位被清6.4.3中断寄存器IRCAN中断将反映CPU读此寄存器的时候中断寄存器对CUP来说是只读器表15中断寄存器IR的位功能说明CAN地址位值101置位;当CAN控制器丢失仲裁,变为01置位;当CAN控制器到达错误消极状态(至少错误消极状态又进入错误活动状态以及中0唤醒中断;注101置位;数据溢出状态位有0-1跳变且中断0错误中1010接收中断;注10注RI取决于相应的中断使能位RIE这一点外此位的行为和接收缓冲器状态位是等效的所以读中断寄存器时接收中断位不被清除释放接收缓冲器令可以临时清除RI如果执行释放命令后FIFO中还有可用信息RI被重新置位否则RI保持清0状态中断使能寄存器IER这个寄存器对CPU来说是可读/写器16中断使能寄存器IER的各位的功能说明CAN位值1使能;如果检测到总线错误,则CAN控制器请01使能;如果CAN控制器已丢失了仲裁,则请求01到活动或反之),则请求相应的中断010E101010接收中断使能;注10注1接收中断使能位对接收中断位和外部中断输出/INT有直接的影响如果RIE0且没有其它中断被挂起外部/INT引脚电平会立即变高仲裁丢失捕捉寄存器ALC这个寄存器包括了仲裁丢失的位置的信息仲裁丢失捕捉寄存器对CPU来说是只读器保留位的读值为017仲裁丢失捕捉寄存器ALC的各位功能说明CAN位值-值和功能见表仲裁丢失时会产生相应的仲裁丢失中断中断允许同时位流处理器的当前位位置捉送入仲个值器中活清除到仲裁丢失捕捉寄存器被读一次之后新000102 0405060708091011

1516

1819

212223

2526

28

30图 图 18仲裁丢Bit4-Bit0位00000000001100010200011300100400101500110600111701000801001901010010110110001101011100111110000100011001010011101001010110110101111100011001110101101111100111011111011111注错误代码捕捉寄存器ECC位值错误代码--错误代码--1位值错误代码--错误代码--10段--段--段--段--段--注ECC.4-ECC.0的解释见表20ECC.7ECC.6的功能说位位0001101121ECC.4-ECC.0的功能说明位位位位位0001100010001100010000101IDE0011101111011100110001101保留位01001保留位0101101010010001100011001110111101010010100011011010011支配控制位误1011111100注1位的设置反映了当前结构段的不同错误事总线发生错误时被迫产生相应的错误中断中断允许时同时位流处理器的当前位置捉送入错误代码捕捉寄存器其内容直到用户通过软件读出时都是不变的读出后捕捉机制又被激活了中断寄存间中断寄存器中相应的中断标志位被清除新的总线中断直到捕捉寄存器被读出一次才可能有效错误限制寄存器EMLR错误限制在这个寄存器中被定义默认值硬件复位时是96复位模式中此寄存器对来说是可读/写的工作模式中是只读注意只有之前进入复位模式EWLR才有可能被改变直到复位模式被再次取消后才有可能发BITBITBITBITBITBITBITBIT错误状态的改变见状态寄存器表14和由新的寄存器内容引起的错误 BITBITBITBITBITBITBITBITRX错误计数寄存器RXERRRX错误计数寄存器反应了接收错误计数器的当前件复位后寄存器被初始化0工作模式中对CPU来说是只读的只有在复位模式中才可以写此寄存器如果发生总线关闭RX错误计数器就被初0总线关闭期间写这个寄存器是无效有之前进入复位模有可能CPURX后错误状态的改变见状态寄存器表14错误和由新的寄存器内容引起的错误中断才可能有效23RX错误计数寄存器RXERR各位的功能说明CANBITBITBITBITBITBITBITBITTX错误计数寄存器TXERR工作模式中这个寄存器对CPU是只读内存复位模式中才可以写这个寄存器硬件复位后寄0如果总线关闭TX错误计数器被初始化127来计算总线定义的最小时间128个总线空闲信号这段时间里读TX错误计数器将反映出总线关闭恢复的状态信息如果总线关闭是激活的写TXERR的0-254单元会清除总线关闭标志复位模式被清除后控制器会等待一个11位的连续隐藏弱势位总线空闲24TX错误计数寄存器TXERR的各位功能说明CANBITBITBITBITBITBITBITBITTX错误计数器内容的改变取消改变存器 错误和由新的寄存器内容引起的错误中断才有可能有效离开复位模式后就象总线错误引起TX计数器内容且总线关闭被同样的执行这意味着重新进入复位模式TX错误计数器被初始化到127RX计数器被清0所有的相关状态和中断寄存器位被置位复位模式的清除将会执行协议规定的总线关闭恢复序列等待128个总线空闲信如果在总线关闭恢复TXERR>0TXERR发送缓冲器的全部列表见图7请务必分清标准帧格式SFF和扩展帧格式EFF配置发送缓冲器允许定义长达8个数据字节发送信息发送缓冲器被分为描述符区和数据区描述符区的第一个字节是帧信息字节帧信息它说明了帧格式SFF或EFF或数据帧和数据长度SFF有两个字节的识别码EFF有节的识别码数据区最多长8个数据字节发送缓冲器长13个字节在CAN地址16-28注意使用CAN地址的96-108可以直接发送缓冲器的RAM这个RAM区是为发送缓冲器保留的下面三个字节是通用的CAN109110111 TX数据字节TX识别码TXTX识别码TX识别码TX数据字节TX数据字节TX数据字节TX数据字节TX数据字节TX数据字节TX数据字节TX数据字节CANTX识别码TX数据字节TX数据字节TX数据字节TX数据字节TX数据字节TX数据字节a.b.扩展帧格BITBITBITBITBITBITBITBIT发送缓冲器位的列表见表25-27BITBITBITBITBITBITBITBIT注123不影响推荐在使用自接收设备自测时和接收缓冲器0兼4表26TX识别码1SFFCAN地址17注BITBITBITBITBITBITBITBIT注1ID.表示识别码的表27TX识别码2SFFCAN地址18注BITBITBITBITBITBITBITBIT注 ID.表示识别码的2影响推荐在使用自接收设备自测时和接收缓冲器RTR兼容不影响推荐在使用自接收设备自测时和接收缓冲器0兼容表28TX帧信息 CAN地址BITBITBITBITBITBITBITBIT注 不影响推荐在使用自接收设备自测时和接收缓冲器0兼 表29TX识别码1EFFCAN地址17注BITBITBITBITBITBITBITBIT注 ID.表示识别码的表30TX识别码2EFFCAN地址18注BITBITBITBITBITBITBITBIT注 ID.表示识别码的表31TX识别码3EFFCAN地址19注BITBITBITBITBITBITBITBIT注 ID.表示识别码的表32TX识别码4EFFCAN地址20注BITBITBITBITBITBITBITBIT注 ID.表示识别码的2不影自测时和接收缓冲器RTR3不影自测时和接收缓冲器0兼表33帧格式FF和发送请求RTR位值1010数据长度代码DLC数据区的信息字节长度由数据长度代码编制在帧发送开始时由于RTR位被置位数据长度代码是不被考虑的这使接收/发送的数据字节数目为0如果有两个CAN控制器使用同一个识别码同时启动帧传送数据长度代码必须正确说明以避免总线错误0-8编码形式如数据字节数=8DLC.3+4DLC.2+2为了兼容大于8的数据长度代码是不可用的如果88识别码ID标准帧SFF的识别码11位ID.28-ID.18扩展帧格式的识别码29位ID.28-ID.0ID.28是最在总线仲裁过程中最先发送到总线上识别码就象信息的名字一样用在验收滤波器中仲裁过程中决定了总线的优先权识别码的二进值越低优先权越高这是由于仲裁时有大量的前导支配发送的字节数取决于数据长度代码最先发送的CAN19SFF21EFF的数据字节1的最接收缓冲器的列表与前面一节讲述的发送缓冲器很相似接收缓冲器是RXFIFO的可部分位CAN地址1628每条信息都分为描述符和

接 窗CAN接收缓冲器中当前的可用信息是信息图 RXFIFO中的信息举接收缓冲器的位列表见表34-36SFF和表37-41 所选配置是与接收缓冲器列表见节相匹配表34RX帧信息SFFCAN地址BITBITBITBITBITBITBITBIT00注表35RX识别码1 CAN地址17注BITBITBITBITBITBITBITBIT注ID.表示识别码的表36RX识别码2SFFCAN地址18注BITBITBITBITBITBITBITBIT0000注ID.表示识别码的位表37RX帧信息EFFCAN地址BITBITBITBITBITBITBITBIT00注表38RX识别码1EFFCAN地址17注BITBITBITBITBITBITBITBIT注1ID.表示识别码的表39RX识别码2EFFCAN地址18注BITBITBITBITBITBITBITBIT注ID.表示识别码的表40RX识别码3EFFCAN地址19注BITBITBITBITBITBITBITBIT注ID.表示识别码的表41RX识别码4EFFCAN地址20注BITBITBITBITBITBITBITBIT00注ID.表示识别码的位注意在帧信息字节中的接收字节长度代码代表实际发送的数据长度代码它有可能大于8取决于发 无论如何最大接收数据字节数是8这一点在读接收缓冲器中的信息时应当考虑见图8RXFIFO共有64个信息字节的空间一次可以 多少条信息取决于数据的长度如果RXFIFO 新的信息CAN控制器会产生数据溢出条件此时信息有效且接受检测为肯定发生数据溢出情况时已部分写入RXFIFO的信息将被删除这种情况可以通过状态寄存器和数据超限中断中断允许反应到CPU在验收滤波器的帮助下只有当接收信息中的识别位和验收滤波器预定义的值相等时CAN控制器才允许将已接收信息存入RXFIFO验收滤波器由验收代码寄存器(ACRn)和验收寄存器AMRn定义要接收的信息的位模式在验收代码寄存器中定义相应的验收寄存器允许定义某些位为不影响即可为任意值有两种不同的过滤模式可在模式寄存器中选择MOD.3AFM6.4.3单滤波器模式AFM双滤波器模式AFM这种滤波器配置可以定义一个长滤波器4字节滤波器字节和信息字节之间位的对应关系取决于当标准帧如果接收的是标准帧格式的信息在验收滤波中只使用前两个数据字节来存放包括RTR位的完整的识别码如果由于置位RTR位而导致没有数据字节或因为设置相应的数据长度代码而没有或只有一个数据字节信息也会被接收的对于一个成功接收的信息所有单个位的比较后都必须发出接受信号注意AMR1和ACR1的低四位是不用的为了和将来的产品兼容这些位可通过设置AMR1.3AMR1.2AMR1.4AMR1.01而定为不影响 CAN地址1676543210

CAN地址1776543210

CAN地址1876543210

CAN1976543210CAN地址20;7CAN地址20;76543210765432107654321076543210验收DBX.Y=数据字节X的Y

ACR=1&AMR=验收1&logic1=logic0=9接收标准结构信息时的单个滤波扩展如果接收的信息是扩展帧格式RTR位的全部识别码将被接受过滤使用为了成功接收信息每个位的比较后都必须发出接受信号必须注意的是AMR3的最低两位ACR3是不用的为了和将来的产品兼容这些位应该通AMR3.1AMR3.0来定为不影响 CAN1676543210

CAN地址1776543210

CAN1876543210

CAN地址1976543210CAN207CAN2076543210CAN地址217654321076543210CAN地址2376543210信息 验收代码 验

ACR=&AMR=验收寄存&logic1=logic0=图 单滤波器配置接收扩展帧信这种配置可以定义两个短滤波器一条接收的信息要和两个滤波器比较来决定是否放入接收缓冲器中至少有一个滤波器发出接受信号有效器字节和信息字节之间位的对应关系取决于当前标准如果接收的是标准帧定义的两个滤波器是不一样一个滤波器比较包RTR位的整个标准识别码和信息的第一个数据字节第二个滤波器只比较包括RTR位的整个标准识别码为了成功接收信息所有单个位的比较时应至少有一个滤波器表示接受RTR位置位或数据长度代码是0时表示没有数据字节存在无论怎样只要从开始到RTR位的部分都被表示接收信息就可以通过滤1如果没有向滤波器请求数据字节过滤AMR1和AMR3的低四位必须被置为1不影响当使用包RTR位的整个标准识别码时两个滤波器都同样工广州周立功单片机发展 滤波器滤波器

LSB CAN地址167CAN地址1676543210CA17;76543210CA19;3210CAN地址207CAN地址2076543210CA21;765432103210CAN地址227CAN地址227654321CAN地址187654321CA23;765CA19;765ACR=AMR=验收寄存 LSB滤波器滤波器

logic1=&11&111&DBX.Y=数据字节X位11接收标准帧信息的双滤波器配扩展帧如果接收到扩展帧信息同的的前两为了能成功接收信息所有单个位的比较时至少有一个滤波器表示接 滤波器滤波器

76543210CAN地址1776543210CAN地址CAN地址2076543210CAN地址2176543210CAN地址CAN地址227654321076543210CAN18CAN1876543210

CAN地址19CAN地址1976543210

ACR=AMR=验收寄存滤波器滤波器

111验

图 双滤波器配置接收扩展帧信

logic1=1&&logic01&&RX信息计数器RMCRMC寄存器CAN29反映了RXFIFO中可用的信息数目其值每次接收时加1每次释放接收缓冲器减1每次复位后该寄存器清042RX信息计数器RMC各位的功能说明CANBITBITBITBITBITBITBITBIT注此位不能被写读这个寄存器时结果总RX缓冲器起始地址寄存器RBSARBSA寄存器CAN地址30反映了当前可用来位于接收缓冲器窗口中的信息的内部RAM地址这条信息可以帮助说明RAM始于CAN32RAM地址区可CPU读/写访问复位模式只能写例子如果RBSA被设置为24十进制当前在接收缓冲器窗口中的可视信息被在内部起始地址24因为RAM也被直接列入CAN地址空间起始地址32等于RAM地址0所以这条信息也可以用CAN地址56及随后字节地址CAN地址FIFO中至少有一条可用信息时就会执行释放接收缓冲器命令RBSA在下一条信息开始的新硬件复位时指针初始化为 软件复位设置为复位模式时指针保持原值但FIFO被空这就意味着RAM的内容是不变的送的器窗口RX缓冲器起始地址寄存器在工作模式中是只读的在复位模式中是可读/写的必须注意写首次有效是在下一个内部时钟频率的上升沿内部时钟频率是外部振43RX缓冲器起始地址寄存器RBSA各位的功能说明CANBITBITBITBITBITBITBITBIT注此位不能写此寄存器的读出值总总线定时寄存器0BTR0总线定时寄0定义了波特率预设值BRP和同步跳转宽度SJW的值复位模式有效时这个寄存器是可以被读/写的如果选择的PeliCAN模式此寄存器在工作模式中是只读的在BasicCAN模式中总是44总线定时0BTR0的位功能说明CANBITBITBITBITBITBITBITBIT波特率预设值BRPCAN系统tSCL的周期是可编程的而且决定了相应的位时序CAN系统时钟由如下公tSCL=2tCLK(32BRP.5+16BRP.4+8BRP.3+4BRP.2+2为了补偿在不同总线控制器的时钟振荡器之间的相位偏移任何总线控制器必须在当前传送的相关信号边沿重新同步同步跳转宽度定义了每一位周期可以被重新同步缩短或延长的时钟周期的最大数目tSJW=tSCL(2总线定时寄存器BTR1总线定时寄存1定义了每个位周期的长中这个寄存器可以被读/写在PeliCAN模式的工作模式中这个寄存器是只读的在BasicCAN模式中总是FFH45总线定时1BTR1的各位功能说明CANBITBITBITBITBITBITBITBIT采样SAM位值101TSEG1时间段TSEG1和TSEG2决定了每一位的时钟数目和采样点的位置这tSYNCSEG=1 8TSEG1.3+4TSEG1.2+2TSEG1.1+TSEG1.0+1 4TSEG2.2+2TSEG2.1+TSEG2.1+1波特率预设值 采样点可能值是BRP=000001,TSEG1=0101,TSEG2=图 输出控制寄存器OCR输出控制寄存器实现了由软件控制不同输出驱动配置的建立/写PeliCAN模式的工作模式中这个寄存器是只读的在BasicCAN模式中总是FFH46输出控制寄存器OCR的各位功能说明CANBITBITBITBITBITBITBITBIT图

SJA1000在睡眠模式中时TX0TX1引脚根据输出控制寄存器的内容输出隐性的电平在复位状态复位请求=1或外部复位引脚/RST被拉低时输出TX0TX1悬空0001测试输出模式;注1010001测试输出模式;注1011注.检测输出模式中TXn会在下一个系统时钟的上升沿映射在RX各引脚检上TN1 正常模式中位序列TXD通过TX0和TX1送出输出驱动引脚TX0和TX1的电平取决于被OCTPx,OCTNx悬空上拉下拉推挽编程的驱动器的特性和OCPOLx编程的输出端极性TX0引脚在这个模式中和正常模式中是相同的但是TX1上的数据流被发送时钟TXCLK代替了发送时钟不翻转的上升沿标志着一位的开始时钟脉冲宽度是1tscl.高低高低115时钟输出模式举相对于正常输出模式这里的位代表着时间的变化和触发如果总线控制器被发送器从总线上通电退耦则位流不允许含有直流元件这一点的总结见下一个表在隐性位无效悬空期间支配位轮流使用TX0TX1电平如一位在TX0上发二位TX1上发TX0上发送等等依此高低高低

16双相输出模式举例输出控制寄存器在测试输出模RX上的电平在下一个系统时钟的上升沿映射TXn上系统时钟fOSC/2与输00关关0010关开低1010关关0011关00关关0010关开低1010关关0011关关1011关开低0100关关1100开关高0101开关高1101关关0110关开低1110开关高0111开关高1111关开低注TPX是片内XVDDTNX是片内输出发送器X连接TXXTX0TX1上的串行输出电平TXD=0TXD连续1时CAN总线上的输位序列TXDTX0TX1发送输出驱动引脚上的电平取决于被OCTPx,OCTNx悬空上拉下拉推挽编程的驱动器的特性和被OCPOLx编程的输出端极性时钟分频寄存器CDR时钟分频寄存器为微控制器控制CLKOUT的频率以及CLKOUT引脚而且它还控制着TX1上的接收中断脉冲接收比较通道和BasicCAN模式与PeliCAN模式的选择硬件复位后寄存器的默认状态是Moto

温馨提示

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

评论

0/150

提交评论