《微机原理第八章--8251讲解》由会员分享,可在线阅读,更多相关《微机原理第八章--8251讲解(34页珍藏版)》请在人人文库网上搜索。
1、8 84 4 串行通信及串行接口串行通信及串行接口 8.4.1 8.4.1 串行通信线路的工作方式串行通信线路的工作方式 串行通信指的是数据一位一位地依次传输,串行通信指的是数据一位一位地依次传输, 每一位数据占据一个固定的时间长度。每一位数据占据一个固定的时间长度。 串行通信线路有如下串行通信线路有如下3 3种方式:种方式: (1 1)单工通信:它只允许一个方向传输数据。)单工通信:它只允许一个方向传输数据。 (2 2)半双工通信:它允许两个方向传输数据,)半双工通信:它允许两个方向传输数据, 但不能同时传输,只能交替进行。但不能同时传输,只能交替进行。 (3 3)全双工通信:它允许两个方向。
2、同时进行数)全双工通信:它允许两个方向同时进行数 据传输。单工、半双工、全双工通信如下图据传输。单工、半双工、全双工通信如下图 所示。所示。 发送发送 发送发送 发送发送 发送发送 发送发送 接收接收 接收接收 接收接收 接收接收 接收接收 (a a)单工通信)单工通信 (b b)半工通信)半工通信 (c c)全工通信)全工通信 图图8-21 8-21 串行通信线路的三种连接方式串行通信线路的三种连接方式 串行通信的特点:串行通信的特点: 串行通信只要一条传输线,将数据逐位顺序传送;串行通信只要一条传输线,将数据逐位顺序传送; 通信成本低,速度慢,接口复杂。通信成本低,速度慢,接口复杂。 8.。
3、4.28.4.2串行接口串行接口 发送缓冲器发送缓冲器 接收缓冲器接收缓冲器 并串变换寄存器并串变换寄存器串并变换寄存器串并变换寄存器 . . 通信线路通信线路 C P UC P U 发送数据发送数据 C P UC P U 接收数据接收数据 . 发送发送 时钟时钟 接收接收 时钟时钟 发送发送 控制控制 接收接收 控制控制 发送器发送器接收器接收器 串行接口电路的功能:其一,把并行数据串行接口电路的功能:其一,把并行数据 变成串行数据进行传输;其二,把接收串行变成串行数据进行传输;其二,把接收串行 数据转换为并行数据。数据转换为并行数据。 8.4.28.4.2串行接口串行接口 串行接口有许多种。
4、类,串行接口包括串行接口有许多种类,串行接口包括 4 4个主要寄存器:个主要寄存器:控制寄存器、状态寄存控制寄存器、状态寄存 器、数据寄存器、数据输入寄存器及数器、数据寄存器、数据输入寄存器及数 据输出寄存器。据输出寄存器。 控制寄存器用来接收控制寄存器用来接收CPUCPU发送的各发送的各 种控制命令,以决定其工作方式。状态种控制命令,以决定其工作方式。状态 寄存器其状态位用来指示当前传输状态。寄存器其状态位用来指示当前传输状态。 数据输入寄存器是和串行输入数据输入寄存器是和串行输入/ /并行输出并行输出 移位寄存器配对使用的。移位寄存器配对使用的。 数据总线数据总线 收发器收发器 联络信号联。
5、络信号 逻辑逻辑 地址译码地址译码 状态寄存器状态寄存器 控制寄存器控制寄存器 数据输入寄存器数据输入寄存器 串行输入串行输入/并行输出并行输出 并行输入并行输入/串行输出串行输出 数据输出寄存器数据输出寄存器 发送时钟发送时钟接收时钟接收时钟 图图 串行接口典型结构串行接口典型结构 串行输入串行输入 串行输出串行输出 控制控制 来自地址总线来自地址总线 中断请求中断请求 读读 写写 CS A0 8.4.3 串行通信数据的收发方式串行通信数据的收发方式 串行通信:异步串行通信和同步串行通信。串行通信:异步串行通信和同步串行通信。 异步通信:一个字符为单位,以起始位开始,异步通信:一个字符为单位。
6、,以起始位开始, 停止位结束。收发时钟可不一致。停止位结束。收发时钟可不一致。 同步通信:以一个字符序列为单位(长度可同步通信:以一个字符序列为单位(长度可 选),以同步字符开始。收发时钟一致。选),以同步字符开始。收发时钟一致。 传送速率:每秒钟传送的位数,其单位为波传送速率:每秒钟传送的位数,其单位为波 特率。特率。 b/ s = 收收/发时钟发时钟 n n:波特率因子:波特率因子,(可取可取 1, 16, 64) 波特率与发送波特率与发送/ /接收时钟的关系为接收时钟的关系为: : 空闲空闲 起始位起始位 . 5858数据位数据位 1/0 01 较验位较验位 停止位停止位 11 空闲空闲。
7、 起始位起始位 1 1异步通信方式异步通信方式 异步通信的数据格式是以一组不定异步通信的数据格式是以一组不定“位数位数” 数组成。第数组成。第1 1位起始位,低电平;接着传送若位起始位,低电平;接着传送若 干个数据位,先发低位,后发高位;最后是停干个数据位,先发低位,后发高位;最后是停 止位,宽度可以是止位,宽度可以是1 1位,位,1.51.5位或位或2 2位;在两个位;在两个 数据组之间可有空闲。其数据格式如图所示。数据组之间可有空闲。其数据格式如图所示。 标准波特率:标准波特率: 300300,600600,900900,12001200,24002400,48004800,9600960。
8、0,1920019200。 图图 异步通信的数据格式异步通信的数据格式 1/01/0 1/0 SYNC SYNC 数据字节数据字节1 1 数据字节数据字节2 2 数据字节数据字节N CRCN CRC1 1 CRC CRC2 2 帧 (a a)单同步)单同步 SYNC SYNC SYNC SYNC 数据字节数据字节1 1 数据字节数据字节N CRCN CRC1 1 CRC CRC2 2 帧帧(b)双同步)双同步 数据字节数据字节1 1 数据字节数据字节2 2 数据字节数据字节N CRCN CRC1 1 CRC CRC2 2 帧帧 (c)外同步)外同步 图图 面向字符型同步通信数据格式面向字符型同。
9、步通信数据格式 2 2 同步通信方式同步通信方式 同步通信方式:面向字符同步通信和面 向比特同步通信。 (1)面向字符型的数据格式:单同步、双同 步及外同步3种数据格式,如图所示。 单同步:传送数据之前,先传送一个同步单同步:传送数据之前,先传送一个同步 字符字符“SYNC”,接收端检测到同步字符,接收端检测到同步字符 后,开始接收数据。后,开始接收数据。 双同步:两个同步字符双同步:两个同步字符“SYNC”,其后,其后, 接着是数据。接着是数据。 外同步:用一条专用控制线来传送同步字外同步:用一条专用控制线来传送同步字 符,使接收方与发送方实现同步。符,使接收方与发送方实现同步。 (2 2)。
10、面向比特型的数据格式:根据同步数据链)面向比特型的数据格式:根据同步数据链 路控制规程(路控制规程(SDLCSDLC),面向比特型的数据以),面向比特型的数据以 帧为单位传输,每帧由帧为单位传输,每帧由6 6个部分组成。如下图:个部分组成。如下图: 7EH 地址场地址场 控制场控制场 D0 D1 DN CRC1 CRC2 7EH 帧帧 开始 结束 标志 数据 标志 图图 面向比特型的数据格式面向比特型的数据格式 在在SDLCSDLC规程中,不允许在数据段和规程中,不允许在数据段和CRCCRC段中出段中出 现现6 6个个“1”1”,否则会误认为是结束标志。因此要求,否则会误认为是结束标志。因此要。
11、求 在发送端进行检验,当连续出现在发送端进行检验,当连续出现5 5个个“1”1”,则立即,则立即 插入一个插入一个“0”0”,接收端要将这个插入的,接收端要将这个插入的“0”0”去掉,去掉, 恢复原来的数据。恢复原来的数据。同步通信的效率比异步通信高。同步通信的效率比异步通信高。 8.5 可编程串行接口芯片可编程串行接口芯片8251A INTEL 8251A INTEL 8251A是一个通用串行输入是一个通用串行输入/ /输出输出 接口,可以同步方式(或异步方式)与外设接口,可以同步方式(或异步方式)与外设 进行串行通信。广泛应用于长距离通信系统进行串行通信。广泛应用于长距离通信系统 及计算机。
12、网络。及计算机网络。 8.5.18.5.18251A8251A芯片内部结构及其功能芯片内部结构及其功能 8251A8251A由发送器、接收器、数据缓冲存储器、由发送器、接收器、数据缓冲存储器、 读读/ /写控制电路及调制写控制电路及调制/ /解调控制电路等解调控制电路等5 5部分组部分组 成,如图所示。成,如图所示。 1 1、发送器:要发送的数据,锁存到发送缓冲存储器中。、发送器:要发送的数据,锁存到发送缓冲存储器中。 其发送速率由其发送速率由T TX XC C端上收到的发送时钟频率决定。端上收到的发送时钟频率决定。 数据总线 缓冲器 读/写 控制逻辑 电路 调制调制 解调解调 电路电路 发送。
13、发送 缓冲器缓冲器 并并/ /串串 转换转换 发送控制电发送控制电 路路 接收接收 缓冲器缓冲器 串串/ /并并 转换转换 接收控制电路接收控制电路 内部总线内部总线 D0 D7 RESET CLK C / D RD WR CS DSR DTR CTS RTS TXD TXRDY TXEMPTY TXC RXD RXRDY RXC SYNDET O O O O O O O 图图 8251A内部结构流程图内部结构流程图 与发送器有关信号:与发送器有关信号: T TX XD D:发送数据。在时钟:发送数据。在时钟TXCTXC的下降沿发送数据。的下降沿发送数据。 T TX XC C:发送器时钟信号,。
14、输入。:发送器时钟信号,输入。 TXRDY TXRDY:发送器已准备好信号。表示发送数据缓:发送器已准备好信号。表示发送数据缓 冲存储器空。冲存储器空。 TXEMPTY TXEMPTY:发送器空闲标志。表示发送移位寄存:发送器空闲标志。表示发送移位寄存 器已空。器已空。 2 2、接收器:外部通信数据从、接收器:外部通信数据从R RXD D端,逐位进入接收移端,逐位进入接收移 位位寄存器中。寄存器中。 数据总线 缓冲器 读/写 控制逻辑 电路 调制调制 解调解调 电路电路 发送发送 缓冲器缓冲器 并并/ /串串 转换转换 发送控制电发送控制电 路路 接收接收 缓冲器缓冲器 串串/ /并并 转换转。
15、换 接收控制电路接收控制电路 内部总线内部总线 D0 D7 RESET CLK C / D RD WR CS DSR DTR CTS RTS TXD TXRDY TXEMPTY TXC RXD RXRDY RXC SYNDET O O O O O O O 与接收器有关信号:与接收器有关信号: R RX XD D:数据接收端。数据接收端。R RX XD D在时钟在时钟R RX XC C上升沿采样信号。上升沿采样信号。 R RX XRDYRDY:接收器已准备好信号,表示已收到一个数据,接收器已准备好信号,表示已收到一个数据, 当当CPUCPU读数据后,读数据后,R RX XRDYRDY变为低电平。。
16、变为低电平。 SYNDET/BRKDETSYNDET/BRKDET双功能的检测信号,高电平有双功能的检测信号,高电平有 效。效。 内同步:收到一个或两个同步字符时,内同步:收到一个或两个同步字符时,SYNDETSYNDET输出高输出高 电平。电平。 外同步:当从外同步:当从SYNDETSYNDET端收到同步字符,接收器开始接端收到同步字符,接收器开始接 收数据。收数据。 RXCRXC:接收器时钟,由外部输入。若采用同步方式,接收器时钟,由外部输入。若采用同步方式, 接收器时钟频率等于接收数据的频率;异步方式,用接收器时钟频率等于接收数据的频率;异步方式,用 软件设置波特率,软件设置波特率,TX。
17、CTXC和和RXCRXC往往连接在一起往往连接在一起。 对于异步方式,当对于异步方式,当RXDRXD端口连续收到端口连续收到8 8个个“0”0”信号,信号, 则则BRKDETBRKDET变成高电平,表示当前处于数据断缺状态变成高电平,表示当前处于数据断缺状态。 3 3、数据总线缓冲器:数据总线缓冲存储器是、数据总线缓冲器:数据总线缓冲存储器是CPUCPU与与 8251A8251A之间信息交换的通道。之间信息交换的通道。 数据总线 缓冲器 读/写 控制逻辑 电路 调制调制 解调解调 电路电路 发送发送 缓冲器缓冲器 并并/ /串串 转换转换 发送控制电发送控制电 路路 接收接收 缓冲器缓冲器 串。
18、串/ /并并 转换转换 接收控制电路接收控制电路 内部总线内部总线 D0 D7 RESET CLK C / D RD WR CS DSR DTR CTS RTS TXD TXRDY TXEMPTY TXC RXD RXRDY RXC SYNDET O O O O O O O 4 4、读、读/ /写控制和调制控制:写控制和调制控制: 读读/ /写控制电路用来接收一系列的控制信号,写控制电路用来接收一系列的控制信号, 并向其内部各功能部件发出有关的控制信号。并向其内部各功能部件发出有关的控制信号。 与读与读/ /写控制电路的控制信号:写控制电路的控制信号: RESETRESET:高电平复位,等待对。
19、其初始化。:高电平复位,等待对其初始化。 CLKCLK:为芯片内有关电路工作提供时钟的输入端。:为芯片内有关电路工作提供时钟的输入端。 同步:该频率大于接收同步:该频率大于接收/ /发送器的时钟频率的发送器的时钟频率的3030倍;异步:倍;异步: 大于大于4.54.5倍。倍。 WR WR、RD RD 、C/D C/D 、CSCS、 数据总线数据总线 缓冲器缓冲器 读/写 控制逻辑 电路 调制调制 解调解调 电路电路 发送发送 缓冲器缓冲器 并并/ /串串 转换转换 发送控制电发送控制电 路路 接收接收 缓冲器缓冲器 串串/ /并并 转换转换 接收控制电路接收控制电路 内部总线内部总线 D0 D。
20、7 RESET CLK C / D RD WR CS DSR DTR CTS RTS TXD TXRDY TXEMPTY TXC RXD RXRDY RXC SYNDET O O O O O O O 与读与读/ /写控制电路的控制信号:写控制电路的控制信号: RESETRESET:高电平复位,等待对其初始化。:高电平复位,等待对其初始化。 CLKCLK:为芯片内有关电路工作提供时钟的输入端。:为芯片内有关电路工作提供时钟的输入端。 同步:该频率大于接收同步:该频率大于接收/ /发送器的时钟频率的发送器的时钟频率的3030倍;异步:大于倍;异步:大于4.54.5倍。倍。 WRWR、RD RD 、。
21、C/D C/D 、CSCS、 与与MODENMODEN的控制信号的控制信号 DTRDTR(Data TerninalData Terninal Ready Ready):向):向MODENMODEN输出,输出, CPUCPU已准备好,工作命令字的已准备好,工作命令字的D D1 1置置11变为有效。变为有效。 5 5、调制、调制/ /解调控制电路:当远距离串行通信时,解调控制电路:当远距离串行通信时, 发送时,发送时,MODENMODEN将数字信号转换成模拟信号;接将数字信号转换成模拟信号;接 收时,收时,MODENMODEN将模拟信号转换为数字信号。将模拟信号转换为数字信号。 DSRDSR(D。
22、ata Set ReadyData Set Ready):由):由MODENMODEN输入,表输入,表 示示MODENMODEN已准备好,已准备好,CPUCPU通过读状态寄存器的通过读状态寄存器的D7D7 位检测该信号。位检测该信号。 RTSRTS(Request To SendRequest To Send):通知):通知MODENMODEN,CPUCPU 准备好发送,工作命令字的准备好发送,工作命令字的D D5 5置置11变为有效。变为有效。 CTSCTS(Clear To SendClear To Send):当有效时,表示):当有效时,表示 8251A8251A方可发送数据。方可发送数。
23、据。 D2 D3 RXD GND D4 D5 D6 D7 TXC WR CS C/D RD RXRDY D1 D0 VCC RXC DTR RTS DSR RESET CLK TXD TXEMPTY CTS SYNDET/ BRKDET TXRDY 图8251引脚分布 B B1 1B B2 2 L1 L L2 2PENPENEPEPS S1 1S S2 2 00 00 同步方式同步方式 01 01 异步异步 1 1 10 10 异步异步 1616 11 11 异步异步 6464 波特率因子波特率因子 字符长度字符长度 00 00 5 5位位 01 01 6 6位位 10 10 7 7位位 11。
24、 11 8 8位位 校验选择校验选择 0101:奇校验:奇校验 11 11 :偶校验:偶校验 0 0 :不校验:不校验 同步(同步(D1:D0)=00D1:D0)=00) 异步(异步(D1D000D1D000) 0 0:内同步:内同步 1 1:外同步:外同步 0 0:双:双SYNSYN 1 1:单:单SYNSYN 00 00 无效无效 01, 101, 1个停止位个停止位 10 ,1.510 ,1.5个停止位个停止位 1111,2 2个停止位个停止位 8.5.2 8251A8.5.2 8251A的控制字及其工作方式的控制字及其工作方式 1 1、方式命令:指定通信方式、数据格式、传送速、方式命令。
25、:指定通信方式、数据格式、传送速 率及停止位长度等。(分成率及停止位长度等。(分成4 4组,每组组,每组2 2位)位) 例例1 1:在某异步通信中,数据格式采用:在某异步通信中,数据格式采用8 8位数据位,位数据位,1 1位位 起始位,起始位,2 2位停止位,奇校验,波特率因子是位停止位,奇校验,波特率因子是1616,求,求 其方式命令字?将该方式命令字写入命令口,则程其方式命令字?将该方式命令字写入命令口,则程 序段为(假定命令口地址为序段为(假定命令口地址为309H309H):): 例例2 2:在同步通信中,若帧数据格式为:字符长度:在同步通信中,若帧数据格式为:字符长度8 8位,位, 双。
26、同步字符,内同步方式,奇校验,求其方式命令字?双同步字符,内同步方式,奇校验,求其方式命令字? 将其方式命令字写入命令口,则程序段为(假定命令口将其方式命令字写入命令口,则程序段为(假定命令口 地址为地址为309H309H):): 方式命令字方式命令字= =? MOV DX, 309H MOV DX, 309H MOV AL, 0DEHMOV AL, 0DEH OUTOUTDXDX,ALAL 11011110B=DEH11011110B=DEH MOV DX, 309HMOV DX, 309H MOV AL, 1CHMOV AL, 1CH OUT DXOUT DX,ALAL 同步方式命令字同步。
27、方式命令字= =? 00011100B=1CH00011100B=1CH 2 2、操作命令控制字:命令、操作命令控制字:命令8251A8251A进行某种操作(如发进行某种操作(如发 送、接收、内部复位和检测同步字符等)或处于某种送、接收、内部复位和检测同步字符等)或处于某种 工作状态(如工作状态(如DTRDTR),以便接收或发送数据。),以便接收或发送数据。 D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7 TXENTXENDTRDTRRXERXESBRKSBRKERERRTSRTSIRIREHEH 1 1:发送允许:发送允许 0 0:不允许:不允许 1: 1:使使DTRDTR。
28、引脚引脚 = 0= 0 1 1 :接收允许:接收允许 1 1 :TXDTXD送低电平(断开信号)送低电平(断开信号) 0 0 :正常工作:正常工作 1:1:使错误标志复位(状态寄存器)使错误标志复位(状态寄存器) 1:1:使使RTSRTS引脚引脚 = 0= 0 1 1:软件复位(下一条命令是方式字):软件复位(下一条命令是方式字) 1 1:进入:进入SYN SYN 搜索方式搜索方式 例例3 3:若要使:若要使8251A8251A内部复位,假定命令口地址内部复位,假定命令口地址 为为309H309H,则程序段为:,则程序段为: MOV DX,309H ;8251MOV DX,309H ;8251。
29、命令口命令口 MOV AL,40H MOV AL,40H ;置;置D6=1D6=1,使内部复位。,使内部复位。 OUT DXOUT DX,AL AL 例例4 4:异步通信时,允许接收,同时允许发送,:异步通信时,允许接收,同时允许发送, 则程序段为(命令口地址为则程序段为(命令口地址为309H309H):): MOV DX,309HMOV DX,309H;82518251命令口命令口 MOV AL,05H MOV AL,05H ;D2=1D2=1,D0=1D0=1,允许接收和发送。,允许接收和发送。 OUT DXOUT DX,AL AL 3.3.状态字:报告状态字:报告8251A8251A何时。
30、才能开始发送或接收,以及接收数据何时才能开始发送或接收,以及接收数据 有无错误。状态位为有无错误。状态位为1 1,表示有效。在读状态期间,表示有效。在读状态期间,8251A8251A将自将自 动禁止改变状态位。动禁止改变状态位。 D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7 TXRDYTXRDYRXRDYRXRDYTXETXEPEPEOEOEFEFESYNSYNDSRDSR 1 1:发送缓冲器空,:发送缓冲器空, CPUCPU可送数。可送数。 0 0:稍等:稍等 1 1:CPUCPU可取数可取数 0 0:稍等:稍等 1 1:发送器(并:发送器(并/ /串转换器)空串转换器)。
31、空 1 1:奇偶错:奇偶错 1 1:溢出错:溢出错 1 1:帧格错:帧格错 1 1:找到同步字符(:找到同步字符(SYNDETSYNDET引脚的状态位)引脚的状态位) 1 1:DSR = 0DSR = 0(DSRDSR引脚的状态位)引脚的状态位) 溢出错:上一字符未读走溢出错:上一字符未读走, ,下下 一字符又来到一字符又来到RXDRXD端。端。 帧格错:帧格错:未检测到停止位未检测到停止位 DSRDSR是数据装置准备好位。是数据装置准备好位。 例例5 5:串行通信时,在发送程序中,需查状态字的:串行通信时,在发送程序中,需查状态字的D D0 0位位 是否置是否置1 1,即查,即查T TX X。
32、RDY=1RDY=1?命令口地址为命令口地址为309H309H,其程其程 序段为:序段为: MOVMOVDX,309HDX,309H;82518251命令口命令口 LPLP: ININALAL,DXDX ANDANDALAL,01H01H;查发送器是否就绪;查发送器是否就绪 JZJZLPLP 例例6 6:串行通信时,在接收程序中,需查状态字的:串行通信时,在接收程序中,需查状态字的D D1 1 位是否置位是否置1 1,即查,即查R RX XRDY=1RDY=1?命令口地址为?命令口地址为309H309H,其,其 程序段为:程序段为: MOVMOVDX,309HDX,309H;82518251命。
33、令口命令口 LP1LP1:ININALAL,DXDX ANDANDALAL,02H02H;查接收器是否就绪;查接收器是否就绪 JZJZLP1LP1 例例7 7:在接收程序中,检查出错信息,则用下列程序段:在接收程序中,检查出错信息,则用下列程序段: MOV DX,309HMOV DX,309H;82518251命令口命令口 ININ AL AL,DXDX TEST AL TEST AL,38H38H;检查;检查D5D5、D4D4、D3D3(FEFE、OEOE、PEPE) JNZ ERRORJNZ ERROR;若其中有一位为;若其中有一位为1 1,则出错,并,则出错,并 ;转入错误处理程序。;转。
34、入错误处理程序。 4 4、8251A8251A的方式命令和工作命令的使用的方式命令和工作命令的使用 方式命令字:约定了双方通信的方式方式命令字:约定了双方通信的方式 (同步(同步/ /异步)及其数据格式(数据位和停止异步)及其数据格式(数据位和停止 位长度,校验特性,同步字符特性),传送位长度,校验特性,同步字符特性),传送 速率等参数;工作命令字:控制数据传送的速率等参数;工作命令字:控制数据传送的 方向。只有当方向。只有当8251A8251A进入发送进入发送/ /接收准备好的接收准备好的 状态,才能真正开始数据的传送。状态,才能真正开始数据的传送。 方式命令字和工作命令字均无特征位标方式命。
35、令字和工作命令字均无特征位标 志,且都是送到同一命令端口,所以在向志,且都是送到同一命令端口,所以在向 8251A8251A写入方式命令字和工作命令字时,需写入方式命令字和工作命令字时,需 要 按 一 定 的 顺 序 。 这 种 顺 序 是 : 复 位要 按 一 定 的 顺 序 。 这 种 顺 序 是 : 复 位 方式命令字方式命令字 工作命令字工作命令字1 1 工作命令工作命令 字字2 2 工作命令字工作命令字3 3 1. 1. 要求要求 在甲乙两台微机之间进行串行通信,甲机发送,在甲乙两台微机之间进行串行通信,甲机发送, 乙机接收。要求把甲机上开发的应用程序(其长度乙机接收。要求把甲机上开。
36、发的应用程序(其长度 为为2DH2DH)传送到乙机中去。采用起止式异步方式,)传送到乙机中去。采用起止式异步方式, 字符长度为字符长度为8 8位,位,2 2位停止位,波特率因子为位停止位,波特率因子为6464个个/ / 位,无校验,波特率为位,无校验,波特率为4800b/s4800b/s。CPUCPU与与8251A8251A之间之间 用查询方式交数据。口地址分配是:用查询方式交数据。口地址分配是:309H309H为命令为命令/ / 状态口,状态口,308H308H为数据口。为数据口。 2. 2. 分析分析 由于是近距离传输,直接互连,并且,采用查由于是近距离传输,直接互连,并且,采用查 询询I。
37、/OI/O方式,故收方式,故收/ /发程序中只需检查发发程序中只需检查发/ /收准备好收准备好 的状态是否置位,即可发收的状态是否置位,即可发收1 1个字节。个字节。 8.5.38.5.38251A8251A应用举例应用举例 下面以两台微机之间进行双机串行通信的硬件连下面以两台微机之间进行双机串行通信的硬件连 接和软件编程来说明接和软件编程来说明8251A8251A在实际中是如何应用的。在实际中是如何应用的。 乙机 CPU T TX XD D R RX XD D SG SG T TX XC C R RX XC C EIA/TTLEIA/TTL 变换变换 EIA/TTLEIA/TTL 变换变换 。
38、T TX XD D R RX XD D SGSG T TX XC C R RX XC C 甲机甲机 CPUCPU 8251A8251A 8251A8251A 图图 双机串行通信接口双机串行通信接口 波特率波特率 发生器发生器 波特率波特率 发生器发生器 3.3. 设计设计 (1 1) 硬件连接硬件连接 (2 2) 软件编程软件编程 接收和发送程序分开编写,每个程序段中包括接收和发送程序分开编写,每个程序段中包括8251A8251A初初 始化,状态查询和输入始化,状态查询和输入/ /输出等部分。输出等部分。 发送程序(略去发送程序(略去STACKSTACK和和DATADATA段):段): CSE。
39、G SEGMENTCSEG SEGMENT ASSUME ASSUMECSCS:CSEGCSEG,DSDS:CSEGCSEG TRATRA PROC PROC FARFAR STARTSTART:MOV DXMOV DX,309H309H;命令口;命令口 MOV ALMOV AL,00H00H;空操作,向命令口送任意数;空操作,向命令口送任意数 OUT DXOUT DX,ALAL MOV AL MOV AL,40H40H;内部复位(使;内部复位(使D6=1D6=1) OUT DXOUT DX,ALAL NOP NOP MOV AL MOV AL,0CFH0CFH;方式命令字(异步,;方式命令字。
40、(异步,2 2;位停止位,;位停止位, 字字 ;长;长8 8位无校验,波特率因子位无校验,波特率因子 为为6464个个/ /位)位) OUT DXOUT DX,ALAL MOV ALMOV AL,37H37H ;工作命令字;工作命令字 OUT DXOUT DX,ALAL MOV CX MOV CX,2DH 2DH ;传送字节数;传送字节数 MOV SIMOV SI,300H 300H ;发送区首址;发送区首址 L1L1:MOVMOVDXDX,309H309H;状态口;状态口 ININALAL,DXDX ANDANDALAL,01H01H JZJZL1L1;发送未准备好,则等待;发送未准备好,则。
41、等待 MOVMOVDXDX,308H308H;数据口;数据口 MOVMOVALAL,SISI OUTOUTDXDX,ALAL INCINCSISI LOOPLOOPL1L1;未发送完,继续;未发送完,继续 MOVMOVAXAX,4C00H4C00H;已送完,返回;已送完,返回DOSDOS INTINT21H21H TRATRAENDPENDP CSEGCSEGENDSENDS ENDENDSTARTSTART 接收程序(略去接收程序(略去STACK和和DATA段):段): CSEG SEGMENT ASSUMECS:CSEG,DS:CSEG TRA PROC FAR START:MOV DX,。
42、309H;命令口;命令口 MOV AL,00H;空操作,向命令口送任意数;空操作,向命令口送任意数 OUTDX,AL MOV AL,50H;内部复位(使;内部复位(使D6=1) OUTDX,AL NOP MOV AL,0CFH ;方式命令字(异步,;方式命令字(异步,2位停止位,字长位停止位,字长8 ;位无校验,波特率因子为位无校验,波特率因子为64个个/位)位) OUTDX,AL MOV AL,14H ;工作命令字(;工作命令字(RTS、ER、RXE、DTR、TXEN均均 ;置置1 OUT DX,AL MOV CX,2DH;传送字节数;传送字节数 MOV DI,400H;发送区首址;发送区首址 L2:MOVDX,309H;状态口;状态口 INAL,DX TESTAL,38H;查错误;查错误 JNZERR;有错,则转出错误处理;有错,则转出错误处理 ANDAL,02H;查状态位;查状态位D1(RXRDY)=1? JZL2;接收未准备好,则等待;接收未准备好,则等待 MOVDX,308H;数据口;数据口 INAL,DX;接收准备好,则接收;接收准备好,则接收1字节字节 MOVDI,AL INCDI LOOPL2 JMPSTOP ERR:(略)(略) STOP:MOVAX,4C00H;已送完,返回;已送完,返回DOS INT21H RECENDP CSEGENDS ENDBEGIN。