微型计算机课程设计

  • 格式:doc
  • 大小:330.50 KB
  • 文档页数:21

课程设计说明书 NO.1

串行通信

1.课程设计的目的

为了巩固《微型计算机技术》课程学到的相关知识,通过对本课程所学知识的综合运用,使学生融会贯通课程中所学的理论知识,加深对计算机系统各个部分的工作原理及相互联系的认识,加深对接口的理解,清晰地建立计算机系统的概念,培养学生进行微机应用系统硬件和软件开发的实践工作能力。

2.设计方案论证

2.1可编程串行接口芯片8251A

2.1.1 8251A基本资料

8251A是通用同步异步接收发送器USART,适合做异步起止式数据格式和同步面向字符数据格式的接口,其功能很强。

(1)基本结构:

①接收部分:异步方式时,能把接收到的数据去掉起始位、停止位,检查有无奇偶错,然后经过移位寄存器变为并行格式后,送至接收缓冲器,以便CPU用输入指令(IN指令)取走;同步方式时,能够自动识别同步字符。

②发送部分:能接收并暂存由CPU并行输出的数据。在异步方式时,通过移位寄存器变为串行数据格式并添加上起始位、奇偶校验位及停止位,由一条数据线发送出去;在同步方式时,能自动插入同步字符。

(2)初始化:

①同步还是异步方式;

②字符格式;

③时钟脉冲频率与波特率的比例系数;

④有关命令位的确定。

(3)8251A主要性能:

①可用于同步和异步传送。

②可实现同步传送(5~8位)/字符;可选择内部或外部同步;可自动插入同步字符,

沈 阳 大 学

课程设计说明书 NO.2

同步传送波特率为DC~64K。

③可实现异步传送5~8位/字符;异步通信的波特率因子可以由三种选择:1、16或64;停止位也有三种选择:1、1.5或2位;异步传送波特率为:DC~19.2K。

④片内含有全双工、双缓冲发送和接收器。

⑤出错检测:具有奇偶、溢出和帧错误等检测电路。

⑥兼容性:全部输入输出与TTL电平兼容;单一的+5V电源;与Intel 8080、8085、8086、8088 CPU接口兼容。

2.1.2 8251A内部结构

如图1所示:

图1 8251A内部结构

沈 阳 大 学

课程设计说明书 NO.3

2.1.3 8251A外部引脚

如图2所示:

图2 8251A外部引脚

8251A引脚信号

(1)与CPU的连接信号

:片选信号;

C/ :控制数据;

:读;

:写;

此外还有:

RESET:复位,当这个输入引脚上出现一个6倍CLK时钟周期宽的高电平信号时,芯片复位。复位后,芯片处于空闲状态,等待命令。

CLK:时钟输入,为芯片内部有关电路工作提供的时钟,并非 、 。

在同步方式,CLK频率必须大于 或 频率的30倍,

在异步方式,CLK频率必须大于 或 频率的4.5倍,

另外,CLK的周期要在0.42~1.35μs范围内。

沈 阳 大 学

课程设计说明书 NO.4

TXRDY:发送器准备好,高电平有效。只有当8251A允许发送(即操作命令字的TXEN=1)并且 引脚为低电平和发送数据缓冲器为空时,此信号有效,通知CPU可以向8251A写入下一个的字符。CPU向8251A写入下一个字符后,TXRDY自动复位。TXRDY可作为查询方式的状态信号,也可作为中断方式时的中断请求信号。

TXE:发送器空,高电平有效。当它有效时,表示发送数据移位寄存器已空。

TXE有效时,TXRDY必有效;发送数据缓冲器满时,TXE必无效。

RXRDY:接收器准备好,高电平有效。若操作命令字的RXE(允许接收)位被置1,且当8251A已从RXD端逐位接收了一个字符,并完成了格式变换,接收的字符已以并行数据存放在接收数据缓冲器中时,此信号有效,通知CPU读取数据。当CPU读取一个字符后,此信号复位,此信号在查询方式时可作为状态信号,在中断方式时可作为中断请求信号。

SYNDET/BRKDET:同步/中止检测,复用功能引脚。

在同步方式时,作同步检测SYNDET。

当工作于内同步时,为输出引脚,当检测到从RXD端输入的一个或两个同步字符后,SYNDET输出高电平,表示8251A已达到同步。当CPU执行一次读状态操作时,复位SYNDET;

当工作于外同步方式时,SYNDET为输入端,当外部检测电路检测到同步字符后,就从该引脚输入一个正跳变信号,通知8251A在下一个 下降沿开始收集数据字符。从SYNDET输入的一个正跳变信号至少应维持一个 周期。

当程序指定为外同步方式时,内同步检测就无用了。

