1.16k likes | 1.29k Views
计算机硬件技术基础. hardwarebasic@163.com. 并行通信接口. 概念. CPU 与外设之间的信息传送都是通过接口电路来进行的。 计算机与外部设备、计算机与计算机之间交换信息称之为计算机通信 , 计算机通信可分为两大类: 并行通信 :多位(如 8 位 /16 位 /32 位)数据通过多条数据线同时传送。数据的各位同时由源到达目的地。适合近距离、高速通信。 串行通信 :一位一位数据传送 ( 在一条线上顺序传送 ) ,成本低多位数据通过同一条数据线按位依次传送。串行通信适于长距离、中低速通信。 实现并行通信的接口就是并行接口。. 并行接口的特点.
E N D
计算机硬件技术基础 hardwarebasic@163.com
并行通信接口 概念 • CPU与外设之间的信息传送都是通过接口电路来进行的。 • 计算机与外部设备、计算机与计算机之间交换信息称之为计算机通信,计算机通信可分为两大类: • 并行通信:多位(如8位/16位/32位)数据通过多条数据线同时传送。数据的各位同时由源到达目的地。适合近距离、高速通信。 • 串行通信:一位一位数据传送(在一条线上顺序传送),成本低多位数据通过同一条数据线按位依次传送。串行通信适于长距离、中低速通信。 • 实现并行通信的接口就是并行接口。
并行接口的特点 并行通信接口 • 并行接口最基本的特点是在多根数据线上以数据字节(字)为单位与I/O设备或被控对象传送信息。 • 如: 打印机接口,A/D、D/A转换器接口,IEEE-488接口,开关量接口,控制设备接口等。 • 在并行接口中,除了少数场合之外,一般都要求在接口与外设之间设置并行数据线的同时,至少还要设置两根握手(联络)信号线,以便进行互锁异步握手方式(即查询方式)的通信。 • 在并行接口中,8位或16位是一起行动的,因此,当采用并行接口与外设交换数据时,即使是只用到其中的一位,也是一次输入/输出8位或16位。 • 并行传送信息,不要求固定的格式,这与串行传送的数据格式的要求不同。
并行通信接口 8255A的基本特性 • 具有三个8位(PA口、PB口、PC口)并行I/O端口的接口芯片。 • 能适应CPU与I/O接口之间的多种数据传送方式的要求。 • 可执行功能很强,内容丰富的命令(方式字和控制字)为用户如何根据外界条件(I/O设备需要哪些信号线以及它能提供哪些状态线)来使用8255A构成多种接口电路,组成微机应用系统提供了灵活方便的编程环境。
PA3 1 40 PA4 PA2 2 39 PA5 PA1 3 38 PA6 PA0 4 37 PA7 RD 5 36 WR 6 35 CS RESET 7 34 D0 GND A1 8 33 D1 8255A D7~D0 A0 9 32 D2 8255A PA7~PA0 PC7 10 31 D3 A1A0 PC6 11 30 D4 PC5 12 29 D5 RD PC4 13 28 D6 CS WR PB7~PB0 PC0 14 27 D7 PC1 15 26 VCC RESET PC2 16 25 PB7 VCC PC3 17 24 PB6 PC7~PC0 PB0 18 23 PB5 GND 19 22 PB4 PB1 PB2 20 21 PB3 并行通信接口 8255A的外部引线
并行通信接口 8255A的外部引线 • ①与系统总线的连接信号 • 面向数据总线的有: • D0~D7:双向数据线,用于CPU向8255A发送命令、数据和8255A向CPU回送状态、数据和8255A向CPU回送状态、数据。 • 面向地址总线的有: • A1、A0 • 面向控制总线的有: • RD:读信号,低电平有效。 • WR:写信号,低电平有效。 • RESET:复位信号,高电平有效。它清除控制寄存器并将8255A的A、B、C三个端口均置为输入方式;输入寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设信号线呈现高阻悬浮状态。
并行通信接口 8255A的外部引线 • ②与外部设备的连接信号 • PA0~PA7:端口A的输入/输出线。 • PB0~PB7:端口B的输入/输出线。 • PC0~PC7:端口C的输入/输出线。 • 这24根信号线均可用来连接I/O设备和传送信息。其中,A口和B口只作输入/输出的数据口用,尽管有时也利用它们从I/O设备读取一些状态信号,如打印机的“忙”(Busy)状态信号、A/D转换器的“转换结束”(EOC)状态信号,但对A口和B口来说,都是作8255A的数据口读入,而不是作8255A的状态口读入的。
并行通信接口 8255A的外部引线 • PC口的使用比较特殊,除作数据口外,当工作在1方式和2方式时,它的大部分引脚被分配作专用联络信号;PC口可以进行按位控制;在CPU读取8255A状态时,PC口又作1,2方式的状态口用,等等。
A组 A口 (8位) A组控制 PA0~PA7 数据总线 缓冲器 A组 C口高位 (4位) D0~D7 PC4~PC7 CS WR 读/写 控制逻辑 A1 B组 C口低位 (4位) A0 RD PC0~PC3 RESET B组控制 B组 B口 (8位) PB0~PB7 并行通信接口 内部结构
并行通信接口 内部结构 8255芯片内部主要由控制寄存器、状态寄存器和数据寄存器组成。 ① 数据总线缓冲器。这是一个三态双向8位缓冲器,它是8255A与CPU系统数据总线的接口。 ② 读/写控制逻辑。读/写控制逻辑由读信号RD、写信号WR、片选信号CS以及端口选择信号A1A0等组成。 ③ 输入/输出端口A、B、C。8255A包括3个8位输入输出端口(port)。每个端口都有一个数据输入寄存器和一个数据输出寄存器。 ④ A组和B组控制电路。控制A、B和C三个端口的工作方式。
并行通信接口 8255A基本操作与端口地址
1 D6 D5 D4 D3 D2 D1 D0 特征位 A组方式 00=0方式 01=1方式 10=2方式 11=不用 PA 0=输出 1=输入 PC4~7 0=输出 1=输入 B组方式 0=0方式 1=1方式 PB 0=输出 1=输入 PC0~3 0=输出 1=输入 并行通信接口 8255A的编程命令 1.方式命令 作用:指定8255A的工作方式及其方式下3个并行端口(PA、PB、PC)的功能,是作输入还是作输出。 格式:8位,其中最高位是特征位,一定要写1,其余各位定义如下,应根据用户的设计要求填写1或0。
并行通信接口 8255A的编程命令 例1: 要把A口指定为方式1 ,输入,C口上半部为输出;B组指定为0方式,输出,C口下半部定为输入,则工作方式命令代码是:10110001B或B1H。 若将此命令代码写到8255A的命令寄存器,即实现了对8255A工作方式及端口功能的指定,或者说完成了对8255A的初始化。初始化的程序段为(假设命令口地址203H) MOV DX,203H ;8255A命令口地址 MOV AL,0B1H ;初始化命令 OUT DX,AL ;送到命令口
0 D6 D5 D4 D3 D2 D1 D0 特征位 不 用 (写0) 位 选 择 000=C口0位 001=C口1位 … 111=C口7位 1=置位 (高电平) 0=复位 (低电平) 并行通信接口 8255A的编程命令 2.按位置位/复位命令 作用:指定PC口的某一位(某一个引脚)输出高平或低电平。 格式:8位,其中最高位是特征位,一定要写0,其余各位的定义如下,应根据用户的设计要求填写1或0.
并行通信接口 8255A的编程命令 例2:若要把C口的PC2引脚置成高电平输出,则命令字应该为00000101B或05H。 将该命令的代码写入8255A的命令寄存器,就会使得从PC口的PC2引脚输出高电平,其程序段为: (假设命令口地址203H) MOV DX,203H ;8255A命令口地址 MOV AL,05H ;使PC2=1的命令字 OUT DX,AL ;送到命令口 如果要使引脚PC2输出低电位,则程序段为: MOV DX,203H ;8255A命令口地址 MOV AL,04H ;使PC2=0的命令字 OUT DX,AL ;送到命令口
并行通信接口 8255A的编程命令 利用C口的按位控制特性还可以产生、负脉冲或方波输出,对外设进行控制。 例3:利用8255A的PC7产生负脉冲,作打印机接口电路的数据选通信号,其程序段为: (假设命令口地址203H) MOV DX,203H ;8255A命令口 MOV AL,00001110B ;置PC7=0 OUT DX,AL NOP ;维持低电平 NOP MOV AL,00001111B ;置PC7=1 OUT DX,AL
并行通信接口 8255A的编程命令 3.关于两个命令的讨论 ① 方式命令是对8255A的3个端口的工作方式及功能进行指定,即进行初始化,初始工作要在使用8255A之前做。 ② 按位置位/复位命令只是对PC口的输出进行控制,使用它产不破坏已经建立的3种工作方式,而是对它们实现动态控制的一种支持。它可放在初始化程序以后的任何地方。 ③ 两个命令的最高位(D7)都分配作了特征位,之所以要设置特征位,是为了识别两个不同的命令。 ④ 按位置位/复位的命令代码只能写入命令口。
1 0 1 0 1 0 1 0 OR0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 AND 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 并行通信接口 8255A的编程命令 4. A口和B口另一个使用方法 A口、B口也可以按位输出高低电平,但是,它与前面的按位置位/复位命令有本质的差别,并且实现的方法也不同,。C口按位输出是以送数据到A口、B口来实现的。其具体作法是:若要使某一位置高电平,则先对端口进行读操作,将读入的原输出值,“或”上一个字节,字节中使该位为1,其他位为0,然后再送到同一端口,即可使该位为0,然后再送到同一端口,即可使该位置位。
并行通信接口 8255A的编程命令 例4:若要使PA7位输出高/低电平,则用下列程序段:使PA7输出高电平。 (假设PA口地址200H) MOV DX,200H ;PA数据口地址 IN AL,DX ;读入A口原输出内容 MOV AH,AL ;保存原输出内容 OR AL,80H ;使PA7=1 OUT DX,AL ;输出PA7 ┇ MOV AL,AH ;恢复原输出内容 OUT DX,AL
并行通信接口 8255A的编程命令 使PA7输出低电平 MOV DX,200H ; A口地址 IN AL,DX ;读入端口原输出值 MOV AH,AL ;保存原输出值 AND AL,7FH ;使PA7=0 OUT DX,AL ;输出PA7 ┇ MOV AL,AH ;恢复原输出内容 OUT DX,AL
并行通信接口 8255A的工作方式 • 三种基本工作方式: • 1.方式0——基本输入/输出方式 • 2.方式1——选通输入/输出方式 • 3.方式2——双向传送方式
并行通信接口 8255A的工作方式 • 在这种工作方式下,A、B和C口都可以在程序规定下进行输入或输出。通常不用联络信号,或不使用固定的联络信号。 • 特点: • 通常使用于无条件输入输出方式或查询式输入输出; • 在0方式下,彼此独立的两个8位和两个4位并行口,都能被指定作为输入或者输出用,共有16种不同的使用状态。 • 是单向I/O,一次初始化只能指定端口(PA、PB和PC)作输入或输出,不能指定端口同时既作输入又作输出。 1、工作方式0是一种基本输入或输出方式
4ms 1ms 并行通信接口 8255A的工作方式 例1:用8255A产生波形。8255A在方式0下工作,令其在PB1、PB2引脚产生图所示波形,编写相应程序。电路连接设定8255A各端口地址分别为90H、 91H、 92H和93H,波形延时时间可调用延时1毫秒(D1ms)子程序实现。 8255A 分析:根据要求可确定端口B应工作在方式0下输出,其余端口无具体要求,也都定为方式0输出,则方式选择控制字为80H,程序如下: PB1 2ms PB2
并行通信接口 8255A的工作方式 MOV AL,80H ;8255A的初始化OUT 93H,AL START: MOV AL,02H ;00000010B OUT 91H,AL CALL D1ms MOV AL,06H ;00000110B OUT 91H,AL CALL D1ms MOV AL,00H ;00000000B OUT 91H,AL CALL D1ms MOV AL,04H ;00000100B OUT 91H,AL CALL D1ms JMP START
并行通信接口 8255A的工作方式 • 特点 • 需设置专用的联络信号线或应答信号线,以便对I/O设备和CPU两侧 进行联络。这种方式通常用于查询(条件)传送或中断传送。数据的输入输出都有锁存功能。 • PA和PB为数据口,而PC口的大部分引脚分配作专用(固定)的联络信号的C口引脚,用户不能再指定作其他作用。 • 各联络信号线之间有固定的时序关系,传送数据时,要严格按照时序进行。 • 单向传送。一次初始化只能设置在一个方向上传送,不能同时作两个方向的传送。 2、工作方式1也称选通的输入/输出方式
并行通信接口 8255A的工作方式 • 方式1下输入的联络信号线定义 • 因为输入是从I/O设备向8255A送数据进来,所以I/O设备应先把数据准备好,并送到8255A,然后CPU再从8255A读取数据。这个传递过程中需要使用一些联络信号线。所以当A口和B口为输入时,各指定了C口的3根线作为8255A与外设及CPU之间应答信号。 • STB:外设给8255A的“输入选通”信号,低电平有效。 • IBF:8255A给外设的回答信号“输入缓冲器满”,高电平有效。 • INTR:8255A给CPU的“中断请求”信号,高电平有效。
方式1输入(端口B) PB7~0 8 INTE B PC2 STBB PC1 IBFB RD RD & INTRB PC0 2 并行通信接口 8255A的工作方式 方式1输入(端口A) PA7~0 8 INTE A PC4 STBA PC5 IBFA & INTRA PC3 2 PC6,7 I/O 方式1输入时联络信号线定义
并行通信接口 8255A的工作方式 • 方式1下输出的联络信号线定义 • ACK:外设应答信号,低电平有效。当它有效时,表示CPU输出到8255A的数据已被外设取走。 • OBF:输出缓冲器满信号,输出信号,低电平有效。当它有效时,表示CPU已把数据写入A口或B口的输出缓冲器等待输出。 • INTR:中断请求信号,高电平有效。当外设向8255A发回的应答信号(ACK)结束,8255A便向CPU发中断请求信号INTR,表示CPU可以对8255A写入一个新的数据。
方式1输出(端口A) 方式1输出(端口B) PA7~0 8 PA7~0 8 PC7 PC1 WR WR OBFA OBFB INTE A PC6 ACKA INTE A PC2 ACKB INTRA INTRB & PC3 & PC0 2 PC4,5 I/O 并行通信接口 8255A的工作方式 方式1输出时联络信号线定义
并行通信接口 8255A的工作方式 • 这种工作方式仅适用于端口A, 这时A口的8位数据线为双向数据线, 端口C的5个引脚配合A提供控制信号和状态信号,而端口B和端口C余下的3位仍可工作于方式0或1。 • 例如,磁盘驱动器,CPU既可以向磁盘写数据,也可以读磁盘数据,所以,可以将磁盘驱动器的数据线与8255A的PA7~PA0相连,再使PC7~PC3和磁盘驱动器的控制线和状态线相连即可 3、工作方式2也称选通的双向输入/输出方式
并行通信接口 8255A的工作方式 • 特点 • PA口为双向选通输入/输出或叫双向应答式输入/输出。一次初始化可指定PA口既作输入口又作输出口。 • 设置专用的联络信号线和中断请求号信线,因此,方式2下可采用中断方式和查询方式与CPU交换数据。 • 各联络线的定义及其时序关系和壮态基本上是在方式1下输入和输出两种操作的组合。
≥1 PC3 INTRA 8 PA7~0 & PC7 OBFA PC6 ACKA INTE 1 & PC4 STBA INTE 2 PC5 WR IBFA RD PC2~0 I/O 3 并行通信接口 8255A的工作方式 方式2下联络信号线的定义 方式2是一种双向选通输入输出方式,它把A口作为双向输入/输出口,把C口的5根线(PC3~PC7)作为专用应答线,所以,8255A只有A口才有方式2 。其引脚定义如图所示。 方式2的联络信号线定义
目 的 0 1 1 0 1 0 1 0 RD 源 TD 串行通信接口 串行通信基础 将数据的各位按时间顺序依次在一根传输线上传输。 • 数据的各位依次由源到达目的地 → 慢 • 数据线少 → 远程(费用低) 串行通信适于长距离、中低速通信
1.数据传输速率----波特率 串行通信接口 串行通信基础 • 数据传输速率也称比特率(Bit Rate) • 每秒传输的二进制位数bps • 字符中每个二进制位持续的时间长度都一样,为数据传输速率的倒数 • 当进行二进制数码传输,且每位时间长度相等时,比特率还等于波特率(Baud Rate) • 过去,串行通信(异步)的数据传输速率限制在50 bps到9600 bps之间。现在,串行通信可以达到115200 bps或更高
2.数据传输方式 串行通信接口 串行通信基础 全双工 单工 站A 站B 半双工 站A 站B 站A 站B
串行通信主要适用于远距离通信,因而噪声和干扰较大,为了保证高效而无差错地传送数据,对传送的数据进行校验就成了串行通信中必不可少的重要环节。常用的校验方法有:奇偶校验和循环冗余校验CRC(Cyclic Redundancy Check)等。 串行通信接口 串行通信基础 3.串行通信的校验方法
(1)奇偶校验 这种校验方法主要用于对一个字符的传送过程进行校验。在发送时,在每一个字符的最后1位之后都附加一个奇偶校验位,这个校验位本身有可能是“1”或“0”,加上这个校验位后,使所发送的字符中“1”的个数始终为奇数(奇校验),或偶数(偶校验)。 接收时,检查所接收的字符连同这个奇偶校验位,其为“1”的个数是否符合规定,若不符合规定就置出错标志。供CPU查询及处理。 (2)循环冗余校验CRC 这是另一种常用的校验方法,它可对一个数据块进行校验。 串行通信接口 串行通信基础
串行通信接口 串行通信基础 4.串行通信的基本传送方式 串行通信有异步和同步两种方式: • 异步:按字符传输,字符可以不连续发送,每个字符的前后用一些数位来作为分隔位 (两个字符之间的传输间隔任意) 。收发时钟不要求严格同步。 • 同步:许多字符组成一个信息组,在每组信息的开始加上同步字符 (不允许字符间有间隔)。收发双方时钟(频率和相位)严格同步。 • 自同步:发送时将传送数据与时钟进行编码,接收时解码 • 单同步 • 双同步 • 外同步:另用一根时钟线专门用来传送时钟信号
串行通信接口 串行通信基础 (1)异步通信方式 异步通信的数据链路控制是面向字符的,即传送的每一组数据构成一个字符,或者把每个字符看作一个独立的信息进行传送,并且每个字符出现在数据流中的相对时间是任意的,而每一个字符中每一位占用的时间是固定的,它由传送率确定。因此,异步通信是字符内的同步,字符间的同步。
空闲位 5~8位 数据位 空闲位 1位 起始位 1~2位 停止位 0~1位 校验位 串行通信接口 串行通信基础 异步串行通信以字符为单位,称为一个信息帧。一帧包括起始位、数据位、校验位、停止位四部分。字符间间隔不固定,但在字符中相邻位间的时间间隔固定。收发双方速率和帧格式要完全相同。 帧格式: 校验位:可以奇校验、偶校验或没有校验位。 异步传输信息冗余较大,例如:1+8+1+2中有效位数只有8位。
串行通信接口 串行通信基础 同步串行通信中,要求发送端总是在正式发送数据之前,先发送一个同步字符通知接收端;接收端在收到同步字符后,便开始按照双方约定的格式和速率接收数据,也就是用同步字符作为信息开始传送的标志和启动信号,接收端没有收到同步字符,便不接收数据,以此速率传送,因此适用于高速串行传送。
单同步 同步字符 数据1 数据2 …… 数据n 校验字符 校验字符 一 帧 双同步 同步字符 同步字符 数据1 数据2 …… 数据n 校验字符 校验字符 一 帧 外同步 数据1 数据2 …… 数据n 校验字符 校验字符 一 帧 串行通信接口 串行通信基础 同步串行通信
异步通信与同步通信的主要区别 串行通信接口 串行通信基础 时钟要求:同步通信要求发送与接收时钟频率精确相等,异步通信要求发送与接收时钟频率基本相等即可 控制信息:同步通信要求对整个数据块附加帧信息用于高速数据链路。异步通信要求对每个数据字符均附加帧信息,用于低速设备,低速传送。 校验方式:同步通信采用16位循环冗余校验码,可靠性高。异步通信采用1位奇偶校验,可靠性相对较低
串行通信接口 串行通信基础 串行通信的基本问题 • 在串行通信时,数据和联络信号使用同一条信号线来传送,所以收发双方必须考虑解决如下问题: • 波特率---双方约定以何种速率进行数据的发送和接收 • 帧格式---双方约定采用何种数据格式 • 帧同步---接收方如何得知一批数据的开始和结束 • 位同步---接收方如何从位流中正确地采样到位数据 • 数据校验---接收方如何判断收到数据的正确性 • 差错处理---收发出错时如何处理 收发双方必须遵守一些共同的通信协议才能解决上述问题。
串行通信接口 8251接口芯片 接口特性: 可以工作在同步或异步方式。 在同步方式时, 能用5、6、7或8位代表字符 能自动检测同步字符 允许奇偶校验。 在异步方式下 能用5、6、7或8位代表字符,用1位作为奇偶校验。 能增加1个启动位 能增加1个、1.5个或2个停止位。
串行通信接口 8251的外部连接
串行通信接口 8251的外部连接 和CPU之间的连接 (1)片选信号 CS#为低电平时,8251A被选中 (2)数据信号 D7~D0与系统的数据总线相连 (3)读写控制信号 RD#为读信号。 WR#为写信号。 C/D#为控制/数据信号。 (4) 收发联络信号 TXRDY为发送器准备好信号 TXE 发送器空信号 RXRDY 接收器准备好信号 SYNDET 同步检测信号
串行通信接口 和外部设备之间的连接 (1) 收发联络信号 DTR# 数据终端准备好信号 DSR# 数据设备准备好信号 RTS# 请求发送信号 CTS# 清除请求发送信号 (2) 数据信号 TXD 发送器数据信号端 RXD 接收器数据信号端
串行通信接口 8251A的内部工作原理
串行通信接口 接收控制电路的功能: 复位后寻找启动位。 消除假启动干扰。 对接收到的信息进行奇偶校验。 检测停止位。 发送控制电路的功能: 在异步方式下,为数据加上起始位、校验位和停止位。 在同步方式下,插入同步字符和校验位。