(计算机原理与接术可编程串行接口芯片8251A
- 格式:pptx
- 大小:254.69 KB
- 文档页数:25
8255A的内部结构,由三部分电路组成:与CPU的接口电路、内部控制逻辑电路和与外设连接的输入/输出接口电路。
D7~D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。
(chip select):片选信号线,低电平有效时,芯片被选中。
A1, A0(port address):地址线,用来选择内部端口。
(read):读出信号线,低电平有效时,允许数据读出。
(write):写入信号线,低电平有效时,允许数据写入。
RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。
PA7~PA0(port A):A口输入/输出信号线。
PB7~PB0(port B):B口输入/输出信号线。
PC7~PC0(port C):C口输入/输出信号线。
VCC:+5V电源。
GND:电源地线。
8255A的工作方式方式0:基本输入输出方式适用于无条件传送和查询方式的接口电路方式1:选通输入输出方式适用于查询和中断方式的接口电路方式2:双向选通传送方式适用于与双向传送数据的外设适用于查询和中断方式的接口电路8255A初始化编程8255A的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。
8255A由编程写入的控制字有两个:方式控制字和置位/复位控制字。
方式控制字用于设置端口A, B, C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7~PC0中某一条口线PC i(i=0~7)的电平。
两个控制字公用一个端口地址,由控制字的最高位作为区分这两个控制字的标志位。
(1)方式控制字的格式8255A工作方式控制字的格式如图7.11所示。
D0:设置PC3~PC0的数据传送方向。
D0=1为输入;D0=0为输出。
D1:设置B口的数据传送方向。
D1=1为输入;D1=0为输出.D2:设置B口的工作方式。
D2=1为方式1;D2=0为方式0。
可编程串行通信接口芯片8251A可编程串行通信接口芯片8251A2010-05-25 15:058251 A是一个通用串行输入/输出接口,可用来将86系列CPU以同步或异步方式与外部设备进行串行通信。
它能将主机以并行方式输入的8位数据变换成逐位输出的串行信号;也能将串行输入数据变换成并行数据传送给处理机。
由于由接口芯片硬件完成串行通信的基本过程,从而大大减轻了CPU的负担,被广泛应用于长距离通信系统及计算机网络。
8251A是一个功能很强的全双工可编程串行通信接口,具有独立的双缓冲结构的接收和发送器,通过编程可以选择同步方式或者异步方式。
在同步方式下,既可以设定为内同步方式也可以设定为外同步方式,并可以在内同步方式时自动插入一个到两个同步字符。
传送字符的数据位可以定义为5~8位,波特率0~64K可选择。
在异步方式下,可以自动产生起始和停止位,并可以编程选择传送字符为5~8位之间的数据位以及1、1/2位之中的停止位,波特率0~19.2K可选择。
同步和异步方式都具有对奇偶错、覆盖错以及帧错误的检测能力。
一、8251A内部结构及功能图8.5.1为8251A结构框图。
作为常用的通信接口,和8255A类似,8251A 的结构也可以归纳为以下三个部分:第一部分是和CPU或者总线的接口部分,其中包括数据总线缓冲器、读/写控制逻辑。
数据总线缓冲器用来把8251A和系统数据总线相连,在CPU执行输入/输出指令期间,由数据总线缓冲器发送和接收数据,此外,控制字,命令字和状态信息也通过数据总线缓冲器传输,读/写控制逻辑电路用来配合数据总线缓冲器工作。
CPU通过数据总线缓冲器和读写控制逻辑向8251A写入工作方式和控制命令字,对芯片初始化;向8251A写入要发送字符的数据代码,送到发送缓冲器进行并行到串行的转换,并且将接收的、已转换成并行代码的接收缓冲器中的字符数据读入CPU。
第二部分是数据格式转换部分,包括发送缓冲器、并行数据到串行数据转换的发送移位器,接收缓冲器和串行数据到并行数据转换的接收移位器,以及发送控制电路和接收控制电路。
串行通信18027412 杨滢齐一、实验目的1.了解串行通信的基本原理;2.掌握串行接口芯片8251 或8250 的工作原理和编程方法。
二、实验仪器与材料1.Proteus 仿真软件2.PC 微机1 台三、实验内容根据上面提供的实验电路,补画U6,U8 两片电路缺少的连线。
然后根据自己画的连线图,为8086 编写汇编程序,实现利用8251 向超级终端(标号为GET)发送字符串,实现串行通讯。
字符串不少于20 个字符,内容自定。
四、实验提示1.8251初始化为异步通讯方式,1位停止位,无校验,8位数据,波特率因子为1。
2.超级终端也要设置的与8251相同(在超级终端图标上右击鼠标,选Edit……),其中的波特率可以自己设定,比如9600。
3.图上的时钟发生器用来为8251 提供发送/接收时钟,根据波特率,波特率因子,发送/接收时钟三者之间的关系,当波特率因子为1时,发送/接收时钟与波特率是相同的,因此,如果在第2步,你设置波特率为9600,那么时钟也要设定为9600Hz(图标上右击鼠标,选Edit……)。
4.U6(74HC138)和U8(8251A )的连线决定了8251占用的地址,请自己设定。
5.建议的程序流程图如下: 异步,1位停止位i ,无校验,8位数据,波特率因子为18251操作字 清除错误,能收能发 N五、实验预习要求 1.复习串行通信的特点和 8251 或 8250 的编程方法。
2.根据实验内容和实验提示编写实验程序。
六、实验习题与思考1. 若发送的字符进行偶校验,程序如何编写?;====================================================================; Main.asm file generated by New Project wizard;; Created: 周日 5月 24 2020; Processor: 8086; Compiler: MASM32;; Before starting simulation set Internal Memory Size; in the 8086 model properties to 0x10000;====================================================================开始 发完结束设定字符串指针设定计数初值 读 8251 状态字8251 控制字计数减一循环发送一个字符是否能发送YDATA SEGMENTDA1 DW 20HTABEL1 DB 'beijing university of technology' PTCON EQU 26HPTDATA EQU 24HDATA ENDSCODE SEGMENT PUBLIC 'CODE'ASSUME CS:CODE, DS:DATASTART:MOV AL, 00HMOV DX, PTCONOUT DX, ALOUT DX, ALOUT DX, ALMOV AL, 40HOUT DX, ALMOV AL, 7DH ; 模式控制字MOV DX, PTCONOUT DX, ALMOV AL, 37H ; 操作控制字OUT DX, ALMOV AX, DATAMOV DS, AXMOV DI, OFFSET TABEL1MOV CX, DA1NEXT:MOV DX, PTCON ; 查询TxRDY是否有效IN AL, DXAND AL, 01HJZ NEXT ; TXRDY=0,发送没准备好MOV DX, PTDATAMOV AL, [DI]OUT DX, ALINC DILOOP NEXTENDLESS:JMP ENDLESSCODE ENDSEND START2.若从超级终端接收一个字符(在超级终端的窗口键入一个字符),将接收到的字符的ASCII码加1,再发送回超级终端显示。
8251a有几个端口地址_对8251a进行初始化及流程
8251a内部结构框图8251A是一种可编程的通用同步/异步接收发送器,通常作为串行通信接口使用,被广泛应用Intel80X86为CPU的微型计算机中。
8251a有几个端口地址8251a有两个连续的端口地址,数据输入端口和数据输出端口合用同一个偶地址,而状态端口和控制端口合用同一个奇地址。
8251A初始化编程流程及程序例:8251A工作于异步方式,方式选择控制字为11111011B,工作命令控制字为00010001B。
其初始化程序为:
…
MOV AL,0FBH ;8251A方式选择字
OUT CONTR,AL
MOV AL,11H ;8251A操作命令字
OUT CONTR,AL
…
8251A的应用举例例:微机系统中两台微机之间进行双机串行通信的硬件连接和软件编程。
(1)要求
在甲乙两台微机之间进行串行通信,甲机发送,乙机接收。
要求把甲机上开发的应用程序(其长度为2DH)传送到乙机中去。
双方采用起止式异步方式,通信的数据格式为,字符长度为8位,2位停止位,波特率因子为64,无校验,波特率为4800。
CPU与8251A之间用查询方式交换数据,8251A的端口地址分配是:309H为命令/状态口,308H为数据口。
(2)分析
由于是近距离传输,因此可以不设MODEM,两台微机之间直接通过RS-232标准接口连接即可。
同时是采用查询I/O方式,故收/发程序中只需检查发/收准备好的状态是否置位,即可收发l个字节。
第七章终结篇——8251A的总结总算把这个第七章复习完了,我把剩下⼀点关于8251A的发上来吧本来在讲解8251A书本上还有关于RS232和串⼝通信的讲解,但是太浅了,就不放了,有兴趣的朋友可以⾃⾏参考其他⽂章串⾏通信芯⽚8251A有以下特点1. 可以⽤于同步或者异步传输,同步0-64kbps,异步0-19.2kpbs2. 同步传送的时候,5-8位/字符,可以⽤于内同步或者外同步,可⾃动插⼊同步字符3. 异步传送的时候,5-8位/字符,有1,2,1.5个停⽌位4. 完全双⼯,双缓冲发送和接受数据5. 具有出错检查,奇偶校验、溢出、和帧错误等检测电路好吧,为啥要这个8251A因为计算机内部都是并⾏传输数据的,但是长距离通信都是⽤的串⾏通信的(这些概念不太明⽩的不懂的朋友可以⾃⾏百度⼀下概念或者看看书)必须要个东西来转化⼀下82518251的内部结构内部结构包括接收器,发送器,读/写控制逻辑,数据总线缓冲器和调制解调控制电路五⼤部分接收器包括接收缓冲器,并⾏转换逻辑和接受控制电路三个部分接收缓冲器对外引脚为RxD,功能是从此引脚上接收串⾏数据,然后转换成并⾏数据,是由接受移位寄存器和接收数据缓冲器组成双缓冲结构接受控制电路是配合缓冲器⼯作的,作⽤如下1 .在异步⽅式下,芯⽚复位后,先检测输⼊信号中的有效1,⼀旦检测到到,就接着寻找有效的低电平来确定启动位2 消除假启动⼲扰3 对接收到的信息进⾏奇偶校验,并根据校验结果建⽴相应的状态位4 检测停⽌位,并按检测结构建⽴状态位发送器和接收器差不多,也是有发送缓冲器,发送控制电路和并串转换逻辑3个部分发送缓冲器上⾯接的是TxD脚,发送数据缓冲器和发送移位寄存器组成了发送的双缓冲结构,发送控制电路也是辅助发送缓冲器的,但是和接受的功能不⼀样发送控制电路作⽤如下1. 在异步⽅式下插⼊起始位,校验位和停⽌位2. 在同步⽅式下,插⼊同步字符,在数据中插⼊校验位数据总线缓冲器提供与8251A和CPU系统总线相连,在CPU执⾏输⼊输出操作的时候,进⾏数据交换或者读写命令读/写控制逻辑电路⽤来配合总线缓冲器⼯作1. 写信号WR#,把数据总线的信号(数据/控制字)写⼊8251A2. 读信号RD#,将状态/数据字发送到CPU(发到数据总线)3. 接收控制/数据信号C/D#,与读。
串行接口芯片8251A8251A基本功能⏹可用于同步和异步通信方式(通信方式通过对方式字编程实现):☐同步方式:波特率0-64Kbps,每个字符可为5~8位,可使用内部同步检测和外部同步检测,能自动插入同步字符。
☐异步方式:波特率0-19.2Kbps,每个字符可为5~8位,自动增加起始位、停止位和校验位。
时钟TxC,RxC的时钟频率为传输波特率的1,16和64倍。
⏹全双工,具有双缓冲器接收器和发送器;⏹出错检测,具有奇偶、溢出和帧错等检测电路。
8251A的内部结构8251A的内部结构主要包括:数据总线缓冲器、接收缓冲器、接收控制电路、发送缓冲器、发送控制电路、调制/解调控制电路、读/写控制逻辑电路等数据总线缓冲器发送缓冲器发送控制电路接收缓冲器接收控制电路D0~D7SYNDETRxDRxRDY读写控制电路C / DCLKRESETRDWRCSDSRCTSDTRRTSRxCTxCTxETxRDYTxD调制解调控制电路内部总线8251A的内部结构⏹发送器:包括发送缓冲器和发送控制电路☐采用异步方式时,则由发送控制电路自动在其首尾加上起始位、奇偶校验位和停止位,然后从起始位开始,经移位寄存器从数据输出线TxD逐位串行输出。
发送速率取决于TxC接收的发送时钟频率,可以编程定义是发送速率的1、16、64倍。
8251A的内部结构☐采用同步方式,则在发送数据之前,发送器将自动送出1个或2个同步字符,然后才逐位串行输出数据。
◆如果CPU与8251A之间采用中断方式交换信息,那么TxRDY可作为向CPU发出的中断请求信号,表示发送缓冲器已空,可以接收CPU下一个数据。
◆当发送器中的8位数据串行发送完毕时,由发送控制电路向CPU发出TxE有效信号,表示发送器中移位寄存器已空。
8251A的内部结构⏹接收器:包括接收缓冲器和接收控制电路从RxD引脚上接收串行数据转换成并行数据后存入接收缓冲器。
☐异步方式:在RxD线上检测低电平,将检测到的低电平作为起始位,8251A开始进行采样,完成字符装配,并进行奇偶校验和去掉停止位,变成了并行数据后,送到数据输入寄存器,同时发出RxRDY信号送CPU,表示已经收到一个可用的数据。
8251实验报告8251实验报告引言:在计算机科学领域,串行通信是一种常见的数据传输方式。
为了实现串行通信,我们需要使用串行通信接口芯片。
8251是一种常用的串行通信接口芯片,本实验旨在通过对8251的实验研究,深入了解串行通信的原理和应用。
一、实验目的本实验的主要目的是掌握8251的工作原理和使用方法,了解串行通信的基本概念和应用场景。
二、实验原理8251是一种通用的串行通信接口芯片,它可以实现计算机与外部设备之间的串行数据传输。
该芯片具有发送和接收两个功能模块,通过与计算机的接口进行数据交换,实现串行通信的功能。
三、实验步骤1. 连接实验所需设备:将8251芯片与计算机、外部设备进行连接,确保电路连接正确无误。
2. 配置8251芯片:通过设置芯片的控制寄存器,配置芯片的工作模式和参数。
3. 编写测试程序:使用汇编语言编写测试程序,通过向8251芯片发送数据,观察数据的接收情况。
4. 运行测试程序:将编写好的测试程序加载到计算机中,运行程序并观察结果。
5. 分析实验结果:根据实验结果,分析8251芯片的工作状态和数据传输情况。
四、实验结果与分析经过实验测试,我们可以观察到数据的发送和接收情况。
通过分析实验结果,我们可以了解到8251芯片的工作状态和数据传输的效果。
如果数据能够正确发送和接收,说明8251芯片的工作正常;如果数据发送或接收出现错误,可能是芯片配置错误或者电路连接有问题。
五、实验总结通过本次实验,我们深入了解了8251芯片的工作原理和使用方法,掌握了串行通信的基本概念和应用场景。
实验过程中,我们遇到了一些问题,但通过分析和解决,最终成功完成了实验目标。
通过实验,我们不仅提高了对8251芯片的理解,还加深了对串行通信的认识。
六、实验改进在实验过程中,我们发现一些可以改进的地方。
首先,我们可以尝试使用不同的测试程序,测试不同的数据传输情况,以获得更全面的实验结果。
其次,我们可以进一步研究8251芯片的高级功能和应用,拓展实验的深度和广度。