CH7 串并行通信及其接口技术_第1页
CH7 串并行通信及其接口技术_第2页
CH7 串并行通信及其接口技术_第3页
CH7 串并行通信及其接口技术_第4页
CH7 串并行通信及其接口技术_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第7章 串并行通信 及其接口技术 7.1 串行通信和串行接口 7.2 可编程串行通信接口8251A 7.3 并行通信和并行接口 7.4 可编程并行通信接口8255A 教学重点为: 串并行接口的用途; 8251A的功能结构与工作原理、初始化流程; 8255A的控制字; 8255A的工作方式; 第7章 串并行通信及其接口技术 234ISA插槽PCI插槽AGP插槽北桥芯片组南桥芯片组内存插槽CPU插槽IDE接口软驱接口并口连接器串口连接器ROM BIOS鼠标键盘USB接口主板电源插座5PCI插槽北桥芯片组南桥芯片组内存插槽CPU插槽IDE接口鼠标键盘USB接口主板电源插座Intel “4”系列原装主

2、板 微机与I/O设备的接口按照数据传送方式的不同,可分为:并行接口和串行接口两种。7.0 串行通信接口与并行接口概述CPUI/O接口外设串或并图(a) 并行和串行概念7CPU并行接口串行外设数据输出串行接口译码器与逻辑控制ABCB并行外设DBDB(8根)图(b) 并行接口和串行接口的结构、功能示意图数据输入地87.1.1 串行通信涉及的几个问题7.1 串行通信和串行接口串行通信:将数据分解成二进制位用一 条信号线,一位一位顺序传 送的方式。在传输过程中, 每一位数据占据一个固定的时间长度。数据的各位依次由源到达目的地 慢数据线少、抗干扰能力强 远程, 费用低0 1 1 0 1 0 1 0 RD

3、目的TD源串行通信适于长距离、中低速通信91. 按传输方式分:全双工、半双工、单工全双工:双根传输线,能够同时发送和接收半双工:单根传输线,不能同时发送和接收单工:单根传输线只用作发送或只用作接收2. 按时钟定时分:同步、异步同步通信:收发双方采用同一个时钟信号来定时 多个字符组成一个数据块(或称信息帧、信息组),在每一个数据块前附加一个或两个同步字符或标识符,最后以校验字符结束在传送过程中发送端和接收端使用同一时钟信号进行控制使每一位数据均保持位同步。同步通信一个信息帧含有多个或上千字符。同步字符 字符1 字符2 字符n 校验字符数据块10异步通讯:收发双方不用统一的时钟来定时 每个字符一位

4、一位地传输,传输一个字符时,以起始位开始,然后传输字符本身各位,接着传输校验位,最后以停止位结束该字符的传输。因此一次传输的起始位、字符各位、校验位、停止位构成一组完整的信息,称为异步通信的一个信息帧(Frame),只含一个字符。 帧与帧之间可有任意个空闲位。为了保证异步通信的正确,必须在收发双方通信前约定字符格式、传送速率、时钟和校验方式等。 一般以若干位表示一个字符,收发是以字符为独立的通信单位,一个字符一个字符地传输,两个字符之间的传输间隔是任意的。这样,为保证正确区分字符,每个字符的前后要用若干位作为分隔位来进行识别。11起始位每个字符开始传送的标志,起始位采用逻辑0电平数据位数据位紧

5、跟着起始位传送。由58个二进制位组成,低位先传送校验位用于校验是否传送正确;可选择奇检验、偶校验或不传送校验位停止位表示该字符传送结束。停止位采用逻辑1电平,可选择1、1.5或2位空闲位传送字符之间的逻辑1电平,表示没有进行传送图7.1 标准的异步通信数据格式12异步通信数据格式总结说明:无信息传输(或间隔)时,输出必须为“1”状态(标识态);1到0的跳变作为字符的开始起始位;起始位后为58位的数据位,低位在前,高位在后;数据位后为奇偶校验位,可设为奇或偶校验,也可不设;最后有1、1.5或2位停止位,均为“1”13传输速率 在串行通讯中,用波特率来描述数据的传输速率。即每秒钟传送的二进制位数,

