笔记十一:认识寄存器之报警限额寄存器,发送错误计数器,接收错误计数器<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
如果你留心的浏览过数据手册,你可能对 错误激活状态,错误认可状态,和总线关闭状态 都不陌生!
但是说实在,要明白它们也要一点代价的,所以做好心理准备后,就开始冒险了吧。
我们先认识几个重要的寄存器,报警限额寄存器,发送错误计数器,接收错误计数器
报警限额寄存器(Error Warning Limit Register),是一个设置错误上限的寄存器,它与发送|接收错误寄存器拥有很大的关系。在复位模式中报警限额寄存器是可写,相反在工作模式中报警限额寄存器变成可读而已。当SJA1000控制器,上电硬件复位报警限额寄存器,设默认值为96。(0x60)
在原本的头文件中sja1000.h未声明过这个寄存器,那么将以下的信息加入到
sja1000.h文件末端。报警限额寄存器在头文件中的定义别名是EWLR,而绝对地址值是0xFE0D。
unsigned char xdata EWLR _at_ 0xFE0D;//13; // 报警限额寄存器
接收错误计数器(RX Error Counter Register)和发送错误计数器(TX Error Counter Register),如其名般是用来记录接收错误,和发送错误哦。
同样它们也是未被声明在sja1000.h头文件中,那么将以下的信息加入吧。
unsigned char xdata RXERR _at_ 0xFE0E;//14; // 发送错误计数器
unsigned char xdata TXERR _at_ 0xFE0F;//15; // 接收错误计数器
接收错误计数器在头文件中的别名是RXERR而绝对地址值是0xFE0E,发送错误计数器在头文件中的别名是TXERR而绝对地址值四0xFE0F。
在这里可能你会问,为什么要特别在学习笔记2中才介绍它们?可能你有所不知,它们在SJA1000控制器中扮演的角色绝对是举足失重,它们可用来控制,判断三种不同的错误状态,亦即错误激活状态(Error Active),错误认可状态(Error Passive),总线关闭状态(Bus Off)。
对于学习CAN来说尤其是初学者,虽然不能完全掌握它,但是至少要有个概念。下篇笔记就会以初学者的角度来认识它们
文章评论(0条评论)
登录后参与讨论