编码器<br />在数字系统里,常常需要将某一信息变换为某一特定的代码,把二进制代码按一定的规律编排,时每组代码具有一定的含义称为编码。具有编码功能的逻辑电路称之为编码器。在二值逻辑电路中信号都是以高、低电平的形式给出的,因此编码器的逻辑功能就是把输入的每一个高、低电平信号编辑成一个对应的二进制代码。<br />一、 普通编码器<br />1. 下面给出4线——2线编码器的功能表<table class=ubb cellspacing=0><TR><td class=ubb>输入</td><td class=ubb>输出</td></TR><TR><td class=ubb>I<SUB>0 </SUB></td><td class=ubb>I<SUB>1 </SUB></td><td class=ubb><SUB></SUB>I<SUB>2 </SUB></td><td class=ubb><SUB></SUB>I<SUB>3 </SUB></td><td class=ubb>Y<SUB>1</SUB></td><td class=ubb>Y<SUB>2</SUB></td></TR><TR><td class=ubb>1</td><td class=ubb>0</td><td class=ubb>0</td><td class=ubb>0</td><td class=ubb>0</td><td class=ubb>0</td></TR><TR><td class=ubb>0</td><td class=ubb>1</td><td class=ubb>0</td><td class=ubb>0</td><td class=ubb>0</td><td class=ubb>1</td></TR><TR><td class=ubb>0</td><td class=ubb>0</td><td class=ubb>1</td><td class=ubb>0</td><td class=ubb>1</td><td class=ubb>0</td></TR><TR><td class=ubb>0</td><td class=ubb>0</td><td class=ubb>0</td><td class=ubb>1</td><td class=ubb>1</td><td class=ubb>1</td></TR></table><br />注:功能表与真值表的区别<br />根据上表,编码器为高电平有效,因而可由功能表得到表达式:<br /><SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image002.gif"> </SUB><br /><SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image004.gif"> </SUB><br /><br /><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/1.gif"><br />注:“x” 表示约束项此处约束项为零<br /><br />根据逻辑表达式画出逻辑图 :<br /><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image006.jpg"> <br /><B>4线——2线编码器逻辑图</B><br />该逻辑电路功能:<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image008.gif"> </SUB>中在某一输入为1时,输出<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image010.gif"> </SUB><SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image012.gif"> </SUB>即为相应的代码。例如 当<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image014.gif"> </SUB>为1时,<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image015.gif"> </SUB><SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image016.gif"> </SUB>为01。需要注意,当 <SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image018.gif"> </SUB>,<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image019.gif"> </SUB>都为0和<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image020.gif"> </SUB>均为0时,<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image021.gif"> </SUB><SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image022.gif"> </SUB>都是00,而这两种情况在实际中是必须加以区分的。编码器也可以设计为低电平有效。由于我们给出的编码器输入<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image023.gif"> </SUB>共4个电平信号,输出<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image024.gif"> </SUB>、<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image025.gif"> </SUB>是两位二进制代码,为此叫做4/2线编码器。<br />编码器的这种思想是否真正掌握了呢?试写出8/3线编码器对应的输入——输出关系。<table class=ubb cellspacing=0><TR><td class=ubb><br />输入</td><td class=ubb><br />输出</td></TR><TR><td class=ubb><br />I<SUB>0</SUB></td><td class=ubb><br />I<SUB>1</SUB></td><td class=ubb><br />I<SUB>2</SUB></td><td class=ubb><br />I<SUB>3</SUB></td><td class=ubb><br />I<SUB>4</SUB></td><td class=ubb><br />I<SUB>5</SUB></td><td class=ubb><br />I<SUB>6</SUB></td><td class=ubb><br />I<SUB>7</SUB></td><td class=ubb><br />Y<SUB>0</SUB></td><td class=ubb><br />Y<SUB>1</SUB></td><td class=ubb><br />Y<SUB>2</SUB></td></TR><TR><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />1</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />0</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />1</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />0</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td></TR></table><br />(上表假设高电平有效)<br />2. 键盘输入8421BCD码编码器<br /><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image027.jpg"> <br /><B>用十个按键和门电路组成的8421BCD码编码器</B><br />注:这里是低电平有效,GS为控制使能标志,也就是解决了<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image029.gif"> </SUB>和<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image031.gif"> </SUB>而 <SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image033.gif"> </SUB>时输出都为ABCD=0000的情况。<br />二、 优先编码器<br />上述机械式按键编码电路虽然比较简单,但同时按下两个或更多个按键时,输出将混乱,而在优先编码器电路中,允许同时输入两个以上编码信号。不过在设计优先编码器时已经将所有的输入信号按优先顺序排了队,当几个输入信号同时出现时,只对其中优先权最高的一个进行编码。<br />4/2线优先编码器功能表如下(高电平有效):从表中可以看出:对于<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image035.gif"> </SUB>,只有当 <SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image037.gif"> </SUB>、<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image039.gif"> </SUB>、<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image041.gif"> </SUB>均为0,即均无有效电平输入,且 <SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image043.gif"> </SUB>(有效电平)时输出为00。而对于 <SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image044.gif"> </SUB>,无论其他3个输入是否为有效电平输入,输出均为11。由此可以判断优先次序<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image046.gif"> </SUB>。通过化简可以得出逻辑表达式:<br /><SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image048.gif"> </SUB><br />三、 集成电路编码器<br />1. 集成优先编码器74LS148逻辑图 如下<br /><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image050.jpg"> <B><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image052.jpg"> </B><br /> (a)逻辑图 (b)引脚图<br /><B>优先编码器74148逻辑图和引脚图</B><br />工作原理分析:<br />① EI=1时,则不论输入 <SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image054.gif"> </SUB>八个端为何种状态,<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image056.gif"> </SUB><SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image058.gif"> </SUB><SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image060.gif"> </SUB>都为高电平,且EO=1,GS=1(此时编码器处于不工作状态)<br />② EI=0时<br />Ⅰ. <SUB><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image061.gif"> </SUB>均为高电平,GS=1时A<SUB>2</SUB>A<SUB>1</SUB>A<SUB>0</SUB>=111为非编码输出(工作,但无有效输入请求)。这种情况EO=0,此时它可与另一片同样的器件的EI连接,以便组成更多输入端的优先编码器。<br />Ⅱ. 只有<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image063.gif"> </SUB>(优先级别最低位有低电平输入时)GS=0,A<SUB>2</SUB>A<SUB>1</SUB>A<SUB>0</SUB>=111为编码输出。<br /><B>优先编码器74148功能表</B><table class=ubb cellspacing=0><TR><td class=ubb><br />输入</td><td class=ubb><br />输出</td></TR><TR><td class=ubb><br />EI</td><td class=ubb><br />I<SUB>0</SUB></td><td class=ubb><br />I<SUB>1</SUB></td><td class=ubb><br />I<SUB>2</SUB></td><td class=ubb><br />I<SUB>3</SUB></td><td class=ubb><br />I<SUB>4</SUB></td><td class=ubb><br />I<SUB>5</SUB></td><td class=ubb><br />I<SUB>6</SUB></td><td class=ubb><br />I<SUB>7</SUB></td><td class=ubb><br />A<SUB>2</SUB></td><td class=ubb><br />A<SUB>1</SUB></td><td class=ubb><br />A<SUB>0</SUB></td><td class=ubb><br />GS</td><td class=ubb><br />EO</td></TR><TR><td class=ubb><br />1</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />0</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />0</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />0</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />x</td><td class=ubb><br />x</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />0</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />x</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />0</td></TR><TR><td class=ubb><br />0</td><td class=ubb><br />0</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />1</td><td class=ubb><br />0</td></TR></table><br />从功能表可以看出,输入端优先级别的次序依次为I<SUB>7</SUB>,I<SUB>6</SUB>,…,I<SUB>0</SUB> 。当某一输入端有低电平输入,且比它优先级别高的输入端无低电平输入时,输出端才输出对应该输入端的代码。例如:I<SUB>5</SUB>=0且I<SUB>6</SUB>=I<SUB>7</SUB>=1(I<SUB>6</SUB>、I<SUB>7</SUB>优先级别高于I<SUB>5</SUB>) 则此时输出代码010 ( 为<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image065.gif"> </SUB>的反码)这就是优先编码器的工作原理。(从优先编码其逻辑图可以分析)<br />2. 编码器扩展<br />用两片74LS148组成16位输入4为二进制码输出的优先编码器,试分析其工作原理:<br /><img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image067.jpg"> <br /><B>用两片74LS148接成的16线-4线优先编码器</B><br />(1)当EI<SUB>2</SUB>=1时,EO<SUB>2</SUB>=1,从而使EI<SUB>1</SUB>=1,这时74LS148(Ⅰ)、(Ⅱ)均禁止编码,它们的输出端A<SUB>2</SUB>A<SUB>1</SUB>A<SUB>0</SUB>=111。由电路图可知,<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image069.gif"> </SUB>,表示此时整个电路的代码输出端DCBA=1111是非编码输出。<br />(2)当EI<SUB>2</SUB>=0时,高位片(Ⅱ)允许编码,但若<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image071.gif"> </SUB>都是高电平,即均无编码请求,则EO<SUB>2</SUB>=0,从而EI<SUB>1</SUB>=0,允许低位片(Ⅰ)编码,这是高位片的A<SUB>2</SUB>A<SUB>1</SUB>A<SUB>0</SUB>=111,使门C、B、A 取决于低位片的A<SUB>2</SUB>A<SUB>1</SUB>A<SUB>0</SUB>。而<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image073.gif"> </SUB>,总是等于1,所以输出代码在1111~1000之间变化。如果A<SUB>0</SUB>单独有效,输出为1111;如果A<SUB>7</SUB>及任意其他输入同时有效,则输出为1000,低位片以A<SUB>7</SUB>的优先级别最高。<br />(3)当EI<SUB>2</SUB>=0且<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image075.gif"> </SUB>中有编码请求(至少一个位低电平时),EO<SUB>2</SUB>=1,从而EI<SUB>1</SUB>=1,高位片编码,低位片禁止编码。显然高位片的编码级别优先于低位片。此时<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image077.gif"> </SUB>,C、B、A取决于高位片的A<SUB>2</SUB>A<SUB>1</SUB>A<SUB>0</SUB>。输出代码在0111~0000之间变化,同理可知,高位片中<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image079.gif"> </SUB>的优先级别最高。整个电路实现了16位输入的优先编码,其中<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image080.gif"> </SUB>具有最高优先级别,优先级别从<SUB> <img src="http://course.jingpinke.com/bk/2004/A040022/self_study/lesson/zhang3/bianmaqi.files/image082.gif"> </SUB>依次递减。
|