微机原理与接口技术PPT电子课件教案-第08章常用接口芯.ppt

上传人:za****8 文档编号:15472147 上传时间:2020-08-12 格式:PPT 页数:207 大小:2.97MB
返回 下载 相关 举报
微机原理与接口技术PPT电子课件教案-第08章常用接口芯.ppt_第1页
第1页 / 共207页
微机原理与接口技术PPT电子课件教案-第08章常用接口芯.ppt_第2页
第2页 / 共207页
微机原理与接口技术PPT电子课件教案-第08章常用接口芯.ppt_第3页
第3页 / 共207页
点击查看更多>>
资源描述
微机原理与接口技术,本章主要内容,概述 可编程并行接口芯片8255A 可编程定时器/计数器8254 可编程串行通信接口芯片8251A 模拟信号接口,8.1概述,接口电路按功能可以分为两类: 一类是使微处理器正常工作所需要的辅助电路; 另一类是输入输出接口电路,利用这些接口电路,使处理器可以接收外部设备送来的信息或将信息发送给外部设备。,8.1.1 串行接口,串行通信是在单条1位宽的导线上将二进制数的各位一位一位地按顺序分时传送。 由于计算机是按并行方式传送数据的,当它采用串行方式与外部通信时,必须进行串并行变换。 在传送数据的过程中,需要一些握手联络信号,同时还要检测传送过程中可能出现的一些错误等等, 这就需要有专门的可编程串行通信接口芯片来实现这些功能。,常用的通用串行接口芯片有两类,一种是仅用于异步通信的接口芯片,称为通用异步收发器UART (Universal Asynchronous Receiver-Transmitter) 另一种芯片既可以工作于异步方式,又可工作于同步方式,称为通用同步异步收发器USART (Universal SynchronousAsynchronous Receiver-Transmitter), 如Intel8251A,8.1.2 并行接口,并行通信是把一个字符的数位用几条线同时进行传输,在相同传输率的情况下它能够提供高速、高信息率的传输。 多数设备与微机总线都是通过并行方式进行通信的,例如:显示器、打印机、硬盘、CDROM、扫描仪等等 并行接口的种类从最简单的一个并行数据寄存器,到专用接口集成芯片8255A等,直至比较复杂的SCSI或IDE并行接口。,8.1.3 定时、计数问题,微机系统中的定时,可分为内部定时和外部定时两类: 内部定时是计算机本身运行的时间基准或时序关系 外部定时是外部设备实现某种功能时,本身所需要的一种时序关系 。,实现定时的三种方法,软件定时就是通过执行一段固定的循环程序来实现定时 不可编程硬件定时是采用中小规模集成电路器件来构成定时电路的 。 可编程定时电路一般都是用可编程计数器来实现,因为它既可计数又可定时,故称之为可编程计数器定时器电路,目前,各种微机和微机系统中都是采用可编程计数器/定时器来满足计数和定时及延时控制的需要。 如各种PC系列机中普遍采用的是Intel公司的82538254计数器定时器芯片。,10,可编程定时器/计数器电路的典型结构图,11,8.1.4 模/数与数/摸转换问题,DA和AD转换技术在微机应用系统中占有重要地位。 在微机应用于工业控制、电子测量技术和智能仪器仪表中要使微机能够对模拟量进行采集和处理,首先必须采用模数转换技术将模拟量转换成数字量 在微机的输出控制系统中,微机的输出控制信息往往必须先由数字量转换成模拟电量后,才能驱动执行部件完成相应的操作,以实现所需的控制。,7.3 并行接口8255,特点: 含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存/缓冲能力 可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。,并行接口,D0-7,A0-15,IOR,IOW,INTR,READY,RESET,CPU,RD,WR,D0-7,RESET,READY,INT,STB,IBF,OBF,ACK,D0-7,D0-7,并行接口与外设连接示意图,8255A的内部结构,8255A的读/写操作控制,8255与系统的连接示意图,D0D7,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,8255,PA口,PB口,PC口,D0D7,外 设,A2A15,系统总线,8255内部结构与外部接线图,片内译码电路 A0A1=,数据端口A、B、C 每个端口8位,通过编程设定其为 输入口或输出口和外设传送信息 00 A口;01 B口; 10 C口;11 控制口,三、8255工作方式,基本I/O方式(方式0) (PA、PB、PC) -不需握手联络线的简单输入/输出单向方式 选通I/O方式(方式1) (PA、PB) - 需握手联络线的复杂输入/输出单向方式 双向方式(方式2) (仅PA) - 需握手联络线的复杂输入/输出双向方式,某端口工作于哪一种方式,可通过软件编程来指定。即向8255写入方式控制字来决定其工作方式,见下页。,I/O 接口,输入 设备,I/O 接口,输出 设备,I/O 接口,输入 设备,I/O 接口,输出 设备,I/O 接口,存储 设备,3种工作方式适合场合,方式0:基本输入输出方式 适用于与简单外设传送数据(如开关/发光二极管等) 和查询方式的接口电路(一般PA或PB数据口, 而PC做成状态口),PA或PB或PC I/O接口,输入 设备,PA或PB或PC I/O接口,输出 设备,I/O接口,输入 设备,8,4,4,1,1,PA或PB,PC,I/O接口,输出 设备,8,4,4,1,1,PA或PB,PC,8,8,方式1:选通输入输出方式 其不意适用于与单向传送数据的外设(如键盘/打印机等) 适用于查询和中断方式的接口电路 方式2:双向选通传送方式 适用于与双向传送数据的外设(如硬盘/软盘/光盘等) 适用于查询和中断方式的接口电路,PA或PB I/O接口,输入 设备,PA或PB I/O接口,输出 设备,PA I/O接口,存储 设备,PC,PC,PC,INT,INT,INT,方式控制字及位控字,方式控制字: 可以利用软件编程确定8255的3个端口工作于何种方式下; 位控字: 8255的PC端口可以按位操作。 当其工作于方式0下且作为输出口时,对于那些作为输出的位需要设置初始状态(1/0)。,方式控制(方式字)-确定3个端口的工作方式,A组,B组,端口PA (基本/选通/双向) 端口PC的高4位(基本/联络/联络),端口PB (基本/选通) 端口PC的低4位(基本/联络),A组,B组,1,1,例:设A端口工作于方式0,输出,B端口工作于方式0,输入。,方式选择控制字: 1 0 0 0 1/0 0 1 1/0 = 82H,位控字 确定C口某1位的输出值(A、B方式0时) 或用于设置INTE位 (A、B方式1,2时),1=置1(置位) 0=置0(复位),端口C置1/0控制字,0 0 0 PC0 0 0 1 PC1 0 1 0 PC2 0 1 1 PC3 1 0 0 PC4 1 0 1 PC5 1 1 0 PC6 1 1 1 PC7,特征标志位,方式0:基本的输入/输出方式 (基本I/O) 方式1:选通的输入/输出方式 (选通I/O) 方式2:双向的传输方式 (双向I/O),8255A的3种基本工作方式介绍,方式0-基本输入输出方式功能, 任何一个端口可以作为输入口,也可以作为输出口。 各个端口输入或输出,可以有16种不同的组合,所以 可以适用于多种使用场合。 方式0使用场合 一种是 同步传送(无条件传送/简单传送), 另一种是 查询式传送。,两种:,工作在基本输入/输出方式0 端口A为方式0输入,用来读取键盘扫描码 端口B工作于方式0输出,例如控制扬声器等 端口C为方式0输入,读取系统状态和配置 系统的初始化编程: mov al,10011001b;方式控制字99H out 63h,al,8255A在IBM PC/XT上的应用,方式0输入时序,请体会这里8255A的 数据缓冲作用,方式0输出时序,8255A对CPU通过它 输出给外设的数据进行锁存,例: 用8255A控制三个发光二极管依秩序循环显示。,端口地址 340H-343H,A2-A15,发光二极管,IOR,RD,WR,IOW,用8255A控制三个发光二极管显示。8255A的端口地址为: A 端口:340H B 端口:341H C 端口:342H 控制口:343H 试编写8255初始化程序段和控制三个发光二极管显示程序段。,开始,8255A初始化,延时,BX显示代码地址,CX=0?,Y,N,BX=BX+1 CX=CX-1,CX 3,输出到PA口,1、程序框图:,1)设A口为输出口,方式0。B口输入,方式0,则方式选择控制字为10000010 B = 82 H。 2)A口输出代码: 0000 0110 06H ,1号发光二极管亮 0000 0101 05H ,2号发光二极管亮 0000 0011 03H ,3号发光二极管亮 3)软件延时 (1)1ms的软件延时参考程序: 设系统的CPU的频率为8MHZ,则时钟节拍为:0.125微秒。执行PUSHF、POPF、LOOP指令需43个节拍。延迟1毫秒要循环的次数: 1ms/(43*0.125us)=186,2、软件设计,参考程序: DATA SEGMENT COTR EQU 343H ;8255A控制口地址 PB_A EQU 340H ;8255A的A口地址 LED DB 06H,05H,03H;LED显示值 DATA ENDP CODE SEGMENT ASSUME CS:CODE,DS:DATA . MOV DX,COTR ;控制口地址 MOV AL,82H OUT DX, AL ;A口为方式0输出,B口为输入 MOV DX, PB_A ;A口地址,LP: MOV CX,3 LEA BX, LED ; 1号灯代码地址 DON: MOV AL, BX OUT DX, AL ;1,2,3循环点亮 CALL DELAY ;调延时1ms程序 INC BX DEC CX JNZ DON JMP LP DEALY PROC NEAR ;软件延时1ms PUSH CX MOV CX, 186 L: PUSHF POPF LOOP L POP CX RET DEALY ENDP CODE ENDS END,思考题:用8255A控制三个发光二极管依秩序循环显示。假设开关闭合时,点亮发光二极管,开管断开时息灭二极管。,发光二极管,开关,A2-A15,IOR,IOW,RD,WR,方式0的应用总结,用于连接简单外设。 适用于: 无条件输入输出方式。 查询输入输出方式:把A、B口作为8位数据的输入或输出口,C口的高/低4位分别定义为A、B口的控制位和状态位。,工作方式0(基本I/O方式),8255相当于三个独立的8位简单接口。 各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。 C端口即可以是一个8位的简单接口,也可以分为两个独立的4位端口。 设置为输出口时有锁存能力,设置为输入口时无锁存能力。,方式1选通的输入输出方式,数据输入输出要在选通信号控制下工作. 端口A和端口B可以分别作为两个数据口工作于方式1,并且,任何一个端口可以为输入口或输出口。 1)方式1输入: A口控制信号的定义:,方式1输入有关信号的规定,端口B输入,1选通信号输入端,低电平有效,2输入缓冲区满信号,,3它是8255送往CPU的中断请求 信号,高电平有效。,中断允许信号,INTE由PC4置“1”,INTR有效,数据输入口,方式1 A口输入有关信号的规定,PC0-7,PA、PB口都为方式1输入时的状态字,方式1输入联络信号定义,STB选通信号,低电平有效 由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入缓冲器; IBF输入缓冲器满信号,高电平有效 8255A输出的联络信号。当其有效时,表示输入缓冲器满; INTR中断请求信号,高电平有效 8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据; INTE 中断允许信号,高电平有效 用于控制中断允许或中断屏蔽。,方式1 输入时序,8255,输入 设备,STB,IBF,INTR,RD,DB,A0,A1,CS,AB,方式1输出有关信号的规定,方式1输出有关信号的规定,3 中断请求,1通知外设取走数据,2外设响应信号,端口B输出,方式1输出联络信号,OBF输出缓冲器满信号,低有效 8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走 ACK响应信号,低有效 外设的响应信号,指示8255A的端口数据已由外设接受 INTR中断请求信号,高有效 当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据,PC0-7,PA、PB口都为方式1输出时的状态字,方式1输出时序,例: 8255A端口A工作在方式1,A口输入,允许A口 中断,编写初始化程序。 MOV DX,PCTR ;控制口地址送DX MOV AL,10110000B ;A口方式1输入 OUT DX,AL MOV AL,00001001B ;置PC4=1,允许中断 OUT DX,AL ;,例:8255A方式1输入应用:某8位A/D转换器,与8255的连接如下图,PC7做启动AD转化信号,AD转化结束信号EOC接PC4,作为选通信号STB。A/D转换启动为高电平。假设8255作为查询式输入接口,分析工作原理。编写8255初始化与输入一个数据的程序。,方式1例子A/D转换接口,IBF,PC5,INTR,注意到8255方式1输入时,数据准备好后,IBF=1,因此可以通过查询IBF的状态。 主要参考程序代码: MOV DX,PCTR ;控制口地址送DX MOV AL,10110000B ;A口方式1输入,PC7输出 OUT DX,AL MOV AL,00001110B ;置PC7=0,禁止A/D OUT DX,AL MOV AL,00001111B ;置PC7=1,启动A/D OUT DX,AL,采用查询式输入,L: MOV DX,POT_C ;C口地址送DX IN AL,DX TEST AL,00100000B ;查IBF=1,即PC51? JZ L ; 查无输入数据,等待 MOV DX,PCTR MOV AL,00001110B ;置PC7=0,禁止A/D OUT DX,AL MOV DX,POT_A ; 送A口地址 IN AL,DX ; IBF=1,读数据 ; 数据读出后,自动撤销IBF(=0) HLT,提问: 如果采用中断方式输入,程序如何设计? 提示: 将8255中断请求端INTRA(PC3)接8259输入端,使中断请求能引入CPU 允许8255端口A中断,设INTEA=1,即设PC4=1 当数据进入8255端口A时,8255的INTRA(PC3)发中断请求申请,CPU相应后即可读数据,3)方式1的使用场合 在采用中断方式进行输入/输出的场合, 如果 外部设备能为8255A提供选通信号 或 数据接收应答信号, 那么,通常使用8255A的端口工作方式1的情况。 思考题: 8255A的三个端口在使用时,有什么差别? 提 示:通常PA端口与PB端口可作为独立的输入输出端口,PC端口则配合PA、PB端口工作,提供控制信号、状态信息。,工作方式1(选通I/O方式)总结,利用一组选通控制信号控制A端口和B端口的数据输入输出。 A、B口作输入或输出口,C口的部分位固定用作A、B口的选通控制信号。 A口、B口在作为输入和输出时的选通信号不同。,输入,输出,C口的信号功能(A、B方式1输入),STB选通信号。它将外设数据送入8255的输入锁存器。 IBF输入锁存器满。通知外设不能送下一个数据。此信号由STB的前沿产生。CPU用IN指令取走数据后,此信号被清除。 INTR中断请求。STB的后沿产生,用于中断CPU,让CPU读走输入锁存器中的数据。 INTE中断允许位,是否允许发出INTR请求。INTE =1和IBF为高电平时,允许发出INTR请求。,C口的信号功能( A、B方式1输出),OBF通知外设取走数据。 ACK外设响应信号,表示已从数据端口取走数据。此信号使OBF变高。 INTR中断请求。ACK上升沿产生,通知CPU输出下一个数据(通常接到8259)。 INTE中断允许位,INTE=1和OBF为高电平时,允许产生INTR信号。,注意:,INTE的状态可利用C口的位控方式来设置: 输入: A口的INTE:写入PC4 B口的INTE:写入PC2 输出: A口的INTE:写入PC6 B口的INTE:写入PC2 例如:方式1输入允许A口中断,则应按如下方法设置INTEA。 MOV DX,控制寄存器地址 MOV AL,0 xxx1001B ;1=允许中断,0=禁止中断 OUT DX,AL,方式1的应用,主要用于中断控制方式下的输入输出。 PC口除部分位用作选通信号外,其余位可工作在方式0下,作为输入或输出线。 特别是PA、PB均为方式1时仅使用PC口的6条线,余下二条线可作为单独的输入输出线,用程序指定其数据传送方向。,方式2只适用于端口PA,双向并行通信 端口A工作于方式2时,端口PC用5个数位自动配合端口PA提供控制。 注意: 端口PA可工作在3种方式中的任意一种; 端口PB只能工作在方式0或方式1; 端口PC被分为高4位和低4位,可以分别工作在输入方式和输出方式,并不要求同为输入方式或同为输出方式.,方式2双向传输方式,方式2工作的控制信号,方式2有关信号的规定,工作方式2,双向方式既是输入口,又是输出口。 利用PC口的5条线提供传输联络信号。 类似于PA口方式1下输入和输出的组合。 只有PA口可工作在方式2下。 INTE1为PC6,INTE2为PC4。,PC0-7,PA方式2时的状态字,PB口方式决定,方式2的应用:,可用于中断控制输入输出方式。 当PA口工作于方式2时,PB口可工作于方式1(此时PC口的剩余位都用作PB口选通控制线);PB口也可工作于方式0(此时PC口的剩余位也只能用作方式0下的输入输出线)。,读写端口C的归纳,读取的C端口数据有两种情况 (1)未被A和B端口征用的引脚 将从定义为输入I的端口读到引脚输入信息; 将从定义为输出O的端口读到输出锁存器中的信息 (2)被A和B端口征用作为联络线的引脚 将读到反映8255A状态的状态字,端口C的状态字,End,Thank you!,8.3定时计数控制接口,教学重点 8254的引脚和6种工作方式 8254的编程 8254在IBM PC系列机上的应用,定时器和计数器,定时控制在微机系统中极为重要 定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔 计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器,定时功能的实现方法,软件延时利用微处理器执行一个延时程序段实现 不可编程的硬件定时采用分频器、单稳电路或简易定时电路控制定时时间 可编程的硬件定时软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路,8.1 8253/8254定时计数器,3个独立的16位计数器通道 每个计数器有6种工作方式 按二进制或十进制(BCD码)计数,8254是8253的改进型,8.1.1 8253/8254的内部结构和引脚,计数器结构示意图,计数初值存于预置寄存器; 在计数过程中, 减法计数器的值不断递减, 而预置寄存器中的预置不变。 输出锁存器用于写入锁存命令时, 锁定当前计数值,计数器的3个引脚,CLK时钟输入信号在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1 GATE门控输入信号控制计数器工作,可分成电平控制和上升沿控制两种类型 OUT计数器输出信号当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号,2. 与处理器接口,D0 D7数据线A0 A1地址线 RD*读信号WR*写信号 CS*片选信号,8.1.2 8253/8254的工作方式,8253有6种工作方式,由方式控制字确定 熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式 每种工作方式的过程类似: 设定工作方式 设定计数初值 硬件启动 计数初值进入减1计数器 每输入一个时钟计数器减1的计数过程 计数过程结束,方式0 计数结束中断, 设 定 工 作 方 式, 设 定 计 数 初 值, 计 数 值 送 入 计 数 器, 计 数 过 程, 计 数 结 束,方式1 可编程单稳脉冲, 设 定 工 作 方 式, 设 定 计 数 初 值, 硬 件 启 动, 计 数 值 送 入 计 数 器, 计 数 过 程, 计 数 结 束,方式2 频率发生器(分频器),方式3 方波发生器,方式4 软件触发选通信号,方式5 硬件触发选通信号,各种工作方式的输出波形,讨论: 计数开始的时刻,计数开始的时刻,需要注意: 处理器写入8253的计数初值只是写入了预置寄存器,之后到来的第一个CLK输入脉冲(需先由低电平变高,再由高变低)才将预置寄存器的初值送到减1计数器。 从第二个CLK信号的下降沿,计数器才真正开始减1计数。,8.1.3 8253/8254的编程,8254加电后的工作方式不确定 8254必须初始化编程,才能正常工作 写入控制字 写入计数初值 读取计数值 8254新增读回命令,1 写入方式控制字,00 计数器0 01 计数器1 10 计数器2 11 非法,00 计数器锁存命令 01 只读写低字节 10 只读写高字节 11 先读写低字节 后读写高字节,000 方式0 001 方式1 010 方式2 011 方式3 100 方式4 101 方式5,0 二进制 1 十进制,控制字写入控制字I/O地址(A1A011),示例,8253/8254的I/O地址,0 1 0 0 0,0 1 0 0 1,0 1 0 1 0,0 1 0 1 1,0 0 1 0 0,0 0 1 0 1,0 0 1 1 0,功 能,对计数器0设置计数初值,A1,A0,对计数器1设置计数初值,对计数器2设置计数初值,设置控制字,从计数器0读出计数值,从计数器1读出计数值,从计数器2读出计数值,(2)读取当前计数值方法2使用读回命令(A1A0=11),特征位:D7D6=11。(A1A0=11),功能选择:锁存状态D5D4=10; 锁存计数值D5D4=01; 锁存状态与计数值 D5D4=00。(先读状态再读计数值),计数器选择:D1=1T/C0,D2=1T/C1,D3=1T/C2,特点:控制字同时只能锁存单个通道, 读回命令可同时锁存多个通道。,(3)读取计数器当前状态使用读回命令,读出的状态字格式:,PC系列机定时系统结构框图,来自主板上74LS138的Y2#,地址范围是40H5FH,加上A1A0两根地址线,组成8254的端口地址是40H、41H、42H、43H。,返回2,8.1.6 pc中的8254模块,1. 计数器0系统定时器,工作方式:3方式,计数初值:65536。,1) 系统定时器,OUT0连接到8259A的IRQ0(中断类型号为8)上。 fOUT0=1.1931816MHz/65536=18.2Hz, 即:每秒产生18.2次中断用于日时钟计时。,应用:系统BIOS的INT 8H用作日时钟计时; INT 8H调用INT 1CH作为用户定时中断接口。,2) 软盘驱动器马达自动延迟控制,2. 计数器1动态存储器定时刷新控制,工作方式:2方式,计数初值:18。,连接到8237的DREQ0上,定时产生负脉冲。 脉冲宽度=1/ 1.1931816MHz=838ns, 脉冲周期=18/1.1931816MHz=15.08s, 即:每隔15.08s产生一个脉冲用于RAM刷新。,3. 计数器2扬声器音频发生器,工作方式:3方式,计数初值:由调用程序控制。,与8255的PB口D1信号“与”后连接到扬声器上,控制扬声器发声频率及时长。,8255控制发声:8254的OUT2=1,CPU控制8255的PB口的D1位的电平实现; 8254控制发声:8255的PB口的D1位为高电平,控制8254的T/C2的OUT2实现。 通过改变OUT2的方波信号频率,就可以改变扬声器发声的音调。 CR预置值CLK2脉冲频率/发声的频率,转图,;功能:按照指定的时间间隔发896Hz声音 ;调用:CX=指定时间 ;返回:无 BEEP PROC FAR IN AL,61H; 读8255PB口的当前值 MOV AH,AL PUSH AX MOV AL,10110110B OUT 43H,AL MOV AX,0533H;=1.1931816MHz/896Hz OUT 42H,AL MOV AL,AH OUT 42H,AL POP AX,OR AL,03H ;置61H端口D0、D1均为1,;打开扬声器 OUT 61H,AL NOP L1:LOOP L1;延迟 AND AL,0FDH ;置61H端口D1为0, ;封锁OUT2输出 OUT 61H,AL MOV AL,AH OUT 61H,AL RET BEEP ENDP,转图,End,Thank you!,第8章第四节 串行通信接口,教学重点 异步通信协议和RS232C接口 8251的内部结构和编程 异步通信程序,8.4.1 串行通信基础,串行通信:将数据分解成二进制位用一条信号线,一位一位顺序传送的方式 串行通信的优势:用于通信的线路少,因而在远距离通信时可以极大地降低成本 串行通信适合于远距离数据传送,也常用于速度要求不高的近距离数据传送 PC系列机上有两个串行异步通信接口、键盘、鼠标器与主机间采用串行数据传送,1. 异步通信,串行通信时的数据、控制和状态信息都使用同一根信号线传送 收发双方必须遵守共同的通信协议(通信规程),才能解决传送速率、信息格式、位同步、字符同步、数据校验等问题 串行异步通信以字符为单位进行传输,其通信协议是起止式异步通信协议,起止式异步通信协议,起始位每个字符开始传送的标志,起始位采用逻辑0电平,数据位数据位紧跟着起始位传送。由58个二进制位组成,低位先传送,校验位用于校验是否传送正确;可选择奇检验、偶校验或不传送校验位,停止位表示该字符传送结束。停止位采用逻辑1电平,可选择1、1.5或2位,空闲位传送字符之间的逻辑1电平,表示没有进行传送,数据传输速率,数据传输速率也称比特率(Bit Rate) 每秒传输的二进制位数bps 字符中每个二进制位持续的时间长度都一样,为数据传输速率的倒数 当进行二进制数码传输,且每位时间长度相等时,比特率还等于波特率(Baud Rate) 过去,串行异步通信的数据传输速率限制在50 bps到9600 bps之间。现在,可以达到115200 bps或更高,2. 同步通信,以一个数据块(帧)为传输单位,每个数据块附加1个或2个同步字符,最后以校验字符结束 同步通信的数据传输效率和传输速率较高,但硬件电路比较复杂 串行同步通信主要应用在网络当中 最常使用高级数据链路控制协议HDLC,3. 传输制式,全双工,半双工,单工,4. 调制解调器,调制(Modulating) 把数字信号转换为电话线路传送的模拟信号 解调(Demodulating) 将电话线路的模拟信号转换为数字信号 调制解调器MODEM 具有调制和解调功能的器件合制在一个装置,通用异步接收发送器8251,串行传输,需要并行到串行和串行到并行的转换,并按照传输协议发送和接收每个字符(或数据块) 这些工作可由软件实现,也可用硬件实现 通用异步接收发送器UART是串行异步通信的接口电路芯片 IBM PC/XT机的UART芯片是INS 8250 后来使用NS16550,11.3.1 8251的内部结构,8251实现了起止式串行异步通信协议,支持全双工通信 通信字符可选择数据位为58位 停止位1、1.5或2位 可进行奇偶校验 具有奇偶、帧和溢出错误检测电路 8251支持的数据传输速率为509600bps,8251A的内部结构方框图 :,1. 串行数据的发送,双缓冲寄存器结构 保证数据的连续发送,2.异步通信的时钟定时方法,数据 (62H),0,0,0,0,1,1,停止位,异步传输先发送低位(LSB),发送方利用发送时钟来决定发送每个位的时刻,接收方检测起始位的下降沿,并用它来同步接收时钟,然后利用接收时钟从每一位的中间接收该位,1,起始位,LSB,MSB,0,奇偶 校验位,0,0/1,1 1,接收/发送 时钟,3. 串行数据的接收,双缓冲寄存器结构 保证数据的连续接收,4. 接收错误的处理,奇偶错误PE(Parity Error) 若接收到的字符的“1”的个数不符合奇偶校验要求 帧错误FE(Frame Error) 若接收到的字符格式不符合规定(如缺少停止位) 溢出错误OE(Overrun Error) 若接收移位寄存器接收到一个数据,并送至输入缓冲器时,CPU还未取走前一个数据,就会出现数据溢出 若接收缓冲器的级数多,则溢出错误的几率就少,8.4.2 8251的引脚,分成连接CPU的部分和连接外设的部分 注意:8251是Intel公司的产品,广泛应用于以Intel8080/8086等为CPU的计算机中,能工作于全双工方式,既可以工作于同步方式,又可以工作于异步方式.,1. 处理器接口引脚(1),数据线D0D7:在CPU与8251之间交换信息 片选线CS* :仅当CS*为低电平时, 微处理器才能对8251A操作. 时钟信号输入CLK:用于产生8251A内部时序.CLK的周期为0.421.35us.CLK的时钟至少应是接受/发送时钟的30倍(同步方式)或4.5倍(异步方式),1. 处理器接口引脚(2),读控制线RD* 低电平有效,CPU从8251内部寄存器读出数据 相当于I/O读信号 写控制线WR* 低电平有效,CPU将数据写入8251内部寄存器 相当于I/O写信号 信息类型输入信号C/D* 为低电平,传送的是数据信息,为高电平时传送的是控制信息或状态信息,1. 处理器接口引脚(3),RESET:复位信号输入,高电平有效.复位后8251A处于空闲状态直到被初始化. RxRDY:接收准备好状态输出线,高电平有.当接收器接到字符并准备送给微处理器时, RxRDY为1;当字符微处理器读取后, RxRDY恢复为0.作为8251A向微处理器申请中断源信号. SYNDET/BRKDET:双功能检测信号,高电平有效.,处理器接口引脚(4),TxRDY:发送准备好状态输出线,高电平有效. 可作为8251A向微处理器申请发送中断的中断源信号 TxEMPTY :发送缓冲器空闲状态输出线.高电平有效。 TxE1,表示发送缓冲器中没有要发送的字符;当微处理器将要发送的数据写入8251A后, TxE自动复位。,2.与外部设备或调制解调器接口信号,RxD:接收器数据信号输入端,用来接收外部设备送来的串行数据,并在数据进入接收器以后转换成并行数据,然后送入数据接收缓冲器。 RxC * :接收器时钟输入线。控制接收器接收字符的速率,在RxC * 的上升沿采集串行数据输入线。 RxC * 的频率等于波特率(同步方式),或等于波特率的1倍,16倍,64倍。 TxD:发送数据输出线。微处理器从这个引脚将并行输出给8251A的数据串行发送出去。,与外部设备或调制解调器接口信号,TxC *:发送器时钟输入线。在TxC *的下降沿数据由8251A移位输出,对TxC *频率的要求与RxC *相同。 DTR*:数据终端准备好状态输出线,低电平有效。当8251A命令字位D1为1时, DTR*有效,用于向调制解调器表示数据终端已经准备好。,与外部设备或调制解调器接口信号,DSR*:数据设备准备好状态输入线,低电平有效。当调制解调器准备好后, DSR*有效,用于向8251A表示Modem(或DCE)已准备就绪。微处理器可通过读取状态寄存器的D1位检测该信号。 RTS*:请求发送信号输出线,低电平有效。当8251A命令位D5为1时,RTS*有效,请求调制解调器做好发送准备(建立载波),与外部设备或调制解调器接口信号,CTS*:清除发送(允许传输)信号输入线,低电平有效。当调制解调器做好传输数据准备时, CTS*有效,即对8251A的RTS*信号有响应。,3. 串行异步接口引脚,8.3.3 8251的寄存器,8251内部有7种可访问的寄存器,占用两个连续的8位端口。 数据输入端口和数据输出端口合用同一个偶地址,状态端口和控制端口合用同一个奇地址。,1. 接收,存放串行接收后转换成并行的数据,2. 发送,包含将要串行发送的并行数据,3. 异步传输使接收端采样频率是传输波特率的16倍,5.方式控制字格式,异步通信方式,同步通信方式,命令控制字格式:,6. 状态字格式,8.4.2 8251的初始化编程,对8251的内部控制寄存器进行编程写入 写入方式控制字 确定8251的工作方式 写入命令控制字 指定芯片的实际操作. 同步模式时,还必须写入同步字符。 正确的装入顺序是方式字,同步字符,命令字,设置,设8251的控制端口地址为66H,规定用内同步方式,同步字符2个,奇校验,7个数据位。对其进行同步模式设置。 XOR AX,AX MOV DX,66H OUT DX,AL OUT DX,AL OUT DX,AL 往控制口送3个00H MOV AL, 40H OUT DX, AL 控制口送40H,使其复位 MOV AL,00011000B OUT DX,AL 方式字,设置字符格式,mov AL,SYNC ;同步字 out dx,al out dx,al ; 送同步字2个 mov al,10111111B OUT DX,AL ;送控制字,设置工作方式,若8251的收发时钟(RxC,TxC)P频率为38.4kHz,它的RTS和CTS引脚相连。半双工异步通信,每帧字符为7位数据位,1位停止位,偶校验,波特率为600bit/s。设8251的地址为0F0H,0F1H.初始化程序。 XOR AX,AX MOV DX,0F1H OUT DX,AL OUT DX,AL OUT DX,AL 往控制口送3个00H,设置中断允许或屏蔽位,MOV AL, 40H OUT DX, AL ;往8251的控制端口送3个00H和一个40H,使其复位 MOV AL,01111011B OUT DX,AL 送方式字,半双工异步,7位数据位,1位停止位,偶校验,64分频 MOV AL, 0011 0001B OUT DX,AL;控制字,写入中断允许寄存器,串行接口标准RS-232C,美国电子工业协会EIA制定的通用标准串行接口 1962年公布,1969年修订 1987年1月正式改名为EIA-232D 设计目的是用于连接调制解调器 现已成为数据终端设备DTE(例如计算机)与数据通信设备DCE(例如调制解调器)的标准接口 可实现远距离通信,也可近距离连接两台微机 属于网络层次结构中的最低层:物理层,RS-232C的引脚定义,232C接口标准使用一个25针连接器 绝大多数设备只使用其中9个信号,所以就有了9针连接器 232C包括两个信道:主信道和次信道 次信道为辅助串行通道提供数据控制和通道,但其传输速率比主信道要低得多,其他跟主信道相同,通常较少使用,RS-232C的引脚(1),TxD:发送数据 串行数据的发送端 RxD:接收数据 串行数据的接收端,RS-232C的引脚(2),RTS:请求发送 当数据终端设备准备好送出数据时,就发出有效的RTS信号,用于通知数据通信设备准备接收数据 CTS:清除发送(允许发送) 当数据通信设备已准备好接收数据终端设备的传送数据时,发出CTS有效信号来响应RTS信号 RTS和CTS是数据终端设备与数据通信设备间一对用于数据发送的联络信号,RS-232C的引脚(3),DTR:数据终端准备好 通常当数据终端设备一加电,该信号就有效,表明数据终端设备准备就绪 DSR:数据装置准备好 通常表示数据通信设备(即数据装置)已接通电源连到通信线路上,并处在数据传输方式 DTR和DSR也可用做数据终端设备与数据通信设备间的联络信号,例如应答数据接收,RS-232C的引脚(4),GND:信号地 为所有的信号提供一个公共的参考电平 CD:载波检测(DCD) 当本地调制解调器接收到来自对方的载波信号时,该引脚向数据终端设备提供有效信号 RI:振铃指示 当调制解调器接收到对方的拨号信号期间,该引脚信号作为电话铃响的指示、保持有效,RS-232C的引脚(5),保护地(机壳地) 起屏蔽保护作用的接地端,一般应参照设备的使用规定,连接到设备的外壳或大地 TxC:发送器时钟 控制数据终端发送串行数据的时钟信号 RxC:接收器时钟 控制数据终端接收串行数据的时钟信号,RS-232C的连接,微机利用232C接口连接调制解调器,用于实现通过电话线路的远距离通信 微机利用232C接口直接连接进行短距离通信。这种连接不使用调制解调器,所以被称为零调制解调器(Null Modem)连接,连接调制解调器,不使用联络信号的3线相连方式,为了交换信息,TxD和RxD应当交叉连接 程序中不必使RTS和DTR有效 也不应检测CTS和DSR是否有效,“伪”使用联络信号的3线相连方式,RTS和CTS各自互接,DTR和DSR各自互接 表明请求传送总是允许、数据装置总准备好,使用联络信号的多线相连方式,通信比较可靠 所用连线较多,不如前者经济,RS-232C的电气特性,232C接口采用EIA电平 高电平为3V15V 低电平为3V15V 实际常用12V或15V,标准TTL电平 高电平:2.4V5V 低电平:0V0.4V,相互转换,End,Thank you!,8.5 模拟信号接口,教学重点 DAC 0832及其与主机的连接 ADC 0809及其与主机的连接,模拟量与数字量,模拟量连续变化的物理量,数字量时间和数值上都离散的量,模拟输入输出系统,传感器 将各种现场的物理量测量出来 并转换成电信号(模拟电压或电流),放大器 把传感器输出的信号放大到ADC所需 的量程范围,低通滤波器 用于降低噪声、滤去高频干扰, 以增加信噪比,多路开关 把多个现场信号分时地接通到A/D转换器,采样保持器 周期性地采样连续信号, 并在A/D转换期间保持不变,D/A转换的基本原理,数字量 按权相加 模拟量,1.权电阻网络DAC,D/A转换器的原理图(1),D/A转换器的原理图(2),模拟开关 Si 打向“1”侧时,相应 2R 支路接虚地;打向“0”侧时,相应 2R 支路接地。故无论开关打向哪一侧,倒 T 型电阻网络均可等效为下图: 从 A、B、C 节点向左看去,各节点对地的等效电阻均为 2R。,D/A转换器的原理图(3),VaVREF VbVREF/2 VcVREF/4 VdVREF/8,I0Vd/2RVREF/(82R) I1Vd/2RVREF/(42R) I2Vd/2RVREF/(22R) I3Vd/2RVREF/(12R),D/A转换器的原理图(4),Iout1I0I1I2I3 VREF/2R(1/81/41/21) RfbR VoutIout1Rfb VREF(20212223)/24,Vout(D/2n)VREF,DAC0832的内部结构,1. DAC0832的数字接口,8位数字输入端 DI0DI7(DI0为最低位) 输入寄存器(第1级锁存)的控制端 ILE、CS*、WR1* DAC寄存器(第2级锁存)的控制端 XFER*、WR2*,直通锁存器的工作方式,两级缓冲寄存器都是直通锁存器 LE1,直通(输出等于输入) LE0,锁存(输出保持不变),DAC0832的工作方式:直通方式,LE1LE21 输入的数字数据直接进入D/A转换器,DAC0832的工作方式:单缓冲方式,LE11,或者LE21 两个寄存器之一始终处于直通状态 另一个寄存器处于受控状态(缓冲状态),DAC0832的工作方式:双缓冲方式,两个寄存器都处于受控(缓冲)状态 能够对一个数据进行D/A转换的同时;输入另一个数据,2. DAC0832的模拟输出,Iout1、Iout2电流输出端 Rfb反馈电阻引出端(电阻在芯片内) VREF参考电压输入端 10V10V AGND模拟信号地 VCC电源电压输入端 5V15V DGND数字信号地,单极性电压输出,VoutIout1Rfb (D/28)VREF,单极性电压输出:例子,设 VREF5V DFFH255时,最大输出电压: Vmax(255/256)5V4.98V D00H时,最小输出电压: Vmin(0/256)5V0V D01H时,一个最低有效位(LSB)电压: VLSB(1/256)5V0.02V,Vout(D/2n)VREF,双极性电压输出:电路,双极性电压输出:公式,取 R2R32R1 得 Vout2(2Vout1VREF) 因 Vout1(D/28)VREF 故 Vout2(D27)/27)VREF,双极性电压输出:例子,设 VREF5V DFFH255时,最大输出电压: Vmax(255128)/1285V4.96V D00H时,最小输出电压: Vmin(0128)/1285V5V D81H129时,一个最低有效位电压: VLSB(129128/1285V0.04V,Vout(D27)/27)VREF,3. 输出精度的调整,4. 地线的连接,8.5.3 DAC芯片与主机的连接,DAC芯片相当于一个“输出设备”,至少需要一级锁存器作为接口电路 考虑到有些DAC芯片的数据位数大于主机数据总线宽度,所以分成两种情况: 1. 主机位数等于或大于DAC芯片位数 2. 主机位数小于DAC芯片位数,1. 主机位数大于或等于DAC芯片的连接,mov al,buf mov dx,portd out dx,al,DAC0832单缓冲方式,2. 主机位数小于DAC芯片的连接,数字数据需要多次输出 接口电路也需要多个(级)锁存器保存多次输出的数据 并需要同时将完整的数字量提供给DAC转换器,两级锁存电路,简化的两级锁存电路,mov dx,port1 mov al,bl out dx,al mov dx,port2 mov al,bh out dx,al,12.2.4 DAC芯片的应用,mov dx,portd mov al,0 repeat:out dx,al inc al jmp repeat,输出正向锯齿波,8.5 A/D转换器,模拟量,数字量,8.5.1 A/D转换的基本原理,存在多种A/D转换技术,各有特点,分别应用于不同的场合 4种常用的转换技术 计数器式 逐次逼近式 双积分式 并行式,1. 计数器式,以最低位为增减量 单位的逐步计数法,2. 逐次逼近式,从最高位开始 的逐位试探法,3. 双积分式,两个积分阶段 实质是电压/时间变换,4. 并行式,速度快成本高 直接比较法,12.3.2 ADC0809芯片,具有A/D转换的基本功能 CMOS工艺制作 8位逐次逼近式ADC 转换时间为100 s 包含扩展部件 多路开关 三态锁存缓冲器,ADC0809的内部结构图,1. ADC0809的模拟输入,提供一个8通道的多路开关和寻址逻辑 IN0IN7:8个模拟电压输入端 ADDA、ADDB、ADDC:3个地址输入线 ALE:地址锁存允许信号 ALE的上升沿用于锁存3个地址输入的状态,然后由译码器从8个模拟输入中选择一个模拟输入端进行A/D转换,2. ADC0809的转换时序,3. ADC0809的数字输出,ADC0809内部锁存转换后的数字量 具有三态数字量输出端D0D7 配合输出允许信号OE 当输出允许信号OE为高电平有效时,将三态锁存缓冲器的数字量从D0D7输出,4. ADC0809的转换公式,单极性转换示例,基准电压VREF(+)5V,VREF()0V 输入模拟电压Vin1.5V N (1.50)(50)256 76.8774DH,双极性转换示例,基准电压VREF(+)5V,VREF()5V 输入模拟电压Vin1.5V N (1.55)(55)256 89.6905AH,8.5.3 ADC芯片与主机的连接,ADC芯片相当于“输入设备”,需要接口电路提供数据缓冲器 主机需要控制转换的启动 主机还需要及时获知转换是否结束,并进行数据输入等处理,1. 数据输出线的连接,与主机的连接可分成两种方式 直接相连:用于输出带有三态锁存器的ADC芯片 通过三态锁存器相连:适用于不带三态锁存器的ADC芯片,也适用带有三态锁存缓冲器的芯片 ADC芯片的数字输出位数大于系统数据总线位数,需把数据分多次读取,2. A/D转换的启动(1),启动信号一般有两种形式 脉冲信号启动转换 电平信号启动转换,转换启动,转换结束,2. A/D转换的启动(2),主机产生启动信号有两种方法 编程启动 软件上,执行一个输出指令 硬件上,利用输出指令产生ADC启动脉冲,或产生一个启动有效电平 定时启动 启动信号来自定时器输出,3. 转换结束信号的处理,不同的处理方式对应程序设计方法不同 查询方式把结束信号作为状态信号 中断方式把结束信号作为中断请求信号 延时方式不使用转换结束信号 DMA方式把结束信号作为DMA请求信号,8.5.4 ADC芯片的应用,例8.2 编程启动、转换结束中断处理 例8.3 编程启动、转换结束查询处理,中断方式,主程序,;数据段 adtemp db 0;给定一个临时变量 ;代码段 ;设置中断向量等工作 sti;开中断 mov dx,220h out dx,al;启动A/D转换 ;其他工作,例12.2,中断服务程序,adintproc sti;开中断 push ax;保护寄存器 push dx push ds mov ax,data;设置数据段DS mov ds,ax mov dx,220h in al,dx;读A/D转换的数字量 mov adtemp,al;送入缓冲区,例12.2,中断服务程序,mov al,20h;发送EOI命令 out 20h,al pop ds;恢复寄存器 pop dx pop ax iret;中断返回 adintendp,例12.2,查询方式,8通道 模拟输入 (05V),启动转换,;数据段 counterequ 8 bufdb counter dup(0);数据缓冲区 ;代码段 mov bx,offset buf mov cx,counter mov dx,220h;从IN0开始转换 start1:out dx,al;启动A/D转换 push dx,例12.3,查询读取,mov dx,238h;查询是否转换结束 start2:in al,dx;读入状态信息 test al,80h;D71,转换结束否? jz start2;没有结束,继续查询 pop dx;转换结束 in al,dx;读取数据 mov bx,al;存入缓冲区 inc bx inc dx loop start1;转向下一个模拟通道,例12.3,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!