




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第6章 数字量输入输出接口 西安交通大学计算机系桂小林2016年11月6日星期五微机接口技术,桂小林2目录6.1 并行接口的概念6.2并行接口控制芯片8255A6.3 数字量并行接口的应用6.4 数字量串行接口及芯片8251A6.5 光电隔离输入输出接口微机接口技术,桂小林3概述数字量输入输出接口包括数字量输入和数字量输出两大部分。数字量是计算机能够直接识别和处理的信号。输入输出系统中的主要数字量包括开关量输入和输出。所以数字量又称为开关量。本章主要介绍数字量并行输入输出接口、数字量串行输入输出接口以及光电隔离的输入输出接口。微机接口技术,桂小林46.1 并行接口的概念并行接口通信就是把一个
2、字符的各位同时用几根线进行传输。并行通信用在传输速率要求较高,而传输距离较短的场合。图6-1给出了数据总线进行并行通行的例子。01010110 D0D1D2D3D4D5D6D7目的D0D1D2D3D4D5D6D7源图6-1 数据总线进行并行通行的例子微机接口技术,桂小林56.2并行接口控制芯片8255A8255A是Intel公司生产的可编程并行接口芯片,它有多种工作方式可以进行选择,并且通常无需外围电路,使用方便而且广泛 。6.2.1 8255A的编程结构6.2.2 8255A的引脚功能6.2.3 8255A的控制字6.2.4 8255A的工作方式微机接口技术,桂小林66.2.1 8255A的
3、编程结构8255A的逻辑结构如图6-2所示,主要包括三个并行的输入/输出端口A、B和C,A组和B组的控制电路,数据缓冲器以及读写控制逻辑等部分。为了与A组和B组进行区分,以下将端口A、B和C称为PA口、PB口和PC口。 微机接口技术,桂小林7微机接口技术,桂小林8(1)PA、PB和PC口的作用与功能8255A有三个I/O端口,分别是PA、PB和PC,三个端口都是8位的,并且通过编程可以作为输入、输出或输入/输出端口使用。PA口是一个独立的8位I/O口,有数据输入/输出锁存功能。PB口也是一个独立的8位I/O口,有数据输出锁存功能。PC口可以看作是一个独立的8位I/O口;也可以看作是两个独立的4
4、位I/O口,还可看作独立的8位I/O口。有数据输出锁存功能。端口PA和PB通常独立使用,而端口PC既可以独立使用,也可以配合端口PA和PB的工作,为它们提供联络信号,包括选通信号和应答信号。端口PC在独立工作时,既可以8位并行输入或输出,也可以按位操作,具有更大的灵活性。微机接口技术,桂小林9(2)A组和B组的控制电路在配合端口PA和PB工作时,端口PC被分为两部分,高4位(PC7 PC4)与端口PA一起构成了A组,而低4位(PC3 PC0)与端口PB一起构成了B组。A组和B组的控制电路接收由读写控制逻辑获得的控制字,分别对A组和B组的工作方式进行控制,因此A组和B组可以工作在不同方式下。微机
5、接口技术,桂小林10(3)数据缓冲器双向、三态的数据缓冲器是8255A与数据总线的接口,微处理器可以通过它向三个I/O端口写入或读出数据,或者写入控制字以选择8255A的工作方式。(4)读写控制逻辑读写控制逻辑电路负责管理8255A的数据传输过程,实现8255A内部和外部的数据、控制字的传送。它根据地址、控制信号(复位信号、读写信号和片选信号等)的组合来决定将微处理器发送的控制字传送给A组或B组的控制电路,或者选择输入或输出数据到PA、PB和PC口。微机接口技术,桂小林116.2.2 8255A的引脚功能1面向CPU的引脚信号及功能D0-D7:8位,双向,三态数据线,用来与系统数据总线相连;R
6、ESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式;A1,A0:内部口地址的选择,输入。这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作 微机接口技术,桂小林122面向外设的引脚信号及功能PA0PA7:A组数据信号,用来连接外设;具有输入、输出锁存功能,可以作为单向或双向信号线使用。PB0PB7:B组数据信号,用来连接外设;具有输出锁存功能,仅可以作为单向信号线使用。PC0PC7:C组数据信号,用来连接外设或者作为控制信号。具有输出锁存功能,仅可以作为单向信号线使用。微机接口技术,桂小林136.2.3 8255A的控制字1
7、方式控制字(控制口)微机接口技术,桂小林142C口置位/复位控制字(控制口)注意:这里必须使用控制口操作PC口微机接口技术,桂小林15例如,某系统要求使用8255A的C口的PC5输出一个由高到低的跳变。可以通过两种方式设置。如下页微机接口技术,桂小林16方法一:采用普通方式设置PC为输出,然后置位/复位PC5,具体程序段如下:MOVDX,控制口MOVAL,1 00 0 0 X X XB;选择PC高位输出,方式0OUTDX,AL;控制字设置MOV DX,PC端口MOVAL,XX 1 XXXXX B;即PC5设置为高电平输出OUTDX,AL;PC5置0(低电平)MOVAL,XX 0 XXXXX B
8、;即PC5设置为低电平输出OUTDX,AL;PC5置0(低电平)微机接口技术,桂小林17方法二:采用置位/复位PC口方式,具体程序段如下:MOVDX,控制口MOVAL,0 000 101 1B;即0BH,选择PC5,置位OUTDX,AL;PC5置1(高电平)MOVAL,0 000 101 0B;即0AH,选择PC5,复位OUTDX,AL;PC5置0(低电平)微机接口技术,桂小林183、8255A的状态字8255A无状态寄存器,在方式1和方式2时,可以用端口C兼作状态用。 微机接口技术,桂小林196.2.4 8255A的工作方式1方式0方式0称为基本输入/输出方式,适合在同步传输(无条件传输)和
9、程序查询方式下工作,CPU通过软件方式确认外设状态,与外设交换数据,因而不适合在实时性要求高的应用环境。在方式0中,PA、PB和PC相互独立工作,PC又分为高4位和低4位两个独立的部分,通过控制字可以将这四部分任意选择为输入或输出,共有16种组合。微机接口技术,桂小林20初始化实例例如,某系统要求使用8255A的C口的PC4输出一个由高到低的跳变。写出8255A的方式控制字和初始化程序段。【解】由于本例不关心PA和PB的工作方式,所以不用考虑设置8255A的方式控制字。为了实现PC4输出一个由高到低的跳变,需要PC4先输出一个高电平,然后输出一个低电平。方法一:采用普通方式设置PC为输出,然后
10、设置PC4(1,0),具体程序段如下:MOVDX,控制口MOVAL,1 00 0 X X XB;选择PC高位输出,方式0OUTDX,AL;MOV DX,PC口MOVAL,XXX 1 XXXX B;即PC4设置为高电平输出OUTDX,AL;PC4置1(高电平)MOVAL,XXX 0 XXXX B;即PC4设置为低电平输出OUTDX,AL;PC4置0(低电平)微机接口技术,桂小林21为了实现PC4输出一个由高到低的跳变,需要PC4先输出一个高电平,然后输出一个低电平。方法2:采用置位/复位PC口方式,具体程序段如下:MOVDX,控制口MOVAL,0 000 100 1B;即09H,选择PC4,置位
11、OUTDX,AL;PC4置1(高电平)MOVAL,0 000 100 0B;即08H,选择PC4,复位OUTDX,AL;PC4置0(低电平)对于PC口可以采用两种方法之一,方法二简单。对应PA和PB口,只能采用方法一,不能使用方法二。特别注意:方法二对控制口进行,不是PC端口。微机接口技术,桂小林222方式1方式1是一种选通I/O方式,A口和B口仍作为两个独立的8位I/O数据通道,可单独连接外设,通过编程分别设置它们为输入或输出,输入输出均具有数据锁存功能。而C口则要有6位(分成两个3位)分别作为A口和B口的应答联络线,其余2位仍可工作在方式0,可通过编程设置为输入或输出。微机接口技术,桂小林
12、23(1)方式1的输入组态和应答信号的功能图6-7给出了8255A的A口和B口在方式1的输入组态图。C口的PC3-PC5用作A口的应答联络线,PC0-PC2则作用B口的应答联络线,余下的PC6PC7还可作为方式0使用。微机接口技术,桂小林24方式1输入组态的应答联络线微机接口技术,桂小林25微机接口技术,桂小林26方式1的输出组态和应答信号微机接口技术,桂小林27微机接口技术,桂小林28微机接口技术,桂小林293方式2方式2为双向选通I/O方式,只有A口才有此方式。这时,C口有5根线用作A口的应答联络信号,其余3根线可用作方式0,也可用作B口方式1的应答联络线。方式2就是方式1的输入与输出方式
13、的组合,各应答信号的功能也相同。而C口余下的PC0PC2正好可以充当B口方式1的应答线,若B口不用或工作于方式0,则这三条线也可工作于方式0。微机接口技术,桂小林30方式2为双向选通I/O方式中断请求输出缓冲器满输出应答(外设读走数据)输入选通(外设准备好了数据)输入缓冲器满(8255已经收到数据)作为普通输入输出(方式0)316.3 并行接口的应用本节介绍8255A的典型应用,包括8255A与LED的接口、8255A与非编码键盘的接口、8255A与并行打印机的接口。6.3.1 七段数码管接口6.3.2 非编码键盘接口6.3.3并行打印机接口微机接口技术,桂小林326.3.1 七段数码管接口1
14、、单个LED与8255A的接口2、多个LED与 8255A的接口微机接口技术,桂小林33七段数码管数码显示管(LED)是一种简单的显示输出设备,通常作为仪器、仪表的显示器,用于显示数字或少数字符。LED种类较多、大小各异,主要有七段数码管和16段数码管。图6.13给出了一种七段式数码管的内部结构。微机接口技术,桂小林34显示不同数字和字符时,七段数码管需要点亮的二极管位置不同。如,显示数字“3”,需要点亮a、b、c、d和g四段发光二极管。表6-2给出了图6.13所示结构的七段数码管实现数字09以及字符AF时,需要发光的二极管段。 微机接口技术,桂小林35显示的数字发光的段显示的数字发光的段显示
15、的字符发光的段显示的字符发光的段0abcdef5afgcdAabcefgFaefg1bc6afgcdebabcdefgqabcfg2abged7abcCadefg3abgcd8abcdefgdbcdeg=gd4fgbc9abcdfgEadefgPabefg微机接口技术,桂小林361、单个七段数码管与8255A的接口8255A与单个数码管的接口电路如图6.14所示。共阳微机接口技术,桂小林37该数码管由8个发光二极管构成,对外引脚共9个,分别是a、b、c、d、e、f、g、dp和公共引脚,采用共阳极结构。除Vcc外,每个引脚外接1个460欧姆的电阻,然后连接到8255A的PB口的PB0PB7上。根
16、据题意,当在PB0上输出低电平时,LED的a段二极管发光,输出高电平时,LED的a段二极管熄灭。其它各段发光的方法依次类推。微机接口技术,桂小林38首先,分析图中LED实现不同数字和字符时发光的二极管,由此确定PB口输出什么数值时控制显示不同的“数字”或“字符”。例如,要显示数字“2”时,需要点亮a、b、d、e、g共5段发光二极管,根据a、b、d、e、g与PB口的连接关系,可以确定PB口的值应该设置为PB0=0(a段),PB1=0(b段),PB2=1(c短),PB3=0(d段),PB4=0(e段),PB5=1(f段),PB6=0(g段),PB7=1(DP段),写出字节的形式就是10100100
17、B,即0A4H。这种为确定显示字符而确定的CPU需要送出的控制数值,称为LED段码或字形码。表6-3给出了全部16进制数字字符的LED段码。微机接口技术,桂小林39显示数符发光段LED段码显示数符发光段LED段码0abcdefC0HAabcefg88H1bcF9Hbcdefg2abgedA4HCadef3abgcdB0Hdbcdeg4fgbc99HEadefg5afgcd92HFaefg6afgcde82Hqabcfg7abcE8Hg8abcdefg80H=gd9abcdfg9FPabefg微机接口技术,桂小林40在上例中,采用共阳LED,低有效驱动显示,如果要求先显示数字“3”,然后显示数字
18、“6”,写出程序段。【解】先分析数字“3”和数字“6“显示时的LED段码,分别为:0B0H和82H,然后写出程序段如下:MOV DX, 8255控制口MOV AL, 1 000 0 00 0B;80H,8255A初始化B口方式0,输出OUT DX,ALMOV DX,8255PB口MOV AL,0B0H;“3”的段码OUT DX,AL;显示“3”CALL DELAY20MS;延时MOV AL,82H;“6”的段码OUT DX,AL;显示“6”微机接口技术,桂小林412、8255A与多个LED的接口图6-15为8255A驱动8个LED的接口电路。其中的七段数码管采用共阴LED,每个LED包含8个引
19、脚,分别是a、b、c、d、e、f、g、dp和公共引脚。除公共引脚外,每个引脚外接1个460欧姆的电阻(图中未给出),然后连接到8255A的PA口的PA0PA7上。每个LED的公共引脚经过反相器连接到PC口的PC0PC7。微机接口技术,桂小林42在这种有多个数码管的情况下,通常采用动态扫描的方式来控制数码管的显示,其过程是首先使PC0输出高电平,而PC1 PC7输出低电平,选中数码管U0,然后由PA口根据要显示的第一个数字输出8位数据(称为段码或字形码),尽管段码同时到达8个数码管的段选线,但只有U0能够显示,因此将第一个数字显示在U0上。微机接口技术,桂小林43在这种有多个数码管的情况下,通常
20、采用动态扫描的方式来控制数码管的显示,其过程是首先使PC0输出高电平,而PC1 PC7输出低电平,选中数码管U0,然后由PA口根据要显示的第一个数字输出8位数据(称为段码或字形码),尽管段码同时到达8个数码管的段选线,但只有U0能够显示,因此将第一个数字显示在U0上。这种状态维持2m后,接下来使PC1输出高电平,而其它7位输出低电平,可以在数码管U1上显示第二个数字。以此类推,周而复始,就可以使8个数码管同时显示8位数字。上述动态扫描过程利用了视觉暂留现象。为了能够获得较好的显示效果,每个数码管的扫描时间需要选取恰当,时间太长会造成闪烁现象。微机接口技术,桂小林44求解过程-第1阶段:设置段码
21、表本例由于采用共阴LED,而且LED引脚和PA口的连接顺序不同(引脚a、b、c、d、e、f、g、dp分别对应PA口的PA70),因而得到的段码(字形码)不同。PA位PA7PA6PA5PA4PA3PA2PA1PA0DB位D7D6D5D4D3D2D1D0段abcdefgdp段码011111100FCH10110000060H211011010DAH311110010F2H40110011066H510110110B6H610111110BEH711100000E0H811111110FEH911110110F6HA1111110EEH微机接口技术,桂小林45第2阶段:设置显示缓冲区8个LED要显示
22、的数字可以放到显示缓冲区DispBuff中。例如,8个LED要显示“20070501”,则DispBuff的值可以设置为:2,0,0,7,0,5,0,1。通过修改显示缓冲区,可以让8个LED显示不同的数字,简化了软件设计。DispBuff:02H, 00H, 00H, 07H, 00H, 05H, 00H, 01H;放置要实现的8个数字,作为查找下表的偏移量使用微机接口技术,桂小林46第3阶段:设计8个LED轮流显示的完整程序/ 初始化8255A MOVAL,10000000B;PA、PC均为方式0, 输出 MOVDX,PORTCTL;8255A控制口 OUTDX,ALBEGIN:MOVCX,
23、8;循环8次MOVDI,Offset DisBuffMOVBX,Offset SegCodeTabMOV SI,0 MOVAH,00000001B;PC0设置为1,选中第一个LED微机接口技术,桂小林47 MOVAH,00000001B;PC0设置为1,选中第一个LEDSCAN:MOVAL,AH;使PC口相应位置位MOV DX,PORTC;MOVDX,PORTCTL;C口位控时的指令OUT DX,AL;使PC口相应位置位ADD DI,SI;查找显示缓冲区MOV DX, DI;取出要显示的数字符 MOVAL,BX+ DX;取出显示字符的段值(字形码)INCSI;下一个要显示字符的偏移量MOVDX
24、,PORTA;PA口输出字形码OUT DX,AL CALLDELAY2MSSHL AH,1;为显示下一个数码管做准备 ;ADDAH,2;C口位控时,为显示下一个数码管做准备LOOPSCANJMPBEGIN;重复显示微机接口技术,桂小林486.3.2 非编码键盘接口键盘根据实现方法可以分为编码键盘和编码键盘非两种。编码键盘是指可以直接提供按键编码(如ASCII码)的键盘。为了能够提供按键编码,编码键盘内部需要有键盘扫描电路,这些硬件电路能够检测是否有键按下,并根据按下的是哪一个键而输出其编码。比如经常使用的PC机键盘,其内部专门设有一个单片机进行键盘检测和处理。非编码键盘只有按键而无扫描电路,这
25、些按键它由多个开关组合而成。微机接口技术,桂小林4916个键的键盘对于大多数的键盘,按键被排成行和列的矩阵。下面以机械式开关构成的16个键的键盘为例(如图6-16所示),来讨论键盘接口的工作原理,这种原理对采用其它类型的开关的键盘也是适用的。微机接口技术,桂小林50分析设16个键分别为16进制数字09和AF,键盘排列、连线及接口电路如图6-16所示。16个键排成4行4列的矩阵,通过8255A构成的接口与CPU连接。8255A的端口A作输出,端口B作输入。矩阵的4条行线接到输出端口A的PA3PA0,用程序能改变这4条行线上的电平。4条列线连到输人端口B的PB3PB0,4条行线还同时接到输人端口B
26、的PB7PB4上(这不是必须的,可以不接),这样,用输入指令读取B口状态时,可同时读取键盘的行列信号。微机接口技术,桂小林5116个按键的扫描码例如,对于数字0,它位于3行、3列,压下“0”键时,从B口可读得D7位和D3位为0,其余位为1,所以数字0的编码为01110111B,即77H;对于数字6,处于2行1列,压下6键时,D6位和D1位0以其余位为1,所以数字6的编码为10111101B=BDH。 按键01234567扫描码77H7BH7DH7EH0B7H0BBH0BDH0BEH按键89ABCDEF扫描码0D7H0DBH0DDH0DEH0E7H0EBH0EDH0EEH微机接口技术,桂小林52
27、确定程序流程 包括键盘检测、去抖动、键值编码和确定键名等。具体流程如下:(1) 检测是否所有键都松开了,若没有则反复检测(该步可省去)。当所有键都松开了,转(2);(2) 检测是否有键压下,若无键压下则反复检测。(3) 若有键压下,则通过延迟20ms消除键抖动,如果该键还按下,则继续判断是哪个键按下,否则,继续检测。(4) 对压下的键进行编码,将该键的行列信号转换成16进制码,由此可确定哪个键被压下了。如出现多键重接的情况,只有在其它键均释放后,仅剩一个键闭合时,才把此键当作本次压下的键。(5) 该键释放后,再回到(2)。微机接口技术,桂小林53给出具体程序 首先给出该8255A的端口地址(这
28、里是假设,实际系统根据地址译码确定),具体为:PORTA EQU 0FF9H;8255 A口地址PORTB EQU 0FFBH;8255 B口地址PORTCTL EQU 0FFFH;8255控制口地址然后确定程序出口,具体参数为:若返回值AH=0,表示已读到有效的键值,并在AL中存有0F键的16进制代码;若返回值AH=l,则表示出错。 最后给出程序段,包括注释与说明。微机接口技术,桂小林54给出具体程序本段程序可以省略等待全部按键释放微机接口技术,桂小林55给出具体程序本段程序检查是否有键按下?微机接口技术,桂小林56本段程序检查哪一个键按?本段程序编码并查表从按键F开始查表,直到按键0。如果
29、按键较少,则不用查表,根据编码转去直接处理 IN AL,DX CMP AL,77H JZ Key0CMP AL,7BHJZ Key1 微机接口技术,桂小林57从上面键盘接口例子我们可以看到,为了要及时发现键盘中的按键是否按下,CPU必须定时或不断地利用软件(即上述扫描程序)对键盘进行扫描,这样CPU的开销太大,降低了CPU的工作效率。为此有关厂家专门开发了、用于键盘接口的大规模集成电路芯片,例如Intel 8279、SSK814。 按键01234567扫描码77H7BH7DH7EH0B7H0BBH0BDH0BEH按键89ABCDEF扫描码0D7H0DBH0DDH0DEH0E7H0EBH0EDH
30、0EEH键盘实例微机接口技术,桂小林58差分微机接口技术,桂小林596.3.3并行打印机接口并行打印机接口(LPT)在不同PC系列机型中,以不同的形式出现。在PC/XT机中是以I/O扩展槽上的IBM并行打印机适配器板出现,在AT机中是以插在I/O扩展槽上的 IBM并行口/串行口适配器板出现。现在的LPT则集成在主板上,随着计算机的快速发展,LPT接口的使用频率在下降,代之而起的是基于USB接口的打印机的广泛使用。但作为打印机的主要接口之一,本节有必要进行介绍与讲述。微机接口技术,桂小林60Centronics总线标准在并行打印机中,设置有36引脚的Centronics总线标准插座。打印机与PC
31、通过36芯-25芯电缆连接到PC的25芯D型连接器LPT上。它的25个引脚所代表的信号可分为:数据信号、状态信号和控制信号三类。表6-6给出了Centronic总线引脚及其功能说明。微机接口技术,桂小林61Centronic总线引脚及功能说明Centronic总线时序微机接口技术,桂小林628255控制打印机实例例如,已知某微型英文打印机的接口信号如下,信号间的时序关系如图6-17所示。其中:(1) STB#:输入打印机的选通信号(5ms负脉冲),用来把数据打入打印机数据缓冲器; (2)INIT# :初始化打印机信号(5ms负脉冲); (3) BUSY:打印机发出的状态信息(“忙”信号),BU
32、SY有效(高电平)时,表示打印机现在不能接收数据,BUSY无效(低电平)时,表示打印机正处于空闲(准备好)状态,可以接收数据。(4) DATA0DATA7:送往打印机的打印数据,在英文字符打印机中,DATA0DATA7上传输的是要打印的字符的ASCII码。微机接口技术,桂小林63现在将英文打印机连接到8255A芯片上,8255A连接到PC/XT总线上,如图6-18所示。已知有5ms延迟程序Delay5ms可供调用。 微机接口技术,桂小林64解答下列问题: (1)分析图中的译码电路,给出8255A的PA、PB、PC和方式控制字的端口地址(用16进制表示);(2)给出8255A的方式控制字(用16
33、进制表示),写出初始化8255A的程序段;(3)完成判断打印机忙的程序段;(4)完成下面的打印一个字符“A”的程序段。微机接口技术,桂小林65【解】(1)由图6-18的地址译码电路分析可知,8255A的片选信号连接到74LS138芯片的Y2上,即当Y2为低电平时选中8255A芯片。而74LS138的Y2为低电平的条件是:A9A8=11,A7A6=01,A4A3A2=010,A5为任意值。根据上述分析,8255A的PA口地址为:11 01X0 1000B,即348H或368H。由此可得,8255A的PA、PB、PC和控制口的端口地址分别为:348H或368H,349H或369H,34AH或36A
34、H,34BH或36BH。微机接口技术,桂小林66解:(2)按照题意,8255A的PA为输入(或输出),PB为输出,PC的低4位为输出,高4位为输入。由此可得8255A的方式字的值为98H。下面是初始化8255A的程序段:MOV DX,34BH或36BHMOVAL,98HOUTDX,AL(3)下面是判断打印机忙的程序段;MOV DX,34AH;或36AH,C口 BUSY:INAL,DXTEST AL,40H; 检测PC6JNZ BUSY微机接口技术,桂小林67微机接口技术,桂小林68方式1时打印机连接上面的例子给出的是8255A工作于方式0的例子。但在实际应用中,打印机与8255A可以方便实现方
35、式1的连接,即由硬件判断打印机忙状态,通过中断方式进行打印数据发送。图6.19所示,微型打印机的接口由8255A的A组实现,采用工作方式1、输出方式。根据方式1的时序关系,微处理器将数据写入PA口并由其引脚输出后,PC7输出信号,这正好作为数据选通信号将数据送入打印机,打印机完成接收操作后用信号指示8255A,随后8255A产生中断请求信号通知微处理器可以输出下一个数据。微机接口技术,桂小林69中断向量填写0+?*40+?*4+2中断服务程序发送1个ASCII码到PAMOV DX,PAMOV AL,字符的ASCII码OUT DX,AL微机接口技术,桂小林70作业P2921、6、10微机接口技术
36、,桂小林716.4 串行接口的基本概念第1节: 串行通信基础第2节: 可编程串行接口芯片8251第3节: 8251的串行异步通信的应用第4节: PC系列串行异步通信接口第5节: BIOS串行异步通信口的功能调用09 八月 2022修改微机接口技术,桂小林72第1节:串行通信基础1)串行通信的物理连接2)串行通信类型和数据位鉴别方式3)串行通信协议4)串行通信的物理标准微机接口技术,桂小林731)串行通信物理连接方式微机接口技术,桂小林742) 串行通信的类型和数据位的检测方式串行异步通信格式 一帧字符用起始位和停止位同步微机接口技术,桂小林752) 串行通信的类型和数据位的检测方式串行同步通信
37、格式 用同步字符完成同步微机接口技术,桂小林76 串行通信数据位的检测时钟周期 :Tc数据位间隔:TdTc = Td / KK:波特率因子(16,32,64)微机接口技术,桂小林773)串行通信协议 异步通信协议 同步通信协议微机接口技术,桂小林78 异步通信数据格式微机接口技术,桂小林79 串行同步通信协议BISYNC(Binary Synchronous Communication):SYN(1或多)、STX(起始控制符)、DATA FIELD(100或更多字节)、ETX(结束控制符)、BCC(块校验字符)、PAD(帧结束FFH)微机接口技术,桂小林80 串行同步通信协议SDLC(Seri
38、al Data Link Control):IBM 用于计算机网络中SYNC(Flag byte 01111110 )、Address field(8bits)、Control field(8bits)、Data field(k bits)、Frame check(16 bits)、End flag(01111110)微机接口技术,桂小林814)物理标准 通信速率 串行通信接口标准 信号的调制和解调微机接口技术,桂小林824)物理标准通信速率波特率:bits / S , 波特,与距离成反比100,300,600,1200,2400,4800,9600,19200微机接口技术,桂小林83 串行通
39、信接口标准:EIA RS-232C控制信号的定义微机接口技术,桂小林84信号电平标准: 采用负逻辑TTL与RS-232电平变换 接口 1489 1488 1489 1488 接口 TTL TTL TTL TTL RS-232 RS-232 微机接口技术,桂小林85RS-232连接器连接方式1)/RTS(Request To Send)请求发送引脚(输出、低电平有效),通过命令指令字可以使该引脚输出低电平,通知调制解调器当前微处理器已经准备好发送。2)/CTS(Clear To Send)清除发送引脚(输入,低电平有效),当为低电平时,表示调制解调器已经允许8251A发送数据。-3)/DTR(D
40、ata Terminal Ready)数据终端准备就绪引脚(输出,低电平有效),通过命令指令字可以使该引脚输出低电平,通知调制解调器当前微处理器已经准备就绪。4)/DSR(Data Set Ready)数据设备准备就绪引脚(输入,低电平有效),当为低电平时,通知微处理器当前调制解调器已经准备就绪。由于该信号是输入给8251A的,微处理器需要读取8251A的状态字来检测该信号,以了解调制解调器当前的状态。微机接口技术,桂小林86微机接口技术,桂小林87信号的调制和解调长距离传输时传输介质频带限制把发送代码调制成正弦波调频 Frequency Modulation1:2100Hz0:1070Hz调
41、相调幅微机接口技术,桂小林88 信号的调制和解调支持长距离传输微机接口技术,桂小林89几种可编程串行接口芯片随着大规模集成电路技术的发展,生产微处理器芯片的公司,纷纷推出可编程的支持异步规程或同步规程的接口芯片。下表列出几种串行接口芯片。这些芯片都是可编程的,用芯片构成串行通信接口,只需附加地址译码器和数据驱动器、波特率发生器以及电平转换器等简单电路。有的芯片,例如INS 8250芯片内还集成了波特率发生器,用它组成串行接口适配器时、电路结构更简单。微机接口技术,桂小林90下表列出几种串行接口芯片PC机微机接口技术,桂小林91第2节:可编程串行通信接口 82511) 功能与结构2) 8251的
42、编程3) 8251的应用微机接口技术,桂小林921)功能与结构8251的基本性能可用于同步或异步传送同步传送时, 每字符可选58 bits; 可内或外同步; 能自动插入同步字符。异步传送时, 每字符可选58 bits; 接收与发送时钟为通讯波特率的1、16或64倍。可产生中止字符 (Break Character) 并能自动检测和处理; 可产生1、1.5或2 bit的停止位; 可检测出假启动信号。波特率, 同步时最高64 K波特; 异步时最高19.2 K波特。完全双工, 双缓冲的发送器与接收器检错能力, 具有奇偶错、数据丢失错和帧错误的检测能力。全部入/出信号均为正常TTL电平。微机接口技术,
43、桂小林931)8251 的功能与结构Intel 8251的结构见图,为28条管脚双列直插封装。从8251的结构图上看到它的5个组成部分, 即接收器、发送器、调制解调控制、读/写控制, 以及几个缓冲器。缓冲器又可细划为状态缓冲器, 发送数据/命令缓冲器, 和接收数据缓冲器3部分。微机接口技术,桂小林941)8251 的引脚安排D7D0(接外部数据总线)TXD数据发送引脚,在不发送数据时一般为高电平,但是通过发送终止字符可以使其为低电平。/TxC 控制数据发送速率的时钟输入引脚,在发送数据时,TXD 引脚在的每个下降沿移出一位数据。在同步方式下,数据传送速率等于的CLK频率,而在异步方式下,通过方
44、式指令字可以选择数据传送速率为CLK频率的1、1/16或1/64。微机接口技术,桂小林958251 的引脚安排TXRDY发送器准备就绪引脚,当TXRDY为高电平时指示发送缓冲器已空,微处理器可以写入新的数据,写信号上升沿引脚变低。引脚由TXEN控制,TXEN=0时TXRDY维持低电平。TXRDY通常作为中断请求信号,而TXEN可以看成是中断屏蔽位;8251A的状态字中也有一位TXRDY,与TXRDY引脚的区别是不受和TXEN的控制,在查询输入/输出方式中,微处理器查询该状态位来判断是否可以传送数据。微机接口技术,桂小林96发送引脚TXEMPTY发送缓冲器已空引脚,当发送缓冲器中的数据发送完毕,
45、该引脚为高电平。当微处理器向发送缓冲器写入数据时,写信号上升沿使TXEMPTY变低。在同步方式下,若TXEMPTY为高电平,表示当前没有数据可供发送,则8251A自动发送同步字符。微机接口技术,桂小林97接收引脚SYNDET同步字符检测引脚。SYNDET 既可以作为输入引脚也可以作为输出引脚。8251A复位后,SYNDET为低电平。内同步时,当在RxD线上检测到同步字符后,SYNDET输出高电平。外同步时,SYNDET为输入。当外设完成同步字符检测后,向此引脚输入一个正跳变信号,使得8251A在下一个j接收时钟的下降沿开始装配字符。微机接口技术,桂小林98接收引脚 RxD数据接收引脚,8251
46、A在/RxC的每个上升沿采样RxD引脚。/RxC控制数据接收速率的时钟输入引脚,控制数据接收速率的方式与/TxC相同,在实际使用时/RxC与/TxC通常接在一起。 RxRDY接收器准备就绪引脚,当RxRDY为高电平时,指示8251A的数据缓冲器中已经有接收到的数据,可供微处理器读出,并且由读信号的上升沿复位。如果在RxRDY信号有效的情况下微处理器没有及时取走数据,新接收的数据会覆盖数据缓冲器中原有数据,造成溢出错误,并且使状态字中的溢出错误标志OE置位。RXRDY可以作为中断请求信号,也可以作为状态信号供微处理器查询 微机接口技术,桂小林99调制解调器控制电路 (1)/DTR(Data Te
47、rminal Ready)数据终端准备就绪引脚(输出,低电平有效),通过命令指令字可以使该引脚输出低电平,通知调制解调器当前微处理器已经准备就绪。(2)/DSR(Data Set Ready)数据设备准备就绪引脚(输入,低电平有效),当为低电平时,通知微处理器当前调制解调器已经准备就绪。由于该信号是输入给8251A的,微处理器需要读取8251A的状态字来检测该信号,以了解调制解调器当前的状态。(3)/RTS(Request To Send)请求发送引脚(输出、低电平有效),通过命令指令字可以使该引脚输出低电平,通知调制解调器当前微处理器已经准备好发送。(4)/CTS(Clear To Send
48、)清除发送引脚(输入,低电平有效),当为低电平时,表示调制解调器已经允许8251A发送数据。微机接口技术,桂小林100时钟信号8251时钟信号:CLK:时钟输入,用来产生8251A器件的内部时序。同步方式下,大于接收数据或发送数据的波特率的30倍,异步方式下,则要大于数据波特率的4.5倍。TxC:发送器时钟输入,用来控制发送字符的速度。同步方式下,TxC的频率等于字符传输的波特率,异步方式下,TxC的频率可以为字符传输波特率的1倍、16倍或者64倍微机接口技术,桂小林1018251A的发送和接收- 异步接收a.在没有字符时,RxD线上为高电平b.8251把RxD线上第一次出现的低电平作为起始位
49、。c.当检测到起始位后,8251启动一个内部计数器,以波特率因子为16为例,当计数器计到半个数位传输时间即8个脉冲时,再检测RxD线,若RxD为高,则8251认为RxD线上出现了干扰(假起始),重新开始检测起始位。若RxD仍为低,则8251确认收到一个有效的起始位。d.当8251确认起始位后,进入正常的数据采样,如波特率因子为16,则每隔一个数位传输时间即16个接收时钟脉冲,采样一次RxD线,RxD为高,作为“1”,RxD为低,作为“0”;并将采样的数据送入“输入移位寄存器”。e. 数据进入“输入移位寄存器”被移位,并进行奇偶校验和去掉停止位, 就变成了并行数据,再通过内部数据总线送到“数据输
50、入寄存器”,同时设置“状态寄存器”中的输入有效状态位,发出RxRDY信号。f.若有效数据少于8位,8251把“数据输入寄存器”的高位填“0”。输入移位寄存器数据输入寄存器微机接口技术,桂小林102异步发送a.当程序把8251的控制寄存器TxEN位(允许发送)置1后,若8251收到Modem(DCE)发来的CTS(Modem 允许8251发送),则开始发送。注意:若无Modem,应将8251的CTS端接地。b.发送控制电路根据编程要求,为每个字符加上起始位、校验位和停止位,并把它送至“发送移位寄存器”。c.“发送移位寄存器”在发送时钟TxC的控制下,按波特率因子的要求,把装配好的信息一位一位地从
51、TXD端上发出。d.当一帧信息发完后,8251发出TxE信号,表示已完成发送。e.若TxE有效,且CTS为低(Modem允许发送),TxEN位置1(程序允许发送),则8251发出TxRDY信号,表示8251可以再从CPU获得数据,重新开始发送。CPU可从状态寄存器中查询TxRDY信号。也可把TxRDY信号作为中断请求信号,以便开始下一字符的发送。微机接口技术,桂小林103同步接收a. 搜索同步字符: 8251监测RxD线,每当RxD线出现一个数据位时,就将其送入“接收移位寄存器”,然后比较“接收移位寄存器”和“同步字符寄存器”,若不等,8251接收下一个数据位,若相等,表示已找到同步字符,实现
52、了同步,8251发出SYNDET信号。对于双同步,只有连续找到两个同步字符,才发出SYNDET信号。如果在SYNDET上外加一个高电平(外同步),8251立刻脱离对同步字符的搜索,认为已完成同步(注:SYNDET是一个双向线)。b. 实现同步后,按时钟信号对RXD线采样,并把收到的数据位送入“接收移位寄存器”。注意:采样频率即“接收移位寄存器”的移位频率等于接收时钟RXC上的输入频率。在同步方式下,无波特率因子,或者说波特率因子固定为1(异步方式下,采样频率,即“接收移位寄存器”移位频率,即波特率=RXC时钟频率/波特率因子)。c. 接收到规定的数位时,接收移位寄存器的内容送“数据输入寄存器”
53、,并发出RxRDY信号。微机接口技术,桂小林104同步发送a.当程序设置TxEN位,且CTS有效后,8251开始发送b.发一个或两个同步字符。c.发数据块(数据块的每个字符根据编程要求,确定是否加上奇偶校验位)。d.在8251发送过程中,若CPU来不及提供新的数据给8251,则8251自动插入同步字符。8051的串行通信结构微机接口技术,桂小林105微机接口技术,桂小林1062)8251的编程机构8251A的内部可编程寄存器包括方式指令字寄存器和命令指令字寄存器。使用C/D引脚区分方式指令字规定了8251A的工作方式,命令指令字可以对8251A进行实时控制.微机接口技术,桂小林107(1)方式
54、指令字波特率分别是时钟频率的1、1/16和1/64 微机接口技术,桂小林108(2)命令指令字微机接口技术,桂小林109(3)状态字TE、OE和PE分别反映数据传送中的三种错误,由硬件自动监测,微处理器只有读取状态字才能知道数据传送过程中是否有错误发生。微机接口技术,桂小林110例如,若要查询8251A接收器是否准备好,则可用下列程序段完成:MOV DX,0F2H;状态口LOPP: IN AL,DX ;读状态口AND AL,02H;查RxRDY1?JZ LOPP;未准备好,则等待MOV DX, 0F0H ;数据口IN AL,DX ;已准备好则读取数据微机接口技术,桂小林1118251A的读写操
55、作方式(寻址)C/操作1XXX引脚D7 D0呈高阻态0X11引脚D7 D0呈高阻态0001向8251A中写入数据0010从8251A中读出数据0101向8251A中写入指令字0110从8251A中读出状态字C=COMMAND: 三个寄存器D=DATA: TxBUF & RxBUF微机接口技术,桂小林1128251A的初始化与编程8251在初始化编程时,首先使芯片复位,第一次向控制端口(奇地址)写入的是方式字;如果是同步方式,接着向奇地址端口写入的是同步字符,若有2个同步字符,则分2次写入;以后不管是同步方式还是异步方式,只要不是复位命令,当A0接C/D#时,由CPU向奇地址端口写入的是命令控制
56、字,向偶地址端口写入的是数据。在写入命令指令字后,若IR = 1,则引起内部复位,又回到流程的开始,可以重新写入方式指令字。 微机接口技术,桂小林113初始化流程奇地址偶地址在同步方式中,需要写入在传送数据时使用的同步字符。方式指令字必须在复位后首先写入,而且只能写入一次,若改变8251A的工作方式,则必须先通过命令指令字使8251A复位。在写入方式指令字后才可以写入命令指令字和同步字符,并且可多次写入 微机接口技术,桂小林114同步方式初始化程序1下面是设置8251A为同步方式的初始化程序,8251A的C/D引脚接在地址总线的A0上,写指令字的端口地址为51H。MOVDX,51H;设置端口地
57、址MOVAL,10 11 10 00H;写入方式指令字OUTDX,AL;同步方式,7位数据,偶校验MOVAL,16H;使用一个同步字符,为16HOUTDX,ALMOVAL,97H;写入命令字:启动发送器、接收器OUTDX,AL;复位错误标志,搜索同步字符微机接口技术,桂小林115同步方式初始化程序28251A的C/D引脚接在地址总线的A0上, 指令字的端口地址为51H,数据为50H。MOV DX,51H;设置端口地址MOV AL,40H;复位8251AOUT DX,ALMOV AL, 38H;写入方式指令字OUT DX,AL; 同步方式,7位数据,偶校验MOV AL,0FFH;使用2个同步字符
58、0 xFFOUT DX,ALOUT DX,AL MOV AL,97H;写入方式指令字:启动收发器、接收器OUT DX,AL;复位错误标志,搜索同步字符微机接口技术,桂小林116异步方式初始化程序;写入方式指令字:异步方式,7位数据,波特率因子1,偶校验,1个停止位MOVAL,79HOUT51H,AL;写入命令指令字;启动发送器、接收器,;复位错误标志MOVAL,35HOUT51H,AL微机接口技术,桂小林117第3节 6.5.3 8251A的综合应用图6.32是利用8251A形成RS-232C串口的接口电路,8251A实现了串行数据的发送和接收,电路1488和1489用于实现信号的TTL电平与
59、RS-232电平的相互转换。设8251A的控制和状态端口地址为52H,数据输入和输出端口地址为50H。微机接口技术,桂小林118下面分析利用8251A接收80个字符后,放在BUFFER标号所指的内存缓冲区中的程序设计方法。【解】下面的程序段先对8251A进行初始化,然后对状态字进行测试,以便输入字符。 具体的程序段如下:MOV AL,0FAH ;11 11 10 10B;设置方式指令字,异步方式,波特率因子16;7个数据位,2个停止位,偶校验OUT 52H,AL MOV AL,35H ;00 1 1 0 1 0 1B;设置命令指令字,使发送器和接收器启动,OUT 52H,AL ;并清除出错指示
60、位MOV DI,0 ;变址寄存器初始化MOV CX,80 ;计数器初始化,共收取80个字符1微机接口技术,桂小林119异步接收BEGIN:IN AL,52H ;读取状态字,测试RxRDY位是否为1,如为0,TEST AL,02H ;如果未收到字符,故继续读取状态字并测试JZ BEGIN IN AL,50H ;读取字符MOV DX,OFFSET BUFFERMOV DX+DI,ALINC DI ;修改缓冲区指针IN AL,52H ;读取状态字TEST AL,38H ;测试有无帧校验错,奇/偶校验错和JNZ ERROR ;溢出错,如有,则转出错处理程序L00P BEGIN ;如没错,则再收下一个字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 音乐b级考试试题及答案
- 六一周系列活动方案
- 六一外卖联动活动方案
- 六一教育教学活动方案
- 六一活动亲子diy活动方案
- 六一活动接球活动方案
- 六一活动评比活动方案
- 六一童装活动方案
- 六一自主活动方案
- 六一西瓜节活动方案
- 2025中国广电山东网络有限公司市县公司招聘145人笔试参考题库附带答案详解
- 征集和招录人员政治考核表(样表)
- 天津市公安局为留置看护总队招聘警务辅助人员笔试真题2024
- 2024年重庆电力高等专科学校招聘笔试真题
- 2025年土木工程专业知识测试试卷及答案
- 2025-2030药妆市场发展分析及行业投资战略研究报告
- AI技术在市场营销中实现精准推广的方法与技巧
- 2025年商业模式与创新管理考试卷及答案
- 《塔罗牌的团体使用》课件
- 商业模式理论的演变历程与未来趋势
- 浙江开放大学2025年《社区治理》形考任务1-3答案
评论
0/150
提交评论