基于TPC-USB实验系统的串行通信协议研究 下载本文

基于TPC-USB实验系统的串行通信协议研究

第一部分 概论

随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。在计算机领域内,有两种数据通信方式:并行通信和串行通信。并行通信是把一个字符的各数位用几条线同时进行传输,传输速

度快,信息率高。但它比串行通信所用的电缆多,故常用在传输距离较短、数据传输率较高的场合。串行通信是指数据一位一位地依次传输,每一位数据占据一个固定的时间长度。

随着通信技术和计算机网络技术的发展、Internet网的普及,计算机远程通信已渗透到国民经济的各个领域,而远程通信绝大多数采用串行通信的方式。其只要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信,但串行通信的速度比较慢。串行通信逐位依次顺序传送,通信双方需严格同步。

目前串行通信中数据传输的同步方法有两种,即异步方式和同步方式。同步通信方式要求通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高。异步方式通信ASYNC(Asynchronous Data Communication),又称起止式异步通信,是计算机通信中最常用的数据信息传输方式。异步通信方式不要求双方同步,收发方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方传送字符的时间间隔不确定,发送效率比同步传送效率低。

串行异步通信时,接收方不断地检测或监视串行输入线上的电平变化,当检测到有效起始位出现时,便知道接着是有效字符位的到来,并开始接收有效字符,当检测到停止位时,就知道传输的字符结束了。经过一段随机时间间隔之后,又进行下一个字符的传送过程。在设计中,串行异步通信的数据格式,包括数据位的位数、校验位的设置以及停止位的位数根据实际需要,通过可编程串行接口(如:8251A)电路,用软件命令的方式进行设置。在不同传输系统中,这些通信格式的设定完全可以不同;但在同一个传输系统的发送方和接收方的设定必须一致,否则将会由于收、发双方约定的不一致而造成数据传输的错误与混乱。

本文基于TPC-USB实验系统,利用8251A接口芯片实现两个实验设备间的异步串行通信。经实验验证,该设计方案是完全可行的。

第二部分 硬件设计

1. 硬件基础

1.1 TPC-USB实验系统简介

TPC-USB通用微机接口实验系统是清华大学计算机系研制,清华大学科教仪器厂生产的学生实验系统。该系统由一块USB总线接口模块、一个扩展实验台及软件集成实验环境组成。USB总线接口模块直接通过USB总线电缆与PC机相连,模块与实验台之间由一条50

芯扁平电缆连接。 (1)50芯总线信号插座及总线信号插孔

50芯总线信号插座在实验台左上方,总线插座信号安排如上表。各总线信号采用“自锁紧”插孔在标有“总线”的区域引出,有数据线D0-D7、地址线A19-A0、I/O读写信号IOR IOW、存储器读写信号 MEMR MEMW、中断请求 IRQ、DMA申请DRQ、DMA回答DACK、AEN 等。 (2)时钟电路

如下图所示,输出1MHZ、2MHZ两种信号,供定时器/计数器、A/D转换器、串行接口实验使用。

1.2 8251A芯片

1.2.1 8251A芯片简介 825IA是改进型可编程的串行通信接口芯片,既可用于8080/8085微型计算机系统,又可用于8086微型计算机系统,其输出输人和TTL电平兼容。使用单一的+5V电源。逻辑结构由五部分组成:发送器、接受器、数据总线缓冲器、调制懈调控制器和读/写控制电路。 发送器用以完成把从CPU传来的并行数据转化成串行数据发出;接受器则是把接到的串行数据转化为并行数据交给CPU;调制解调控制器用以连接调制解调器;读、写控制器用以管理CPU与825IA之间的信息传送;数据总线缓冲器完成8251A内部总线和8086(或808018085)的系统数据总线接口。

8251A的内部结构框图如图1.1所示:

图1.1 :8251内部结构图 1.2.2 8251A芯片的基本性能

? 可工作在同步方式,也可工作在异步方式。同步方式下波特率为0~64000波特,

