预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共26页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第12章第12章串行通信和串行接口 计算机与外部设备之间或计算机与计算机之间的信息交换或数据传输称为通信。通信的有两种基本方式:并行通信和串行通信。并行通信是指数据的各位同时进行传送,而串行通信是指数据一位一位地按顺序传送。 串行通信是指两个功能模块只通过一条或两条数据线进行数据交换。在串行通信中,数据通常是在两个站(如终端或微机)之间进行传送。 按照数据传送的方向的不同,可分三种基本的传送方式:单工方式、半双工方式和全双工方式。 串行通信中常用的同步方法有两种:同步方式和异步方式,也称同步通信和异步通信。 异步通信把每一个字符当作独立的信息来传送,并按照一固定且预定的时序传送。每一个字符为一帧信息,由4部分组成:起始位、数据位、校验位和停止位。 同步方式是将许多的字符聚集成一字符块后,在每块信息(常称为信息帧)之前加上1至2个同步字符,字符块之后再加入适当的错误检测数据才传出去。 波特率,是指单位时间内传送二进制数据的位数,单位为位/秒(b/s),是衡量串行数据速度快慢的重要指标。 调制器把数字信号转换成模拟信号,送到通信链路上传输,解调器把从通信链路上接收到的模拟信号转换成数字信号。 目前,串行通信中使用得最普遍的是EIARS-232C标准,也称为串行接口标准。RS-232C标准对串行通信接口的相关问题做了统一规定。 RS-232C标准中使用负逻辑定义信号逻辑电平,即: 逻辑“1”电平-3~-15V; 逻辑“0”电平;+3~+15V。 RS-232C标准中共定义了25条信号线,其中4条数据线,11条控制线,3条定时线,7条备用和未定义线。 RS-232C接口通往外部的连接器(插针和插座)是标准的D型25针插头。 近距离(小于15m)通信时,可以不使用MODEM,通信双方直接相连,使用的信号线较少。而远距离(大于15m)通信时要加接MODEM,使用的信号线较多。 1.数据格式化 2.串并转换 3.控制数据传输速率 4.错误检测 5.TTL与EIA电平转换 6.提供符合EIARS-232C接口标准的信号线 串行接口电路的内部一般除了有完成数据串并转换的部件外,还有4个主要的寄存器。即控制寄存器、状态寄存器、数据输入寄存器和数据输出寄存器。4个寄存器通常被CPU访问。 在接收过程中,由内部控制电路自动进行错误检查,包括奇偶错误、帧格式错误和溢出错误。 Intel8251A是一种通用同步/异步数据接受发送器,广泛应用于微型计算机。 8251A可以分成5个主要部分:接收器、发送器、调制/解调控制、读写控制逻辑以及数据总线缓冲器。8251A的结构如图所示。 12.4可编程通用串行通信接口8251A 8251A是一个采用NMOS工艺制造的28条引脚双列直插式芯片,其外部引脚如图所示。 与CPU相连的信号线 D7~D0三态双向数据总线 CLK时钟信号输入线 片选信号输入线 信息类型信号输入线 TxRDY发送准备好信号状态输 出线 TxE发送器空闲状态信号输 出线 RxRDY接收器准备好状态信号 输出线 SYNDET同步检测信号线与外设或调制解调器相连的信号线: 数据终端准备好状态输出线; 数据设备准备好状态输入线; 请求传送信号输出线; 清除发送(准许传送)信号输入 线; 接收器时钟输入线; 接收器数据输入线; 发送器时钟输入线; 发送器数据输出线。 8251A的工作方式需要初始化编程,用两种控制字进行设置,即方式控制字和操作控制字,还有一个供CPU查询的状态字。 方式控制字用于约定双方通信的方式(同步/异步)及其数据格式(数据位和停止位长度,检验特性,同步字符特性)、传送速率(波特率因子)等参数,格式如图所示。操作控制字用于指定8251A进行某种操作(如发送、接收、内部复位和检测同步字符等)或处于某种工作状态,以便接收或发送数据,其格式如图所示。状态字用于报告8251A何时才能开始发送或接收,以及接收数据有无错误。状态字为8位,其状态字格式如图所示。 8251A是一个可编程的多功能通信接口,在系统复位以后,在8251A工作以前进行初始化编程,确定具体工作方式。初始化编程的过程的流程图如图所示。 例如编写一段通过8251A采用查询方式接收数据的程序。将8251A定义为异步传送方式,波特率因子为64,采用偶校验,1位停止位,7位数据位。设8251A数据口地址为04A0H,控制口地址为04A2H。 程序片段如下: MOVDX,04A2H MOVAL,7BH;写方式控制字 OUTDX,AL MOVAL,14H;写操作控制字 OUTDX,AL WAIT:INAL,DX;读入状态字 ANDAL,02H JZWAIT;检查RRDY是否为1 MOVDX,04A0H INAL,DX;输入数据 例如编写使8251A发送数据的程序。将825