6、简写为bps 串行通信无论收发都必须有时钟脉冲信号对传送的数据进行定位和同步控制。接收时钟/发送时钟是波特率的倍数波特率因子。【例】:波特率=9600bps,波特率因子=16,则接收时钟和发送时钟频率=960016=153600Hz 波特率因子=16 ,表明16个时钟脉冲传送1位。3. 串行通信的传输率 国际上规定的标准波特率:110、300、600、1200、 1800、2400、 4800、9600、19200。14 设每个字符对应1个起始位、7个信息位、1个奇偶校验位和1个停止位,如果波特率为1200bps,那么,每秒钟能传输的最大字符数为1200/10120个。 以1200bps的波特

7、率工作,用4个同步字符作为信息帧头部,但不用奇偶校验,那么,传输100个字符所用的时间为7(100+4)/12000.6067s,这就是说,每秒钟能传输的字符数可达到100/0.6067165个。例1:异步传输过程 例2: 同步传输过程可见,在同样的传输率下,同步传输时实际字符传输率要比异步传输时高。 157.1.2 串行接口图7.2 可编程串行接口的典型结构167.2 可编程串行通信接口 8251A7.2.0 8251A的基本性能 通过编程,8251A可以工作在同步方式,波特率0 64K,也可以工作在异步方式,波特率019.2K; 同步方式下可以用58位来表示字符,允许增加1位奇偶校验位,能

8、自动检测同步字符,实现收发同步; 异步方式下用58位来表示字符,1位可选的奇偶校验位,1位启动位,根据需要可设置1、1.5或2位停止位; 全双工、双缓冲的发送器和接收器; 具有奇偶、溢出和帧错误检测功能; 输入输出电路为TTL电平。 178251A的功能结构 7.2.1 8251A的基本工作原理图7.318模式寄存器决定工作于同步或异步模式以及接收和发送的字符格式同步字符寄存器存放同步模式下的同步字符偶地址端口奇地址端口193. 8251A的发送和接收(1)检测起始位1)异步接收方式设数据接收时钟频率是数据传输频率的16倍。起始检测确定已检测到起始位起 始 位RXCRXDT16 T8 T20采

9、样数据起始检测确定已检测到起始位起 始 位RXCRXDT16 T16 T8 T 每隔一字符传输时间,对RxD进行一次采样,数据送移位寄存器移位,并进行奇偶校验和去掉停止位,得到并行数据。 (2)8251A进行常规采样并进行字符装配21注:对于少于8位的数据,8251A将高位补0。 (3)通知CPU接收数据 并行数据经过内部数据总线送接收数据缓冲器,并置RxRDY有效,通知CPU已收到一个数据,可以取用。 8251A异步接收数据传输格式222)8251A异步发送方式(2)8251A由TxD线把串行数据送出 。 8251A从CPU接收到一个数据,移位形成串行数据,再加上起始位、奇偶校验位以及停止位

10、,由TxD把数据送出。 注:数据及起始位、校验位、停止位总是在发送时钟TxC的下降沿从8251A发出,数据传输的波特率为发送时钟频率的1、1/16或者1/64,具体决定于编程时给出的波特率因子。 (1)程序置TxEN(允许发送)有效。 检测到外设送来的CTS(请求发送信号的响应信号)有效,开始发送。 238251A异步发送数据传输格式注:对于少于8位的数据,8251A将高位补0。 243)8251A的同步接收方式单同步字符 8251检测RxD线,当RxD线出现一数据位时,接收送移位寄存器移位,并与同步字符寄存器的内容比较,如不等,继续接收,比较。相等时,8251A的SYNDET引脚为高电平,表

11、示同步已经实现。(1)搜索同步字符双同步字符 检测到第一个同步字符后,再继续检测此后输入的移位寄存器的内容是否与第二个同步字符寄存器的内容相同,不同重新比较第一个同步字符;相同,则认为同步已经实现。内同步(a)25(b)外同步 通过在同步输入端SYNDET加一高电位实现同步。当SYNDET端出现一个高电平,并且维持一时钟接收周期,8251A认为已经完成同步。 (2)数据的同步传输 接收器利用时钟信号对RxD采样,把收到的数据送移位寄存器。当收到的数据位达到规定的一个字符位数时,将移位寄存器的内容送输入缓冲寄存器,且发出RxRDY信号,表示收到一数据。 268251A同步接收数据传输格式274)