异步方式下波特率为0~19200波特;

? 在同步方式时,每个字符可定义为5、6、7或8位。两种方法实现同步,由内部自

动检测同步字符或由外部给出同步信号。允许同步方式下增加奇/偶校验位进行校验;

? 在异步方式下,每个字符可定义为5、6、7或8位,用1位作奇偶校验。时钟速率

可用软件定义为波特率的l、16或64倍。另外,8251A在异步方式下能自动为每个被输出的数据增加1个起始位,并能根据软件编程为每个输出数据设置1位、1.5位或2位停止位;

? 能进行出错检测。带有奇偶、溢出和帧错误等检测电路,用户可通过输入状态寄存

器的内容进行查询;

? 接口的输入和输出均为TTL电平,单一+5V电源 ; ? 与Intel 8080、8085、8088CPU兼容。 1.2.3 8251A芯片的结构 (1)接收缓冲器:从RxD引脚接收串行数据,并将其 转换成并行数据。 (2)接收控制电路:配合接收缓冲器工作,管理有关接收的所有功能。 (3)发送缓冲器:将来自CPU的并行数据加上相应的控制信息,然后转换成串行数据从TxD引脚 发出去。 (4)发送控制电路:配合发送缓冲器工作,管理有关串行发送的所有功能。 数据总线缓冲器:把8251A和系统数据总线相连,传输数据和控制信息。 (5)读/写控制电路:配合数据总线缓冲器工作。 (6)调制解调控制电路:当计算机进行远程通信时,要用调制器将串行接口传来的数字信号变为模拟信 号,再通过电话线发送出去。接收器则是将接收到的模拟信号经解调器变成数字信号,再由串行接口送入计算机。

1.2.4 8251A芯片的引脚功能

8251A外部引脚如图1.2所示,它的接口信号可以分为七类,具体如下:

图1.2:8251A外部引脚 (1) 双向的数据信号线D7~D0

825lA有8条数据线D7~D0。825lA通过这8根线和CPU的数据总线相连接,实际上,数据线上不只是传输数据,还传输CPU对825lA的编程命令字和825lA送往CPU的状态信息。 (2) 片选信号/CS

低电平有效,芯片被选中才能工作,如果8251A未被选中,数据线D7~D0将处于高阻状态,读/写信号对芯片都不起作用。 (3) 读/写控制信号

? RD :读信号,低电平有效。当该信号有效时,并且/CS也为低电平,CPU可以从

8251A读取数据或状态信息。

? WR:写信号,低电平有效。当该信号有效时,并且/CS也为低电平,CPU可以向

8251写入数据或控制字。

? C/D:控制/数据信号,分时复用。用来区分当前读/写的是数据还是控制信息或状

态信息。当C/ D 为高电平时,系统处理的是控制信息或状态信息,从D7~D0端写入8251A的必须是方式字、控制字或同步字符。当C/ D 为低电平时,写入的是数据。

? RESET:复位信号,高电平有效。当该信号为高时,8251A实现复位功能,内部所

有的寄存器都被置为初始状态。

? CLK:主时钟信号,用于芯片内部的定时。对于同步方式,它的频率必须大于发送

时钟TxC和接收时钟RxC的30倍。对于异步方式,必须大于它们的4.5倍。8251A的时钟频率规定在0.74~3.1 MHz的范围内。

(4) 与发送有关的联络信号

? TxRDY:发送器准备好信号,高电平有效。当该信号为高电平时,通知CPU,8251A

已经准备好发送一个字符,表示CPU可以输入数据。

(5) 与接收有关的联络信号。

? RxRDY:接收器准备好信号,高电平有效。当该信号为高时,表示825lA已从外

部设备或调制解调器中收到一个字符,等待CPU取走。它可以作为中断请求信号或查询联络信号与CPU联系。

(6)8251A与外部设备之间的连接信号

8251A与外部设备之间的连接信号分为两类: ? 收发联络信号 :