第12章 可编程接口芯片及应用
本章讲解串行通信的基本概念与串行接
口标准,
分析典型可编程通信接口芯片的编程结
构、引脚功能及初始化编程,
介绍微机异步通信适配器的硬件配置和
软件调用,
对微机中越来越普遍使用的USB串行接
口从性能、组成、原理及传输过程控制
等方面作了描述,并对高速串行总线
IEEE 1394作了简介。
串行通信与接口
串行通信
1. 并行传输与串行传输
并行传输 数据代码的每一位各占一条传输线,在两个数据部件之间一次
并行传输n位数据。
并行传输适合在一米或数米范围内的近距离高速传输。计算机内CPU与主
存之间的数据传输是并行传输的典型例子,并行的位数有8位、16位、32位、
64位甚至更多。
串行传输 数据代码的所有位顺序串行排列成数据流,在一条线缆上逐位
传输。
串行传输速度通常低于并行传输,但节省硬件(线缆),适宜远距离数据
传输,通信网及计算机网络中服务器与站点之间、各个站点之间都以串行
方式传输数据。
计算机的某些部件之间,如键盘到主机键盘接口电路的按键扫描码传送、
磁盘驱动器与磁盘适配器(控制器)之间的数据传输都以串行方式进行。
南桥芯片ICH5(2003年)支持的硬盘外部数据传输规范SATA(Serial ATA)、
广泛应用的USB接口是高速串行传输的典范,串行传输在计算机系统中的
应用日益广泛。
并行与串行的数据传输如下图所示。
2. 数据传输的同步
数据传输必须同步,以解决接收方在接收到的源源不断
的数据流中如何正确区分发送方发送来的每一个代码,
正确完成传输任务。
并行传输因其距离进,收发双方可用同一频率时钟进行
发送和接收,或增加一根或几根状态控制线(称握手信
号线)进行联络,协调收发双方,保证数据代码正确传
输。在计算机和通信设备内部,不少部件之间都设有专
门的握手信号线。
在串行通信中,一般不设握手信号线,因此,必须在
传输的数据编码中解决同步问题。为了正确识别代码和
恢复报文,收发双方必须区分出:
◆ 每个比特,即每个二进位;
◆ 每个代码(如ASCII字符),即区分出每个代码的
起始位和结束位;
◆ 完整的报文数据块,即数据帧的开始和结束。
上述三个问题分别是位同步、字符同步和帧同步。
数据串行传输有异步传输和同步传输之分。
采用异步传输方式,发送和接收设备的时钟是异步的;
采用同步传输方式,收发的时钟是同步的。同步传输具有较高的传输效率和速率。
串行接口
1. 串行接口标准简介
数据的发送者和接收者分别称为数据源和数据宿,统称为数据终端设备,即DTE(Data
Terminal Equipment)。DTE之间的通路称为数据电路。数据信号必须经信号变换设备
变换后才能送上(通信网的)传输信道进行传输,传输的信号也必须经反变换后才能
为DTE所接收。信号变换设备位于数据电路的终端,称为数据电路终接设备,即
DCE(Data Circuiting Equipment)。在简单的计算机数字传输系统中,计算机(或准确
地讲计算机串行接口)就是DTE,调制解调器MODEM就是DCE,它们位于OSI通信
模型的最低层——物理层。
为了统一物理层的操作,使得不同厂家生产的设备能相互连接起来,国际标准化组织
ISO、国际电报电话咨询委员会CCITT、电气和电子工程师协会IEEE、美国电子工业
协会EIA均制定了相应的标准和建议,例如CCITT制定的通过电话网进行数据传输的V
系列建议、通过公用数据网进行数据传输的X系列建议、IEEE制定的用于局域网的
IEEE802系列标准等等。其中两个最著名的协议实例是CCITT 和。
由于计算机网络最早使用的是模拟电话信道,CCITT较早地开发和建立了适合于电话
网的CCITT ,用作计算机或终端与Modem之间的接口标准。CCITT 与广为
流行的EIA RS-232-C标准相兼容,作为DTE-DCE之间的模拟接口标准非常实用。
1. 串行接口标准简介(续)
RS-232-C规定了接口接插件(插头、插
座)的规格、尺寸、针孔的数量与排列
等机械特性如下图所示。
RS-232-C规定了连线的电气特性:信号
电平采用负逻辑,即逻辑“1”为-3V
~ -15V,逻辑 “0”为+3V~+15V;
使用分立元件实现不平衡双流接口,最
大工作速率为20Kbps,采用ISO2110规
定的25芯连接器。当采用电容性(约
150pF/m)多芯电缆时,最大缆长不超
过15m。
RS-232-C功能特性规定每条接口线有一
个功能,接口线以英文字母组合命名。
RS-232-C规程特性定义了接口控制信号
线上电平升降的动作序列,它们对应了
接口两侧物理连接的建立、维持、拆除
以及比特流的传送情况。
1. 串行接口标准简介(续)
计算机还用到其它串行接口。如IBM PC机支持20mA电流环方式。以
20mA电流的有和无来表示逻辑电平“1”和“0”,有4条信号线:发送
+、发送-、接收+、接收-;在机器内借用RS-232-C的D型25针连接器中
未使用的9、11、18、25号引线做为上述4条信号线。20mA电流环抗干扰
能力强、传输距离远,是个非正式标准。
高速远距离大容量传输场合,也用到RS-422和RS-423,它们采用差分平
衡传输线和差分不平衡传输线,最大传输距离达1500m,传输速率可分
别达到1Mbps和100Kbps。
1997年以后,支持通用串行总线USB标准的外设迅猛发展,USB接口受
到普遍支持,大有取代其它各种外设接口的架势,详见后述。
2. 串行接口连接
以RS-232-C为例介绍串行接口的连接。
RS-232-C标准规定了串行通信时数据终端设备DTE(例如计算机)和数据电路终接设
备DCE(如MODEM)之间的接口信号。RS-232-C共定义25条线,包括2条地线、4条
收发数据线、11条控制线、3条定时线,另有2条留作测试用、3条保留备用。实际上常
用的只有9条,分述如下。
(2) 数据收发线
TxD:发送数据线 DTE将串行数据经TxD端发送至DCE。
RxD:接收数据线 DTE从RxD端接收DCE送来的串行数据。
当数据传输距离大于15米时,DTE之间要加Modem进行调制解调,一般要用到RS-232-
C定义的5~9条信号线,Modem之间距离近可用专线,距离远可通过电话网传输,接口连
接如下图所示。
SG:信号地。
1. 串行接口标准简介(续)
数据传输距离小
于 15米时,可在
DTE之间直接通
过 RS-232-C连 线
而无须Modem,
最简单情况只要
使用3条信号线就
能进行全双工通
信,各种接线方
式如右图所示。
可编程通信接口芯片
通信接口硬件电路可分为UART(Universal Asynchronous Receiver/Transmitter:通用
异步收发器)、USRT(Universal Synchronous Receiver/Transmitter:通用同步收发器)
和USART(Universal Synchronous-Asynchronous Receiver/Transmitter:通用同步-异步
收发器)。
PC机中串行通信接口使用8250,属UART,只支持异步通信,采用单通道双缓冲结构,
芯片外部有40条引脚。
8251A-PCI(Programmable Communication Interface:可编程通信接口)属USART,采
用单通道双缓冲结构,芯片有28条引脚。8251A的基本性能如下。
◆ 同步传输:每个字符可设为5~8位,可内同步或外同步,内同步自动插入同步字
符;
传输速率可达64Kbps。
◆ 异步传输:每个字符可设为5~8位,传输速率可达,收发时钟速率可为
传
输波特率的1、16或64倍,可编程产生1、或2位的停止位,能检测假起始位,自
动检测奇偶错、格式错和溢出错。
◆ 完全双工,具有双缓冲的接收器和发送器。
所有输入输出电平与TTL兼容。
编程结构
8251A有五个主要组成部分:面向
通信端的接收器、发送器、调制解
调控制逻辑和面向CPU端的读写控
制逻辑、数据总线缓冲器。
(1) 接收器
接收器按接收时钟RxC的节拍将
RxD引脚上的串行数据一位位地移
入接收移位寄存器,按规定去掉起
始位、校验位和停止位,一个字符
接收完毕再将接收移位寄存器中并
行数据送入接受数据缓冲寄存器。
接收移位寄存器接收串行数据,
送出并行数据,完成串-并转换。
接收移位寄存器和接收数据缓冲寄
存器组成了接收的双缓冲器结构。
(2) 发送器
发送器按TxC的节拍,将发送移位寄存器中的数据按规定的格式装上起始位、校验位和
停止位,再一位一位移到TxD引脚发送出去。
发送的数据先由CPU送入发送数据缓冲寄存器,当发送移位寄存器移空时,自动将发
送数据缓冲寄存器的内容装入发送移位寄存器。发送移位寄存器装入的是并行数据,送出
的串行数据,完成并-串转换。
发送数据缓冲寄存器和发送移位寄存器组成了发送的双缓冲器结构。
编程结构(续)
(3) 调制解调(Modem)控制逻辑
Modem逻辑控制产生8251A与Modem之间二对(四线)联络信号:和、和,以协调
8251A与Modem之间同步地传输数据。
(4) 读写控制逻辑
读写控制逻辑对系统送入8251A的控制信号进行译码,实施对8251A的读写操作,如下
表所示。
(5) 数据总线缓冲器
数据总线缓冲器包括状态缓冲寄存器、命令缓冲寄存器,以及发送数据缓冲寄存器、接
收数据缓冲寄存器,经双向三态数据引脚D
7
~D
0
与系统数据总线相连。CPU用输入/输出指
令对8251A读/写数据、或读状态字/写控制字,都通过数据总线缓冲器进行。
引脚及其功
能 8251A芯片是N沟道硅栅工艺MOS器件,
采用28脚DIP封装,如下图所示。
(1) 数据线 D7~D0 双向三态
收发的数据、写入的方式字/同步字符/命
令字、读出的状态,都经D7~D0进行。
(2) 读写控制线
C/-D(Control/Data) 控制/数据信号,输入 C/-D引脚有两种状态,表征8251A芯片内
的数据端口和控制(状态)端口。当-CS有效时,C/-D=0表示对8251A读写数据,C/-
D=1则表示读状态或写控制字。
-RD(Read) 读,输入,低电平有效。 有效时表示对8251A进行读操作。
-WR(Writ) 写,输入,低电平有效。 有效时表示对8251A进行写操作。
RESET 复位,输入,高电平有效。 RESET有效使8251A复位到空闲状态,只有重新初
始化才能脱离空闲状态。
CLK 时钟输入 CLK周期规定在μs~μs之间。在同步方式CLK频率大于TxC或
RxC(收或发时钟)30倍,异步方式须大于收发时钟倍。
-CS (Chip select) 片选信号,输入,低电平
有效 接地址译码器的输出,有效后才能
对8251A进行读写操作。
引脚及其功能
(3)发送器引脚
TxD(Transmitter Data) 发送数据线,输出。
TxC(Transmitter Clock) 发送时钟,输入。
TxRDY(Transmitter Ready) 发送准备好,输出,高电平有效。当允许发送且发送数据
缓冲寄存器已空时,TxRDY有效,告知CPU将下一个发送字符送来。该引脚可作为中
断请求信号向CPU申请发送中断。
TxE(Transmitter Empty) 发送器空,输出,高电平有效。TxE有效表示发送移位寄存
器移空,已无数据可发。TxE有效,必然TxRDY已经有效。
(4) 接收器引脚
RxD(Receiver Data) 接收数据线,输入。
RxC(Receiver Clock) 接收时钟,输入。
RxRDY(Receiver Ready) 接收准备好,输出,高电平有效。RxRDY有效,表示接收数
据缓冲器中已收到一个接收好的数据,可供CPU来读取。该引脚可作为中断请求信号
向CPU申请接收中断。
SYNDET/BRKDET(Synchronous Detect/Break Detect) 同步检测/断点检测,输出/输
入,高电平有效。
◆8251A工作于同步方式该引脚表示SYNDET,内同步时该引脚为输出,有效状态
(高
电平)表示8251A已经检测到同步字符;外同步时该引脚为输入,由该引脚输入同步
脉冲,上升沿启动8251A接收数据。
◆8251A工作于异步方式该引脚表示BRKDET,是输出信号,有效状态(高电平)表
示
接收端检测到间断点(编程规定长度的全“0”字符);恢复正常数据接收时该引脚
被
复位。
引脚及其功能 (续
)
(5) Modem联络线
-DTR(Data Terminal Ready) 数据终端准备好,输出,低电平有效。
8251A以有效来通知Modem:DTE(即8251A)已经准备好。
-DSR(Data Set Ready) 数据装置准备好,输入,低电平有效。这是
Modem对的应答信号:表示调制解调器已准备好。
-RTS(Request To Send) 请求发送,输出,低电平有效。8251A通过有效
来向Modem提出发送数据的请求。
-CTS(Clear To Send) 允许发送,输入,低电平有效。这是Modem对的应
答信号:Modem已经准备就绪,8251A可以发送数据。只有有效,
TxRDY引脚才可能有效。
微机异步通信适配器
异步通信适配器是计算机和调制解调器等外部通信设备之间的接口电路。早期微机异
步串行通信适配器有两个通信通道,分主、辅两个串行口(COM1和COM2), PC机中相
应有主、辅两块插卡,PC/XT机将两卡合一、并和其他电路做在一块适配卡上,再往
后两个异步通信适配器直接整合在微机的主板内。
PC/XT机异步通信适配器以可编程异步通信控制器8250为核心,配以TTL←→EIA电
平转换等电路,采用RS-232-C和20mA电流环传输方式。8250芯片采用DIP 40引脚封装,
片内有10个8位寄存器用来控制传输数据格式、通信波特率,记录通信线路和Modem的
状态,管理中断。8250有一个全双工的异步通信通道,不支持同步通信方式。
异步通信适配器硬件逻辑结构
异步通信适配器硬件逻辑结构如下图所示,包括8250与系统总线的连接、以及通信端
口的连线。
8250是微机异步通信适配器的核心,其内部编程结构和外部引脚示于下图。
1. 主辅串口地址及8250片内寄存器寻址
主串口地址:跨接器U15的J12接通、J10断开,当AEN=0(非DMA操作)
时,若A9~A3为全“1”,与非门U2输出为“0”,片选有效(另两个片
选端CS0与CS1接+5V,一直有效),主串口的8250被选中,故主串口地
址为1111111xxx,即3F8H~3FFH。
辅串口地址:跨接器U15的J10接通、J12断开,将A8反相接至U2,其它与主
串口情况相同,故辅串口地址为101111xxx,即2F8H~2FFH。
片内寄存器寻址:由地址线A2~A0及片内线路控制寄存器最高位D7
(DLAB位)实现对8250片内10个寄存器寻址。
2. 对通信适配器的读写控制
◆由系统信号-IOR和-IOW直接控制对8250的读和写。
◆8250芯片的正数据输入选通引脚DISTR和正数据输出选通引脚DOSTR直接接地、一
直
无效,
◆系统读信号-IOR经两级反相接到8250的负数据输入选通引脚-DISTR,控制对其读出;
◆系统写信号直接与8250的负数据输出选通引脚-DOSTR相连,控制对其写入。
◆两个输入选通引脚DISTR和-DISTR、两个输出选通引脚DOSTR和-DOSTR中,只要有
一
个有效即可对8250进行读或写。
3. 基准时钟输入
◆晶振脉冲经三态门U7隔离、整形送到8250的基准时钟输入端XTAL1。基
准
时钟再用片内的两个8位除数锁存器锁存的除数(16位)对之分频,即得到发送器的
发送时钟;
◆将芯片输出引脚BAUD OUT与输入引脚RCLK相连,则8250接收器的接收时钟与发
送
器的发送时钟相同。
异步通信接口
如图所示,异步通信接口有6条(32~33、36~39)与Modem的联络控制线,提供RS-
232-C电压传输方式和20mA电流传输方式。
U14将Modem信号线上EIA电平转换成TTL电平送到8250的-RLSD (Receiver Line Signal
Detect:接收线路信号检测 )、 -CTS(Clear To Send:允许发送 )、 -DSR(Data Set
Ready:数据装置准备好 )和 -RI(Ring:振铃 )引脚,U12则把 8250的输出引脚 -
DTR(Data Terminal Ready:数据终端准备好)和-RTS(Request To Send:请求发送)的
TTL电平转换成EIA电平送到RS-232-C的D型插座20#和4#引脚上。
采用RS-232-C方式传输,则跨接器U5的J7和J8接通,J1、J2和J3断开。8250串行输出数据
从SOUT引脚经U13变成EIA电平,通过J7输出到RS-232-C的D型插座TxD线(脚2#)。
而从D型插座的RxD线(脚3#)来的接收数据经U9转换成TTL电平,通过J8送入8250的
串行输入引脚SIN。
使用20mA电流环方式传输,跨接器U5的J1、J2和J3接通,J7和J8断开。SOUT的输出数
据经U8(3个并联的集电极开路电路)产生20mA电路,该电流通过J2、通信线路、对
方两个接收端(18#和25#)和J1构成电流环路。作为接收方20mA电流流经U4使发光二
极管发光,紧挨着的光敏二极管导通,使三极管导通,其集电极变为低电平,反相后
为高电平,即TTL电平“1”,经J3送入8250的串行输入端SIN;若没有20mA电流,则
送入SIN引脚的为“0”。
串行通信功能调用
基本输入输出系统BIOS提供了对异步通信功能的调用,用“INT 14H”指
令实现。这样,用户就不必熟悉异步通信适配器的硬件结构及有关细节,
只要给出相应的通信参数、然后调用即可。
调用主串口(地址范围3F8H~3FFH),须令DX=0;DX=1调用辅串口
(地址范围2F8H~2FFH)。
串行通信功能调用INT 14H 有四种功能,功能号为0~3,由AH指明。
1. 初始化通信口
功能号:AH=0
入口参数:AL
出口参数:AX
出口参赛返回通信线路状态(在AH中)和Modem状态(在AL中),如下图所示。
入口参数规定数据格式、校验方式和波特率,如下图所示。
3. 接收数据
功能号:AH=2
入口参数:(无)
出口参数:AL(接收的字符)
AH(通信线路状态,D5=0、D6=0,其余同上)
4. 读取通信口状态
功能号:AH=3
入口参数:(无)
出口参数:AX(AH为通信线路状态,AL为Modem状态,同上)
2. 发送数据
功能号:AH=1
入口参数:AL(发送的字符)
出口参数:AH(通信线路状态,同上)
本 章 小 结
数据串行传输越来越普遍。
应掌握串行通信的基本概念,包括传输方式、数据格式、速率、检验,
以及同步的实现、调制与解调等;
了解串行接口标准,掌握RS-232-C接口特性和常用连接。
掌握8251A内部结构和各部分功能,熟悉其数据收发过程,掌握对通信过
程的编程控制。
了解异步通信适配器的硬件结构,熟悉微机串行口,掌握串行通信功能
调用。
掌握USB接口性能,了解USB主控系统的组成,正确理解USB的帧结构、
传输类型和传输队列,了解帧列表和传输描述子的作用。
了解IEEE1394的性能和应用场合,及其与USB的差异。