12、8251A的同步发送方式(2)发送同步字符 根据编程要求,发送器先发送一个或两个同步字符。 注:如发送数据时,CPU来不及提供新数据,8251A发送器会自动插入同步字符,由TxD送出。 (3)发送数据块 发送数据块时,发送器根据要求对数据块中的数据加上奇偶校验位或不加。 (1)程序置TxEN(允许发送)有效 检测到外设送来的CTS(请求发送信号的响应信号)有效,开始发送。 288251A同步发送数据传输格式2930 8251A芯片共有28个引脚,其中:有17个引脚是与系统相连接,有6个是与外部设备相连接,另外,还有3个时钟输入端,1个电源端,1个接地端。 7.2.2 8251A的外部信号 TX

13、RDY为“1”的条件是:发送缓冲器空CTS TXEN=130 1. 用错位连接结合软件方法实现8位接口芯片与16位CPU总线的连接 在硬件上将地址总线的A1与8251A的A0(即C/D)引脚相连接,在软件设计时用连续的偶地址代替端口的奇/偶地址,就解决了8位接口芯片与16位数据总线的连接;即就是将8位的接口芯片与16位数据总线的低8位数据线相连接。 (见前8251A与系统的连接示意图) 7.2.3 8位接口芯片与CPU总线的连接31表7.1 CPU总线与8位接口错位连接小结CPU字长数据线位数选最低字节错位连接低位地址初值相邻地址差值8088168A0-A0A0=0180861616A0=0A

14、1-A0A1A0=002803863232A1A0=0A2-A0A2A1A0=0004Pentium3264A2A1A0=0A3-A0A3A2A1A0=00008软件上,用连续偶地址代替奇偶地址32 2. 用硬件方法实现8位外设与16位数据总线的连接 两个硬件电路:(1)检测控制电路:检测并识别奇地址端口输入/输出指令,确认是奇地址I/O指令时启动高/低字节复制器,并控制数据复制方向。(2)高/低字节复制器:执行IN指令时,将外设来的数据复制至数据总线高8位;执行OUT指令时,将CPU的高8位数据复制至数据总线的低8位。33347.2.4 8251A的寄存器及其初始化流程 8251A初始化的约

15、定: 复位后,第一次给奇地址端口写入的值作为模式字 如规定为同步模式,那么,接下来往奇地址端口写入的是同步字符。如果是双同步,则先后两次写入同步字符。 接下来,只要不是复位命令,CPU给奇地址写入的是控制字,给偶地址端口写入的是要发送的数据。 1. 8251A的初始化 8251A使用前必须进行初始化,以确定工作方式、传送速率、字符格式以及停止位长度等;改变8251A的工作方式时必须再次进行初始化编程;342. 模式寄存器的格式 8251A的编程包括两个方面的内容:由CPU发出控制字,即模式命令字和操作命令控制字 由8251A向CPU送出的状态字 模式字是在对8251A进行初始化时,用程序命令写

16、入且只需写一次。 用于规定8251A的工作方式 :353. 控制寄存器的格式 控制字是在模式字之后写入,用来控制8251A的工作,使其处于规定的状态以及准备发送或接收数据,可进行多次写入操作。控制字和模式字共用一个奇地址端口,且又无特征标志,8251A是根据写入的先后顺序来加以区分的,即先写入的是模式字,后写入的是控制字。 36例如: 由控制字的格式可知,8251A的复位命令 是给奇地址端口写入40H。 即复位命令的程序段是:MOV AL, 40HOUT 奇地址端口, AL 374. 状态寄存器的格式 状态寄存器用来存放8251A的状态字,用来反映8251A的状态信息,可供CPU读取查询。38

17、【例】 假设 8251A的端口地址为:82H、80H,按以下要求对8251A进行初始化。 (1)异步工作方式,1个停止位,采用偶校验,7个数据位, 波特率因子为16。 (2)允许接收和发送数据,使错误位全部复位。 (3)查询8251A的状态字,当接收准备就绪时则从8251A输入 数据,否则等待。7.2.5 8251A编程举例1.异步方式举例39MOVAL,40HOUT82H,AL;对8251A进行复位MOVAL,01111010BOUT82H,AL;写模式字MOVAL,00010101BOUT82H,AL;写控制字WAIT:INAL,82H;读取状态字ANDAL,02H;检查RxRDY是否为1

