笔记十二:错误激活状态(Error Active),错误认可状态(Error Passive)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
要明白错误激活状态和错误认可状态,就必须从“触发该状态的条件”入手明白。
错误激活状态,要触发,必须符合两个条件才行,就是发送错误计数器的值必须在报警限额计数器的报警限额以下,和接收错误计数器的值必须在报警限额计数器的报警限额以下。
错误认可状态,要触发,必须符合一个条件,那就是随便一个错误计数器的值超过报警限额计数器的限额。
我们知道硬件复位时,报警限额计数器初值为96(0x60),默认的情况下只要顺便一个错误计数器超过这个值都会进入错误认可状态
说实话错误激活状态和错误认可状态,对节点的数据发送与接送没有产生具体的效果,这怎么说呢?在使用CAN进行数据的通讯时,我们不可能使用示波器或者逻辑分析仪针对CAN帧格式进行观察(普通使用者确实不需要这么做,但是不排除另类的使用者),所以对于错误激活状态和错误认可状态,它们之间所区别是发生在“错误标示”的帧格式。(“错误标示”是什么?哎呀,这个就无视吧)
在这里我们只要知道一个信息:无论是错误激活状态还是错误认可状态,都不影响CAN节点的正常工作。
当发生发送错误,发送错误计数器就会递增,反之当发送成功,发送错误计数器就会递减。(接收错误计数器也同样)
当了解到这个程度,可能你的心里会萌出一个问题,“发送错误和接受错误的定义是什么?”,我很抱歉的说道,目前的我真的不清楚,我仅能说“不正常的发送或者接收就是发送错误和接收错误”是这样一个概念而已,如果了解过多了,怕会对CAN产生可怖感而影响学习的情绪。
错误激活状态和错误认可状态引起的事件
当进入错误激活状态时什么事情也不会发生的,反之进入错误认可状态的话结果会如下图表所示:
当其中一个错误计数器的值达到报警限额,该节点就会进入错误认可状态,状态寄存器的状态中的错误认可状态位ES(Error Status)置一,如果中断使能寄存器中的EPIE位置一的话,错误认可中断位EP1就会置一,发生错误认可中断。所以呢,要针对错误认可状态,就必须从错误认可中断作出相关的函数处理。
总结一下:
普通的使用者如果要手动制作错误认可状态的环境不是不可能不过不实际,对于只是为了实现CAN实验,故意手动实现错误认可状态,我觉得真的是没有任何意义。作为初学者,我觉得最重要的事情就是要掌握概念,让它不陌生,使它有亲切感。这篇笔记确实写得不好,虽然以上的内容我使用了两天的时间思考过,不过还是有很多不足的地方,我觉得还是写下“自己所知道的”才是最真实。能力有限...真的很抱歉,关于以上的内容过多的解释就不了,如果觉得内容不足的话"现场总线CAN原理及应用技术"是一个很好的推荐。
文章评论(0条评论)
登录后参与讨论