原创 笔记十三:总线关闭状态

2009-10-27 17:39 3340 7 8 分类: 汽车电子

笔记十三总线关闭状态<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


总线关闭状态,是错误状态中最严重的一个状态,节点不参与总线活动~这时候需要人为的干涉或者编辑专门处理的函数来处理。要用文字来描述总线关闭状态的发生过程比较复杂了一点,所以我以图形整理了一下:


点击看大图



当发送错误计数器达到255的时候,总线状态位BS置一,节点不参与总线活动,然后进入复位模式。


如果在这期间,中断使能寄存器的错误中断使能位EIE=1,产生错误中断Error Interrupt, EI=1。随之接收错误计数器清零,发送错误计数器被赋值为127,作为倒数数。



如果没有认为的干涉或者没有专门的函数处理的话,次状态会一直保持,因为复位模式标志位RM一直置一。当退出复位模式后,节点会开始发送空闲信号(空闲型号可以看成是无用的报文吧,因为我们知道一旦报文发送成功,发送错误计数器的值就会开始递减)直到发送错误计数器的值为0,如果在发送计数器倒数的期间读取发送计数器的话,会读取到倒数中的值,亦即恢复状态信息。



当倒数完毕后,总线状态位清零,BS=0,错误状态为也一样被清理ES=0(我们知道状态寄存器是只读寄存器,所以手动的清零是不可能的),引用前章笔记,我们知道一旦错误计数器的值超过报警限额,错误状态位会置一,利用这个原理反推道,一旦错误计数器的值在于报警限额以下,错误状态标志位被清零。



接下来的故事当然离不开,错误报警中断(Error Interrupt),当总线状态标志位或者错误状态标志位产生变化(由先前的1编程0),会引发错误报警中断,前提是错误中断使能的话,EIE=1,最后节点恢复,换句话说就是节点已参与总线活动。






从上面的内容中,我们进一步的分析得到的信息有:



第一次产生错误报警中断 Error Interrupt 的原因是,由于发送错误计数器达到255的值,所以引发了总线状态标志位 BS 的变化 (也可以看成是错误认可状态引起的变化),触发错误报警中断 Error Interrupt。然后节点会自己进入复位模式(我们知道要清楚中断标志位只有一个方法那就是进入复位模式,这个环节中就是起到这样的作用),然而第二次发生错误报警中断原因出于总线状态标志位起了变化(从1变成0)。当节点恢复后或者说节点参与总线活动后,该错误报警中断标志位依然是置一 EI=1,所以应该适当的进入复位或者错误报警中断使能使无效 EIE=0



老实说要确确实实明白 状态位,中断使能,中断源 它们之间的关系有点猥琐所以小的手痒,稍微整理一个图表。该图表实际上没有任何作用...不过在感觉上可能比较直观一点。



67b84665-1084-4883-9b9b-f1c62496ead5.JPG



中英文对照表:




BSBus Status 


总线状态


BEIEBus Error Interrupt En.


总线错误中断使能


BEIBus Error Interrupt 


总线错误中断


ESError Status 


错误状态


ALIArbitration Lost Interrupt En.


仲裁丢失中断使能


ALIArbitration Lost Interrupt


仲裁丢失中断


TSTransmit Status 


发送状态


EPIError Passive Interrupt En.


错误认可中断(错误被动中断)使能


EPIError Passive Interrupt


错误认可中断(错误被动中断)


RSReceive Status 


接收状态


WUIWake Up Interrupt En.


唤醒中断使能


WUIWake Up Interrupt


唤醒中断


TCSTransmition Complete Status


发送完成状态


DOIData Overrun Interrupt En.


数据溢出中断使能


DOIData Overrun Interrupt


数据溢出中断


TBSTransmition Buffer Status


发送缓冲器状态


EIError Interrupt En.


错误报警中断使能


EIError Interrupt


错误报警中断


DOSData Overrun Status


数据溢出状态


TITransmit Interrupt En.


发送中断使能


TITransmit Interrupt


发送中断


RBSReceive Buffer Status


接收缓冲器状态


RIReceive Interrupt En.


接收中断使能


RIReceive Interrupt


接收中断



 


第十二章和第十三章的笔记我承认自己确实写的不是很好~因为以上的内容也仅是我所认识的概念而已无法深入,逼近能力有限呀,所以也只能以“文字”那样般描述了。见笑了,真的很不才...如果已经误人子弟了,真的很抱歉。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2015-10-8 17:31

很详细。非常感谢你的经验分享,向你学习!我也会整理我的思路继续发扬光大的。

相关推荐阅读
用户1609127 2011-10-22 18:26
Verilog的私私细语 - 时钟化和信号的长度
目录 第2章 时钟化和信号的长度 2.01 一个时钟一块数据的概念 2.02 信号时钟化 2.03 深入了解模块的沟通 2.04 电平检测模块的整合(即时事件在时序上的不和谐)      实验八:电...
用户1609127 2011-09-08 12:47
瞎搞Time Quest 和无责任的笔记 第二章
最近整合篇的第二章的构思和灵感都累积不少了,应该是时候开工了。恰好手头上还有一本笔记还没有写完,就是这本瞎搞TimeQuest的第二章。目录笔者也懒得贴了,看过第一章的同学多少也会猜到第二章的内容是什...
用户1609127 2011-08-29 18:21
瞎搞Time Quest 和无责任的笔记 第一章
哎呀 ... 潜水了都有一段时间了,这是最近研究的成果和目标。 话说TimeQuest这个东西真的很搞怪呀,做得笔者不得不从其他的方向去研究它。 好了还是切入正题,TimeQuest用作静态时序的工具...
用户1609127 2011-07-06 17:43
Verilog的私私细语 - 整合的概念
目录         02  第1章  整合的概念          1.01  源码上的整合                   实验一:字面上的整合          1.02  时钟和步骤的定...
用户1609127 2011-06-22 10:18
VerilogHDL那些事儿 - 建模篇v4 + 时序篇v1
VerilogHDL那些事儿 - 建模篇v4 ====== v4 ====== 主要是修改了大量用法上的BUG和极限的精简内容 https://docs.google.com/leaf?id=0B...
用户1609127 2011-06-10 13:19
Verilog HDL的礼物 - Verilog HDL扫盲文
目录 02第0章 Verilog HDL语言扫盲文 030.01 各种的HDL语言 030.02 HDL语言的层次 03 0.03 RTL级和组合逻辑级 040.04 Verilog HDL语言真的那...
EE直播间
更多
我要评论
1
7
关闭 站长推荐上一条 /3 下一条