微机原理上课可编程串行接口8251a_第1页
微机原理上课可编程串行接口8251a_第2页
微机原理上课可编程串行接口8251a_第3页
微机原理上课可编程串行接口8251a_第4页
微机原理上课可编程串行接口8251a_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

5.5可编程串行接口8251A一、概述二、8251A的基本性能三、8251A的基本工作原理四、8251A的对外信号五、8251A的初始化六、8251A的编程举例一、概述串行通信涉及的几个问题串行接口串行通信的物理标准(一)串行通信涉及的几个问题1.全双工方式和半双工方式

全双工——接口对接收信息和发送信息使用不同的通路。

半双工——输入过程和输出过程使用同一通路。2.同步方式和异步方式

同步方式——将许多字符组成一个信息组,在每组信息的开始加上同步字符。

异步方式——两个字符之间的传输间隔是任意的,在每个字符的前后都要用一些数位来作为分隔位。异步通信时的标准数据格式:起始位5到8个字符位1到0的跳变作为新字符的开始最低位最高位可选的奇偶校验位字符之间的间隔1,11/2或2个停止位标识符(二)串行接口

状态寄存器

控制寄存器数据输入寄存器数据输出寄存器串行输入/并行输出并行输入/串行输出CSA0数据总线收发器联络信号逻辑中断请求读写地址译码来自地址总线控制串行输入串行输出发送时钟接收时钟(三)串行通信的物理标准1.波特率

指每秒钟传输的数据位数。2.RS-232-C标准

该标准对信号电平标准、控制信号的定义作了规定。接口MAX232或FC232TTL输入TTL输出RS-232-C输入RS-232-C输出RS-232-C对信号电平的规定:RS-232-C接口采用负逻辑规定逻辑电平,将-5V~-15V规定为逻辑“1”,+5V~+15V规定为逻辑“0”,因此TTL电平与RS-232-C的电平需要转换。常用串行通信转发器FC232,或MAX232实现。两台计算机通过电话网相连接的结构:RS-232-C控制着DCE和DTE之间的通信。近距离的计算机通信可直接通过RS-232-C连接,此时可认为电缆是虚拟的传输器DCE。DTE:(DataTerminalEquipment)DCT:(DataCommunicationEquipment)公用电话网MODEMDCEMODEMDCE主机ADTE主机ADTE二、8251A的基本性能(1)既可以工作在同步方式也可以工作在异步方式。(2)同步方式:5~8位/字符;可以用外部同步,也可以内部自动检测同步字符而实现内同步;可以自动插入同步字符。(3)异步方式:5~8位/字符;时钟速率为波特率的1、16、64倍;能选择1位、1.5位或2位停止位;可检查假启动位;可产生中止字符;也能自动检测和处理中止字符。二、8251A的基本性能(4)波特率:同步方式下,0~64K,异步方式下,0~19.2K。(5)完全双工作,具有双缓冲的发送器和接收器。(6)具备奇偶校验、溢出和帧错误检测等功能电路。(7)全部输入输出电路是TTL电平。三、8251A的基本工作原理 1、编程结构

2、功能结构

3、8251A的发送和接收1.编程结构

模式寄存器同步字符寄存器同步字符寄存器

控制寄存器接收移位寄存器数据输入缓冲器数据输出缓冲器发送移位寄存器状态寄存器8286(可选)延迟译码电路IO/MABDBCBCLKD7~0RDWRCSRESETRxRDYTxRDYC/DVccGNDRxDTxETxDDSRDTRCTSRTSSYNDETRxCTxC2.功能结构数据总线缓冲器

读/写控制逻辑电路

调制/

解调控制电路

发送缓冲器并串转换

接收缓冲器串并转换接收控制电路发送控制电路RESETCLKC/DRDWRCSD7~D0DSRDTRCTSRTSTxDTxRDYTxETxCRxDRxRDYRxCSYNDET四、8251A的对外信号对外信号分两组:8251A和CPU之间的信号8251A和外部设备之间的信号首先看一下8251A的引脚图。8251A的引脚图:123456789101112131428272625242322212019181716158251AD2D3RXDGNDD4D5D6D7TXCWRCSC/DRDRXRDYD1D0VccRXCDTRRTSDSRRESETCLKTXDTXEMPTYCTSSYNDET/DBTXRDY8251A与CPU及外设的连接:8251A8086译码电路CLKD7~D0TxRDYTxERxRDYSYNDETRESETM/IOABA1CSC/DRDWR外设计数器/定时器TxCRxCDTRDSRRTSCTSTxDRxD1.8251A和CPU之间的连接信号8251A和CPU之间的连接信号可分4类:

(1)片选信号!CS

(2)数据信号D7~D0

