串并行通行

接口技术

接口电路按功能可分为两类:辅助电路(时钟信号等)、输入/输出接口电路(接收信息)。为了使CPU能适应各种各样的外设,就需要接口电路,完成信号转换、速度匹配、数据缓冲等功能。

接口的8个功能:寻址功能、输入/输出功能、数据转换功能、联络功能、中断管理功能、复位功能、可编程功能、错误检测功能。

设备信号有三种:数据信息(数字量,模拟量,开关量)、状态信息(BUSY,READY)、控制信息。三种信息不同,但CPU都通过IN和OUT指令传送,因此状态控制信息也是一种数据信息,通过数据总线传送。

每个接口部件包含一组寄存器,各类信息在接口中进入不同的寄存器,称为端口,每个端口都有一个地址。对应有数据端口、状态端口、控制端口。

有了地址就要寻址, 8086/8088系统中,有两个地址空间:内存地址空间,I/O端口地址空间。通过控制总线中的IO/M来区分,那么CPU对外设的操作都可以归结为对接口芯片端口的操作。

相应的,CPU对外设的寻址方式也有两种:存储器映像I/O,I/O独立编址。 存储器映像I/O:外设端口作为存储器的一个单元来对待,优点:CPU对外设的操作可使用全部的存储器操作指令,寻址方式多,使用方便灵活。缺点:外设占用了存储单元的地址,使内存的容量减小,同时,程序的可读性下降。 I/O独立编址:CPU有专门用于端口的输入输出指令,优点:容易掌握,编出的程序可读性好。缺点:可寻址的范围较小(取决于输入输出指令的寻址方式),必须有相应的控制线来区分是寻址内存还是外设。

并行通信与8255A

并行通信的定义:就是把一个字符的各位同时进行传输。并行通信的信息实际传输速度快,信息率高。但并行通信所用的电缆要多,故并行通信总是用在传输速率要求较高,而传输距离较短的场合。 可编程的并行接口Intel 8255A,内部有三个并行I/O口。

8255芯片介绍

8255引脚
8255内部结构

端口A:支持方式0、1、2;A组,常作数据端口,功能最强大。 端口B:支持方式0、1;B组,常作数据端口。 端口C:支持方式0;A组PC4-7,B组PC0-3;可作数据、状态和控制端口。

8255初始化编程

8255端口地址
8255控制字

【例1】控制一片8255A的PA为方式1输入,C上半口为输出,下半口为输入,B为方式0输出。端口地址为FFFBH-FFFEH。

MOV AL, 10110001B
MOV DX, 0FFFEH
OUT DX, AL

【例2】对端口B的PB7输出1,芯片地址为FFF9H-FFFCH。

MOV DX, 0FFFAH
IN  AL, DX
OR  AL, 80H
OUT DX, AL

8255A可以锁存输出,输出模式可以读取当前端口状态,用与或操作只更改一位后输出,实现按位操作。

8255工作方式

  • 方式0:基本输入输出方式

对应程序传送方式,无条件传送和查询方式,不使用联络信号,也不使用中断,所有口可定义为输入输出方式,C口两部分可分开定义。所有口输出均有锁存,输入只有缓冲,但无锁存,C口还具有按位将其各位清0或置1的功能。

8255方式0时序图

相当于一片74LS244,仅仅起到缓冲作用。

  • 方式1:选通输入输出方式 A口借用C口的一些信号线用作控制和状态线,形成A组。B口借用C口的一些信号线用作控制和状态线,组成B组。在方式1下,端口提供有中断请求逻辑和中断允许触发器,A口和B口的输入输出均带有锁存。

    • 输入方式

    8255方式1输入引脚功能

    STB:选通; IBF:输入满; INTE中断允许;都为高 INTR:中断请求可向CPU发发送中断请求。 端口A的INTEA对应PC4(STBA) 端口B的INTEB对应PC2(STBB)

    8255方式1输入时序图
    • 输出方式

    8255方式1输出引脚功能

    OBF输出满,表示CPU已经输出数据。 ACK:数据已经被外设接收。 INTR:接收完成,要求CPU继续来数据。 端口A的INTEA对应PC6(ACKA) 端口B的INTEB对应PC2(ACKB)

    8255方式1输出时序图

    简要分析端口B方式1输出数据时OBF、ACK、INTR、INTE如何配合工作。

  • 方式2:双向方式 方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据。只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同。方式2的数据输入过程与方式1的输入方式一样。方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF有效时向外设输出数据,而是在外设提供响应信号ACK时才打开输出缓冲器送出数据。

8255方式2引脚功能

用PC6设置INTE1(输出),用PC4设置INTE2(输入)。

串行通信与可编程串行接口8251A

串行通信

数据传送方式:单工、半双工、全双工。

信号传输方式:基带传输、频带传输(载波传输)。

调制方式有:调频、调幅、调相。

串行通信是指在单根导线上将二进制数据一位一位顺序传送,特别适合于远距离传送。 串行通信的优势:用于通信的线路少,因而在远距离通信时可以极大地降低成本。串行通信适合于远距离数据传送,也常用于速度要求不高的近距离数据传送。 串行通信又分为同步通信(SYNC)和异步通信(ASYNC)。

异步通信时数据控制状态都用一根信号线传送,以一个字符为传送单位,两个相邻位时间间隔固定。收发双方必须遵守共同的通信协议,才能解决传送速率、信息格式、位同步、字符同步、数据校验等问题。其通信协议是起止式异步通信协议。 异步通信协议:1起始位,5-8数据位,1校验位,1.5或2停止位。

异步通信

串行接口举例:RS-232C(属于物理层),负逻辑,需要用电平转换芯片。

同步通信以一个数据块(帧)为传输单位,每个数据块附加1个或2个同步字符,最后以校验字符结束。同步通信的数据传输效率和传输速率较高,但硬件电路比较复杂。最常使用高级数据链路控制协议HDLC。

8251芯片

8251A是可编程的串行通信接口芯片,可以工作在同步方式,也可以工作在异步方式。同步方式下,波特率为0-64K,异步方式下,波特率为0-19.2K。

8251芯片引脚
8251芯片内部

当发送缓冲器为空,TxRDY有效。接收缓冲器满,RxRDY有效。 SYNDET同步检测信号,外同步输入,内同步输出。 CLK:要求CLK的频率在同步方式下,大于TxC/RxC的30倍。在异步方式下,大于TxC/RxC的4.5倍。

初始化编程

三个内容:模式字、控制字、状态字。

  • ①模式字

8251模式字(1)
8251模式字(2)
  • ②控制字

8251控制字
  • ③状态字

8251状态字

芯片复位以后,第一次往控制端口写入的是方式命令控制字即模式字。

8251编程步骤

最后更新于

这有帮助吗?