微机原理与接口技术之串并行通信和接口技术串并行通信和接口技术几个问题串行与并行接口与通信原理与技术串行通信涉及的几个问题全双工方式、半双工方式和单工方式同步方式和异步方式–传送数据单位:字符、位–同步:收发用同一个时钟信号定时•许多字符组成一个信息组,以组为单位•每组(帧)的开始要加上同步字符–异步•以字符为单位,字符之间的传输间隔是任意的•每个字符前后要有分割位–比较:同步效率高,同步用同一时钟协调,传数据同时要传输时钟信号。串行通信涉及的几个问题同步方式和异步方式–异步•帧格式–时钟–发送时钟:发送端用来决定每位对应的时间长度–接收时钟–波特率:位传输率(每秒传输多少位)–波特率因子:发送/接收一个数据位所需要的时钟脉冲个数(可以是位传输率的16,32,或64倍)•发送、接收过程,UART(通用异步收发器)–同步•发送、接收过程串行通信涉及的几个问题串行通信的传输率–波特率–国际标准波特率系列(110,300,600,1200,1800,2400,4800,9600,19200)–大多数接口的接收波特率和发送波特率可以分别设置例异步传输过程–设每个字符对应1个起始位、7个信息位、1个奇偶校验位和1个停止位,波特率为1200bps–每秒钟能传输的最大字符数为多少个?同步传输–用1200bps的波特率工作,用4个同步字符作为信息帧头部,但不用奇偶校验,那么,传输100个字符所用的时间为7(100+4)/1200=0.6067s–每秒钟能传输的字符数为多少个?串行接口串行接口部件4个主要寄存器–控制寄存器–状态寄存器–数据输入寄存器–数据输出寄存器可编程串行接口的典型结构8251A的基本性能可以工作在同步或异步方式在同步方式时–能用5、6、7或8位表示字符–能自动检测同步字符–允许奇偶校验在异步方式下–能用5、6、7或8位表示字符,用1位作为奇偶校验–自动增加1个启动位–自动增加1个、1.5个或2个停止位8251A的基本工作原理功能结构8251A的基本工作原理功能结构–接收缓冲器–接收控制电路–发送缓冲器–发送控制电路–数据总线缓冲器–读写控制逻辑–调制解调器控制电路8251A的发送和接收异步接收异步发送–TxEN–CTS#8251A的发送和接收同步接收–内同步–同步字符–外同步同步发送–TxEN–CTS#8251A的对外信号两组–与CPU–与外设8251A的对外信号8251A和CPU之间的连接信号–片选信号•CS#–数据信号•D0~D7–读写控制信号•RD#、WR#、C/D#(数据\控制信号)–收发联络信号•TxRDY(发送器准备好信号)、TxE(发送器空信号)、RxRDY(接收器准备好信号)、SYNDET(同步检测信号)8251A的对外信号8251A和CPU之间的连接信号–读写控制信号•RD#、WR#、C/D#–收发联络信号•TxRDY、TxE、RxRDY、SYNDETC/D#RD#WR#操作001CPU输入数据010CPU输出数据101CPU读取状态110CPU写控制命令8251A的对外信号8251A和外设之间的连接信号–数据信号•TxD、RxD–收发联络信号•DTR#、DSR#、RTS#、CTS#8251A的对外信号除与CPU和外设的连接信号外–还有电源、三个时钟信号8251A的编程8251A的初始化偶地址对应数据输入输出寄存器,奇地址对应状态、模式、控制、同步字符寄存器。–8251A初始化的约定①复位后,用奇地址写入的值送模式寄存器②若为同步模式,接着往奇地址端口输出的字节为同步字符③此后,除复位命令,往奇地址写入的值将送到控制寄存器,往偶地址端口写入的值送到数据输出寄存器8251A的编程8251A的初始化8251A的编程模式寄存器的格式8251A的编程控制寄存器的格式8251A的编程状态寄存器的格式8251A连接举例RS232C收发器作用时钟信号同步信号异步模式下初始化举例假设“奇”地址为42H字符位数:7偶校验停止位数:2波特率因子:16清除出错标志RTS#信号有效DTR#有效启动发送接收模式字:0FAH控制字:37H代码:moval,0fahout42h,almoval,37hout42h,al同步模式下初始化举例假设“奇”地址为42H同步字符:2个(16H)字符位数:7偶校验内同步搜索同步字符清除出错标志RTS#信号无效DTR#信号有效启动发送接收模式字:38H控制字:97H代码:moval,38hout42h,almoval,16hout42h,alout42h,almoval,97hout42h,al8251A编程举例利用状态字进行编程即是条件传送方式接收–查询状态寄存器中RxRDY位发送–查询状态寄存器中TxRDY位另外,还必须–查询是否有传输错误8251A编程举例MOVAL,0FAH┑OUT42H,AL┙MOVAL,37H┑OUT42H,AL┙MOVDI,0┑MOVCX,80┙BEGIN:INAL,42H┑TESTAL,02H│JZBEGIN┙INAL,40HMOVDX,OFFSETBUFFER┑MOV[DX+DI],AL│INCDI┙INAL,42HTESTAL,38H┑JNZERROR┙LOOPBEGINJMPEXITERROR:CALLERR_OUTEXIT:……8251A使用实例8251A使用实例INIT:XORAX,AXMOVCX,0003MOVDX,00DAHOUT1:CALLKKKLOOPOUT1MOVAL,40HCALLKKKMOVAL,4EHCALLKKKMOVAL,27HCALLKKK……KKK:OUTDX,ALPUSHCXMOVCX,0002ABC:LOOPABCPOPCXRETCHAROUT:MOVDX,0DAHSTATE:INAL,DXTESTAL,01JZSTATEMOVDX,0D8HPOPAXOUTDX,AL并行通信和并行接口可编程并行通信接口8255A可编程通过软件设置工作方式连接外部设备时,通常不需要再附加外部电路8255A的内部机构8255A的内部机构端口A对应–1个8位数据输入锁存器–1个8位输出锁存器/缓冲器端口B对应–1个8位数据输入缓冲器–1个8位输出锁存器/缓冲器端口C对应–1个8位数据输入缓冲器–1个8位输出锁存器/缓冲器8255A的内部机构A组控制电路–控制端口A和端口C的高4位的工作方式和读写操作B组控制电路–控制端口B和端口C的低4位的工作方式和读写操作读写控制逻辑–管理8255A的数据传输过程数据总线缓冲器–与数据总线连接8255A的芯片引脚信号和外设一边相连的信号–PA7~PA0——A组数据信号–PB7~PB0——B组数据信号–PC7~PC0——C组数据信号和CPU一边相连的信号–RESET——复位信号,高电平有效–D7~D0——数据线–CS#——片选信号–RD#——读出信号–WR#——写入信号–A1、A0——端口选择信号(00,01,10,11)PA31PA223PA14PA0PA4PA5PA6PA740393837PC317PB01819PB120PB2PB6PB5PB4PB324232221RD5CS67GND8A1WRRESETD0D136353433A09PC71011PC612PC5D2D3D4D532313029PC413PC01415PC116PC2D6D7VCCPB7282726258255A的控制字控制字分为两类–方式选择控制字–C端口按位置1/置0控制字如何区分–D7(0---选择控制字;1---C端口按位置0或1)8255A的控制字方式选择控制字–8255A有三种基本工作方式•方式0:基本的输入/输出方式•方式1:选通的输入/输出方式•方式2:双向传输方式8255A一例要求–J1•A:0,O•B:0,I•CH:O•CL:I•AD:E6H–J2•A:0,I•B:1,O•CH:O•CL:0•AD:EEHY5#Y4#8255A的控制字端口C置1/置0控制字:写入控制口8255A的工作方式三种1.方式0——基本输入输出方式2.方式1——选通的输入输出方式3.方式2——双向传输方式方式0:基本输入输出方式特点–任何一个端口既可以作为输入口,也可以作为输出口,各端口之间没有规定必然的联系–各个端口的输入或输出,可以有16(A,B,C高,C低)种不同的组合,适用于多种应用场合没有提供联络信号–如果需要,自行解决应用场合–同步传送–查询式传输方式0:输入时序方式0:输出时序方式1:选通的输入输出方式特点–端口A和端口B都可工作于方式1,任何一个端口可作为输入口或者输出口–端口C配合工作于方式1的端口A或B,提供联络信号(8255A与外设之间、与CPU之间);每组联络信号用去3条线–端口C中余下的仍可独立作为输入或输出线方式1:输入时信号配合方式1:输入时序方式1:输出时信号配合方式1:输出时序方式2:双向传输方式只适用于端口A端口C用5条线自动配合端口A提供控制信号和状态信号–类似于方式1输入和输出的组合全双工,抑或半双工?方式2:控制信号方式2:时序方式2和其他方式的组合方式2和其他方式的组合8255A的应用举例(1)方式0STB:负脉冲BUSY:高电平表示忙8255A的应用举例(1)端口A:00D0H端口B:00D2H端口C:00D4H控制口:00D6HPP:MOVAL,81H;控制字,使A,B,C工作在方式0OUT0D6H,ALMOVAL,0DHOUT0D6H,ALLPST:INAL,0D4HANDAL,04HJNZLPSTMOVAL,CLOUT0D0H,ALMOVAL,0CHOUT0D6H,ALINCALOUT0D6H,AL8255A的应用举例(2)方式1有应答信号ACK8255A的应用举例(2)端口A:00C0H端口B:00C2H端口C:00C4H控制口:00C6HMAIN:MOVAL,0A0HOUT0C6H,ALMOVAL,01OUT0C6H,ALXORAX,AXMOVDS,AXMOVAX,2000HMOVWORDPTR[002CH],AXMOVAX,1000HMOVWORDPTR[002EH],AXMOVAL,0DHOUT0C6H,ALSTI8255A的应用举例(2)TINTR:MOVAL,[DI]OUT0C0H,ALMOVAL,00OUT0C6H,ALINCALOUT0C6H,ALIRET本章结束谢谢