可编程串行接口8250
- 格式:ppt
- 大小:1.44 MB
- 文档页数:35
可编程串行通信接口8250A自发自收实验一、实验目的和要求1.了解并行通信的工作原理;2.掌握8250的编程方法。
二、实验内容和原理1.实验内容:对8250编程,实现下列功能:(1)主机键盘输入一个字符,并将字符的ASCⅡ码加1,指向ASCⅡ表中的下一个字符,通过SOUT引脚发送出去;(2)通过SIN引脚接受字符;(3)在屏幕上显示键盘输入的字符和接收到的字符。
这样就实现了CPU自发自收的功能。
线路连接:8250的D7~D0、A2~A0和DISTR、DOSTR引脚与系统数据线、地址线和读写控制线对应连接;片选线CS2接地址译码器输出端;INTRPT引脚与中断请求输入IRQ2端相连;2MHz的时钟信号送到XTIL1;BAUDOUT与RCLK连接;8250数据接收线SIN 与输出线SOUT相连接,是先自发自收。
线路连接如图1所示。
编程提示:8250采用查询方式进行数据通信,一桢数据格式为7位数据位位数据位,一位停止位,奇校验,波特率为2400bps,输入的基准时钟频率为2MHz。
流程图程序:DA TA SEGMENTMES1 DB 'IT WILL DISPLAY ON THE TERMINAL_SCREEN!!',0AH,0DH DB 'PLAY Q KEY EXIT TO DOS',0AH,0DH,0AH,0DH,'$'IOPORT EQU 0D880H-0280HIO8250CS EQU IOPORT+290H ;8250地址IO8250ZD EQU IOPORT+291HIO8250ZS EQU IOPORT+292HIO8250XK EQU IOPORT+293HIO8250MO EQU IOPORT+294HIO8250XZ EQU IOPORT+295HDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV DX,OFFSET MES1 ;显示提示信息MOV AH,09INT 21HMOV AL,80H ;使DLAB=1,允许写除数寄存器MOV DX,IO8250XK ;线路控制寄存器OUT DX,ALMOV AX,30H ;除数值MOV DX,IO8250CS ;除数寄存器低8位OUT DX,ALMOV AL,AHINC DX ;除数寄存器高8位OUT DX,ALMOV AL,0AH ;7位数据、1位停止位,奇校验MOV DX,IO8250XK ;线路控制寄存器OUT DX,ALMOV AL,10H ;使自检控制位LOOP=1,自检MOV DX,IO8250MO ;MODEM控制寄存器OUT DX,ALMOV AL,00H ;屏蔽中断MOV DX,IO8250ZD ;写中断允许寄存器OUT DX,ALWA T: MOV DX,IO8250XZ ;读线路状态寄存器IN AL,DXTEST AL,00011110B ;出错否?JNZ ERROR ;转到ERRORTEST AL,00000001B ;接受数据就绪否?JNZ RCEVE ;转接收TEST AL,00100000B ;发送寄存器空否?JZ WAT ;不空,返回等待MOV AH,01H ;读键盘INT 21HMOV DX,IO8250CS ;发送下一个字符INC ALOUT DX,ALJMP WAT ;返回RCEVE: MOV DX,IO8250CS ;读接收数据IN AL,DXAND AL,01111111B ;保留7位CHAR: MOV DL,AL ;显示MOV AH,02HINT 21HDEC DLCMP DL,51H ;键入字符是吗‘Q’?JZ QUITCMP DL,71HJZ QUIT ;是,退出JMP WAT ;不是,继续QUIT: MOV AX,4C00H ;退出INT 21HERROR: MOV DX,IO8250XZ ;清除线路状态寄存器IN AL,DXMOV DL,'?' ;显示字符'?'MOV AH,02HINT 21HJMP WAT ;返回继续CODE ENDSEND START2.实验原理8250内部有三种寄存器,8250初始化编程为:a、将80H写入通信线路控制寄存器使最高位为1,建立寄存器和中断允许寄存器的标志。
uart8250 手册
UART8250手册是一份详细介绍UART8250通信协议的参考文档。
UART(通
用异步收发传输器)是一种常用的串行通信接口标准,用于在计算机系统中实现数据的传输和接收。
手册旨在为用户提供UART8250的功能特性、寄存器配置和操
作原理等方面的详细信息,以帮助用户正确使用和配置UART8250。
UART8250手册首先介绍了UART8250的基础知识和通信原理。
它解释了UART的工作模式、数据传输格式和波特率的概念。
这些基本概念将帮助用户了解UART8250的工作方式,并为正确配置和使用UART8250提供基本的理论支持。
随后,手册详细描述了UART8250的功能特性和寄存器配置。
它列出了
UART8250的各个寄存器及其功能,并提供了针对每个寄存器的配置说明。
用户可以根据需求配置这些寄存器以实现所需的数据传输设置,如数据位数、校验位、停止位等。
此外,手册还提供了UART8250的操作指南。
它详细描述了UART8250的数
据传输过程,包括数据的发送和接收。
用户可以根据手册中的操作流程和示例代码,编写自己的应用程序,并与其他设备进行数据交换。
最后,手册包含了常见问题解答和故障排除的相关信息。
如果用户在使用UART8250时遇到问题或故障,可以参考手册中的解答和排除步骤,以快速解决问题并恢复正常的通信功能。
总之,UART8250手册是一份必备的参考文档,用户可以通过阅读手册来了解UART8250的功能特性、配置和操作原理,以实现相关的串行通信任务。
8250源码解析
8250是一款经典的串行通信芯片,被广泛应用于计算机和其他设备之间的串行通信。
以下是关于8250源码的解析:
8250是一款可编程的串行通信芯片,通过编程可以设置串行通信的波特率、数据位数、停止位数、奇偶校验等参数。
在8250的源码中,主要包含以下几个部分:
1、初始化程序:初始化程序用于设置8250芯片的初始状态,包括控制寄存器的设置、波特率发生器的设置等。
初始化程序通常在系统启动时运行一次,以确保串行通信的正常进行。
2、发送程序:发送程序用于将数据发送到串行通信线上。
在8250的源码中,发送程序将数据写入到发送缓冲区,然后通过控制寄存器启动发送。
发送程序还需要处理发送中断,以确定数据是否已经成功发送。
3、接收程序:接收程序用于从串行通信线上接收数据。
在8250的源码中,接收程序通过控制寄存器启动接收。
当接收到数据时,接收程序会将数据写入到接收缓冲区,并产生一个接收中断。
4、中断处理程序:中断处理程序用于处理接收和发送中断。
在8250的源码中,中断处理程序会检查接收和发送的状态,并执行相应的操作,例如清空缓冲区、启动发送或接收等。
除了以上几个部分,8250的源码还包括一些辅助函数,例如读写控制寄存器、读写数据寄存器等。
这些函数用于操作8250芯片的各种寄存器,确保串行通信的正常进行。
总的来说,8250的源码结构比较清晰,通过初始化程序、发送程序、接收程序和中断处理程序等几个部分,可以完成串行通信的功能。
在实际使用中,需要根据具体的应用场景和需求进行适当的配置和优化。
PC机串行通讯实验一、实验目的1.进一步了解串行通信的基本原理。
2.掌握串行接口芯片8250的工作原理和编程方法。
3.熟悉PC机串行口的基本连接方法。
二、实验内容1.PC机RS-232串口自发自收。
按照PC机串口自发自收的连接方法连线。
编写PC机自发自收串行通信程序,要求:从键盘输入一个字符,将字符通过串口发送出去,再由次串口将字符接收回来并在屏幕上显示,实现自发自收。
要求:键盘输入一个字符,将字符通过串口发送出去,再由此串口将字符接收回来并在屏幕上显示,实现自发自收。
2.两台PC机间RS-232串口通信按照PC机RS-232串口直接互连的方法连接两台PC机。
编写PC机直接互联串行通信程序。
要求:由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示再屏幕上。
当键入感叹号“!”,结束收发过程。
要求:由甲机键盘键入字符经串口发送给乙机,再由乙机通过串口接收字符并显示在屏幕上。
当键入感叹号“!”,结束收发过程。
三、实验电路自发自收只需要将本机的2和3号端口短路即可。
以下是双机近距离通信连接图:四、程序设计及实验调试首先是8250芯片的初始化,初始化流图如下:按照书上的通信程序,采用查询方式编自发自收程序。
初始化之后,先读线路状态寄存器,再检测发送寄存器是否为空,出错则清除线路状态寄存器,接收就绪否,接收数据等。
若自发自收未做好准备,则显示’?’。
除数=1.8432M/(2400*16)=48=30H实验1 自发自收:CODE SEGMENTASSUME CS:CODESTART: MOV AL,10000000B ;8250初始化,设DLAB=1MOV DX,3FBHOUT DX,ALMOV AX,30H ;波特率为2400,基准时钟频率为1.8432MHz,除数为30HMOV DX,3F8HOUT DX,AL ;写入除数低字节MOV AL,AHMOV DX,3F9HOUT DX,AL ;写入除数高字节MOV AL,0AH ;7位数据,1位停止,奇校验MOV DX,3FBHOUT DX,AL ;写入线路控制寄存器MOV AL,00001111BMOV DX,3FCHOUT DX,AL ;写入Modem控制寄存器MOV AL,0MOV DX,3F9HOUT DX,AL ;写入中断允许寄存器,屏蔽中断WAIT_FOR: MOV DX,3FDH ;读线路状态寄存器,屏蔽中断IN AL,DXTEST AL,00011110B ;出错否JNZ ERRORTEST AL,00000001B ;接收数据就绪否JNZ RECEIVE ;转接收TEST AL,01000000B ;发送寄存器空否,不空,返回等待JZ W AIT_FORMOV AH,1INT 21H ;读键盘MOV DX,3F8H ;发送OUT DX,ALJMP W AIT_FORRECEIVE: MOV DX,3F8H ;读接收数据IN AL,DXAND AL,01111111B ;保留7位数据CMP AL,21H ;是”!”?JNZ CHARMOV AH,4CH ;返回DOSINT 21HCHAR: PUSH AXMOV DL,ALMOV AH,02H ;显示接收字符INT 21HPOP AXJMP W AIT_FORERROR: MOV DX,3FDH ;出错则清除线路状态寄存器IN AL,DXMOV DL,'?' ;显示’?’MOV AH,02HINT 21HJMP W AIT_FORCODE ENDSEND START实验中遇到问题及分析:在软件编程的过程中,因为是参考书上的程序,所以没有报错。
学生实验报告3FFH ×不用1.传输线路控制寄存器LCR(3FBH)如图10-1所示。
图10-12.除数寄存器DLL、DLH(3F8H,3F9H)常用波特率及除数对照表如表10-2所示。
表10-2除数寄存器波特率(BIT/S)高字节低字节04H 17H 11003H 00H 15001H 80H 30000H C0H 60000H 60H 120000H 30H 240000H 18H 480000H 0CH 9600 3.中断允许寄存器IER(3F9H)如图10-2所示。
图10-24.MODEM控制寄存器MCR(3FCH)如图10-3所示。
图10-35.9针串口插座(DB-9)外形如图10-4所示,引脚说明如表10-3所示。
图10-4表10-3RS-232C信号说9芯引脚号引脚名称明1 空2 RXD 接收数据3 TXD 发送数据4 DTR 数据终端就绪5 GND 信号地6 DSR 数据装置就绪7 RTS 发送请求8 CTS 发送允许9 保护地6.编程提示(1)程序流程图如图10-5所示。
图10-5 程序流程图四、实验参考程序STACK SEGMENT PARA STACK 'STACK'DB 256 DUP(?)STACK ENDSCODE SEGMENT PARA PUBLIC 'CODE'ASSUME CS:CODESTART PROC FARPUSH DS ;保存PSP 地址XOR AX,AXPUSH AX ;初始化8250为7位数据位,1位停止位,奇校;验,波特率1200,并设定为内部连接方式MOV DX,3FBHMOV AL,80HOUT DX,AL ;设传输线控制寄存器D7为1MOV DX,3F8H ;设波特率为1200MOV AL,60HOUT DX,ALMOV DX,3F9HMOV AL,0OUT DX,ALMOV DX,3FBH ;设奇校验,1位停止位,7位数据位MOV AL,0AHOUT DX,ALMOV DX,3FCH ;设MODEM控制寄存器发DTR和RTS信号,MOV AH,14 ;显示“?”INT 10HJMP FOREVEREXIT:MOV AH,4CH ;返回DOSINT 21HSTART ENDPCODE ENDSEND START五、实验结论与心得成绩教师签名批改时间年月日。
[转]串口芯片型号8250、16550A等串口芯片型号8250、16550A等是什么意思?串口的关键部件是通用异步接收发送器(Universal Asynchronous Receiver Transmitter,UART)。
它负责从计算机总线采集数据,转换成传输格式,然后发送到串口;也负责从串口接收数据,检查和删除附加的位,并传送结果数据给计算机总线。
下面是各种串口芯片的简介。
82508250是IBM PC及兼容机使用的第一种串口芯片。
这是一种相对来说很慢的芯片,有时候装载到它的寄存器速度太快,它来不及处理,就会出现数据丢失现象。
8250有7个寄存器,支持的最大波特率为56kb。
8250A是8250的修正版。
修正了一些小问题,增加了一个用来表示安装了8250的寄存器,最大速度还是56kb。
1645016450是8250A的快速版。
加快了处理器存取它的速度,但最大速度还是56kb。
有些人实际用得比这高也可以。
16C45116C451是16450的CMOS版本。
CMOS是制作材料和工艺的术语,一般比其它技术省电。
速度方面无变化。
1655016550是第一种带先进先出(FIFO)功能的8250系列串口芯片。
但因为有缺陷,很快就被下一种代替。
16550A, 16550AF和16550AFN16550A与用于8250的软件兼容,而前者提供更高的性能。
16550A的最大波特率为256kb。
但因为PC硬件设计的原因,编程时只能用到115kb。
16550A的管脚与8250、8250A和16450相同。
如果你的扩展串口板上串口芯片安装在插座上,你可以用16550A替换进行简单的升级。
16550A性能增强的关键是使用了先进先出(FIFO)。
它有16字节的发送FIFO寄存器和16字节的接收FIFO寄存器。
16C55116C551是16550AF的COMS版本。
16C55216C552是在一个芯片上包含两个16C551。