(3)读/写控制信号!RD、!WR、C/!D!CSC/!D!RD!WR具体的操作0001CPU从8251A输入数据0010CPU往8251A输出数据0101CPU读取8251A的状态0110CPU往8251A写入控制命令(4)收发联络信号TxRDY—发送器准备好信号。用来告诉CPU,8251A已经准备好发送一个字符。TxE—发送器空信号。用来表示此时8251A发送器中并行到串行转换器空,它实际上指示了一个发送动作的完成。RxRDY—接收器准备好信号。用来表示当前8251A已经从外部设备或调制解调器接收到一个字符,正等待CPU来取走。(4)收发联络信号SYNDET—同步检测信号。SYNDET工作在输入还是输出状态,取决于8251A工作在内同步情况还是外同步:内同步:SYNDET作输出端,如果8251A检测到了所要求的同步字符,则SYNDET便变为高电平,用来表明8251A当前已经达到同步。

外同步:SYNDET作输入端,从这个输入端进入的一个正跳变,会使8251A在RxC的下一个下降沿时开始装配字符。2.8251A与外设之间的连接信号8251A与外设之间的连接信号分两类: (1)收发联络信号

DTR-数据终端准备好信号,8251A

外设。

DSR-数据设备准备好信号,外设

8251A。

RTS-请求发送信号,8251A

外设。

CTS-清除请求发送信号(准许发送),

外设

8251A。 (2)数据信号

TxD-发送器数据信号端

RxD-接收器数据信号端五、8251A的初始化1.端口地址:2个偶地址:完成数据的读/写

奇地址:完成对状态R的读出以及对控制、模式和同步字符R的写入。五、8251A的初始化2.初始化(有关约定)(1)芯片复位以后,第一次用奇地址端口写入的值作为模式(方式)字进入模式(方式)寄存器。(2)如果模式字中规定了8251A工作在同步模式,那么,CPU接送往奇地址端口输出的1个或2个字节就是同步字符。(3)之后,只要不是复位命令,由奇地址端口写入的值将作为控制(命令)字送到控制R,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。流程图见下页复位操作输出模式(方式)字同步方式两个同步字符复位传送完输出第一个同步字符Y输出控制(命令)字N输出第二个同步字符YNY传送数据NNY3.模式寄存器格式D7D6D5D4D3D2D1D0D7D6EPPENL2L1B2B1D6(ESD)同步方式0:内同步,SYNDET为输出1:外同步,SYNDET为输入D7(SCS)同步字符的数目0:2个同步字符1:1个同步字符同步S2S1停止位数

00无效

011个

1011/2个

112个Y

波特率因子00同步模式01异步(1)10异步(16)11异步(64)

字符长度005位016位107位118位校验允许:1-允许,0-禁止奇/偶:1-偶,0-奇注:TxC(RxC)的时钟频率=波特率因子×波特率4.控制寄存器的格式D7D6D5D4D3D2D1D0EHIRRTSERSBRKRxEDTRTxEN进入搜索方式1-允许搜索同步字符内部复位1-使8251A返回到模式命令格式请求发送1-迫使RTS输出为“0”错误标志复位1-使全部错误标志PE、OE、FE复位发送允许1-允许0-禁止数据终端准备好1-使DTR输出为0接收允许:1-允许

0-禁止发送终止字符1-迫使TxD低电平0-正常工作5.状态寄存器的格式D7D6D5D4D3D2D1D0DSRSYNDETFEOEPETxERxRDYTxRDY数据设备准备好1-DSR引脚为低电平帧错误(FramingError)

只用于异步方式,当在任一字符的结尾没有检测到有效的停止位时,这个标志置位。这个标志由控制R的ER位复位。出现帧错误并不禁止8251A工作除TxRDY,与管脚定义相同奇偶错误(ParityError)

当检测到奇偶错误时使该位置位,由控制R的ER位复位。奇偶错误不禁止8251A工作。溢出错误(OverrunError)

在下一个输入字符变为可用前,CPU没有把字符读走,OE标志置位。它由控制R的ER位复位。此标志并不禁止8251A工作,但发生此错误时上一个字符已丢失。注:引脚TxRDY必须在数据缓冲器空,CTS为低电平且TxEN为高电平时,才为1,即TxRDY=数据缓冲区空•CTS•TxEN六、8251A的编程举例设异步方式,波特率因子16,用7个数据位,2个停止位,偶检验端口地址:F0H,F2H。(AB的A1接8251A的C/!D端,CPU为8086)模式寄存器:11111010B=FAH控制寄存器:00110111B=37H程序开始由控制口送三次0,一次40H,作为复位。然后进行8251A的初始化。例1:利用查询方式进行检测,异步发送数据

256个。程序清单:;复位

MOVAL,00H

OUT0F2H,AL CALLDELAY MOVAL,00H

OUT0F2H,AL

CALLDELAY MOVAL,00H

OUT0F2H,AL

CALLDELAY MOVAL,40H

