6.1 串行通信和串行接口
6.2 可编程串行通信接口8251A
6.3 并行通信和并行接口
6.4 可编程并行通信接口8255A
教学重点:
- 串并行接口的用途
- 8251A的功能结构与工作原理、初始化流程
- 8255A的控制字
- 8255A的工作方式
微机与I/O设备的接口按照数据传送方式的不同,可分为:并行接口和串行接口两种。
6.1 串行通信和串行接口
6.1.1 串行通信涉及的几个问题
串行通信:将数据分解成二进制位,用一条数据线,一位一位的顺序传送的方式。在传输过程中,每一位数据占据一个固定的时间长度。
特点:
- 慢
- 数据线少、抗干扰性强
适用范围:
- 长距离、中低速通讯
串行通信有多种方式:
按照数据传输时发送过程和接收过程的关系来划分:
- 全双工方式
- 半双工方式
- 单工方式
全双工:双根传输线,数据的发送和接收采用不同的通道,能够同时发送和接收。(电话)
半双工:单根传输线,数据的发送和接收采用同一的通道,不能同时发送和接收。(BB机)
单工:单根传输线只能在一个方向传输数据,只能用作发送或只用作接收。
按照时钟对通信过程的定时方式来划分:
- 同步通信
- 异步通信
同步通信:收发双方采用同一个时钟信号来定时。
多个字符组成一个数据块(信息帧),在每个信息帧之前要附加一个或两个同步字符,在信息帧之后附加校验字符。同步通信一个信息帧含有多个或上千字符。
异步通信:收发双方不用统一的时钟来定时。
- 通过起始位和停止位来识别信息帧。
- 一个信息帧只含1个字符。
每个字符一位一位地传输,传输一个字符时,以起始位开始,然后传输字符本身各位,接着传输校验位,最后以停止位结束该字符的传输。
一次传输的起始位、字符各位、校验位、停止位构成一组完整的信息,称为异步通信的一个信息帧(Frame),只含一个字符。帧与帧之间可有任意个空闲位。
异步通信数据格式总结:
- 无信息传输(或间隔)时,输出必须为 “1” 状态(标识态)
- 1到0的跳变作为字符的开始——起始位
- 起始位后5~8位为数据位,低位在前,高位在后
- 数据位后位奇偶校验位,可有可无。
- 最后有1、1.5或2位停止位,均为 “1”
串行通信的传输率
在串行通信中,用波特率(bps)来描述数据的传输速率。即每秒传送二进制的位数。
在同样的传输率下,同步传输时实际字符传输率要比异步传输时高。
6.1.2 串行接口
串行接口中4个主要的寄存器
- 控制寄存器
- 状态寄存器
- 数据输入寄存器
- 输出输出寄存器
串并行数据转化
输入时(输入CPU),串行输入,并行输出。移位寄存器将接收的1个字符移位得到并行数据,并将之送到数据输入寄存器。
输出时,数据寄存器将接收的并行数据传输给移位寄存器,然后将其转换成串行数据。
6.2 可编程串行通信接口 8251A
8251A的发送与接收
异步接收:将RxD线上的低电平作为起始位,并开始计数。当计数到半位的传输时间,再次检测RxD,若仍为低电平,则确认收到有效起始位。(两次确认)
异步发送:当控制寄存器中发送允许位TXEN位为1且CTS#有效,则开始发送。
同步接收方式:8251A先搜索同步字符,将RXD线上的数据送入移位寄存器,然后将得到的字符与同步字符寄存器内容相比较。若相等,则SYNDET输出高电平表示同步字符已经找到。
同步发送方式:当控制寄存器中TXEN位为1且CTS#有效,则开始发送。先传送同步字符,后传送数据块
8251A的寄存器
1、方式寄存器
模式字是在对8251A进行初始化时,用程序命令写入且只需写入一次。
2、控制寄存器
控制字是在模式字之后写入,用来控制8251A的工作,使其处于规定的状态以及准备发送或接收数据。
控制字和模式字共用一个奇地址端口,8251A是根据写入的先后顺序来加以区分的,先写入的是模式字,后写入的是控制字。
3、状态寄存器
状态寄存器用来存放8251A的状态字,用来反映8251A的状态信息,可供CPU读取查询。
8251A的初始化
8251A使用前必须进行初始化,以确定工作方式、传送速率、字符格式以及停止位长度等;改变8251A的工作方式时必须再次进行初始化编程;
8251A初始化的约定:
- 复位后,第一次给奇地址端口写入的值作为方式字(模式字)送入方式寄存器。
- 如规定为同步模式,那么,接下来往奇地址端口写入的是同步字符。如果是双同步,则先后两次写入同步字符。
- 接下来,只要不是复位命令,CPU给奇地址写入的是控制字,给偶地址端口写入的是要发送的数据。
8251A编程举例
解:
6.3 并行通信和并行接口
并行通信:把一个字符的各位用几条线同时进行传输的一种通信方式。例如一组8位数据或16位数据的同时传入或传出。
优点:传输速度快,信息率高。
缺点:电缆耗损高。
适用场合:适用于数据传输率较高、传输距离较短的场合。
并行接口:实现并行通信的接口称为并行接口。
按照信息传送方向,分为:输入接口、输出接口和输入/输出接口
按照可编程性分类:不可编程并行接口和可编程并行接口。
- 不可编程的并行接口:接口的工作方式及功能由硬件连接来设定,不能用软件编程的方法改变,接口的工作方式固定不变。
- 可编程的并行接口:一般由可编程通用接口芯片组成,可由编程人员通过编程来进行设定芯片性能。
输出数据给外设:
- 当接口状态寄存器“输出准备好”位为1时,CPU将数据送到接口的输出缓冲器。
- 接口清除“输出准备好”位,将数据送往外设,向外设发送“数据输出准备好”信号以启动外设 外设接收数据,向接口发送“数据输出响应”信号。
- 接口将状态寄存器中 “输出准备好” 位重新置1。
6.4 可编程并行通信接口8255A
6.4.1 8255A的内部接口和外部信号
1、数据端口A、B、C
8255A的三个数据端口都是8位的,而各有特点。
端口A:是一个独立的8位数据I/O口,它的内部有对数据输入/输出的锁存功能。
端口B:是一个独立的8位数据I/O口,仅对输出的数据锁存。
端口C:可以看作是一个 独立的8位I/O口;也 可以看作是两个独立 的4位I/O口。还可以 用作A口和B口的控制 信号。仅对输出数据进行锁存。
2、A组控制和B组控制
这两组控制部件 有两个功能:
- 接收芯片内部总线上 的控制字;
- 接收来自读/写控制逻辑 电路的读/写命令, 据此而决定两组端口 的工作方式和读/写 操作。
3、读/写控制逻辑电路
4、数据总线缓冲器
6.4.2 8255A的控制字
8255A用指令在控制端口中设置控制字来决定其工作。
控制字分为两类:
- 方式选择控制字
- C端口按位置1 / 置0控制字
8255A有三种基本工作方式:方式0、方式1、方式2。
- 端口A可工作在任何一种方式
- 端口B只能工作在方式0或方式1
- 端口C配合端口A和B的工作