当工作于异步方式时,该引脚是中止信号检测端BRKDET,为输出端。当检测到中止字符后,该引脚输出高电平。中止字符是由在通信线上的连续的0组成,它是用来在完全双工通信时中止发生器终端的。只要8251A操作命令字中的SBRK为1,则8251A就始终发送中止符(TXD线上一直输出低电平)。若从RXD线上接收到1,BRKDET端立即变低。

8251A与CPU的连接如图3所示:

沈 阳 大 学

课程设计说明书 NO.5

图3 8251A与CPU的链接图

(2)与MODEN接口的信号线

:数据终端准备好,输出,低电平有效。可由操作命令字中的DTR置1而变为有效,用以表示CPU准备就绪;

:数据装置准备好,输入,低电平有效。用以表示调制解调器或外设准备好。CPU可通过读状态DSR检测此信号。当读到的状态DSR=1时,表示 有效。该信号实际上是对 的回答,通常用于接收数据;

:请求发送,输出,低电平有效。用于通知调制解调器或外设,8251A要求发送。可由操作命令字的RTS置1而使其有效;

:允许传送,输入,低电平有效。是调制解调器或外设对8251A的 信号的回答。将操作命令字中TXEN置1,且 有效,8251A才能串行发送。

TXD:发送数据线,RXD:接收数据线;

沈 阳 大 学

课程设计说明书

NO.6

:发送器时钟,数据是在 的下降沿由TXD逐位发出。

对于同步方式, 时钟频率应等于数据波特率;

对于异步方式,可由软件定义 时钟频率等于发送数据波特率的1.16或64倍。

:接收器时钟,在 上升沿采样RXD, 频率和波特率的关系同 。实际上 和 往往连在一起。

2.2可编程定时器8253芯片

2.2.1基本资料

(1)8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。

(2)执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。输出锁存器的值是通过程序设置的。输出锁存器OL用来锁存计数执行部件CE的内容,从而使CPU可以对此进行读操作。顺便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器来用。

2.2.2工作原理

8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。

(1)8253内部结构

8253芯片有24条引脚,封装在双列直插式陶瓷管壳内。

① 数据总线缓冲器

数据总线缓冲器与系统总线连接,8位双向,与CPU交换信息的通道。这是

沈 阳 大 学

课程设计说明书 NO.7

8253与CPU之间的数据接口,它由8位双向三态缓冲存储器构成,是CPU与8253之间交换信息的必经之路。

② 读/写控制

读/写控制分别连接系统的IOR#和IOW#, 由CPU控制着访问8253的内部通道。接收CPU送入的读/写控制信号,并完成对芯片内部各功能部件的控制功能,因此,它实际上是8253芯片内部的控制器。A1A0:端口选择信号,由CPU输入。8253内部有3个独立的通道,加上控制字寄存器,构成8253芯片的4个端口,CPU可对3个通道进行读/写操作3对控制字寄存器进行写操作。 这4个端口地址由最低2位地址码A1A0来选择。

③ 通道选择

CS#——片选信号,由CPU输入,低电平有效,通常由端口地址的高位地址译码形成。

RD#、WR#——读/写控制命令,由CPU输入, 低电平有效。RD#效时,CPU读取由A1A0所选定的通道内计数器的内容。WR#有效时,CPU将计数值写入各个通道的计数器中, 或者是将方式控制字写入控制字寄存器中。

④ 计数通道0~2

每个计数通道内含1个16位的初值寄存器、减1计数器和1个16位的(输出)锁存器。8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。采用二进制计数时, 写入的初值范围为0000H~FFFFH,最大计数值是FFFFH,代表65536。 采用BCD码计数时,

写入的初值范围为0000~9999,最大计数值是9999,代表10000。与此计数器相对应, 每个通道内设有一个16位计数值锁存器。必要时可用来锁存计数值。

当某通道用作计数器时,应将要求计数的次数预置到该通道的计数器中、被计数的事件应以脉冲方式从CLK端输入, 每输入一个计数脉冲,计数器内容减“1”,待计数值计到“0”。 OUT端将有输出。表示计数次数到。当某个通道用作定时器时。 由CLK输入一定频率的时钟脉冲。根据要求定时的时间长短确定所

沈 阳 大 学

课程设计说明书 NO.8

需的计数值。并预置到计数器中,每输入一个时钟脉冲,计数器内容减“1”, 待计数值计到“0”。OUT将有输出,表示定时时间到。允许从CLK输入的时钟频在1~2MHz范围内。因此,任一通道作计数器用或作定时器用,其内部操作完全相同,区别仅在于前者是由计数脉冲进行减“1”计数。 而后者是内时钟脉冲进行减“1”计数。作计数器时, 要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。作定时器时, 计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到: