双机串口通讯.doc

上传人:枫** 文档编号:546646445 上传时间:2023-02-19 格式:DOC 页数:24 大小:354.51KB
返回 下载 相关 举报
双机串口通讯.doc_第1页
第1页 / 共24页
双机串口通讯.doc_第2页
第2页 / 共24页
双机串口通讯.doc_第3页
第3页 / 共24页
双机串口通讯.doc_第4页
第4页 / 共24页
双机串口通讯.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《双机串口通讯.doc》由会员分享,可在线阅读,更多相关《双机串口通讯.doc(24页珍藏版)》请在金锄头文库上搜索。

1、武汉理工大学微机原理与接口技术课程设计说明书目录摘要11 设计题目22 基本原理22.1 异步串口通讯原理22.2 串行接口8251A芯片32.2.1 8251A的基本性能32.2.2 8251的内部结构及外部引脚42.2.3 8251A的编程73 程序设计93.1 题目分析93.2 流程图113.3 源程序134 硬件接线图21结束语22参考文献23摘要计算机与外部信息交换的方式有两种,一种是并行通信,另一种是串行通信。串行通讯又有两种基本方式,异步通讯和同步通讯。异步通讯中CPU与外设之间必须有两项规定,即字符格式的规定和波特率的规定。8251A芯片是Intel公司生产的大规模集成电路芯片

2、,是与Intel系列CPU兼容的可编程的串行通讯接口。虽然8251A的芯片功能较强,但它仍需外部时钟电路,此时可采用8253可编程定时器/计数器。且8251A的发送或接收的方式有查询方式和中断方式。在此次课程设计中,双机的串行通讯中CPU与8251A就是以查询方式进行数据的交换。 本次课程设计需要利用汇编语言编程实现双机串口通信,采用异步方式传输,实时显示传送或者接受的数据,实现双机收发数据的功能。 关键词:汇编语言 双机异步串口通讯 8251A芯片 查询方式 4双机串口通讯1 设计题目A,B两台主机间串口通讯,先由A发送,B接收,然后B将接受的数据回传给A。要求实时显示传送或者接收的数据。采

3、用异步方式,CPU和8251之间采用查询方式交换数据。端口地址是:命令/状态口3F9数据口3F8 。2 基本原理2.1 异步串口通讯原理串行通信指只需一条数据线便可进行数据传送,数据的各位是按规定顺序一位一位传送的通信方式。其特点传输线简单,可利用多种介质,适用于远距离通信,成本较低;但速度较慢。串行通信又分为两种方式,同步串行通信方式和异步串行通信方式。图2-1 串口通信所谓异步串行通信是指发送和接收两地不用同一时钟同步的数据传输方式。一般以若干位表示一个字符,收发以字符为独立的通信单位,每个字符出现的时间是任意的。异步通讯不需要同步信号线,为了实现异步通讯的要求,CPU与外设之间有两项规定

4、,即字符格式的规定和波特率的规定。 异步通信中,发送端和接收端各用一个时钟来确定发送和接收的速率,分别称为发送时钟和接收时钟。发送时在传送的字符后自动在奇偶校验位置上添加1或0,使得字符1的个数(包括校验位)为偶数(偶校验)或奇数(奇校验);而接收时,要检查所接收的字符及其校验位是否符合规定,若不符合规定就置出错标志,供CPU查询处理。一般情况,在异步通信中使用偶校验,而在同步通信中使用奇校验。波特率:波特率是指单位时间内传输的位数,单位是bps。尽管波特率在理论上是可以随意的,但考虑到接口的标准性,国际上还是规定了一个标准的波特率系列。常用的波特率有110,300,600,1200,2400

5、,4800,9600和19200(bps)。大多数接口的接受波特率和发送波特率是可以分别设置的,也就是说,它们可以分别由编程来设定。 字符格式:在异步通讯中,任何一组数剧总是以起始位(低电平)开头,停止位(高电平)结束。数剧采用的编码有ASCII码和EBCDIC(扩展BCD码),另外是否用奇偶校验,停止位选用宽度等,这些都必须有规定。例如,用ASCII编码,字符为7位,加一个偶校验位、一个起始位以及一个停止位,则一个字符由10位组成。从起始位开始到停止位结束构成一帧,字符可以一个挨着一个传送。 2.2 串行接口8251A芯片2.2.1 8251A的基本性能 8251是可编程的串行通信接口,可以

6、管理信号变化范围很大的串行数据通信。有下列基本性能:(1)通过编程,可以工作在同步方式,也可以工作在异步方式;(2)同步方式下,波特率为064K,异步方式下,波特率为019.2K;(3)在同步方式时,可以用58位来代表字符,内部或外部同步,可自动插入同步字符;(4)在异步方式时,也使用58位来代表字符,自动为每个数据增加1个启动位,并能够根据编程为每个数据增加1个、1.5个或2个停止位;(5)具有奇偶、溢出和帧错误检测能力;(6)全双工,双缓冲器发送和接收器。注意:8251尽管通过了RS-232规定的基本控制信号,但并没有提供规定的全部信号。2.2.2 8251的内部结构及外部引脚8251A的

7、内部结构如图2-2所示,由发送器,接收器,数据总线缓冲器,读/写控制电路及调制解调控制电路等5部分组成。图2-2 8251A内部结构框图(1)发送器发送器由发送缓冲器和发送控制电路两部分组成。采用异步方式,则由发送控制电路在其首尾加上起始位和停止位,然后从起始位开始,经移位寄存器从数据输出线TXD逐位串行输出。(2)接收器接收器由接收缓冲器和接收控制电路两部分组成。接收移位寄存器从RXD引腿上接收串行数据转换成并行数据后存入接收缓冲器。异步方式:在RXD线上检测低电平,将检测到的低电平作为起始位, 8251A开始进行采样,完成字符装配,并进行奇偶校验和去掉停止位,变成了并行数据后,送到数据输入