18、JZWAIT;RxRDY不为1,等待INAL ,80H;RxRDY为1,读取数据初始化程序段:407.2.5 8251A编程举例2.同步方式举例【例】 假设 8251A的端口地址为:42H、40H,按以下要求对8251A进行初始化。 (1)同步工作方式,2个同步字符16H,内同步,采用偶校验,7个数据位。 (2)使8251A对同步字符进行搜索,使错误位全部复位,启动发送器和接收器,通知调制/解调器CPU已准备好进行数据传输。41MOVAL,HOUT42H,AL;对8251A进行复位MOVAL,00111000BOUT42H,AL;写模式字MOVAL,00010110BOUT82H,AL;写同步

19、字符MOVAL,00010110BOUT82H,AL;写同步字符MOVAL,10110111BOUT82H,AL;写控制字初始化程序段:42【练习】 对8251A进行初始化。 1. 设8251A工作于内同步方式,8个数据位,无校验,一个同步字符(均为24H); 2. 同时要求8251A进行同步字符搜索,允许接收和发送数据,使错误位全部复位。 3. 假设8251A的端口地址为:00E2H、00E0H。43答 案初始化程序段:MOVAL,40HOUT0E2H,AL;对8251A进行复位MOVAL,10001100HOUT0E2H,AL;写模式字MOVAL,24HOUT0E2H,AL;写第一个同步字

20、符OUT0E2H,AL;写第二个同步字符MOVAL,10010101BOUT41H,AL;写控制字447.2.5 8251A编程举例3.利用状态字举例 编程实现CPU接收80个字符,字符输入后放在BUFFER所指的内存缓冲区。8251A工作于异步方式,波特率因子为16,7个数据位,偶校验,2个停止位。8251A 端口地址:50H,52H。MOV AL,0FAH;11111010BOUT 52H,AL;设置模式字MOV AL,35H;00110101BOUT 52H,AL;设置控制字MOV DI,0;变址寄存器初始化MOV CX,80;计数器初始化BEGIN: IN AL,52H ;读状态字TE

21、ST AL,02H ;测试JZ BEGIN ;RXRDY=0转IN AL,50H ;读取字符MOV BX,OFFSET BUFFERMOV BX+DI,AL ;保存字符INC DI;修改缓冲区指针IN AL,52H ;读取状态字TEST AL,38H ;测试有无错误JNZ ERRORLOOP BEGIN ;无错且不够80个继续接收JMP EXIT ;如满80个字符,则结束ERROR:CALL ERR_OUT ;调用出错处理程序EXIT:45 8251A与CPU之间通常采用查询或中断方式传输数据。若采用中断方式,两个状态信号TxRDY和RxRDY通过一个或非门接到CPU的外中断输入。其余的 、

22、、RESET都是同名端相连。 在编程时,先对8251A初始化,输入命令字后就可以进行数据传送。在得到中断申请后,通过调用状态字来检测是接收申请(RxRDY1)还是发送申请(TxRDY1),然后转至相应的中断服务程序进行处理即可。在接收处理时,若要判定传输是否出错,也只需读取状态字,检测错误标志位PE等。这样,可以很方便地实现双工通信。7.2.6 8251A的使用实例【例】 试用8251A为8086 CPU与CRT终端设计一串行通信接口。 假设:8251A端口地址为52H、50H。要求: (1)异步工作方式,1个停止位,8个数据位,采用奇校验,波特率因子为16; (2)CPU用查询方式将显示缓冲

23、区的字符“GOOD”送CRT显示。显示缓冲区在数据段,首地址为2000H。468251与CPU的数据交换查询方式/中断方式采用查询方式,在数据交换前应读取状态寄存器。 状态寄存器D0=1,CPU可以向8251数据端口写入数据,完成串行数据的发送 状态寄存器D1=1,CPU可以从8251数据端口读出数据,完成一帧数据的接收采用中断方式, 8251没有单独的中断请求引脚: TxRDY引脚可以作为发送中断请求 RxRDY引脚可以作为接收中断请求 收发均采用中断方式时, TxRDY、 RxRDY可以通过或门与系统总线的中断请求线连接。在CPU响应中断转到ISP中时,再对状态寄存器进行查询,以区分是发送

24、中断还是接收中断47(1)硬件连接:8086CPU与CRT终端接口连接如图所示。 8251A的信号都是TTL电平,而CRT信号为RS-232-C电平,故通过1488将8251A的输出变为RS-232-C电平,再送给CRT;反过来, CRT的输出信号通过1489将变为TTL电平,再送给8251A。48DATASEGMENTDISBUFDB 47H,4FH,4FH,44H,0DH,0AH;GOOD字符的ASC码COUNTDB $-DISBUFDATAENDS MOVAL, 40HOUT52H, AL;对8251A进行复位 MOVAL, 01011110B;写入模式字OUT52H, ALMOVAL,

25、 00110011B;写控制字OUT52H, ALMOVBX, OFFSETDISBUF;显示缓冲区首址MOVCX, COUNTWAIT:INAL, 52H ANDAL, 01H;判断TxRDY是否为1,不为1,等待JZWAITMOVAL, ES:BX;为1,则输出数据OUT50H, ALINCBXDECCXJNZWAITHLT(2)软件设计初次对8251A初始化,先送3个00H ,再送1个40H 49【例】通过8251A实现两台微机相互通信的硬件连接图如图所示。利用两片8251A通过标准串行接口RS-232C实现两台8086微机之间的异步串行通信。设两台微机中8251A的命令端口地址均为3F

26、9H,数据端口地址均为3F8H。 50分析:设系统采用查询方式控制串行通信的过程。 初始化程序由两部分组成: 将一方定义为发送方,发送方CPU查询到TxRDY有效时,则CPU向8251A并行输出一个待发送的字节数据; 将对方定义为接收方,接收方CPU查询到RxRDY有效时,则从8251A输入一个已接收到的字节数据,直到全部数据传送完毕为止。51L1:MOVDX, 3F9H INAL, DX ANDAL, 01H;查询TxRDY是否有效 JZL1;无效则等待MOVDX, 3F8H MOVAL, DI;向8251A输出一个字节数据OUTDX, ALINCDI;修改地址指针 LOOPL1 ;未传送完

27、,则继续下一个HLTSTART:MOVDX, 3F9HMOVAL, 7FH;模式字(异步方式,8位数据,一位停止位OUTDX, AL ;偶校验,波特率因子为64,允许发送)MOVAL, 11H ;操作命令字(错误复位,发送允许)OUTDX, ALMOVDI, 1000H;设置地址指针MOVCX, 40H;设置计数器初值发送程序如下:52BEGIN:MOVDX, 3F9HMOVAL, 7FH;异步方式,8位数据,1位停止位OUTDX, AL;偶校验,波特率因子64,允许接收 MOVAL, 14H;操作命令字(错误复位,接受允许) MOVDX, AL MOVSI, 2000H;设置地址指针 MOV

28、CX, 40H;设置计数器初值L2:MOVDX, 3F9HINAL, DX;读取状态字TESTAL, 38H;查询接收器是否有错JNZERR ;有错则转错误处理ANDAL, 02H ;无误则查状态位D1(RxRDY)JZL2 ;接收未准备好则等待MOVDX, 3F8HINAL, DX ;接受准备好,则接收1个字节数据 MOVSI, ALINCSI;修改接收数据区地址LOOPL2JMPL3ERR:CALLERR-OUT(略)L3:MOVAX, 4C00H;已接收完,返回DOSINT21H接收程序53并行通信并行通信:是指将构成一组数据的各位同时进行传送的一种通信方式。例如一组8位数据或16位数据

29、的同时传入或传出。并行通信的优点是传输速度快,信息率高;缺点是电缆耗损高。并行通信适用于数据传输率较高、传输距离较短的场合。适合场合:(1)外部设备与微机之间进行近距离、大量和快速的信息交换例如:微机与并行接口打印机、磁盘驱动器 (2)微机系统中最基本的信息交换方法例如:系统板上各部件之间,接口电路板上各部件之间7.3 并行通信和并行接口54并行接口:实现并行通信的接口称为并行接口。按照信息传送方向,分为:输入接口、输出接口和输入/输出接口按照可编程性分类:不可编程并行接口和可编程并行接口。不可编程的并行接口:接口的工作方式及功能由硬件连接来设定,不能用软件编程的方法改变,接口的工作方式固定不

30、变。例如8位双向三态缓冲驱动器74LS245、8位三态数据锁存器74LS373等。多用于组成功能比较简单的接口电路。可编程的并行接口:一般由可编程通用接口芯片组成,这些芯片除了具有硬件连接接口的性能外,最主要的就是可由编程人员通过编程来进行设定芯片性能。如有Zilog公司的Z80PIO, Intel的8255A等。因而可编程接口具有广泛的适应性和很高的灵活性,在微机系统中得到广泛的应用。2. 并行I/O接口553. 并行接口与外设的连接图7.10 并行接口连接外设示意图56 并行接口输入数据的过程 外设将数据送到 “数据输入线”,通过 “输入数据准备好” 状态线通知并行接口,接口将数据锁存到

31、“输入缓冲器”,通过 “数据输入响应” 线通知外设,接口数据缓冲器已满,不要再送数据,同时将 “状态寄存器” 的相应位置 1,便于 CPU 查询和接口向CPU 发中断请求之用。 CPU 从接口将数据取走后,接口将 “数据输入准备好”、 “数据输入回答” 信号清除,以便外设输入下一个数据。 并行接口输出数据的过程 接口 “数据输出缓冲器” 空,置“数据输出准备好” 状态线为 1,收到 CPU 发的数据,将之复位清 0,数据通过 “数据输出” 线送外设,由 “数据输出准备好” 线通知外设取数据。外设取走数据,将 “数据输出准备好” 信号线置 1,以便 CPU 输出下一个数据。4. 并行接口的工作原

32、理577.4 可编程并行通信接口8255A7.4.1 8255A的内部结构和外部信号1.数据端口A、B、C 8255A的三个数据端口都是8位的,而各有特点。(1)端口A 是一个独立的8位数据I/O口,它的内部有对数据输入/输出的锁存功能。(2)端口B 是一个独立的8位数据I/O口,对输入的数据不锁存,仅对输出的数据锁存。 (3)端口C 可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。还可以用作A口和B口的控制信号。对输出数据进行锁存,对输入数据不锁存。7.4 可编程并行通信接口8255A7.4.1 8255A的内部结构和外部信号2.A组控制和B组控制 这两组控制部件有两个

33、功能:即一是接收芯片内部总线上的控制字;二是接收来自读/写控制逻辑电路的读/写命令,据此而决定两组端口的工作方式和读/写操作。7.4 可编程并行通信接口8255A7.4.1 8255A的内部结构和外部信号3.读/写控制逻辑电路 负责管理8255A的数据传输过程。它接收CS及来自地址总线的信号A1、A0和控制总线的信号RESET、RD、WR,将它们组合后,得到对A组控制部件和组控制部件的控制命令,并将命令送给这两个部件,再由它们完成对数据、状态和控制信息的传输。7.4 可编程并行通信接口8255A7.4.1 8255A的内部结构和外部信号4. 数据总线缓冲器是一个双向三态的8位数据缓冲器。825

34、5A正是通过它与系统数据总线相连。输入数据、输出数据、CPU发给8255A的控制字都是通过该部件传递的。7.4 可编程并行通信接口8255A7.4.1 8255A的内部结构和外部信号7.4 可编程并行通信接口8255A7.4.1 8255A的内部结构和外部信号8255A复位后,所有I/O均处于输入状态,内部寄存器都被清除7.4 可编程并行通信接口8255A7.4.1 8255A的内部结构和外部信号7.4 可编程并行通信接口8255A7.4.2 8255A的控制字控制字分为两类方式选择控制字C端口按位置1/置0控制字8255A有三种基本工作方式:方式0、方式1、方式2图7.15 8255A的方式

35、选择控制字端口C置1/置0控制字 端口C置1/置0的例子MOVAL, 0FH;对PC7置1的控制字MOVDX, 00EEH;控制口地址送DXOUTDX, AL;对PC7进行置1操作MOVAL, 06H;对PC3置0的控制字OUTDX, AL;对PC3进行置0操作图7.13 端口C的置1/置0控制字7.4.3 8255A的工作方式1. 方式0 也叫基本输入输出方式。 特点: (1)三个端口都可作为独立的输入或输出口,各端口间没有必然的关系。(2)由端口A、端口B和端口C的高4位、低4位,这4个端口可以有16种不同的组合。(3)这种方式下,输出可锁存数据,输入是不锁存的。方式0的使用的场合: 同步

