简述8251a的编程结构
8255A、8251A的原理及应用

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

可编程串行通信接口芯片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。
第二部分是数据格式转换部分,包括发送缓冲器、并行数据到串行数据转换的发送移位器,接收缓冲器和串行数据到并行数据转换的接收移位器,以及发送控制电路和接收控制电路。
可编程串行通信接口芯片8251A

2
1.1 8251A内部逻辑与工作原理
• 8251A的结构框图如图1.1所示,可分五个主要部分:数据总线缓冲器、接收缓冲器、 发送缓冲器、读/写控制逻辑电路和调制解调控制电路。
• 2.命令控制字:设置为00110111B(即37H),置引脚、有效,出错标志复位,允许发送和接收 (虽然本例只是接收,但8251A作为串行通信接口,通常同时具有发送和接收功能,只是本例仅编 写输入部分程序而已),写入控制端口,端口地址为71H。
• 3.状态字:检测状态字D1位的RXRDY,若RXRDY=1,说明已接收一个完整字符,可以读取。读 取一个字符后,还要确定接收的字符是否正确,方法是检测状态字的D5D4D3位(帧错、溢出错、 奇偶错),相应位为1表明出现对应的错误,需要进行错误处理。
3
8251A的结构框图
4
(1)数据总线缓冲器
• 数据总线缓冲器是三态双向8位缓冲器,它是8251A与微机系统数据总线的接口,数 据、控制命令及状态信息均通过此缓冲器传送。它含有命令寄存器、状态寄存器、 方式寄存器、两个同步字符寄存器、数据输入缓冲器和数据输出缓冲器。
5
(2)发送缓冲器
• 发送缓冲器的功能是接收CPU送来的并行数据,按照规定的数据格式变成串行数据 流后,由TXD输出线送出。
15
• 1.方式选择控制字:根据题意,方式选择控制字为11111010B(即FAH),写入控 制端口,端口地址为201H。
• 2.命令控制字:设置为00110111B(即37H),允许发送和接收,写入控制端口, 端口地址为201H。
可编程串行接口芯片8251A

停止位位数
图9.13 方式指令字各位含义
校验类型:1 偶校验;0 奇校验 S2 S1 00 0 1 1b 1 0 1.5b 1 1 2b
Hale Waihona Puke 1.3 8251A的编程接口技术
B2、B1位表示收发时钟与波特率的关系。
如当B2、B1置为10时,假设收发时钟频率为 19.2KHz,则表示8251A为异步方式,且波特 率为1200。
1.3 8251A的编程
接口技术
对8251A的编程是指由CPU写入控制字(包 括方式指令字和命令指令字)和读/写收发数 据,实现对8251A的各种工作方式以及工作进 程的控制。
8251A的编程包括初始化编程和收发数据过程 的编程两部分。
1.方式指令字
8251A方式指令字各位的定义如图9.13所示。
L2、L1指定串行异步通信中每个字符数据的 位数,可以在5~8位之间选择。
PEN位用来选择是否需要奇偶校验位。
EP位用来选择奇校验或偶校验,若EP=1, 则进行偶校验;若EP=0,则进行奇校验。
1.3 8251A的编程
接口技术
S2、S1用来指定异步方式下的停止位的位数, 可以选择1、1.5或2位。 在 同 步 方 式 ( B2、B1=00), 则 S1=1 为 外 同步,
1.3 8251A的编程
接口技术
1.方式指令字
8251A方式指令字各位的定义如图9.13所示。
D7 D6 D5 D4 D3 D2 D1 D0 S2 S1 EP PEN L2 L1 B2 B1
波特率因子
字符长度
B2 B1 00同步 011 1 016 1 164
L2 L1 005b 016b 107b 1 18b
8251芯片

可编程通信接口8251A(USART)1.8251A的基本结构8251A的基本结构包括5个功能模块(1)数据总线缓冲器——用于暂存接收,发送数据,CPU发来的命令及8251的工作状态。
(2)读/写控制逻辑——接收来自CPU控制总线的控制信号,控制数据的传送方向。
(3)接收器——从接收数据线RXD上接收串行数据,按指定方式将其转换成并行数据。
(4)发送器——接收CPU送来的并行数据,按指定方式将其转换成串行数据通过发送数据线TXD发送出去。
(5)调制解调器控制电路——提供4个通用的控制信号,即(数据终端准备好),(数据设备准备好),(请求发送)和(准许发送),以备8251A与外设联络。
2.8251A的工作过程(1)8251A发送数据的过程①当发送缓冲器为空时,信号TXRDY有效(或状态字的D0=1),以示发送器准备好,等待CPU送入数据。
②CPU将要发送的数据写入8251A的发送缓冲器;③发送的数据进行“并→串”转换;④插入起始位、奇/偶位和停止位或同步字符等,数据一位一位从TXD端串行输出。
(2)8251A接收数据的过程①在RXD端检测到起始位或同步字符;②开始在RXD线上采集数据;③将接收到的数据“串→并”转换,并进行奇偶校验和检查错误;④将采样到的、经过变换的8位数据由接收缓冲器送入数据总线缓冲器;⑤信号RXRDY有效(或状态字的D1=1),以示8251A已接收到一个数据,待CPU读取。
3.8251A的初始化在如前面已经强调过的,在使用可编程接口之前必须进行初始化,即在使用8251A进行数据传输前,对其进行编程,将相关方式指令字、命令指令字写入8251A。
8251A初始化的具体步骤如图7-3所示。
图7-3 8251A 初始化流程图4. CPU 对8251A 的操作和控制8251A 有两个端口地址,偶地址为输入/输出数据端口地址,奇地址为控制/状态端口地址。
引脚线C/与A 0连接:A 0=0,访问输入/输出数据端口A 0=1,访问控制/状态端口控制信号:、、C/、合成对8251A 的操作如表7-1所示。
可编程串行通信接口芯片8251A

逻辑低电平为+3V~+15V
逻辑高电平为-3V~-15V 实际常用±12V或±15V
相互转换
标准TTL电平 低电平:0V~0.8V 高电平:+2V~+5V
Page 16
RS-232C的引脚定义
RS-232C是一种标准接口,D型插座,采用25芯引 脚或9芯引脚的连接器,如图所示。
Page 5
1.串行数据传送方式
串行通信数据传送方式分为:单工通信方式、半双工通信 方式和全双工通信方式。 ⑴单工通信方式 传输的线路用一根线,通信的数据只允许按照一个固定的 方向传送。如图:只能从A站点传送到B站点。 A T B R
例: 单工通信类似无线电广播,电台发送信号,收音机 接收信号,收音机永远不能发送信号。
…
1
起始位——每个字符开始传送的标志,起始位 数据位——数据位紧跟着起始位传送。由5~8 校验位——用于校验是否传送正确;可选择奇 停止位——表示该字符传送结束。停止位采用 空闲位——传送字符之间的逻辑1电平,表示 采用逻辑0电平 个二进制位组成,低位先传送 检验、偶校验或不传送校验位 逻辑1电平,可选择1、1.5或2位 没有进行传送
收、发双方取得同步的方法是采用在字符格式中设置起始 位和停止位。
在一个有效字符正式发送前,发送器先发送一个起始位, 然后发送有效字符位,在字符结束时再发送一个停止位, 起始位至停止位构成一帧。
Page 9
异步通信数据格式
字符 数据位
起始位
校验位停止位 空闲位 0/1 0/1 1 1 高位
1
0
0/1 0/1 低位
Page 6
⑵半双工通信方式
传输的过程中依然用一根线连接,在某个时刻,只能迚行
程序控制输入输出8251

(2)操作命令控制字 操作命令控制字可使825lA处于预先规定的工作状态,操作命令控制字说明: (1) TxEN:允许发送/屏蔽发送的控制端。 (2) DTR:DTR位置1,表示CPU已经准备好接收数据。 (3) RxE:允许接收/屏蔽接收的控制端。 (4) SBRK:该位发送断缺字符,正常通信过程中,SBRK应保持为0。 (5) ER:ER=1清除奇偶出错、溢出出错和帧校验出错标志。 (6) RTS:该位是请求发送信号。 (7) IR:该位为内部复位信号,迫使8251回到方式选择控制字状态。 (8) EH:该位只对同步方式有效。EH=1时,表示开始搜索同步字符。
图2-4-45 8251A初始化编程框图
2)异步方式的编程
设在某8086系统中有一片8251A,其占用的端口地址分别为1A0H和 1A2H,并要求其工作方式选择为:异步通信,字符用7位二进制数表示 ,奇校验,2位停止位,波特率因子为64。对其工作状态的要求是:使发 送允许TxEN有效,使接收允许RxE有效,使数据终端准备好信号有效,复 位出错标志,将请求发送信号置于有效电平。 分析:其方式选择控制字应该为DBH,操作命令控制字应该为37H。
CS
DSR
接收缓冲器
RxD
DTR
CTS RTS
调制解调器 接收控制
RxRDY RxC SYNDET /BRKDET
微型机原理与程序设计
图2-4-29 8251A内部结构框图
1)数据总线缓冲器 数据总线缓冲器是三态双向8位缓冲器,它使825lA与系统数据总线 连接起来。它含有数据缓冲器和命令缓冲器。 2)接收器 接收器的功能是接收在RxD脚上的串行数据并按规定的格式把它转 换为并行数据,并存放在数据总线缓冲器中。 3)发送器 在同步方式中,发送器在准备发送的数据前面先插入由初始化程序 设定的一个或两个同步字符,在数据中,插入奇偶校验位。然后,在发 送时钟TxC的作用下,将数据一位一位地由TxD引脚发送出去。 在异步方式中,发送器先在串行数据字符前面加上起始位,并根据 约定的要求加上校验位和停止位,然后在发送时钟TxC的作用下,由TxD 脚一位一位地串行发送出去。
8251A可编程通信接口

