原创 笔记十一:认识寄存器之报警限额寄存器,发送错误计数器,接收错误计数器

2009-10-27 17:30 3544 8 8 分类: 汽车电子

笔记十一认识寄存器之报警限额寄存器,发送错误计数器,接收错误计数器<?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来说尤其是初学者,虽然不能完全掌握它,但是至少要有个概念。下篇笔记就会以初学者的角度来认识它们

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条