1、微型计算机技术讲稿6第五章 串并行通信和接口技术5.1 接口的功能及在系统中的连接外设种类繁多,信号不同,速度差异很大5.1.1 接口的功能I/O寻址、输入/输出、数据转换、通讯联络(I/O传送控制)、中断管理(优先级、提供中断类型码等)、复位、错误检测。可编程能力,综合性功能。I/O接口的功能是提供数据缓冲和进行I/O控制。5.1.2 接口与系统的连接* 与CPU:数据总线数据I/O通道、状态信息读取、控制命令写入控制总线控制信号联络。如输入控制信号:STB(选通输入)、IBF(输入缓冲器满);输出控制信号:ACK(应答)、OBF(输出缓冲器满)片选及端口(寄存器)地址选择地址线连接中断请求
2、/应答或DMA请求/应答* 与外设:数据通道 控制联络(握手信号)接口寄存器选择方式:以地址区分以读写区分以特征位区分以顺序区分5.2 串行接口和串行通信5.2.1 串行接口串行通信数据传送逐位进行,每一位数据占有一固定的时间长度。控制端口,数据端口,接收/发送时钟。5.2.2 串行通信有关名词1 全双工、半双工全双工收发双方可同时通信,占有两条线路或两个频道等半双工收发分时进行。占有一条线路2 同步方式、异步方式* 同步方式收发双方采用统一的时钟,发送方在发送数据之前需要先发同步字符,接收方检测到同步字符后(双方取得同步)方进行数据传送。同步方式数据格式:同步字符、数据、数据、数据在数据间隙
3、可插入同步字符* 异步方式收发双方不需要“同步”,不需要统一的时钟。异步方式数据格式:起始位-数据位(5-8位)-校验位-停止位(1、1.5或2位)、起始位-数据位(5-8位)-校验位-停止位(1、1.5或2位)区别:* 同步方式数据传输率高。因为非数据信息(起始位、停止位)比例小。同步传送时,一个信息帧包含若干个字符;* 同步传输收发双方需采用统一的时钟。异步接收: 高高检测RxD低电平 1/2D处检测RxD接收数据位奇偶检测去掉停止位 低 低同步接收:否接收数据 是同步字符吗 接收数据位奇偶检测 是5.2.3 串行通信标准1 传输率传输率每秒传送数据位数。波特率baud单位时间内所传送的脉
4、冲码元数。比特率bit单位时间内所传送的二进制码元数。比特率波特率 比特率=log2n * 波特率数据传输率国际标准:110、300、600、1200、2400、4800、9600、19.2K、38.4K、57.6K等2 RS-232C总线标准1 负逻辑“1”- -5V至-15V、“0”- +5V至+15VTTLRS-232C MC1488/75150RS-232CTTL MC1489/751542 控制信号定义一般:25脚针式(电压接口、电流环接口),9脚针式(仅含电压接口)5.3 可编程串行通信接口INTEL-8251用于串行通信的接口芯片:USART-通用同步/异步接收/发送器 如INT
5、EL-8251UART-通用异步接收/发送器 如INTEL-8250 (PC机用)USRT-通用同步接收/发送器5.3.1 基本性能1 数据传输率 同步0-64K,异步0-19.2K2 数据位 5-8位/字符3 奇偶校验位 奇校验、偶校验4 异步方式下,可有1、1.5、2个停止位5.3.2 8251基本原理1. 8251的编程结构编程结构:数据端口:数据输入缓冲+接收移位寄存器(串入并出) 数据输出缓冲+发送移位寄存器(并入串出)RxD接收数据,TxD发送数据控制端口:控制寄存器状态寄存器方式寄存器2. 8251的功能结构功能结构:接收缓冲器-RxD、串入并出移位接收控制电路检测启动位(识别假
6、启动位)、校验、形成状态位(错误、接收准备好等)发送缓冲器数据+附加信息位、并入串出移位、TxD发送控制器异步:数据+起始位、校验位、停止位 同步:插入同步字符,数据+校验位数据缓冲器提供与CPU数据总线的缓冲读写控制RD、WR、C/D(控制/数据端口选择)、CLK、RESETMODEM控制提供调制/解调器控制信号,便于与MODEM连接。3. 8251发送与接收1 异步接收2 异步发送TxEN=1(发送允许)且CTS=0(外设请求发送时),发送数据 RxD/TxD发送格式和接收格式3 同步接收内同步:监测RxD,检测1-2个同步字符,检测到,SYNDET=1,输出外同步:外部器件检测同步字符,
7、检测到以SYNDET=1通知8251已取得同步。8251接收到1字符后,以RxRDY=1,表示以接收到1字符(通知CPU,有数据可用)4 同步发送TxEN=1且CTS=0,发同步字符,然后发数据位(+奇偶校验位)5.3.3 8251的信号28脚,DIP双列直插封装1 与CPU的接口信号 18条CS、D0- D7(数据线)、RD、WR、C/DC/DRDWR 具体的操作 0 0 1CPU从8251数据端口(输入缓冲器)输入数据 0 1 0CPU向8251数据端口(输出缓冲器)写入数据 1 0 1CPU从8251控制端口读入状态字 1 1 0CPU向8251控制端口写入控制命令其它信号:TXRDY(
8、发送准备好)、TXE(发送器空)、RXRDY(接收准备好)、SYNDET(同步检测信号,内同步8251输出,外同步8251输入)、Reset(复位输入)、CLK(时钟输入)。2 与外设的接口信号接收时接口信号:DTR 数据终端准备好,8251输出,通知外设8251接收器已准备好接收。DSR 数据装置准备好。8251输入,外设通知8251其已准备好,要求打开接收逻辑。RXC接收时钟用于控制USART接收字符速率。 同步:RXC=波特率,由MODEM提供; 异步:RXC为X1、X16、X64倍,由方式控制命令选择。RXD 接收数据发送时接口信号:RTS 请求发送,8251输出,通知外设,8251已
9、准备好发送。CTS 清除发送,8251输入,外设通知8251其已准备好,请求8251发送数据。TXC 发送时钟,同RXCTXD 发送数据5.3.4 8251编程1. 8位I/O接口与16位DB的连接一片8251占用两个口地址:奇数口(控制口):CPU写入模式控制字、控制命令字、读出状态字偶数口(数据口):CPU与外设交换数据2. 8251初始化异步方式: 复位模式控制字控制字(可多次写)复位同步方式: - 复位模式控制字同步字符(1-2)控制字(可多次写)复位3. 模式寄存器、控制寄存器格式异步格式: b7 b0S2S1EPPENL2L1B2B1同步方式: b7 b0SCSESDEPPENL2
10、L100控制寄存器: b7 b0EHIRRTSERSBRKRXEDTRTXEN其中:RTS为发送时8251输出控制信号;DTR为接收时8251输出控制信号。SBRK=1,8251连续发送低电平(中止符)。4. 状态寄存器格式 b7 b0DSRSYNDETFEOEPETXERXRDYTXRDY其中:DSR为8251接收时外设输入的应答(状态)信号;PE=1表示奇偶错,FE=1表示帧错误(在字符结束时未检测到停止位),OE=1表示溢出错误。 RXRDY、TXRDY为表示8251输入输出缓冲器状态的信号,8251输出,供CPU查询。TXE=1,表示8251发送器空。5.3.5 8251编程举例825
11、1和MODEM的连接1 电平转换 8251输入输出TTL电平,MODEM为RS-232C电平2 控制信号 发送(CTS、RTS),接收(DSR、DTR),同步方式(SYNDET)3 时钟 异步:TXC、RXC由本地时钟发生器产生,同步:收发一致,连接MODEM。1 8251设置为异步通讯方式初始化编程:异步模式控制字控制字例1:试编程设定8251为异步方式,设数据位为7位,偶校验,2个停止位,TXC=RXC等于614.4KHZ,设定波特率为9600Baud.解:波特率因子=614.4K/9600=64模式控制字: 11 11 10 11 B=FBH 2停止位 偶校验 7位数据 *64控制字:0
12、0 1 1 0 1 1 1 B=37H初始化程序:MOV DX,8251-ODD ;8251奇数口(控制口)MOV AL,0FBH ;模式控制字OUT DX,ALMOV AL,37H ;控制字OUT DX,AL8251发送程序: 测试状态寄存器b0位TXRDY =0 TXRDY=1? =1发送准备好 发送一字节 N 发送完否? Y 发送完毕,8251复位8251接收程序: 测试状态寄存器b1位RXRDY =0 RXRDY=1? =1接收准备好 读入一字节 存入输入缓冲区 b5-b3 000 出错处理 接收字符有错(状态字b5-b3000)? b5-b3 =000 N 接收完否? Y 接收完毕,
13、8251复位2 8251设置为同步通讯方式初始化编程:写入同步模式控制字同步字符控制字例2:试编程设定8251为双同步方式,内同步,设数据位为7位,偶校验。模式控制字:0 0 11 10 00 B =1AH 双同步 内同步 偶校验 7位/数据 同步模式3 8251编程举例P150 因为仅为接收,故控制字可为16H(带联络)/14H。5.3.6 8251使用举例8251用于微机连接CRT终端。8251初始化编程时,需确定8251复位状态。连接:CPU端,译码CS、控制/数据选择C/D、读/写、数据总线、时钟CLK、接收/发送时钟RXC、TXC。外设端:数据信号线RXD、TXD,握手信号DTR、D
14、SR(接收),CTS、RTS(发送,本例未使用);电平转换:MC1488(TTLRS-232)、MC1489(RS-232TTL)。模式控制字4EH=01 00 11 10(1停止位、无校验、8位数据/字符、*16)控制字27H=00 1 00 1 1 1(RTS=0、RXE=1接收允许、DTR=0、TXEN=1发送允许)本例发送程序中,以测TXRDY是否为1,决定是否发送。5.4 并行通信和并行接口CPU、并口、外设的连接:与CPU:DB、地址译码、片选、读/写、中断请求等。与外设:DB、控制联络(输入:STB-输入选通、IBF-输入缓冲器满(输入应答信号);输出:OBF-输出缓冲器满(输出
15、选通)、ACK-输出应答)一般输入过程: 外设以STB将输入数据锁存到接口输入数据缓冲器; 接口以IBF=1通知外设,禁止写入新的数据; CPU查询IBF=1或IBF=1触发中断请求,CPU将数据读走,并置IBF=0;一般输出过程: 设OBF=1,输出缓冲器空; CPU查询OBF=1或由OBF=1触发中断请求,CPU写入数据到输出接口,同时置OBF=0(输出缓冲器满); 外设检测OBF=0取走数据,并发应答信号ACK=0,将OBF置1。5.5 可编程并行接口INTEL-82555.5.1 8255的内部结构1. 数据端口A口 8位,数据输入锁存,数据输出缓冲/锁存B口 8位,数据输入缓冲,数据
16、输出缓冲/锁存C口 8位,数据输入缓冲,数据输出缓冲/锁存注意:B口、C口作输入时应注意外部数据锁存A口、B口为独立的I/O口C口分为上半、下半口,通常为配合A/B口作控制联络信号,仅当A/B口不用其作控制联络信号时,C口可作为I/O口。2. A组控制和B组控制A组控制:A口、C上半口B组控制:B口、C下半口3. 读/写控制逻辑接收CPU读/写、复位命令,根据CS、A0、A1地址选择A组、B组控制命令。4. 数据总线缓冲器5.5.2 8255的芯片引脚40脚,DIP封装:8位数据线(与CPU)、A、B、C口各8位数据线(与外设)内部端口选择:A0、A1、CS其它:RD、WR、RESET、地、电
17、源结构:从外设(连接)角度:A、B、C三个8位口;或A、B两个8位口及C上、C下两个4位口;从编程(CPU)角度:A、B、C、控制口读写控制逻辑:CSA1A0RDWR说明00001CPU从8255端口A读入数据00101CPU从8255端口B读入数据01001CPU从8255端口C读入数据00010CPU向8255端口A输出数据00110CPU向8255端口B输出数据01010CPU向8255端口C输出数据01110CPU向8255控制口写入方式控制字或C口置位/复位控制字01101非法操作(8255控制口只读)1XX11数据线(D0-D7)浮空1XXXX8255未选中,数据线(D0-D7)浮
18、空5.5.3 8255的控制字1 方式选择控制字b7 b01XXA口I/OC上半口I/OB组工作方式B口I/OC下半口I/O A组工作方式:00-方式0、01-方式1、1X-方式2其余:数字1字母I(输入)、数字0-字母O(输出);0-方式0、1-方式1特点:* 方式选择字中A组控制用4位,B组用3位;* 方式选择字按方式选择位、A/B口、C上/C下半口顺序排列;* A口可以方式0、1、2三种之一工作,B口仅能以方式0、1两种方式之一工作,C口只能在不被A/B口占用(作控制联络信号时)的情况下以方式0工作;8086与两片8255的连接。与CPU:RD(IOR)、WR(IOW)、RESET并联;
19、地址A2、A1用以选择8255内部端口,CS由74LS138提供。与外设:PA、PB、PC三个8位口要求:芯片J1:A方式0输出,B方式0输入,C上输出,C下输入方式选择控制字:10000011B=83H芯片J2:A方式0输入,B方式1输出,C上、C下输出方式选择控制字:10010100B=94H初始化编程:MOV DX,0E6H ;芯片J1控制口MOV AL,83H ;芯片J1方式选择控制字OUT DX,ALMOV DX,0EEH ;芯片J2控制口MOV AL,94H ;芯片J2方式选择控制字OUT DX,AL2 C口置位/复位控制字功能:设定C口指定位的输出状态,而不影响C口的其余位。b7
20、 b00XXXPC2PC1PC01/0 标志位 无用 Pci的编码 置1/0注:C置位/复位控制字用以设定C 口指定位状态,必须写入控制口。若设定C上、C下为输出状态,或读取C口中数据,则读/写C口。例4:编程设定8255初始化。PA、PC输出,PB输入,并由PC5输出一高电平,PC3输出一个负脉冲。方式选择控制字:10000010B=82HMOV DX,8255-contrl ;指向8255控制口MOV AL,10000010B ;方式选择控制字OUT DX,ALMOV AL,00001011B ;PC51OUT DX,ALMOV AL,00000111B ;PC31OUT DX,ALMOV
21、 AL,00000110B ;PC30OUT DX,ALMOV AL,00000111B ;PC31OUT DX,AL5.5.4 8255的工作方式1 方式0-基本输入/输出方式功能:为A口(8位)、B口(8位)、C上(4位)和C下(4位)提供基本的输入/输出操作(不带控制联络信号)。用于简单外设接口,不要控制联络信号,仅有数据通道连接,直接使用IN/OUT指令完成I/O操作。特点:1 两个8位口,两个4为口可分别设置为I/O,共16种组合;2 输出锁存、输入缓冲,适用于同步方式或与低速外设的接口;3 没有控制联络信号。如果需要查询外设的状态,只能额外增加状态位,以查询方式工作;4 C口可以方
22、式0输入/输出(通过C口),还可以置位/复位控制字设定PCi的输出状态(通过控制口)。方式0输入时序 外设输入数据并保持足够长的时间,供CPU经8255读取; CPU发CS、A1、A0选中8255后,发RD读信号; 外设输入数据需在RD=0后保持tRR以上,以便8255读取。方式0输出时序 CPU发CS、A1、A0选中8255; CPU发WR写信号,并将输出数据送到DB上; 外设在WR=0且tWW时间后,将数据读走。写脉冲tWW的宽度要求在400ns以上。方式0的应用:同步传送,收发统一时序,不需应答。例1:8255 A口输出驱动LED显示,B口输入开关信息,C上半口输出数据5=0101,C下
23、半口输出驱动指示灯(1-点亮)。方式选择控制字: 1 00 0 0 0 1 0B=82H初始化程序:MOV DX,8255-contrl ;指向8255控制口MOV AL,10000010B ;方式选择控制字OUT DX,ALMOV DX,8255-PA ;指向8255 A口MOV AL,DATA ;输出显示数据代码OUT DX,ALMOV DX,8255-PB ;指向8255 B口IN AL,DX ;读入开关信息MOV ADDR,AL ;保存MOV CL,50H ;C上半口输出数据5MOV DX,8255-PC ;指向8255 C口IN AL,DX ;读入C口数据AND AL,0FH ;清高
24、4位OR AL,CL ;高4位置为0101OUT DX,ALMOV DX,8255-contrl ;指向8255控制口MOV AL,0XXXYYY0/1B ;YYY为PC0-PC3的编码OUT DX,AL2 方式1-选通输入/输出方式功能:设定A口、B口为选通输入/输出工作方式。A口方式1输入: B口方式1输入: PC3 INTR(输出 ) PC2 /STBB(输入)PC4 /STBA(输入) PC1 IBFB(输出)PC5 IBFA(输出) PC0 INTR(输出)PC4 INTE PC2 INTE其中:IBF、/STB为输入应答信号,INTR为中断请求信号,INTE为A口/B口输入中断允许
25、信号。/STB-外设输入的选通信号,通知8255,数据已锁存到8255输入锁存器;IBF-8255送出的输入缓冲器满信号。STB的下降沿将IBF置1,禁止外设送入新的数据。当CPU从8255读取数据时,复位IBF=0,通知外设可写入新数据。INTR-当IBF=1且INTE=1时,发中断申请。例2:编程设定8255 A口为选通输入方式,并允许A口申请中断。方式选择控制字:1 01 1 Y XXX(Y为PC6、PC7的I/O选择,XXX为B组工作方式)MOV DX,8255-contrl ;指向8255控制口MOV AL,1011YXXXB ;方式选择控制字OUT DX,ALMOV AL,0000
26、1001B ;允许 A口输入中断OUT DX,ALMOV AL,00001010B ;PC5即IBF清0,启动外设,8255 已作好准备。OUT DX,AL A口方式1输出: B口方式1输出: PC7 /OBFA(输出 ) PC2 /ACKB(输入)PC6 /ACKA(输入) PC1 /OBFB(输出)PC3 INTR(输出) PC0 INTR(输出)PC6 INTE PC2 INTE其中:/OBF、/ACK为输出应答信号,INTR为中断请求信号,INTE为A口/B口输出中断允许信号。/ACK-外设输入的响应信号,外设准备好接收数据,以/ACK=0通知8255可以送出新数据,并置位/OBF=1
27、;OBF-8255送出的输出缓冲器满信号。8255以OBF的下降沿通知外设有 数据可读。INTR-当OBF=1且INTE=1时,发中断申请。方式1的输出时序3 方式2双向传送功能:提供一个与外设双向传送的8位I/O接口仅限于A口使用,且使用PC3-PC7(5位)作为控制联络信号,具有I/O中断控制功能。信号:输入应答:PC4 /STBA(输入) PC5 IBFA(输出) 输出应答:PC7 /OBFA(输出) PC6 /ACKA(输入) 中断请求:PC3 INTR 允许/禁止A口输入中断:PC4 INTE A口输出中断:PC6 INTE实际上:方式2=A口方式1输入 + A口方式1输出方式2与其
28、它方式的组合:1 与方式0B口工作与方式0输入/输出,PC2-PC0可作为I/O。2 与方式1B口方式1输入/输出,C口全部用于控制/联络,方式选择字仅设置b1位。5.5.5 8255应用举例例1:8255 A口连接打印机,A口工作于方式0,控制联络信号由PC2-BUSY(打印机忙,输入)、PC6-/STB(数据选通,输出)提供。设8255端口地址为0D0H-0D6H解:方式选择字:1 00 0 0 0 X 1 (A口方式0,输出;C上输出,C下输入;B口只能工作于方式0)初始化程序:MOV DX,0D6H ;指向8255控制口MOV AL,81H ;方式选择控制字OUT DX,ALMOV AL,00001101B ;PC6=/STB=1无效OUT DX,ALL1: MOV DX,0D4H ;指向8255 C口IN AL,DX ;读入打印机状态信息TEST AL,04H ;BUSY=1?JNZ L1 ;=1,循环等待
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1