36、传输和查询式传输。 使用场合 同步传送时,发送方和接收方由同一时序信号来管理,所以双方相互知道对方的动作,不需要应答信号。即CPU不需要查询外设的状态,对接口要求很简单,只要能传送数据就行,此时8255A的三个数据端口可以实现三路数据传送。 查询传送时,一般将A、B口常作为数据口,把C口的两部分用来输出一些控制信号和接收一些状态信号,这样端口C用来配合端口A和B工作。方式1 又称为选通的输入/输出方式。 特点: (1)端口A和端口B可以分别作为输入端口或输出端口。(2)如果端口A和端口B只有一个工作于方式1,端口C中就有3位被规定为配合方式1工作的信号,这时,另一个端口和端口C的其它位可工作于

37、方式0。(3)如果端口A和B都工作在方式1,那么端口C则有6位分别作为A口和B口的应答联络信号,并且其排列是固定的,剩余的2位可工作于方式0。方式1时输入端口对应的控制信号图7.14 STB:选通信号输入端。它是由外设送往 8255A的,当STB有效时8255A的端口A或B的输入缓冲器接收到一个来自外设的8位数据。方式1的输入组态和应答信号的功能 IBF:“输入缓冲器满”信号。它是8255A输出的状态信号,当 IBF 有效时,表示当前已有一个新的数据进入端口A或B缓冲器中。此信号是对STB的响应信号,它可以由CPU 通过查询C口的PC5或PC1位获得。当CPU查的PC5(或PC1)=1时,便可

38、以从A口(或B口)读入数据。IBF信号是由STB信号使其置位的,而由读信号RD的上升沿使其复位。 INTR:是8255A送往CPU的中断请求信号。当选通信号STB =1,置IBF=1,且端口处于中断允许状态(INTE=1)时,将INTR端置位高电平,向CPU 发出中断请求信号。当CPU 响应中断读入数据端口的数据时,由RD信号的下降沿使INTR复位。方式1时输出端口对应的控制信号方式1 使用场合 对方式1,规定一个端口作为输入口的同时,自动规定了有关控制信号,尤其规定了相应的中断请求信号。这样,在许多采用中断方式进行输入输出的场合,如果外设能为8255A提供选择信号或数据接收应答信号,那么,常

39、使8255工作于方式1。用方式1工作比用方式0更加方便有效。 3. 方式2 也叫双向传输方式,具有如下特点: (1)只适用于端口A,相当于双向的方式1传输。 (2)端口C用5条线作为A口的联络信号,并且排列是固定的。 方式2 使用场合 方式2是一种双向工作方式,如果一个并行外部设备既可以作为输入设备,又可作为输出设备,并且输入输出动作不会同时进行,那么,将这个外设和8255A的端口A相连,并使它工作在方式2,就非常合适。比如,软盘驱动器就是这样一个外设。(1)要求 为某应用系统配置一个并行打印机接口,并且通过接口CPU采用查询方式把存放在BUF缓冲区的256个字(ASCII码)送去打印。(2)

40、分析 由于打印接口直接面向的对象是打印机接口标准,而不是打印机本身,因此打印机接口要按照接口标准的要求进行设计。有关打印机接口标准的信号线定义和工作时序如下 。DATA0DATA7STROBEBUSYACK并行打印机接口数据传送时序7.4.4 8255A应用举例1. 8255A工作于方式的例子 采用查询方式时,打印机与CPU之间传送数据的过程是: 首先查询BUSY。若BUSY=1,打印机忙,则等待;若BUSY=0,打印机不忙,则送数据。 通过并行接口把数据送给标准插座DATA BIT1DATA BIT8 数据线上,此时数据并未送入打印机。 再送出一个数据选通信号DATA STROBE-(负脉冲

41、)给 标准插座的1号引脚,把数据线上的数据打入到打印机的内部缓冲器。 打印机在收到数据后,通过插座的11号引肢发出“忙”(BUSY=1)信号,表明打印机正在处理输入的数据。 最后在10号引脚上送出一个回答信号ACK-给主机,表示上一个字符已经处理完毕。(3)设计接口电路的设计包括硬件接口电路和软件驱动程序两部分。 打印机接口电路。打印机接口电路原理框图如图所示。该电路的设计思路是:按照并行打印接口标准对打印机接口信号线的定义,最基本的信号线需要8根数据线(DATABIT18)CPU PA07PC7PC2地 地BUSYSTBDATA07111298255A打印机插座8255A并行打印机接口电路框

