版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第八章接口技术2第八章接口技术8.1计(数)(定)时器8.2并行传输及其接口8.3DMA传输和DMA控制器8.4串行传输及串行接口8.5模拟接口I/O接口可分为计时电路(计数器或定时器)、并行接口、串行接口、DMA控制器和模拟接口等。
3主要用于:周期时钟产生串行传输波特率发生器,方波发生器,高速脉冲输出(HSO)各种限时器(单稳态电路、软硬件看门狗电路)各种时间间隔,频率和相位的测量;生成各种占空比的脉冲宽度调制(PWM)输出。
8.1计数定时器48.1.1计时器的一般工作原理计数定时器实际上是一个计数器电路,其时钟由一标准时钟发生器提供,由它作为计时标准。所以,计时器可提供高精度的时间测量和作为高精度限时器。5图8.1计时器的一般构成
外部CLK定时计数68.1.2计时器的启动(触发)方式计数器的触发方式是指“从什么时间开始计时”的决定方式。定时器有内(软件)触发和外(硬件)触发两种触发方式。GATE门控信号:使能端78.1.3计时器在计算机中的应用(1)用作硬件延时器,可节约CPU时间。(2)用作周期中断触发源,可进行刷新、时钟、间隔控制等。(3)用作波特率发生器,方波发生器等固定波形的生成。(4)作可重复触发的单稳态电路
8
图8.2限时器的原理波形
τ98.1.4计时器功能的改进:输人捕获和输出比较
对计时器的改进,使它能更精确地测量事件发生的时间,这就是输入捕获和输出比较功能。
101.输入捕获功能其工作原理是,当计数器在某标准时钟信号驱动下不断计数时,若外部来了某信号的一个有效沿(上升或下降沿),就产生一个捕获信号,该信号把计数器的当前值装入捕获寄存器,同时产生中断信号。11
图8.3计数器的输入捕获原理
122.比较输出图8.4比较器输出原理138.1.5PWM输出功能与直流马达转速控制
若把输出比较功能作些改进,它可以变成另一种很有用的电路,即脉冲宽度调制输出(PWM)。
14图8.5PWM的工作原理158.1.6定时计数器芯片举例定时与计数本质上是一致的:定时的信号具有周期性,计数的信号具有随机性。定时:提供的时间基准。可分为内部、外部定时。计数:
对脉冲的个数进行累计。实现定时控制可分为三种方法:16(2)硬件定时采用中小规模IC构成。
如555定时IC。不增加CPU负担,成本低,定时值不可改变。不能满足精确度和灵活性的要求。(3)可编程硬件定时
8253:最高工作频率2.6
MHz8254:最高工作频率
10MHz
(1)软件定时
通过软件指令周期方法定时,如执行循环程序。增加CPU负担,通用性差,一般用于短延时。采用可编程定时/计数器完成,由编程软件改变计数值。171.8253/8254芯片的对外引脚和内部结构图8.6(a)8353/8254引脚18
图8.6(b)8353/8254内部结构
CPU接口:
译码、操作外设接口:
时钟信号、控制、输出内部逻辑三个计数器各自独立19图8.6(c)8353/8254每个计数通道逻辑框图16位当前计数值锁存器OL16位减1计数器CE16位计数初值寄存器CROUT(减1至0时)MSBLSB锁存后读出当前值MSBLSB装入/读出初值&CLKGATE最大计数值为64K时钟输入门控信号计数器输出DBDB(计数初值与CLK时钟周期的积)CR:16位写入[两次]、清零CE:16位写入、计数、输出OL:16位先锁存再读出20(1)数据总线缓冲器:CPU向其输出指令将控制字和计数值写入内部寄存器,亦可用输入指令读取其内部的数据。(2)读/写逻辑:接收CPU的控制信号、片选信号及端口选择或命令选择信号。由读写逻辑控制各个操作,见下表所示。
WR:写控制输入信号
RD:读控制输入信号
CS:片选输入信号
A1、A0:通道选择信号21(3)控制寄存器:存放CPU送来的控制字,确定定时/计数
器的工作方式。(4)三个计数器:计数器0、计数器1、计数器2。均为独立的16位减法计数器,由控制字确定二、十进制计数,每个计数器有三个引脚:
CLK:时钟输入信号引脚,由脉冲/方波作基准信号。
GATE:门控输入信号引脚,低电平时关闭停止计数,高电平允许减法计数。
OUT:计数器输出信号。当计数或定时结束时,此引脚输出一个控制信号。计数初值:N=fCLKi/fOUTi,在不同工作方式及定时/计数时的应用不同。操作特征位时序D7D601000计数初值写入0#计数器**无01001计数初值写入1#计数器**无01010计数初值写入2#计数器**无01011向控制字REG写控制字00~10无写“读计数值/状态”命令11无00100读0#计数器当前计数值无前一命令A1A0=11时,D7D6为11且D5为0或D7D6为非11且D5D4为00时,读取的是当前计数值;D7D6为11且D4为0读取的是状态。读0#计数器状态无00101读1#计数器当前计数值无读1#计数器状态无00110读2#计数器当前计数值无读2#计数器状态无00111无操作1****禁止访问011**无操作通道地址分配及操作CSWRRDA1A0★232.地址安排片内地址(A1A0)操作内容片内地址(A1A0)操作内容00通道0时间常数写通道0时间状态读10通道2时间常数写通道2时间状态读01通道1时间常数写通道1时间状态读11写命令字243.工作方式控制字(CW)8253/8254有六种不同用途的工作方式:方式0~方式5其工作方式扩展字见P322图8.7:D7D6D5D4D3D2D1D0计数器选择00CH001CH110CH211无用读/写控制00锁定当前计数值01只读写计数器低字节10只读写计数器高字节11先读写计数器低字节后读写计数器高字节工作方式000方式0001方式1X10方式2X11方式3100方式4101方式5计数器制1BCD制0二进制25(1)方式0:中断信号发生器(设控制字CW=10H低字节计数初值LSB)GATE为高电平时允许计数,下降暂停、低禁止、上升继续计数;写入方式0控制字后,OUT信号变为低电平;WR有效(0电平)后的下一脉冲下降沿开始减1计数;当初值减至0时,OUT信号变为高电平。特点:一次计数;常用来产生计数结束时中断。4.8253/8254的工作方式说明3)4)2)26(2)方式1:单稳态负脉冲信号发生器(设控制字CW=12H)
(又称:硬件可重触发单稳)
特点:一次计数;
GATE上升重新计数、高与下降和低不影响计数;
WR#写[重写]在下次GATE从0到1的跳变时有效;
OUT在写入控制字后变高,开始计数时变低、计数值为0时变高(N个时钟周期的低)。27(3)方式2—频率发生器(设控制字CW=14H
)
特点:多次计数;
GATE上升重新计数、高允许、下降停止、低禁止计数;
WR#写[重写]在下次计数时有效;
OUT在计数值为1时输出宽度为1个CLK的负脉冲(周期为N个时钟周期,频率为1/N的时钟频率,实际上是对CLK的N分频)。28(4)方式3—方波发生器(设控制字CW=16H)
特点:多次计数;
GATE上升重新计数、高允许、下降停止、低禁止计数;
WR#写[重写]在下次计数时有效;
OUT在写入控制字后变高,计数开始后,采用每脉冲计数减2:
当计数初值为偶数n时,计数到0时反向。脉冲宽度T×N/2,方波周期为
T×N。
当计数初值为奇数n时,OUT变高的第一个CLK减1后装入CE,其余每个脉冲
计数减2。OUT正脉冲时,计数到0的下一个CLK时OUT反向OUT正脉冲宽度为
T×(N+1)/2;OUT负脉冲时在计数到0时反向。负脉冲宽度为T×(N-1)/2,方波周期仍然是T×N。29
特点:一次计数;
GATE上升重新计数、高允许、下降停止、低禁止计数;
WR#写[重写]会立即重新计数(软件触发);
OUT在写入控制字及计数当中为高电平,计数值为0时输出1个CLK的负脉冲。(5)方式4—软件触发的选通信号发生器(CW=18H)30(6)方式5硬件触发的选通信号发生器(CW=1AH)
特点:一次计数;
GATE上升重新计数、高与下降和低不影响计数;
WR#写[重写]在下次GATE从0到1的跳变时有效;
OUT在计数值为0时输出1个CLK的负脉冲。
方式0方式1方式2方式3方式4方式5OUT输出状态写入控制字后变0,计数结束变1,并维持至重写控制字或计数初值写入控制字后变1,GATE上升沿触发变0,开始计数,计数结束变1写入控制字后变1,计数到1变0,维持一个Tclk变1写入控制字后变1,装入初值且GATE=1则OUT变1,计数到变0,重装初值继续计数,计数到则反向写入控制字后变1,计数结束变0,维持一个Tclk变1写入控制字后变1,GATE上升沿触发开始计数,计数结束输出一个CLK的负脉冲初值自动重装无无计数到0重装根据初值奇偶分别重装;无无计数过程中改变初值立即有效GATE触发后有效计数到1或GATE触发后有效计数结束或GATE触发后有效立即有效GATE触发后有效GATE0禁止计数无影响禁止计数禁止计数禁止计数无影响下降沿暂停计数无影响停止计数停止计数停止计数无影响上升沿继续计数从初值开始重新计数从初值开始重新计数从初值开始重新计数从初值开始重新计数从初值开始重新计数1允许计数无影响允许计数允许计数允许计数无影响32335.8253/8254应用实例
特征位:D7D6=00~10、D5D4=01~11:
D7D6选择计数器:00-T/C0;01-T/C1;10-T/C2
D5D4选择读/写方式:01-只写低字节;10-只写高字节;11-先写低字节再写高字节(16位)
D3D2D1选择工作方式:000~101六种工作方式。
D0选择计数进制:0-二进制方式(0-FFFFH);1-BCD码方式(0-9999)。
例:MOVAL,01110100B;T/C1,先低后高字节,方式2,二进制方式
OUT43H,AL;写命令字,后面紧跟写字[先低后高]操作指令MOVAX,XXXXH;见后面例子8253/8254初始化编程(1)一般原则写入控制字:根据选定计数器、操作类型、方式选择、计数制式,确定控制字。写入对应通道的计数初值。
(2)计数初值的计算
n=fCLKi/fOUTi
(a)不同通道的计数初值写到不同地址中:
A1A0定时/计数器
00T/C001T/C110T/C2(b)每次写入一个字节;
(c)根据控制字定义,决定高、低字节写入方法。
(d)初始值的范围是:
二进制为65536(0000H)、65535(FFFFH)…
~
1(0001H)。十进制为10000(0000H)、9999(9999H)…
~1(0001H)。
对于小于256之数,用低字节计数;对于大于等于256之数,分别用高、低字节计数。例:
T/C初始化
(1)写工作方式控制字
(2)设置计数初值
MOVAL,01110101B;
T/C1,先低后高字节,方式2,BCD
OUT
43H,AL;A1=1,A0=1
MOV
AX,2000H;
计数初值为2000H
OUT
41H,AL;A1=0,A0=1
MOVAL,AH
OUT
41H,AL;A1=0,A0=1
MOVAL,00010110B;
T/C0,仅低字节,方式3,二进制
OUT
43H,AL
OUT40H,50H;
A1=0,A0=0,计数初值为50H(80)
注意:(1)每个使用的T/C均要初始化;
(2)计数初值的设置与T/C的CLK密切相关;
(3)计数初值的设置方法由控制字决定。36P324例:使用Intel8253:通道0用于外部事件计数,每计满100次通过中断控制器8259A向CPU发出中断请求;
通道1产生频率为1KHz的方波,作为串行接口的时钟信号;
通道2产生标准定时时钟,每秒通过8259A向CPU发出一次中断请求信号。0E0H~0E3H388253的实验讲解
见实验三8253定时器计数器.DOC398.2并行传输及其接口
并行传输有以下特点:接口设计简单
传输距离短
并行接口分为简单接口(非选通接口)和选通接口两种。
408.2.1简单并行口
1.简单输出口
P327图8.92.简单输入口P327图8.103.通用简单并行口
P327图8.11(字节I/O口)4.位(控)I/O口418.2.2选通并行口及其联络1.异步互锁联络P328422.脉冲联络P327图8.13脉冲联络波形
433.混合联络
脉冲与电平信号混用,非互锁联络。4.NRZ(不归零)联络
减少联络信号的跳变次数,以减少对数据
线上信号的干扰。
见P327图8.1444图8.15选通输出的联络逻辑
8.2.3并行接口设计举例G45图8.16输出联络波形(输出)46图8.17选通输入的联络逻辑
RxBufferEmpty——DateAVailable47
图8.18输入联络波形
DAV488.2.4通用并行接口芯片举例8255内部主要部件8255具有2个独立的8位I/O口(A组和B组,可作为选通口使用)和2个独立的4位I/O(C组上半部和C组下半部,不能作为选通口),提供TTL兼容的并行接口。作为输入时提供三态缓冲器功能,作为输出时提供数据锁存功能。其中,A口具有双向传输功能。(1)数据端口端口A:A口属于A组,受A组控制电路控制,输入输出均具有八位数据缓冲和数据锁存的功能,可设置为双向的通信口。
端口B:B口属于B组,受B组控制电路控制,仅有八位数据数据输出锁存及缓冲的功能,输入则无锁存功能。端口C:C口既可作为一个八位的数据端口作为输入、输出数据端口,又可分为两个独立的四位端口使用,但输出有锁存输入无锁存。作为两个四位口(高、低半口)使用时,分别受A组、B组控制器控制,C口可进行位操作。
(2)A组、B组控制电路由设定8255的方式字决定8255的工作方式。8255的控制寄存器接收CPU输出的方式字,可决定A、B两组的工作方式,亦可对C端口进行位操作(复位、置位),A组控制A口、C上(高)半口;B组控制B口、C下(低)半口。1、接口信号和内部结构外设接口信号引脚PA7~PA0:A口的8条引线PB7~PB0:B口的8条引线PC7~PC0:C口的8条引线数据总线信号引脚D7~D0:8位数据引线控制信号引脚RD读、WR写、CS片选引线RESET复位、A1、A0端口选择引线电源引脚Vcc(+5V)、GND引线518255内部结构522、端口地址安排片内地址(A1A0)操作内容片内地址(A1A0)操作内容00写口A数据(写操作)读口A数据(读操作)10写口C数据(写操作)读口C数据(读操作)01写口B数据(写操作)读口B数据(读操作)11写命令字读操作无效注:口C读出时,某些位是被借用的口线的状态写口C时,某些被借用位是控制位(如INTE中断允许)
8255的端口与操作选择表
A1A0RDWRCS操作
001010000111000A口内容读至数据总线B口内容读至数据总线C口内容读至数据总线
输入00110101
111100000000数据总线内容写至A口数据总线内容写至B口数据总线内容写至C口DB内容写至控制寄存器输出X1XX1XX01X11100端口输出为高阻非法端口输出为高阻禁止543、命令字(1)8255工作方式选择控制字(写,A1A0=11)方式0为基本的输入输出方式方式1为选通的输入输出方式方式2为双向传输方式(2)端口C置位/复位控制字C口按位置/复位控制字(写,A1A0=11)
可单独对8255之C端口的8位进行位操作●置/复位控制字必须写入控制寄存器,即控制端口中4、8255的工作方式8255有三种工作方式:方式0、方式1、方式2
方式0为基本的输入输出方式方式1为选通的输入输出方式方式2为双向传输方式A、B、C口均可工作在方式0
方式1适用于工作在A、B口(C口配合之)方式2仅用于A口(C口配合之),此时B口可设为方式0、方式157①方式0—
基本的输入输出方式方式0提供两个8位口(A和B)和两个4位口(PC7~PC4,PC3~PC0),任何一个口都可用做输入或输出(单向),由CPU用简单的I/O指令来进行读/写。一般用于无条件传送的场合,也可以用做查询式传送。习惯上将A口和B口作为数据口,将C口作为控制输出和状态输入口。②方式1—
选通的输入输出方式
A口和B口可作为输入或输出端口使用,C口的某些位则作为控制或联络信号,不同的端口要求C口与其配合的位不同。在方式1中C端口配合A端口和B端口有固定搭配关系。C端口中没有使用的位可单独定义为I/O使用。(a)A端口方式1输入(b)B端口方式1输入1、方式1输入
当8255的A端口和B端口均作为方式1输入时,C端口的6个位作为选通控制和联络信号。PC2、4为外设选通信号;PC1、5为缓存器满联络信号;PC0、3为中断请求信号。PC6、7作为I/O使用。若A、B口仅有一个作输入使用,则C端口中没有使用的位可单独定义为I/O使用。59INTE为中断允许位,对应PC口寄存器(状态字)的D4位(INTEA)和D2位(INTEB),可通过对PC口按位写方法设置;PC2、PC4引脚作用:STB用作锁存数据口数据;中断条件:STB#(引脚)=1(无效),IBF=1、INTE=1;PC6、7可作为数据线使用。60输入组态下的操作时序★中断方式如果INTE有效,8255将使INTR有效,申请中断CPU向8255发读信号RD,从8255端口读数据中断请求信号INTR变无效,然后IBF无效,外设可送下一个数据。★查询方式外设把数据送到8255端口外设用选通信号STB把数据打入端口的输入锁存器输入缓冲器满信号IBF有效,CPU可查询该信号 ̄ ̄ ̄ ̄61①②③④输入组态下的操作时序622、方式1输出(a)A端口方式1输出(b)B端口方式1输出当8255的A端口和B端口作为方式1输出时,C端口的6个位作为选通控制和应答信号,剩余的PC4、5作为I/O使用。若A、B口仅有一个作输出使用,则C端口中没有使用的位可单独定义为I/O使用。方式1输出组态逻辑63
INTE为中断允许位,对应PC口寄存器(状态字)的D6位(INTEA)和D2位(INTEB),可通过对PC口按位写方
法设置;
PC2、PC6引脚作用:用作对OBF的回应;中断条件:ACK(引脚)=1(无效),OBF=1(无效)、INTE=1;
PC4、5可作为数据线使用。64输出组态下的时序①②③④输出缓存器满应答响应中断请求写信号③方式2--双向数据传输方式仅限用于A端口。配合工作的C端口为PC3、4、5、6、7。C端口的其余位可作为I/O使用。具有方式1输入和方式1输出组合的特点。方式2下的组态逻辑例
若将A口工作于方式0作输入,B口工作于方式1作输出。PC3设成输入,C口上半部输出。设8255端口地址为60H-63H。控制字为:10010101B=95H初始化程序为:
MOV AL,95H;方式选择控制字
OUT 63H,AL;写入控制寄存器方式1下8255状态字中INTE位的置位和复位⊙若允许PA口输入中断请求MOVDX,203H;8255命令口MOVAL,00001001B;PC4=100,允许中断请求
OUTDX,AL⊙若禁止PA口输入中断请求MOVDX,203H;8255命令口MOVAL,00001000B;置PC4=100,禁止中断请求
OUTDX,AL⊙若允许PA口输出中断请求MOVDX,203H;8255命令口MOVAL,00001101B;置PC6=110,允许中断请求
OUTDX,AL⊙若允许PB口输入中断请求MOVDX,303H;8255命令口MOVAL,00000101B;置PC2=010,允许中断请求
OUTDX,AL⊙若禁止PB口输入中断请求MOVDX,303H;8255命令口MOVAL,00000100B;置PC2=010,禁止中断请求
OUTDX,AL⊙若允许PB口输出中断请求MOVDX,303H ;8255命令口MOVAL,00000101B;置PC2=010,允许中断请求
OUTDX,AL
例:若A口工作于方式1作输入,使用中断传送方式,B口工作于方式0作输出,其余C口的位作为输出。设8255端口地址为63H。编写初始化程序片断。
MOVAL,10110000B;A口方式1输入,B口方式0输出,其余
;C口位作为输出
OUT63H,AL;方式选择控制字写入控制寄存器
MOVAL,00001001B;PC4=100,INTE=1OUT63H,AL;置/复位控制字写入控制寄存器实验一:某应用系统以8255A作为接口,采集一组开关S7~S0
的状态,然后通过一组发光二极管LED7~LED0显示开关状态,(Si闭合,则对应LEDi亮,Si断开,则对应的LEDi灭)电路连接如下图,已知8255A、B两组均工作在方式0。写出8255工作方式控制字。写出实现给定功能的汇编语言程序。71图1PA口PC口72图2PA口PC口73A口工作在方式0输入,C口输出,所以其控制字是10010000b=90H程序如下:;8255经LS245(同相驱动器)驱动,发光管共阳,所以反向显示。DATASEGMENTDATAENDSSTACKSEGMENTSTACKSTADW50DUP(?)TOPEQULENGTHSTASTACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOVAL,90H;设置为A口输入,C口输出MOVDX,203H OUTDX,ALBG:MOVDX,200H;将A口状态输出
INAL,DX
MOVDX,202H OUTDX,AL JMPBGCODEENDSENDSTARTNOTAL;加此语句后开关位置与显示反相75例 下图采用一个8255芯片和软盘控制器相连,箭头标明了I/O的方向,根据该图,试写出8255的初始化程序。设8255端口地址为0300-0303H。图8255用作软盘基本接口
A口工作在方式2,PC4-PC7作应答联络信号线,PC3用作A组中断请求,B口和PC0-PC2作输出,工作在方式0。工作方式控制字为:11XXX000B初始化程序为:
MOV DX,303HMOV AL,0C0HOUT DX,ALMOV AL,00001001BOUT DX,AL ;PC4置位,开放输入中断
MOV AL,00001101BOUT DX,AL ;PC6置位,开放输出中断77三、8255作为打印机接口实例已知8255作为打印机接口,如下图所示。8255工作在方式1作为打印机接口电路
CPU通过8255与打印机连接,打印前先检查打印机的工作状态,当BUSY=l时表示打印机忙,则等待,BUSY=0时表示不忙,这时CPU送数到A口并给打印机的STB端送一个负脉冲的打印选通信号,使数据进人打印机数据缓冲器。打印机处理完送入数据后向8255发送一个应答信号ACK,这时又可继续送下一个数据,直到打印结束。有两种传送方法进行打印,一种是查询打印,一种是中断打印。下面仅给出查询打印方式的程序,中断打印程序可自己编写。在查询方式中,只需检测打印机的BUSY信号的高低电平即可决定是否打印。程序如下:
DATASEGMENT
PORTAEQU340HPORTBEQU341HPORTCEQU342HCTRLPEQU343H
PstringsDB“Thisisasampleofprinterinterfaceusing8255”
countEQU$-PstringsDATAENDSSTACKSEGMENTPARASTACK‘STACK’DB100DUP(?)STACKENDSCODESEGMENT
ASMMUSECS:CODE,DS:DATA,SS:STACKMAINPROCFAR
;PUSHDS;MOVAX,0
;PUSHAXMOVAX,DATAMOVDS,AXMOVAL,0A8H;8255方式选择控制字10101000B(C上半口输入PC4)MOVDX,CTRLP;控制端口OUTDX,AL;方式选择控制字写入控制口MOVCX,count;打印字符个数装入计数器MOVBX,offsetPstringsLP1:MOV
AL,[BX]
MOVDX,PORTA
OUTDX,AL;送一个字符到8255的A口
MOVDX,PORTCLP2:INAL,DX;读取C口状态(准备检查BUSY状态)
ANDAL,00010000B;屏蔽无关位,取BUSY对应的PC4JNZLP2;等待接收新数据,BUSY=1等待,直到不忙
INCBX
LOOPLP1RETMAINENDPCODEENDSEND
MAIN如果采用中断方式打印,则在中断方式中,无需检测打印机的BUSY状态,当打印机处理完数据后会向8255发应答信号ACK,在内部中断允许的情况下产生中断请求信号,这时CPU可以在中断服务程序中向打印机发送打印数据。因此主程序中应先对8255初始化(如前所述),然后允许INTEA内部中断,才可能使8255接收到ACK之后产生中断请求信号。在中断服务程序中注意保护现场和恢复现场,服务程序的主体是送数到打印机,中断一次打印一个字符。在主程序设置好打印计数初值,中断一次计数减1,直到字符全部打印完毕,关中断结束整个程序。81例:并行接口8255A经常用来作LED显示器、键盘、打印机、A/D和D/A转换器接口。下图是8255A与七段代码显示器的接口电路。开关设置的二进制信息由8255A的B口输入,经程序转换为对应的七段LED的字形码(段选码)后,通过A口输出并由七段LED显示。试编制其控制程序。82关于七段I。ED显示器的说明:七段LED显示器由8个发光二极管构成,共有七段构成显示的数字与字符,每段分别称为a,b,c,d,e,f,g,最高位dp表示显示圆点(·),如下图所示。七段LED显示器电路结构根据其内部结构,LED显示器有共阴极电路和共阳极电路。该显示器可显示十六进制数、部分英文字母及一些常用字符,其中十六进制数的七段字形码如表所示。可看出共阴极字形码和共阳极字形码互为反码。83解:根据电路可知,8255A工作于方式0,B口工作于输入,A口工作于输出,不使用联络信号。8255A的工作方式字为:1000X01XB(可设为82H)。根据译码器可知,8255A的口地址为:21CH~21FH。根据电路可知,七段LED为共阳极电路,但B口输出经反向器驱动后的字形码和共阴极一样。七段16个(0~F)数字、字符的字形码表参看程序中SCODE定义的表。编写控制程序的步骤如下:设置工作方式字;读B口状态,得到有关开关的信息;将得到的信息用查表法转换为七段字形码;七段字形码送A口至LED显示器显示;延时,使所显示的信息显示一段时间以便于观察。按题意编写的控制程序如下:84DATASEGMENTSCODEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,67H,77H,7CH,39H,5EH,79H,71HDATAENDSCODESEGMENTASSUMECS:CODE;DS:DATASTART:MOVAX,SEGDATAAMOVDS,AX
MOVDX,21FH;8255A方式控制字地址
MOVAL,82H;方式控制字为82HOUTDX,AL;写入方式字
MOVAH,16;设置读B口的状态次数
PORTB:MOVDX,21DH;指向B口地址
INAL,DX;读口B的状态
ANDAL,0FH;判断口B的状态
MOVBX,OFFSETSCODE;BX指向字形码表首地址
XLAT;查字形码表,取出对应的字形码
MOVDX,21CH;指向A口地址
OUTDX,AL;将取出的字形码送A口由LED显示
MOVCX,8F00H;设置显示延时常数
DELAY:LOOPDELAY;延时显示时间(见实验指导P21)
DECAH;读B口状态次数减1JNZPORTB;次数不为0返回,继续读B口状态
MOVAH,4CH;次数为0,程序中止
INT21HCODEENDSENDSTART思考:此程序运行最终结果?(125ms×16=2s)85并行接口一般称为Centronics接口,现在也称IEEE1284,最早由CentronicsDataComputerCorporation公司在60年代中期制定。Centronics公司当初是为点阵行式打印机设计的并行接口,1981年被IBM公司采用,后来成为IBMPC计算机的标准配置。它采用了当时已成为主流的TTL电平,每次单向并行传输1字节(8-bit)数据,速度高于当时的串行接口(每次只能传输1bit),获得广泛应用,成为打印机的接口标准。868.2.5三线联络举例
—CENTRONICS打印接口图8.27CENTRONICS打印机的联络
87图8.28联络波形0.5us①②③88898.2.6IEEE-488总线及其三线联络
IEEE-488总线的最大特点是可以实现一发多收的传输。为此,它使用三线联络规程,以保证这种传输的可靠实现。又称为可编程仪表总线(GPIB)*图8.29IEEE-488的三线联络
918.3DMA传输和DMA控制器本节将介绍DMA控制器(DMAC)的分类、构成、工作原理及应用举例。928.3.1
DMA传输及DMA控制器1.DMA传输原理:在存储器与外设接口间的直接数据传输2.DMAC的功能:两重功能:一方面它可以作为从设备,它的工作要受CPU的管理。
另一方面它可以作为主设备,DMAC具有总线主设备(MASTER)的功能。
938.3.2
DMA控制器的分类按通用性来分,有专用DMAC和通用DMAC专用DMAC:为某个特定外设专门设计通用DMAC:可用于任何外设的I/O传输94图8.30专用DMAC的工作原理
总线请求总线响应I/O接口的DMAREQ是在DMAC/IO接口内部产生的,若该请求优先,就向CPU发出总线请求BR。CPU对该信号的响应是发出BA(总线响应),并释放总线。DMAC获得总线后,开始使用总线进行DMA传输:若是输出,就从存储器单元读取数据到I/O接口的输出数据寄存器;若是输入,就把I/O接口输入数据寄存器的数据写入指定的存储器单元。如没有数据要继续传输,DMAC就释放总线。可见,专用DMAC的DMA传输中,总线上只有对存储器的操作周期,且一个总线周期实现一次DMA传输。而对I/O的操作是在DMAC/IO接口内部完成的。95
图8.31通用DMAC的工作原理通用DMAC可用于任何外设的I/O传输,只要把该I/O接口的传输请求接到DMAC的DREQ输入即可,如上图所示。而在CPU对DMAC初始化过程中,告诉它所控制的通用DMAC,可实现存储器到I/O、I/O到存储器、存储器到存储器、I/O到I/O的传输。96
图8.32双地址DMAC的传送过程
双地址DMAC的内部含有独立的可编程的源口和目的口。任一口可以是存储口或I/O口,且对这两个口都是显寻址。这样,DMAC和CPU对这些口的访问是完全一样的。因此它们可共用同一套(存储器和I/O)地址泽码器,所以接口电路简单。但一次DMA传送需要两个总线周期:读源口数据到DMAC内暂存,再把暂存的数据写到目的口。97图8.33单地址DMAC传输的原理
单地址DMAC的内部只有一个口,即存储器口。在DMA传输期间,DMAC同时发出存储器访问和I/O访问命令,存储器和I/O间的传送在一个总线周期内完成,如上图所示,它对存储口的访问和CPU一样,是显寻址,而对I/O目采用隐寻址,即不给出I/O口的地址,只给出一条信号线DACK。I/O接口要用这条线来选中特定I/O接口的特定寄存器——数据寄存器。98图8.34单地址DMAC传输的
I/O接口设计/CS信号的形成包括CPU访问和DMA访问两部分:CPU访问是地址访问,要由地址线上I/O地址的高位译码得出。而DMA访问是单线(/DACKi)选中。且DMA访问时,应禁止I/O地址译码(此时地址线上是存储器地址)。
RS是I/O接口内的寄存器选择线。CPU访问时,是I/O地址的低位线;而DMA访问时,是选中特定的数据寄存器。所以,这两种寄存器选择信号要经过多路转换电路(复用器)来切换。单地址DMAC有很多优点:在进行DMA传输时,一次传输只需要一个总线周期,即读源口和写目的口是在同一总线周期内完成的,它把源口数据直接写到目的口(见图8.
33)。直接传输只与数据总线宽度有关,而与DMAC的数据总线宽度无关。因此,8位DMAC(如8237)可以实现8位/16位/32位/64位的DMA传输。一般来说,单地址DMAC比双地址DMAC简单,一片DMAC内可容纳2个至4个DMA通道。99
图8.35单地址DMAC管理8255A选通输出SA9A8A7A6A5A4A3A2A1A001000010XX108H~10BH系统地址线系统数据线1008.3.3源口及目的口的构成
起始地址寄存器:保存起始地址值(CR)
地址计数器:随传输变化块长寄存器:数据块的大小(SR)
块计数器:指示剩余的数据传输数(SR)
1018.3.4DMAC的工作类型和DMA传输方式1.DMAC的工作类型:MM,MI/O,I/OI/O2.DMA传输方式(1)连续传送(continuous)或称块传送
(2)单次传送(single)(3)按需传送(ondemand/burst)1028.3.5DMA请求的生成方式(1)内部请求:内部触发或软件请求(MM)
(2)外部请求:外部设备请求DMA传输(
MI/O,I/OI/O)其触发方式分为沿触发和电平触发
1038.3.6DMAC的时序控制能力DMA传输期间,DMAC作为总线主设备,它应具备CPU关于总线传输控制器的一切功能。一些DMAC还具有总线周期控制能力。
有的DMAC还有命令长度控制能力
1048.3.7DMAC的块链接能力1.自动重装入能力(无需CPU干预,可变块需设置)2.较强的块链接能力(1)数组链链接:P344图8.37所示(顺序)(2)环链链接:P345图8.38所示(跳转)1058.3.8DMAC的中断源DMAC一般具有块结束中断能力。这是它作为传输控制器的基本能力。该事件出现时,应请求CPU给出下一个DMA传送参数,实现不间断的传输。
106*8.3.9DMA控制器芯片举例1.8237接口信号与内部结构1078237内部逻辑框图1088237的引脚功能说明(1)时序和控制逻辑:
CLK时钟
CS片选
RESET复位
READY就绪
AEN地址允许
ADSTB地址选通输出
MEMR存储器读输出
MEMW存储器写输出
IOR外设读
IOW外设写
EOP过程结束109(2)优先编码逻辑:
DREQ3~0四个通道请求信号
HRQ总线请求输出信号
HLDA总线保持响应输出信号
DACK3~0四个通道DMA应答信号(3)程序命令控制逻辑:A3A2A1A0读操作写操作1000读状态寄存器写命令寄存器1001无效写请求寄存器1010无效写单个通道屏蔽1011无效写方式寄存器1100无效清除先/后寄存器1101读暂存寄存器主清除(复位芯片)1110无效清除主屏蔽寄存器1111无效写主屏蔽寄存器110(4)数据地址缓冲器:
A3~A0低4位地址线(三态双向输入/输出)
A7~A4高4位地址线(三态输出)
DB0~DB78位双向数据线8237的特点①具有4个独立的DMA通道,每个通道都可独立地进行初始化。②每个通道的DMA请求都可以被允许或禁止。③每个通道的DMA有不同的优先级,既可以是固定优先级,也可以是循环优先级。④每个通道进行一次传送的最大字节数为64K。⑤提供4种传送方式:单字节传送方式、数据块传送方式、请求传送方式和级联传送方式。⑥时钟频率可从0到5MHz。⑦在5MHz的时钟频率下传送速率高达1.6MB/s。1128237内部寄存器的功能及格式
一、内部寄存器的主要功能1132.主要性能1)、单字节传输方式2)、块传输方式3)、请求传输方式4)、级联方式1143.存储器和I/O地址的生成8237A只有16位地址线,为单地址DMAC,对I/O设备采用隐寻址,用DACK代替CS及地址译码器。对20位、24位、32位的地址总线,需DMA页面寄存器产生高位地址。P349图8.42为PC系列DMAC的地址生成P349图8.43为页面寄存器工作原理1154.命令和状态寄存器每一个通道有四个寄存器和各通道共用寄存器1.通道工作方式控制寄存器
1162.全局命令控制寄存器
1173.屏蔽寄存器
4.单个通道屏蔽寄存器
1185.通道软件请求寄存器
1197.主清除命令和清除先/后触发器命令
主清除命令与RESET功能相同清除先/后触发器命令:对16位的寄存器,触发器为0,操作为低字节;触发器为1,则操作为高字节。6.通道状态状态寄存器1208237主要寄存器的端口地址分配P350表8.4121
8237编程的一般步骤1)发送主清除命令2)写入基地址和当前字节数寄存器3)写入基字节数和当前字节数寄存器4)写入模式寄存器5)写入屏蔽寄存器6)写入控制寄存器----硬件:由通道的DREQ启动DMA传送7)写入请求寄存器----软件:写入指定的通道8237DMA控制器的编程及应用软命令1)清先/后触发器软命令MOV AL,0XXH ;0XXH为AL中任意值OUT 0CH,AL ;先/后触发器被清“0”2)总清除软命令MOVAL,0XXH ;0XXH为AL中任意值OUT 0DH,AL ;写入总清端口,执行总清除命令3)清屏蔽寄存器软命令。MOVAL,0XXH;0XXH为AL中任意值OUT0EH,AL ;写入清屏蔽寄存器端口DMA控制器的读写时序
DMA空闲周期SIDMA过渡状态S0DMA操作周期(S1、S2、S3、S4)
8237内部状态变化流程124DMA编程和应用举例
8237的初始化编程◆初始化编程的步骤:①命令字写入控制寄存器②屏蔽字写入屏蔽寄存器③方式字写入方式寄存器④清“0”先/后触发器⑤写入地址寄存器字节寄存器⑥解除屏蔽⑦写入请求寄存器1268237的应用举例
1.8237DMAC的级联1272.如何扩展82C37ADMAC的寻址空间128
3.应用举例现假设在级联的8237的主片通道1,将内存其始地址为80000H的280H字节的内容直接输出到外部设备。
MOV AL,4 ;命令字,禁止8237工作
OUT 08,AL ;写命令寄存器
MOV AL,0 OUT 0CH,AL ;清除先/后触发器
OUT 02,AL ;写低位地址
OUT 02,AL ;写高位地址
MOV AL,8 ;页面地址为8OUT 83H,AL;写页面寄存器
MOV AX,280H;传输字节数
DEC AXOUT 03,AL;写字节数低位
MOV AL,AH OUT 03,AL ;写字节数高位
MOV AL,49H ;模式字:单字节读,地址加1 OUT 0BH,ALMOVAL,40H ;命令字:DACK和DREQ低有效
OUT 08H,AL ;正常时序,固定优先权
MOVAL,01 ;清除通道1屏蔽
OUT 0AH,ALWAITF: IN AL,08 ;读通道1状态
AND AL,02 ;传输完成否
JZ WAITF ;没完成则等待
MOVAL,05;完成后屏蔽通道1 OUT 0A,AL
……
1318.4串行传输及串行接口
8.4.1串行传输的应用串行传输是位串行、字节串行的传输方式。适合远距离传输,可减少传输线路的硬件投资费用。(Modem)除了远距离传输外,随着设备的小型化,管脚和布线所占面积的比例越来越大,出现了各种交换信息的串行总线标准。
串行异步通信标准接口常用的有RS-232C、RS-485及20mA电流环等,应用最广的是RS-232C标准接口串行通信系统传输结构数据终端设备DTE——数据源和目的地数据通信设备DCE——使数据符合线路要求1338.4.2串行传输需要解决的问题1.同步:位同步、字节同步、数据块同步2.差错控制:检验、纠错(奇偶、循环冗余)3.通信协议(规程):规定了通信链路的建立和解除、命令和响应以及出错时的恢复等各种约定。是双方保证可靠通信时必须遵守的协议。1348.4.3串行传输的信息格式1.异步格式所谓异步是指两个字符(字节)的对应瞬间的时间间隔是“不等长”的,即,字符间隔是可变的,波形如图8.50所示。135
图8.50起止式异步传输信息格式
高电平为传号电平,低电平为空号电平。传输数据时低位在前,高位在后。传输方向1、接收部分2、发送部分D7D0THR低位到高位串行移位到SOUT引脚输出……接收移位寄存器发送移位寄存器RBR低位到高位从SIN引脚串行移位进来D7D0CPU来的8位数据并行进入THR8位数据并行输出至CPU
发送保持寄存器THR接收缓冲寄存器RBR1371382.同步格式同步传输的信息格式有如下几种:(1)外同步格式(2)内同步格式1398.4.4串行接口标准
1.电流环标准早期应用于电传打字机的远距离传输标准,采用20mA电流的有或无表示二进制信息,在发、接端采用光电耦合,具有隔离度好、抗干扰能力强的特点,但传输效率不高。1402.RS-232标准RS-232C接口采用的是负逻辑,其逻辑电平与TTL电平不一样,不能兼容。因此,为了实现与TTL电路的连接,必须进行电平转换。
对于数据线:逻辑“1”(MARK)=-3V~-15V, 逻辑“0”(SPACE)=+3V~
+15V对于控制信号:接通状态(ON)即信号有效的电平=+3V~15V
断开状态(OUT)即信号无效的电平=-3Ⅴ~
-15V。TTL-EIA电平转换:141
目前可以使用新型电平转换芯片MAX232和MAX232A(高速)其内置双组RS-232C发送/接收器,实现TTL电平与RS-232C电平双向转换。1429针D型插座引脚引脚名称含义1CD载波检测(输入)2RXD接收数据线(输入)3TXD发送数据线(输出)4DTRDTE就绪(输出)--应答信号5GNG信号地6DSRDCE就绪(输入)7RTS请求发送(输出)8CTS清除发送(输入)9RI振铃指示(输入)143连接器DB-9、DB-25插座144共模噪声干扰对串行传输的影响:
RS-232C由于在发送器与接收器之间有公共信号地,不可能使用双端信号,因此共模噪声很容易引入信号系统中,且噪声幅度可高达好几伏,这是迫使RS-232C使用较高传输电压的主要原因。另一个原因是为了补偿传输线上的信号衰减和沿线附加电平的影响。RS-232的局限RS-232C采用单端驱动、单端接收的单端双极性电路标准。仅用一条线路传输一种信号,根据该信号线上电平相对于公共的信号地电平的大小来决定逻辑的“1”和“0”。对于多条信号线来讲,它们的地线是公共的,这种共地传输方式,抗干扰能力很差。尽管采用电平转换器来提高信号传输电平,但在较长距离时,由于电压损失,仍不可避免错误。当信号穿过电磁干扰环境时,也可能因附加的干扰信号电平使发送的“0”变为“1”或“1”变为“0”。故其信号波特率不能过高,仅限在20Kb/s以下,且距离不大于15m。1463.RS-485标准
RS-485接口标准是一种平衡传输方式的串行接口标准,这个标准的电气特性对逻辑电平的定义是根据两条传输线之间的电位差值来决定的,当AA‘线的电平比BB'线的电平高200mⅤ时表示逻辑“1”,当AA'线的电平比BB'线的电平低200mV时表示逻辑“0”。
RS-485标准允许在电路中可有32个发送器和32个接收器。允许一个发送器驱动多个负载设备,负载设备可以是驱动发送器、接收器或收发器组合单元。
RS-485的共线电路结构是在一对平衡传输线的两端都配置终端电阻,其发送器、接收器和组合收发器可挂在平衡传输线上的任何位置,实现在数据传输中多个驱动器和接收器共用同一传输线的多点应用。
由于RS-485标准采用差动发送/接收,因此共模抑制比高、抗干扰能力强,传输速率高,最大传输速率可达10Mb/s(传送15m),传输信号的摆幅小(200mV),传送距离远,采用双绞线,在不用MODEM的情况下,当100Kb/s的传输速率时,可传送的距离为1.2km。148*8.4.5串行接口芯片举例常见的UART主要有INTEL8250、PC16450和PC16550。此外,还有带更大缓冲的UART,称为PC16650和PC16750。其中16550与8250完全兼容,本节以INTEL8250为例介绍。PC微机异步通信适配器是微机与微机、微机与MODEM及微机与外设之间进行异步通信的接口。其核心是UART,即通用异步收发器。
1498250的接口信号和内部结构INS8250外部引脚150(1)时钟与电源信号XTAL1晶振基准时钟输入端XTAL2晶振基准时钟输入端Vcc
电源+5V端GND接地端(2)双向数据信号线D7~D0八位数据信号线(与系统总线连接)(3)输入信号引线CS0,CS1和
CS2片选线,片选条件是‘与’关系ADS地址选通线(锁存片选和内部寄存器选择)DISTR和DISTR数据输入选通。(读寄存器允许)
DOSTR和DOSTR数据输出选通。(写寄存器允许)
A0,A1和A2内部寄存器选择。
MR主复位输入。
RCLK接收时钟输入。可和BAUDOUT相接SIN串行数据输入。
CTS清除发送,输入线。
DSR数据设备就绪,输入线
RLSD接收线路信号检测,输入线。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论