版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、复习,中断指令INT 17H 的中断服务程序的入口地址放在中断向量表地址( )开始的4 个存贮单元内 。 除法出错是属于( )中断。 A线路故障 B内部中断 CINTO D单步中断 计数/定时器8253,在初始化时写入的二进制最大数的初值是( )。 A 7FFFH B 0000H C 8000H D FFFFH,若每输入n 个CLK 脉冲,在OUT 端就可输出一个宽度为一个CLK 周期的负脉冲,则8253 应工作于方式( )。 A 3 B 2 C 1 D 0,第8章 串行通信与可编程8251A接口芯片,8.1 串行通信基础,8.2 8251A芯片引脚、内部结构和工作过程,8.3 8251A方式
2、控制字及初始化编程,8.1 串行通信基础,1.概述,通信是指计算机与外部设备之间或计算机与计算机之间的信息交换。通信的基本方式可以分为并行通信和串行通信两种。,并行通信是指数据的每位同时传输,如第5章所述的8255A与外设间的数据交换就是采用的并行通信方式。这种方式的数据传输速度快,但是在使用时所需要的通信线多,随着传输距离的增加,通信成本增加,可靠性下降,因此并行通信适合短距离传输。,串行通信则是把需要传输的数据按照一定的数据格式一位一位的按顺序传输。串行通信的信号在一根信号线上传输。发送时,把每个数据中的各个二进制位一位一位地发送出去,发送一个字节后再发送下一个字节;接收时,从信号线上一位
3、一位地接收,并把它们拼成一个字节传输给CPU进行处理.,第8章 串行通信与可编程8251A接口芯片,串行通信只需一对传输线,并且可以利用现有的电话线作为传输介质,这样可以降低传输线的成本,特别是在远距离传输时,这一优点更为突出。但在进行串行通信时需要进行并-串和串-并之间的转换。主要应用于接口与外部设备、计算机与计算机之间,例如鼠标、键盘和接口。,2. 单工、半双工和全双工通信,串行通信按照数据流的传送方式可以分为单工、半双工和全双工,如图8-4所示。,(1) 单工通信:如图8-4(a)所示,在单工通信方式中,信号只能在单一通信信道上向同一个方向传输,任何时候都不能改变信号的传送方向(如电视信
4、号)。,(2) 半双工通信:如图8-4(b)所示,在半双工通信方式中,信号可以双向传送,但必须交替进行,同一个时刻只能向一个方向传送数据(如对讲机)。,第8章 串行通信与可编程8251A接口芯片,(3) 全双工通信:如图8-4(c)所示,在全双工通信方式中,信号可以同时双向传送。在全双工通信方式中数据的接收与发送分别由两条不同的传输信道来完成。全双工通信信道也可以用于单工通信或半双工通信(如上网)。,图8-4 数据传输方式,第8章 串行通信与可编程8251A接口芯片,3串行通信方式,按照串行数据的时钟控制方式,串行通信可分为同步通信和异步通信两类。,(1)同步通信,在数据块传输时为了提高传输速
5、度,通常采用同步通信传输方式。同步通信不是用起始位来标识字符的开始,而是用一串特定的二进制序列,称为同步字符,去通知接收器串行数据第一位何时到达。串行数据信息以连续的形式发送,每个时钟周期发送一位数据。数据信息间不留空隙,数据信息后是两个错误校验字符。同步通信采用的同步字符的个数不同,存在着不同的格式结构,具有一个同步字符的数据格式称为单同步数据格式,有二个同步字符的数据格式称为双同步数据格式,如图8-5所示。在同步传输中,要求用时钟来实现发送端与接收端之间的同步。,第8章 串行通信与可编程8251A接口芯片,(2)异步传输方式,发送或接收一个信息字符所需的一切数据和控制信息,都在单根通信线上
6、移动,而且每次只移动一位。异步串行通信数据格式如图8-6所示。,起始位:位于字符帧开头,只占一位,为逻辑0低电平,用于向接收设备表示发送端开始发送一帧信息。,第8章 串行通信与可编程8251A接口芯片,数据位:紧跟起始位之后,用户根据情况可取5位、6位、7位或8位,低位(D0)在前高位(D7)在后。,第8章 串行通信与可编程8251A接口芯片,奇偶校验位:位于数据位之后,仅占一位,用来表征串行通信中采用奇校验还是偶校验,由用户决定。, 停止位:位于字符帧最后,为逻辑1高电平。通常可取1位、1.5位或2位,用于向接收端表示一帧字符信息已经发送完,也为发送下一帧作准备。,在串行通信中,两相邻字符帧
7、之间可以没有空闲位,也可以有若干空闲位,这由用户来决定。,例如用ASCII编码字符位7位加一位奇偶校验位、一个起始位以及一个停止位共10位。如图8-7所示传输F字符的ASCII码1000110波形。,图8-7 传送F字符的帧格式,第8章 串行通信与可编程8251A接口芯片,4.通信速率,通信速率是反映数据传输速度的快慢,通信速率主要有数据传输速率和波特率两个指标。,(1) 数据传输速率,数据传输速率是指每秒钟传输二进制数的位数(即比特率),以位/秒(bps或bit/s简称b/s)为单位。数据传输速率反应了串行通信的速率,也反应了对传输通道的要求,传输速率越高,要求传输通道的频带越宽。以字符为单
8、位传送时数据传输速率等于每秒传送的字符数与每个字符位数的乘积。例如每秒传送120个字符,每个字符包含10位(一个起始位、7个数据位、一个奇偶校验位、一个停止位)则数据传输速率为:120字符/每秒10位/字符=1200bps,第8章 串行通信与可编程8251A接口芯片,(2)波特率,波特率是指每秒传送的符号数。每次传送一位时,波特率大小与数据传输速率相等。波特率通常简称波特,用符号Baud或B表示。,在计算机中,一个符号的含义为高低电平,它们分别代表逻辑“1”或逻辑“0”,所以每个符号所含的信息刚好为1比特,因此在计算机通信中,常常把比特率称为波特率,即,1波特(Baud)=1比特(bit)/秒
9、=1位/秒(1bps),一般计算机异步通信的波特率在50bps9600bps之间。,波特率与串行接口内的时钟频率并不一定相等。时钟频率可以选为波特率的1倍、16倍或64倍。由于异步通信双方各自使用自己的时钟信号,要是时钟频率等于波特率,则双方的时钟频率稍有偏差或初始相位不同就容易产生接收错误。采用较高频率的时钟,在一位数据内有16个或64个时钟,捕捉信号的正确性就容易得到保证。,第8章 串行通信与可编程8251A接口芯片,5. 串行通信接口标准RS-232C总线,在计算机系统中,常用的串行通信接口标准有:RS-232C、RS-449、RS-422A、RS-423A、RS-485、20mA电流环
10、等总线接口标准。,RS-232C是使用最早、应用最多的一种异步串行通信总线标准。它是美国电子工业协会(EIA)1962年公布,1969年最后修定而成的。其中,RS表示Recommended Standard,232是该标准的标识号,C表示最后一次修定。,RS-232C串行接口总线适用于:设备之间的通信距离不大于15 m,传输速率最大为20 kb/s。,第8章 串行通信与可编程8251A接口芯片, RS-232C信息格式标准,RS-232C采用串行格式,如图8-8所示。该标准规定:信息的开始为起始位,信息的结束为停止位;信息本身可以是5、6、7、8位再加一位奇偶校验位。如果两个信息之间无信息,则
11、写“1”,表示空。,图8-8 RS-232C信息格式标准,目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。,第8章 串行通信与可编程8251A接口芯片,RS-232C机械特性,RS-232C标准规定使用符合ISO 2110标准的25芯D型连接器,如图8-9(a)所示。RS-232C总线标准有25条信号线,其中: 4条数据线、11条控制线、3条定时线、7条备用和未定义线。目前大多数PC机的RS-232C接口不再使用25芯D型连接器,而配备有主要功能相同的9芯D型连接器,如图8-9(b)所示。,25芯D型连接器与9芯D型连接器的引脚对应如表8-1所示。,图8-9 RS-23
12、2C连接器示意图,第8章 串行通信与可编程8251A接口芯片,表8-1 DB-25与DB-9引脚对应关系,第8章 串行通信与可编程8251A接口芯片,尽管RS-232C使用20条信号线,在近距离通信时常常只需三条连接线,即“发送数据”、“接收数据”和“信号地”,发送方和接收方的“发送数据”、“接收数据”端交叉连接,传输线采用屏蔽双绞线即可实现,如图8-10所示;当使用RS-232C进行远距离传送数据时,就必须配合调制解调器(modem)和电话线进行通信,其连接及通信原理如图8-11所示。,图8-10 三线制连接原理图,图8-11 远距离串行通信原理图,第8章 串行通信与可编程8251A接口芯片
13、, RS-232C电气特性,由于RS-232C是在TTL集成电路之前制定的,所以它的电平不是+5V和地,RS-232C标准规定了数据和控制信号的电压范围,它使用负逻辑,将-5V-15V规定为逻辑“1”,+5V+15V规定为逻辑“0”。, RS-232C电平转换电路,RS-232C电平与通常的TTL电平不兼容,所以两者之间必须加电平转换电路。常用的电平转换芯片有MC1488/MC1489和MAX232。MC1488/MC1489工作电压需要15V,而MAX232工作电压只需要5V就可以。,第8章 串行通信与可编程8251A接口芯片,8.2 8251A芯片引脚、内部结构和工作过程,8.2.1 82
14、51A“自发自收”通信,8.2.2 知识讲解,第8章 串行通信与可编程8251A接口芯片,8.2.1项目2:8251A“自发自收”通信,1项目要求与目的,(1)项目要求:实验板上的8251提供通信,8253提供8251通信的波特率,编制程序实现8251串行口“自发自收”通信。即在实验程序运行之前,某个特定地址存储区域的内容为“全0”,而运行实验程序后,该存储器的内容即为“特定信息”。,(2)项目目的:,了解串行口通信的协议、数据格式。 了解8251和8253芯片性能及编程。,第8章 串行通信与可编程8251A接口芯片,2项目电路连接与说明,(1)项目电路连接:如图8-17所示的粗线为需要接的连
15、线,连线说明为:8251的片选孔用导线接至译码处208H20FH插孔,8251的CLK接至1MHz插孔,8251的Txclk和Rxclk接至8253的OUT1插孔,8251的RXD与TXD接通(短接);8253的片选孔用导线接至译码处200H207H插孔, CLK1接至1MHz插孔,GATE1 接到+5V插孔。,(2)项目说明:操作步骤如下:,实验连线按照项目电路连接完毕,录入程序。,编译连接以“单步方式”将光标执行到MAIN程序的第3条指令(即LEA SI,SBUF)的位置。,第8章 串行通信与可编程8251A接口芯片, 打开“数据段窗口”,观察第03H17H地址中的内容,注意此时03H0C
16、H地址的内容为01H0AH(它对应于程序中数据区SBUF的内容),而0DH17H地址的内容均为00H(它对应于程序中数据区RBUF“此时的内容”)。,将光标定位到MAIN程序最后一条指令(即HLT)的位置,执行“执行到光标所在处”的动作。,执行对上述“数据段窗口”的“刷新操作”,再观察0DH17H地址的内容,此时它应为01H0AH,若达到了上述目标,就表示“本项目达到了目的,实验成功”。,第8章 串行通信与可编程8251A接口芯片,3项目电路原理框图,8251A“自发自收”通信电路原理框图如图8-17所示。电路由8086CPU芯片、8251芯片、8253芯片等组成。,第8章 串行通信与可编程8
17、251A接口芯片,4项目程序设计,(1)程序流程图,8251A“自发自收”通信程序流程图如图8-18所示。,图8-18 程序流程图,第8章 串行通信与可编程8251A接口芯片,(2)程序清单,上位PC机与8251A串行口通信程序清单如下所示。,STACK SEGMENT STACK STACK ENDS DATA SEGMENT DATA ENDS CODE SEGMENT,ASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH CS,POP DS MOV DX,203H ;设置8253计数1工作方式3(方波) MOV AL,56H ;01010110H OUT
18、 DX,AL MOV AL,52 ;方波(26个高电平,26个低电平) MOV DX,201H ;给8253计数器1送初值 OUT DX,AL ;波特率1MHz5216=1200b/s MOV DX,209H ;奇地址是控制端口,初始化8251 XOR AL,AL ;清AX MOV CX,03 ;向8251控制端口送3个0,第8章 串行通信与可编程8251A接口芯片,DELAY: CALL OUT1 ;调子程序(向外发送一字节的子程序),LOOP DELAY ;循环3次 MOV AL,40H ;写操作命令字:向8251控制端口送40H,使其复位(内部复位) CALL OUT1 ;调子程序(向外
19、发送一字节的子程序) MOV AL,4EH ;方式控制字:01001110B设置为波特率因子为16、8个数据位、一个停止位,CALL OUT1 MOV AL,27H ; 写操作命令字:00100111B向8251送控制字允许其发送和接收 CALL OUT1,NEXT: MOV DX,209H ;奇地址是控制端口,,IN AL,DX TEST AL,02 ;状态控制字:检查接收器是否准备好 JZ NEXT ;没有准备好,等待(循环) MOV DX,208H ;偶地址是数据端口 IN AL,DX ;准备好,接收 ,数据在AL里 PUSH AX ;保存数据 MOV CX,40H,S51: LOOP
20、S51 ;延时 WAITI: MOV DX,209H,第8章 串行通信与可编程8251A接口芯片,IN AL,DX TEST AL,01 ;发送器是否准备好 JZ WAITI ;没有准备好,等待(循环) MOV DX,208H ;偶地址是数据端口 POP AX OUT DX,AL JMP NEXT,OUT1 PROC NEAR ;向外发送一字节的子程序,OUT DX,AL PUSH CX MOV CX,400H GG: LOOP GG ;延时 POP CX RET OUT1 ENDP CODE ENDS END START,第8章 串行通信与可编程8251A接口芯片,8.2.2 知识讲解,1.
21、 概述,可编程串行接口芯片有多种型号,常用的有Intel公司生产的8251A,Motorola公司生产的6850、6952、8654,ZILOG公司生产的SIO及TNS公司生产的8250等。这些芯片结构和工作原理大同小异,不必一一介绍。下面以Intel公司生产的8251A为例介绍可编程串行通信接口的基本工作原理、内部结构、编程方法及应用。,2. 8251A芯片引脚,8251A是一个采用NMOS工艺制造的28条引脚双列直插式芯片,全部输入输出与TTL电平兼容,单一+5V电源,单一TTL电平时钟,8251A芯片引脚信号分配如图8-19所示。,第8章 串行通信与可编程8251A接口芯片,图8-19
22、8251A引脚信号图,第8章 串行通信与可编程8251A接口芯片,8251A的28条引脚按其信号分为两组:,(1)8251A与CPU相连的信号线,D0D7:双向数据线,与系统的数据总线相连。 CLK(20脚):时钟信号输入线,用于产生8251A的内部时序。CLK的周期为0.42 us 1.35us。为了电路可靠,CLK的时钟频率至少应是发送接收时钟的30倍(同步方式)或4.5倍(异步方式)。 RESET(21脚):芯片的复位信号。当该信号处于高电平时,8251A各寄存器处于复位状态,收、发线路上均处于空闲状态。通常该信号与系统的复位线相连。 (11脚):片选信号,低电平有效。 C/(12脚):
23、控制数据信号。根据C/信号是1还是0,来判别当前数据总线上信息流是控制字还是与外设交换的数据。当C/1,传输的是命令、控制、状态等控制字;C/=0,传输的是数据。通常将此端与地址线的A0相连,于是8251A占有两个端口地址,偶地址是数据端口,奇地址是控制端口。,第8章 串行通信与可编程8251A接口芯片,(13脚):读信号,低电平有效。有效时,CPU正在从8251读取数据。 (10脚):写信号,低电平有效。有效时,CPU正在向8251写入数据。,综上所述,、C/、信号配合起来可以决定8251A的操作,如表8-2所示。,表8-2 、 C/、的编码和对应操作,第8章 串行通信与可编程8251A接口
24、芯片,TxRDY(15脚):发送器准备好信号,输出,高电平有效。当8251A处于允许发送状态(即TxEN被置位,为低电平)并且发送缓冲器为空时,则TxRDY输出高电平,表明当前8251A已经作好了发送准备,因而CPU可以往8251A传送一个数据。在中断方式下,TxRDY可作为向CPU发出的中断请求信号;在查询方式下,则TxRDY作为状态寄存器中的D0位状态信息供CPU检测。当8251A从CPU接收了一个数据后,TxRDY输出线变为低电平,同时TxRDY状态位被复位。,RxRDY(14脚):接收器准备好信号,输出,高电平有效。当RXRDY=1表示接收缓冲器已装有输入的数据,通知CPU取走数据。若
25、用查询方式,可从状态寄存器D1位检测这个信号。若用中断方式,可用该信号作为中断申请信号,通知CPU输入数据。RXRDY=0表示输入缓冲器空。,SYNDET/BRKDET(16脚):同步或中止符检测信号,高电平有效。在同步方式下,SYNDET是同步检测信号,该信号既可工作在输入状态也可工作在输出状态。内同步工作时,该信号为输出信号。,第8章 串行通信与可编程8251A接口芯片,当SYNDET=1,表示8251A已经监测到所要求的同步字符。若为双同步,此信号在传输第二个同步字符的最后一位的中间变高,表明已经达到同步。外同步工作时,该信号为输入信号。当从SYNDET端输入一个高电平信号,接收控制电路
26、会立即脱离对同步字符的搜索过程,开始接收数据。在异步方式下,BRKDET作为中止符检测信号,当8251A检测到对方发送的中止用来表示字符时,则从该端输出一个高电平,同时将状态寄存器的SYNDET/BRKDET位置“1”。,TXEMPTY(18脚):发送移位寄存器空信号。当TXEMPTY=0时,发送移位寄存器已经满;当TXEMPTY=1时,发送移位寄存器空,CPU可向8251A的发送缓冲器写入数据。,(2)8251A与外部或调制解调器相连的信号线,RxD(3脚):数据接收端,用来接收由外设输入的串行数据。低电平为“0”,高电平为“1”,进入8251A后转变为并行方式。,第8章 串行通信与可编程8
27、251A接口芯片,(25脚):接收时钟信号,输入。在同步方式时,等于波特率;在异步方式时,可是波特率的1倍、16倍或64倍。 TxD(19脚):数据发送端,输出串行数据输往外部设备。 (9脚):发送时钟信号,外部输入。对于同步方式,的时钟频率应等于发送数据的波特率。对于异步方式,由软件定义的发送时钟可是发送波特率的1倍(1)、16倍(16)或64倍(64)。 (24脚):数据终端准备好信号,输出,低电平有效。此信号有效时,表示接收方准备好接收数据,通知发送方。该信号可用软件编程方法控制,设置命令控制字的D1=1,执行输出指令,使线输出低电平。 (22脚):数据装置准备好信号,输入,低电平有效。
28、它是对的回答信号,表示发送方准备好发送。可通过执行输入指令,读入状态控制字,检测D7位是否为1。 (23脚):发送方请求发送信号,输出,低电平有效。可用软件编程方法,设置命令控制字的D5=1,执行输出指令,使线输出低电平。,第8章 串行通信与可编程8251A接口芯片,(17脚):清除发送信号,输入,低电平有效。它是对RTS的回答信号,表示接收方作好接收数据的准备。当=0时,命令控制字的TxEN=1,且发送缓冲器为空时,发送器可发送数据。,3.8251A的内部结构,8251A的内部结构如图8-20所示。共有5个部分。,第8章 串行通信与可编程8251A接口芯片,图8-20 8251A的内部结构图
29、,数据总线缓冲器:双向、三态缓冲器,用来与CPU传输数据信息、命令信息、状态信息。 接收器:包括接收缓冲器、接收移位寄存器及接收控制器三部分。串行接口收到的数据,转变成并行数据后。存放在该缓冲器中,以供CPU读取。 发送器:包含发送缓冲器、发送移位寄存器、发送控制器三部分。是一个分时使用的双功能缓冲器。一方面,CPU把发送的并行数据存放在该区中,准备由串行接口向外发送。另一方面,命令字也存放在这里,以指挥串行口工作。 读/写逻辑电路:用来接收CPU的控制信号,以控制数据的传输方向。 调制解调器控制电路:用来简化8251A和调制解调器的连接,提供与调制解调器的联络信号。,48251A的工作过程,
30、(1)接收器的工作过程,当控制命令字的“允许接收”位RxE(D2位)和“准备好接收数据”位DTR(D1位)有效时,接收控制器开始监视RxD线。,第8章 串行通信与可编程8251A接口芯片,外设数据从RxD端逐位进入接收移位寄存器中,接收中对同步和异步两种方式采用不同的处理过程。,异步方式时,当发现RxD线上的电平由高电平变为低电平时,认为是起始位到来,然后接收器开始接收一帧信息。接收到的信息经过删除起始位和停止位,把已转换成的并行数据置入接收数据缓冲器。,同步方式时,每出现一个数据位移位寄存器就把它移一位,把移位寄存器数据与程序设定的存于同步字符寄存器中的同步字符相比较,若不相等重复上述过程,
31、直到与同步字符相等后,则使SYNDET=1,表示已达到同步。这时在接收时钟的同步下,开始接收数据。RxD线上的数据送入移位寄存器,按规定的位数将它组装成并行数据,再把它送至接收数据缓冲器中。,当接收数据缓冲器接收到由外设传送来的数据后,发出“接收准备就绪”RxRDY信号,通知CPU取走数据。,第8章 串行通信与可编程8251A接口芯片,(2)发送器的工作过程,当操作命令寄存器中的TxEN=1(D0位)且引脚=0时,才能开始发送过程。,接收来自CPU的数据并存入发送缓冲器。 发送缓冲器存有待发送的数据后,使引脚TxRDY变为低电平,表示发送缓冲器满。 当调制解调器做好接收数据的准备后,向8251
32、A输入一个低电平信号,使 (低电平有效)引脚有效。 在编写初始化命令时,使操作命令控制字的TxEN位(D0位)为高,让发送器处于允许发送的状态下。 满足以上、条件时,若采用同步方式,发送器将根据程序的设定自动送一个(单同步)或两个(双同步)同步字符,然后由移位寄存器从数据输出线TxD串行输出数据块;若采用异步方式,由发送控制器在其首尾加上起始位及停止位,然后从起始位开始,经移位寄存器从数据输出线TxD串行输出。 待数据发送完毕,使TxEMPTY有效(高电平)。 CPU可向8251A发送缓冲器写入下一个数据。,第8章 串行通信与可编程8251A接口芯片,8.3 8251A方式控制字及初始化编程,
33、8.3.1:上位PC机与8251A串行口通信,8.3.2 :知识讲解,第8章 串行通信与可编程8251A接口芯片,8.3.1项目3:上位PC机与8251A串行口通信,1项目要求与目的,(1)项目要求:利用上位PC机与实验板上的8251A进行通信。实验板上的8251A提供通信,8253提供8251A通信的波特率,编制程序实现,上位PC机与实验板上的8251A串行口进行通信。,(2)项目目的:,了解串行口通信的协议、数据格式。 了解通信电缆的制作。 掌握PC机与下位机的通信方法。 掌握8251和8253芯片性能及编程。,第8章 串行通信与可编程8251A接口芯片,2项目电路连接与说明,(1)项目电
34、路连接:如图8-22所示的粗线为需要接的连线,连线说明为:上位PC机通过9针RS-232C与实验箱9针RS-232C接口相连;8251的片选孔用导线接至译码处208H20FH插孔,8251的CLK接至1MHz插孔,8251的Txclk和Rxclk接至8253的OUT1插孔,8251的RXD接通信接口的RXD插孔, 8251的TXD接通信接口的TXD插孔;8253的片选孔用导线接至译码处200H207H插孔, CLK1接至1MHz插孔,GATE1 接到+5V插孔。,(2)项目说明:本实验需要一根9针串口线将实验箱的串口与PC机串口相连。,第8章 串行通信与可编程8251A接口芯片,首先用串口线把
35、实验箱与PC机连接好,实验连线按照项目电路连接完毕,录入程序,编译连接运行后,打开从网上下载的“串口调试助手”设置好串口,波特率设置为1200,可看到在发送区输入数据,就可在接收区看到显示的数据如图8-21所示。,图8-21串口调试助手效果图,第8章 串行通信与可编程8251A接口芯片,3项目电路原理框图,项目电路原理框图如图8-22所示。电路由上位机PC机、8086CPU芯片、8251芯片、8253芯片、8255A芯片、开关和发光二极管LED等组成。,图8-22 电路原理框图,第8章 串行通信与可编程8251A接口芯片,4项目程序设计,(1)程序流程图,上位PC机与8251A串行口通信程序流
36、程图如图8-23所示。,图8-23 程序流程图,第8章 串行通信与可编程8251A接口芯片,(2)程序清单,上位PC机与8251A串行口通信程序清单如下所示。,STACK SEGMENT STACK STACK ENDS DATA SEGMENT DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: PUSH CS POP DS MOV DX,203H ;设置8253计数1工作方式3(方波) MOV AL,56H ;01010110B OUT DX,AL MOV AL,52 ;方波(26个高电平,26个低电平) MOV DX
37、,201H ;给8253计数器1送初值 OUT DX,AL ;波特率1MHz5216=1200b/s,第8章 串行通信与可编程8251A接口芯片,MOV DX,209H ;奇地址是控制端口,初始化8251 XOR AL,AL ;清AX MOV CX,03 ;向8251控制端口送3个0 DELAY: CALL OUT1 ;调子程序(向外发送一字节的子程序) LOOP DELAY ;循环3次 MOV AL,40H ;写操作命令字:向8251控制端口送40H,使其复位(内部复位) CALL OUT1 ;调子程序(向外发送一字节的子程序) MOV AL,4EH ;方式控制字:01001110B设置为波
38、特率因子为16、8个数据位、1个停止位 CALL OUT1 MOV AL,27H ; 写操作命令字:00100111B向8251送控制字允许其发送和接收 CALL OUT1 NEXT: MOV DX,209H ;奇地址是控制端口,第8章 串行通信与可编程8251A接口芯片,IN AL,DX TEST AL,02 ;状态控制字检查接收器是否准备好(D1位=1准备好) JZ NEXT ;(D1=0)没有准备好,等待(循环) MOV DX,208H ;偶地址是数据端口 IN AL,DX ;准备好,接收 ,数据在AL里 PUSH AX ;保存数据 MOV CX,40H S51: LOOP S51 ;延
39、时 WAITI: MOV DX,209H ;奇地址是控制端口 IN AL,DX TEST AL,01 ;发送器是否准备好(D0=1吗) JZ WAITI ;(D0=0)没有准备好,等待(循环) MOV DX,208H ;偶地址是数据端口,第8章 串行通信与可编程8251A接口芯片,POP AX OUT DX,AL JMP NEXT OUT1 PROC NEAR ;向外发送一字节的子程序 OUT DX,AL PUSH CX MOV CX,400H GG: LOOP GG ;延时 POP CX RET OUT1 ENDP CODE ENDS END START,第8章 串行通信与可编程8251A接
40、口芯片,8.3.2 知识讲解,1.8251A的方式控制字,8251A芯片在工作前要先对其初始化,以确定其工作方式。三种控制字:分别为工作方式控制字、操作命令控制字和状态控制字。8251A方式控制字各位的定义如图8-24所示。,第8章 串行通信与可编程8251A接口芯片,图8-24 8251A方式控制字,方式控制字决定8251A是工作在异步方式还是同步方式。在异步方式时,关于传送的数据位的位数、停止位的位数图、传送速率等的约定;在同步方式时,是双同步还是单同步等约定。,B2、B1两位有两个作用,一是确定通信方式是同步还是异步方式,另一个是确定异步通信方式的传送的速率。如64表示时钟频率是发送或接
41、收波特率的64倍,其它类推。,2.操作命令字,使8251A处于发送或接收数据状态,通知外设准备接收或发送数据,都是通过CPU执行输出命令发出相应的操作命令字来实现的。操作命令控制字各位的定义如图8-25所示。,第8章 串行通信与可编程8251A接口芯片,图8-25 8251A操作命令字,第8章 串行通信与可编程8251A接口芯片,TXEN位:发送允许位。TxEN=1允许发送,TxEN=0禁止发送。该位可以作为是否允许TxD线向外设串行发送数据。,DTR位:数据终端准备就绪。DTR=1,使DTR有效,表示终端设备已经准备好;DTR=0使DTR无效。,RXE位:允许接收位。决定是否允许RxD线接收
42、外部输入的串行数据。RxE=1,允许接收;RxE=0禁止接收。,SBRK位:发断缺字符位。SBRK=1,强迫TxD为低电平,输出连续的空号。SBRK=0,正常操作。正常通信时,SBRK位应为0。,ER位:清除错误标志位。该位是针对状态控制字的D3、D4和D5位进行操作的。D3、D4、D5位分别表示奇偶错、帧错和溢出错。ER=1,使错误标志位复位;ER=0,不复位。,RTS位:发送请求位。RTS=1,使RTS有效;RTS=0,置RTS无效.,第8章 串行通信与可编程8251A接口芯片,IR位:内部复位信号。IR=1,迫使8251A复位,使8251A回到接收工作方式控制字的状态。,EH位:进入收索
43、方式。EH只对同步方式有效,EH=1,启动收索同步字符;EH=0,不收索同步字符。因此对于同步工作方式,一旦允许接收(RxE=1),还必须使EH=1,并且ER=1,清除全部错误标志,才能开始收索同步字符。,3.状态字,CPU通过输入指令读取状态字,了解8251A传送数据时所处的状态,作出是否发出命令,是否继续下一个数据传送的决定。状态字存放在状态寄存器中,CPU只能读状态寄存器,而不能对它写入内容。状态字各位表示的意义如图8-26所示。,第8章 串行通信与可编程8251A接口芯片,图8-26 8251A状态寄存器,第8章 串行通信与可编程8251A接口芯片,TxRDY位:发送器准备好。此状态位
44、TxRDY与引脚TxRDY的意义有些区别。此状态位TxRDY=1,反映当前发送缓冲器已空。 而对于TxRDY引脚,必须在发送缓冲器空,状态位TxRDY位为1,控制字中TxEN1,并且外设或调制解调器接收数据方可以接收下一个数据时,才能使TxRDY引脚有效。,RxRDY位:接收器准备好。RxRDY位为1表明接收缓冲器已装有输入数据,CPU可以取走该数据。引脚端RxRDY为高,也表明接收缓冲器已装有输入数据,RxRDY位与8251A芯片的RxRDY引脚状态相同。RxRDY引脚可供CPU查询,也可作为对CPU的中断申请信号,申请CPU取走数据。 TxEMPTY位:发送器空。TxEMPTY位和SYNDET/BRKDET位与8251A的同步引脚的状态完全相同,可供CPU查询。,PE位:奇偶错。当奇偶错被检测出来时,PE置1,PE有效并不禁止8251A工作,它由工作命令字中的ER位复位。,第8章 串行通信与可编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卫生院保密文件管理制度
- 卫生服务站相关管理制度
- 家属区卫生值周制度
- 直饮水卫生安全制度
- 社区卫生院医保工作制度
- 卫生院宣传工作制度
- 卫生院工会经费管理制度
- 河南省村卫生室规章制度
- 卫生院医疗用物管理制度
- 井冈山建立卫生制度
- QC080000-2017有害物质管理体系程序文件
- 研学旅行概论课程培训课件
- 专业律师服务合同书样本
- 反诈宣传讲座课件
- GB/T 6003.2-2024试验筛技术要求和检验第2部分:金属穿孔板试验筛
- DB32T 4398-2022《建筑物掏土纠偏技术标准》
- (精确版)消防工程施工进度表
- 保险公司资产负债表、利润表、现金流量表和所有者权益变动表格式
- 电磁流量说明书
- XX少儿棋院加盟协议
- 五年级数学应用题专题训练50题
评论
0/150
提交评论