42、图1根控制线(STB),1根状态线(BUSY)和1根地线。选用8255A的PA口作数据口输出8位打印数据,工作方式为0方式。接口驱动程序。其程序流程图如右图所示。驱动程序的程序段如下:结 束8255A 初始化BUSY=0?送 数送 STB内存+1字节数-1送完?开始YNYNCODESEGMENTASSUME CS:CODE, DS:CODEORG100HSTART: MOV AX, CODEMOV CS, AXMOV DS, AXMOV DX, 203H;8255A命令口MOV AL, 10000001B;工作方式字OUT DX, AL;(A口0方式,输出,C4C7输出,C0C3输入)MOVA

43、L, 00001111B;PC7位置高,使STB-=1OUT DX, ALMOVSI, OFFSET BUF;打印字符内存首地址MOVCX, OFFH;打印字符个数MOVDX, 202H;PC口地址INAL, DX;查BUSY=0?(PC2=0)ANDAL, 04H;00000100B JNZL;忙,则等待;不忙,则向A口送数MOVDX, 200H;PA口地址MOVAL, SI;从内存取数OUTDX, AL;送数据到A口MOVAL, 203H;8255A命令口MOVAL, 00001110B;置STB-信号为低(PC7=0)OUTDX,ALNOP;负脉冲宽度(延时)NOPMOVAL,00001

44、111B;置STB-为高OUTDX,ALINCSI;内存地址加1DECCX;字符数减1JNZL;未完,继续MOVAX,4C00H;已完,退出INT21H BUFDB256个ASCII字符代码CODEENDSENDSTART 设8255A工作于方式,A端口地址0D0H,B端口地址0D2H,C端口地址0D4H,控制端口,0D6H。PP:MOVAL, 81HOUT0D6H, AL;方式字MOVAL, 0DHOUT0D6H, AL;PC置0/置1方式字LPST:INAL, 0D4H;查状态ANDAL, 04HJNZLPSTMOVAL, CLOUT0D0H, AL;输出字符送缓冲区MOVAL, 0CHO

45、UT0D6H, AL;STB产生负脉冲INCALOUT0D6H, AL;STB置12. 8255工作于方式的例子1 图7.18 8255A作为中断方式打印机接口的示意图 8255工作于方式输出方式,A端口地址0C0H,B端口地址0C2H,C端口地址0C4H,控制端口地址0C6H;中断IR3类型号为0BH,中断向量地址0002CH。程序如下:MAIN:MOVAL, 0A0HOUT0C6H, AL ;A口输出MOVAL, 01OUT0C6H, AL ;PC0为1XORAX, AXMOVDS, AXMOVAX, 2000HMOVWORD PTR002CH, AXMOV AX, 1000HMOV WO

46、RD PTR002EH, AX ;设置中断向量1000:2000MOVAL, 0DHOUT0C6H, AL ;PC6为1,允许中断STI中断处理子程序的主要程序段:TINTR:MOVAL,DI;取字符送接口缓冲区OUT0C0H, ALMOVAL,00OUT0C6H, AL;PC0为0产生选通信号INCALOUT0C6H, AL; PC0为1撤销选通信号IRET (1)要求 在甲乙两台微机之间并行传送1K字节数据。甲机发送, 乙机接收。甲机一侧的8255A采用1方式工作,乙机一侧的8255A采用0方式工作。两机的CPU与接口之间都采用查询方式交换数据。(2)分析双机均采用可编程并行接口芯片825

47、5A构成接口电路,只是8255A的工作方式不同。此时,双方的8255A把对方视为I/O设备。(3)设计硬件连接: 根据上述要求,接口电路的连接如图所示。软件编程: 接口驱动程序包含发送与接收两个程序。2. 8255工作于方式的例子2 0方式1方式8255APA07PC7PC3PC46PC02PB07PA07PC7PC6PC3PC02、45PB07未用8255A甲(发送)CPU乙(接收)CPUACKOBF两种方式的并行传送接口电路框图甲机发送程序段:MOVDX, 203H;8255A命令口MOVAL, 10100000B;初始化工作方式字OUTDX, AL MOVAL, 00001101B;置发送中断允许INTEA=1OUTDX, AL;PC6=1M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论