OUT0F2H,AL

CALLDELAY;初始化

MOVAL,0FAH

OUT0F2H,AL MOVAL,37H

OUT0F2H,ALLEABX,BUFFER

MOVCX,100HAG:INAL,0F2H

TESTAL,01H

JZAGMOVAL,[BX]

OUT0F0H,ALINCBX

LOOPAG例2:串行数据测试(连续发送“7”,供测量波形)8251RxCTxCTxRDYRxRDY8259IR41.8432MHzOUT18253CLK程序:;8253初始化(40H,41H,42H,43H)MOV AL,76H

OUT 43H,ALMOV AL,30H

OUT 41H,ALMOV AL,00H

OUT 41H,AL;8251复位(C0H,C1H)MOV AL,00H

OUT 0C1H,AL

CALL DELAYOUT 0C1H,AL

CALL DELAYOUT 0C1H,AL

CALL DELAYfclk=1.8432MHz波特率=2400波特率因子=16收发时钟频率=2400*16

=38400时间常数=fclk/收发时钟频率=48=30H程序:(续) MOV

AL,40H

OUT

0C1H,AL

CALL

DELAY;8251初始化

MOV

AL,7AH

OUT

0C1H,AL

CALL

DELAY MOV

AL,31H

OUT

0C1H,AL

CALL

DELAY;发送数据NEXT:MOV

AL,37H

OUT

0C0H,AL JMP NEXT功能:连续发7到串口输出DELAY: PUSH CX

MOV CX,3000H

KK: LOOP KK

POP CX

RET例:异步接收数据的例子D7~D0CSC/DRDWRRESET

8251TxDDTRRxDDSRCLKRxDDSRTxDDTR译码D7~D0IOABA1IORIOWRESET8086CPUMax232Max232OUT2CLK28MHzTxCRxC续:计算机通过8251A接收和发送数据。8251A的收发时钟由8253的通道2供给。端口地址0F0H,0F2H。8251A的信号为TTL电平。与RS-232-C的串行设备连接时,需要转换成RS-232-C电平,这里用max232来完成工作。在使用8251A进行数据传送前,先对8251A进行初始化编程。程序清单:

LEA BX,BUFFER MOV AL,0 MOV CX,3LP1: CALLOUTCHAR;输出0到0F2H口

LOOPLP1 ;重复3次

MOV AL,40H

;复位字送AL CALLOUTCHAR;送8251 MOV AL,0FAH;模式字=11111010B OUT 0F2H,AL;输出方式指令

MOV AL,37H;控制字=00110111B OUT 0F2H,AL;输出命令指令

MOV CX,100H;字符计数LP2: IN AL,0F2H;读8251A状态字

TEST AL,02H JZ LP2;如果RxRDY=0,继续测试(续:)

IN

AL,0F0H;从8251A读一字符

MOV

[BX],AL;保存该字符

INC BX;修改指针

IN AL,0F2H;读状态字

TEST

AL,38H JNZ ERROR;如果有错,去ERROR LOOP

LP2;重复100次

JMP

EXITOUTCHAR:OUT

0F2H,AL;输出到0F2H口

PUSH

CX

;推入堆栈

MOV

CX,10HDELAY:LOOP

DELAY

;等待输出结束

POP

CX RETERROR:……EXIT: ……例:利用中断方式进行异步发送数据256个。设异步方式,波特率因子16,用7个数据位,2个停止位,偶检验端口地址:0C0H,0C1H。(AB的A0接8251A的C/!D端,CPU为8088)方式寄存器:11111010B=FAH命令寄存器:00110111B=37H程序开始由控制口送三次0,一次40H,作为复位。然后进行8251A的初始化。TxRDY接在8259A的IRQ4,中断类型码为0CH,故中断矢量表的地址为0CH×4=0030H。程序清单:;填中断矢量

MOVWORDPTR[0030H],INT_IP

MOVWORDPTR[0032H],INT_CS;8253初始化(40H,41H,42H,43H)MOV AL,76H

OUT 43H,AL

MOV AL,30H

OUT 41H,AL

MOV AL,00H

OUT 41H,AL程序清单:;8251A复位(端口地址C0H、C1H)

MOV

AL,00H

OUT0C1H,AL

CALL

DELAY

MOV

AL,00H

OUT

0C1H,AL

CALL

DELAY

MOV

AL,00H

OUT

0C1H,AL

CALL

DELAY

MOV

AL,40H

OUT

0C1H,AL

CALL

DELAY;8251A初始化

MOV

AL,0FAH

OUT

0C1H,AL

CALL

DELAYMOV

AL,37H

OUT

0C1H,AL

CALL

DELAY;修改OCW1

IN

AL,21H

AND

AL,0EFH

OUT

21H,ALSTIMO

温馨提示

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

评论

0/150

提交评论