3.
8251A可编程通信接口的结构与编程 Intel 8251A可编程通信接口的结构与编程
8251A主要引线信号说明: 8251A主要引线信号说明: 主要引线信号说明
Ready):本方准备好 输出。 本方准备好, DTR#(Data Terminal Ready):本方准备好,输出。 对方准备好,输出。 DSR#(Data Set Ready): 对方准备好,输出。 8251A与通信对方的另一对联络信号 与通信对方的另一对联络信号。 8251A与通信对方的另一对联络信号。 串行数据发送,输出,串行通信线。 TxD: 串行数据发送,输出,串行通信线。 串行数据接收,输入,串行通信线。 RxD: 串行数据接收,输入,串行通信线。 发送器准备好,输出,表明8251的状态。 8251的状态 TxRDY: 发送器准备好,输出,表明8251的状态。 发送缓冲器空,输出,表明8251的状态。 8251的状态 TxEMPT: 发送缓冲器空,输出,表明8251的状态。 接收器准备好,输出,表明8251的状态。 8251的状态 RxRDY: 接收器准备好,输出,表明8251的状态。 接收发送的时钟,一般用同一脉冲源。在异步方式下, TxC,RxC: 接收发送的时钟,一般用同一脉冲源。在异步方式下, 此频率为波特率的若干倍(波特率因子) 此频率为波特率的若干倍(波特率因子);在同步方式下 此频率与波特率相同。 此频率与波特率相同。 同步检测/断路检测,双向。 SYNDET/BRKDET: 同步检测/断路检测,双向。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简述8251a的编程结构
是一种通用异步收发器,也是一种串行通信接口芯片。
它可以实现数据的收发、控制、同步等功能。
在计算机通信领域中,8251A 被广泛应用于串行通信接口的设计中。
8251A的编程结构可以分为两部分,分别是控制寄存器和状态寄存器。
控制寄存器用于设置串行通信的参数,状态寄存器则用于反映串行通信的状态。
控制寄存器的结构如下:
| 位数 | 功能 | 说明 |
| ---- | ---- | ---- |
| 7 | DLAB | 波特率发生器访问位 |
| 6 | SB | 停止位数 |
| 5 | PE | 奇偶校验使能 |
| 4 | PM | 奇偶校验模式 |
| 3 | SM | 串行模式选择 |
| 2 | 2 | 保留 |
| 1 | 1 | 保留 |
| 0 | 1 | 保留 |
其中,DLAB位用于选择波特率发生器的访问,SB位用于选择停止位的数量,PE位用于使能奇偶校验,PM位用于选择奇偶校验模式,SM位用于选择串行通信的模式。
状态寄存器的结构如下:
| 位数 | 功能 | 说明 |
| ---- | ---- | ---- |
| 7 | FE | 帧错误 |
| 6 | OR | 溢出错误 |
| 5 | PE | 奇偶校验错误 |
| 4 | TB | 发送缓冲器空 |
| 3 | RB | 接收缓冲器满 |
| 2 | DSR | 数据终端就绪 |
| 1 | CTS | 清除发送 |
| 0 | RI | 接收到的数据 |
其中,FE位用于表示帧错误,OR位用于表示溢出错误,PE位用于表示奇偶校验错误,TB位用于表示发送缓冲器是否为空,RB位用于表示接收缓冲器是否已满,DSR位用于表示数据终端是否就绪,CTS 位用于表示清除发送,RI位用于表示接收到的数据。
在使用8251A进行串行通信时,需要对控制寄存器和状态寄存器进行编程。
具体步骤如下:
1. 设置波特率:首先要设置波特率,可以通过设置波特率发生器的值来实现。
在设置波特率时,需要先将DLAB位设置为1,然后再向数据寄存器中写入波特率发生器的值。
2. 设置数据格式:接下来需要设置数据格式,包括数据位数、奇偶校验、停止位数等。
可以通过设置控制寄存器的SB、PE、PM等位来实现。
3. 发送数据:在发送数据时,需要先判断发送缓冲器是否为空,如果为空,则可以向发送缓冲器中写入数据。
写入数据后,可以通过检测状态寄存器的TB位来判断发送缓冲器是否已满。
4. 接收数据:在接收数据时,需要先判断接收缓冲器是否已满,如果已满,则可以从接收缓冲器中读取数据。
读取数据后,可以通过检测状态寄存器的RB位来判断接收缓冲器是否已空。
总之,8251A的编程结构比较简单,只需要设置控制寄存器和读取状态寄存器即可实现串行通信的功能。
在实际应用中,需要根据具体的需求进行编程,才能实现更加灵活、高效的通信。