8、寄存器,同时发出RXRDY信号送CPU,表示已经收到一个可用的数据。(3)数据总线缓冲器数据总线缓冲器是CPU与8251A之间的数据接口。包含3个8位的缓冲寄存器:两个寄存器分别用来存放CPU向8251A读取的数据或状态信息。一个寄存器用来存放CPU向8251A写入的数据或控制。(4)读/写控制电路读/写控制电路用来配合数据总线缓冲器的工作。功能如下:(5)调制解调控制电路调制解调控制电路用来简化8251A和调制解调器的连接。 图2-3 8251A外部引脚图8251A的外部引脚如图2-3所示,共28个引脚,每个引脚信号的输入输出方式如图中的箭头方向所示。2.2.3 8251A的编程编程的内容包

9、括两大方面:一是由CPU发出的控制字,即方式选择控制字和操作命令控制字;二是由8251A向CPU送出的状态字。(1)方式选择控制字图2-4 8251A方式选择控制字格式方式选择控制字的格式如图2-4所示。(2)操作命令控制字(控制字)操作命令字直接使8251A处于规定的工作状态。操作命令控制字的格式如图2-5所示。图2-5 8351A操作命令控制字格式图2-5 8351A操作命令控制字格式(3)状态控制字状态字的格式如下图2-6所示。图2-6 8251A状态控制字格式(4)8251A的初始化编程图2-7 8251A初始化编程的流程图 因为8251A使用前必须进行初始化,以确定工作方式、传送速率

10、、字符格式以及停止位长度等;改变8251A的工作方式时必须再次进行初始化编程。其流程图如图2-7所示。3 程序设计3.1 题目分析根据题目要求,分析如下:(1)为了使信息被可靠的写入8251A的控制端口或数据端口,在使用OUT指令向8251A写入信息时,要有一定的时间延迟。虽然在8251A上电时,RESET信号可以使8251A进入复位状态,但在实际使用时,为了使8251A可靠复位,我们常在初始化程序前用软件再次让8251A进行复位操作。具体实现过程是先向8251A的控制口连续写入3个0,然后再写入复位控制字40H。由于8251A内部操作需要一定的时间,所以写入操作后还要有一定的延迟。(2)根据

11、本题的采用异步方式的要求,8251A的方式选择控制字为01001110B(4EH),表示异步方式,D7=0,D6=1,1位停止位;D1=1,D0=0,波特率因子为16;D3=1,D2=1,字符长度为8位;D5=0,D4=0,不带奇偶校验。操作命令控制字用了两个,一是8251A复位,即控制字为0001000B(40H),使全部错误标志复位;二是启动8251A接收和发送,其控制字为00010101B(45H)。 (3)题目要求8251A的控制口地址为3F9H,数据口地址为3F8H。另外,使8253的CS#接I/O地址3F0H3F6H,本题使用通道2,则通道2的地址为3F4H,控制口为3F6H。分析

12、8253通道2的工作方式。由于通道2的输出是时钟信号,要产生输出方波OUT2用作8251A的收/发时钟RXC/TXC,因此通道0应工作在方式3下,其功能就是对8253的输入时钟频率1MHz的信号进行分频。本题选择波特率为1200,波特率因子选择16,因此,OUT0输出的方波信号频率为f=120016=19.2(kHz) 所以计数常数为N=1000/19.2=52 (4)8253的控制字选择为10110110B,即是说,8253选择通道2,读写方式为读写16位,选择工作方式3,二进制计数制。另外,还需给8253赋计数初值为52。 (5)题目要求主机发送和接收数据均采用查询方式,利用查询方式进行串

13、口通讯的基本思路是:CPU循环从8251A的控制口读取状态字,根据状态字的相关位的值来判定是否接收或发送。 (6)程序中将会用到的DOS功能调用说明如下所示:a.键盘输入并显示(1号功能调用)格式:MOV AH,01H INT 21H 功能:按下任何键,将其对应字符的ASCII码送入AL中,并在屏幕上显示该字符。b. 屏幕显示一个字符(2号功能调用)格式: MOV DL, 字符 MOV AH, 02H INT 21H功能:将置入DL寄存器中的字符在屏幕上显示输出。c. 屏幕显示字符串(9号功能调用)格式: MOV DX, 字符串的偏移地址MOV AH, 09HINT 21H功能:在屏幕上显示字

14、符串。3.2 流程图A机流程图B机流程图3.3 源程序A机程序如下:OS_PORT EQU 3F9H;命令/状态口3F9DATA_PORT EQU 3F8H;数据口3F8 TIMER2 EQU 3F4H ;8253的2号计数器端口TIMCTL EQU 3F6H ;8253命令口DATA SEGMENTBUFF1 DB 256 DUP(?)BUFF2 DB 256 DUP(?)COUNT EQU $-BUFF1SSHOW1 DB 0AH,0DH,SENDING:,0AH,0DH,$SSHOW2 DB 0AH,0DH,END SEND,0AH,0DH,$RSHOW1 DB 0AH,0DH,RECEIVING:,0AH,0DH,$RSHOW2 DB 0AH,0DH,END RECEIVE,0AH,0DH,$SERROR DB 0AH,0DH,SEND ERROR!CHECK IT -_-,0AH,0DH,$CERROR DB 0AH,0DH,RECEIVE ERROR!SO IT COMES =_=,0AH,0DH,$DATA ENDSCODE SEGMENTASSUME DS:DATA, CS:CODESTART: MOV AX,DATA

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号