可编程串行接口8250
9.2 可编程串行接口8250

常用的可编程串行接口芯片有Intel的8250、8251, 常用的可编程串行接口芯片有Intel的8250、8251, 美国国家半导体公司的16550等 8250与16550完全 美国国家半导体公司的16550等。8250与16550完全 兼容。 兼容。
电子科技大学
微机系统原理及接口技术应用
异步串行数ቤተ መጻሕፍቲ ባይዱ发送格式
电子科技大学
微机系统原理及接口技术应用
(2)发送部分
1.CPU送来的并行数据存放在发送保持寄存器中 1.CPU送来的并行数据存放在发送保持寄存器中 2.数据经过发送移位寄存器进行并串转换 2.数据经过发送移位寄存器进行并串转换 3.按规定格式加上起始位、奇偶校验位和停止位,构成完整 3.按规定格式加上起始位 奇偶校验位和停止位, 按规定格式加上起始位、 的串行数据帧 4.数据由Sout发出 4.数据由Sout发出 数据由Sout 另外,当数据进入到发送移位寄存器后,发送保持寄存器 另外,当数据进入到发送移位寄存器后, 自动变空,以接收下一个待发送的数据。 自动变空,以接收下一个待发送的数据。
状态时,若允许Modem状态中断,就会产生一次中断 状态中断, 状态时,若允许Modem状态中断 接收线路信号检测输入, =0,表明Modem已 . RLSD :接收线路信号检测输入, RLSD =0,表明Modem已 收到数据载波,8250/16550应立即开始接收解调 收到数据载波,8250/16550应立即开始接收解调 后的数据
电子科技大学
微机系统原理及接口技术应用
同步通信: 同步通信: 1.通信开始后,发送设备连续发送字符, 1.通信开始后 发送设备连续发送字符, 通信开始后, 接收设备首先搜索同步字符, 接收设备首先搜索同步字符,在得到同 步字符后开始接收数据。 步字符后开始接收数据。 2. 传送过程中,发送设备和接收设备必须 传送过程中, 要保持完全同步,即使用同一个时钟。 要保持完全同步,即使用同一个时钟。
微机原理课件 8250

一、8250的组成及引脚 的组成及引脚
数 据 总 线 D0 ~ D7 冲 器 部 数 据
CS0 CS1 CS2 A2 A1 A0 ADS DISTR DISTR DOSTR DOSTR DDIS MR
数据发送寄存器 数据接收寄存器 缓 内 线路控制寄存器 线路状态寄存器 除数寄存器高位 总 线 除数寄存器 位
4、调制解调控制寄存器MCR(100B 3FCH) 、调制解调控制寄存器 ( )
D7 0 D6
0
D5
0
D4
D3
D2
D1
D0 DTR
LOOP OUT2 OUT1 RTS
其中D0 ~ D3位对应8250的四个引脚,当该位为1时,相应的引脚输出有效的低电平。 当D4 = 1时,8250工作循环回送状态。(此时8250发送的数据被自身接收。用于自检)
PC机串口端口地址表 机串口端口地址表
PC机串口硬件连接图 机串口硬件连接图
再写高分频值到DLH(3F9H) ( 再写高分频值到 )
2、设置通信数据格式(对通信控制寄存器写入命令字) 、设置通信数据格式(对通信控制寄存器写入命令字) 假定7个数据位 个停止位 偶校验。 个数据位, 个停止位, 假定 个数据位,1个停止位,偶校验。 MOV DX ,3FBH MOV AL ,1AH OUT DX ,AL
3、设置操作方式 (对MODEM控制寄存器写控制字) 、 控制寄存器写控制字) 控制寄存器写控制字
MOV DX ,3FCH MOV AL ,03 OUT DX ,AL 4、设置中断允许寄存器 、 MOV DX ,3F9H MOV AL ,0 OUT DX ,AL DTR = 0,RTS = 0,OUT2 = 0,不自检 , , ,
第九章 可编程串行异步通信接口芯片8250

9.1 串行通讯概述
一、串并行通讯
串行通信是指使用一条数据线,将数据一位一位地依次传输, 每一位数据占据一个固定的时间长度。其只需要少数几条线 就可以在系统间交换信息,特别使用于计算机与计算机、计 算机与外设之间的远距离通信。 其特点是: 节省传输线,这是显而易见的。尤其是在远程通信时,此特 点尤为重要。这也是串行通信的主要优点。 数据传送效率低。与并行通信比,这也这是显而易见的。这 也是串行通信的主要缺点。 如果一组数据的各数据位在多条线上同时被传输,这种传输 方式称为并行通信。并行通信时数据的各个位同时传送,可 以字或字节为单位并行进行。 其特点是: 各数据位同时传输,传输速度快、效率高,多用在实时、快 速的场合。 并行传输的数据宽度可以是1-128位,甚至更宽,但是有多少 数据位就需要多少根数据线,因此传输的成本较高。 并行数据传输只适用于近距离的通信,通常传输距离小于30 米。
(5)除数锁存器(波特率因子寄存器) 该锁存器为16位,外部时钟被除数锁存器中的除数相 除,可以获得所得的波特率。如果外部时钟频率f已知, 而8250所要求的波特率F也已规定。那么,就可以由 下式求出除数锁存器应锁存的除数: 波特率因子=1.8432Mhz/(1200*16)=96 例如,当输入时钟频率为1.8432MHZ时,若要求使用 1200波特来传送数据,这时可算出锁存于除数锁存器 的除数应为96。在8250工作前首先要将除数写到除数 锁存器中,以便产生所希望的波特率。为了写入除数, 首先在通信控制寄存器中将D7置为1,而后就可以将 16位除数先低8位,后高8位写入除数锁存器中。 (6)中断允许寄存器 中断允许寄存器只用D0~D3这四位,每位的0或1编 码分别允许或禁止8250的四种中断源提出中断。在中 断允许字中,接收线路状态包括越限错、奇偶错、结 构错、间断等中断源引起的中断。而MODEM状态引 起的中断见下面对MODEM状态寄存器的解释。
9.3 通用异步接收发送器INS 8250-微型计算机汇编语言与接口技术-刘均-清华大学出版社

教材第页 5
9.3.1 INS 8250的内部结构
3. 收发模块
收发模块包括接收器部分和发送器部分。
接收器部分包括接收缓冲寄存器、接收移位寄存器和接收同步 控制电路。在接收数据时,接收移位寄存器将SIN引脚输入的串 行数据进行移位,组装成一个并行数据。在接收移位寄存器接 收完一个字符后,接收同步控制电路按照异步串行通信协议, 去除起始位、奇偶校验位和停止位,对数据进行校验。若校验 有错,则在线路状态寄存器中设置相应的出错标志;若无校验 错,就将并行数据送至接收缓冲寄存器中。
教材第页 6
9.3.1 INS 8250的内部结构
4. 线路模块
线路模块包括线路控制寄存器和线路状态寄存器。线路控制寄 存器接收CPU送来的控制命令,指定异步串行通信的格式、除 数寄存器访问允许等。线路状态寄存器记录串行数据发送和接 收的状态信息,以供CPU查询。
5. MODEM模块
MODEM模块包括MODEM控制寄存器、MODEM状态寄存器和 MODEM控制逻辑电路。MODEM控制寄存器用于设置INS 8250 与通信设备之间联络应答的信号。MODEM状态寄存器用于记 录INS 8250与通信设备之间应答联络信号的当前状态以及这些 信号是否发生变化的情况。MODEM控制逻辑电路根据MODEM 控制寄存器中的设置,产生对通信设备的联络应答信号;接收 通信设备传来的状态信号,记录在MODEM状态寄存器中。
第9章 串行通信接口
9.1 串行通信的基本概念 9.2 可编程串行接口芯片8251A 9.3 通用异步接收发送器INS 8250 9.4 串行通信接口标准RS-232C 9.5 8251A/8250应用举例 9.6 PC中的串行接口应用
业精于勤而荒于嬉
教材第页 1
可编程串行通信接口芯片16550与8250

D1
△DSR
D0
△CTS
△表示变化的状态
△允许发送(CTS) △ 数据装置就绪(DSR) △ 响铃指示 △ 数据载波检测(DCD)
2023年5月4日星期四
7.中断允许寄存器IER
反映了接收器和发送器以及Modem是否允许中 断的情况,通过设置可以指定其中的某些部件 允许中断。它是一个可读可写的寄存器。
其它引脚
1. 电源及时钟VCC,GND,XTLA1,XTLA2 2. 数据线:D7~D0 3. 片选信号:CS0,CS1和/CS2(输入) 4. 选通信号:
地址输入选通: /ADS 数据输入选通:DISTR和/DISTR(接/IOR) 数据输出选通:DOSTR和/DOSTR(接/IOW) 5. 主复位:MR 6. 接收时钟: =接收波特率的16倍 7. 清除发送: /CTS 8. 数据装置(MODEM)准备好: /DSR 9. 接收线路信号检测: /RLSD(有效时表示Modem检测数据载波 10.振铃指示:/RI 有效表示Modem已经接收到一个电话振铃信号
读/写操作 OUT (写) IN (读) IN(读)或 OUT(写) IN(读)或 OUT(写) IN(读)或 OUT(写) IN (读) IN(读)或 OUT(写) IN(读)或 OUT(写) IN(读) IN(读)
2023年5月4日星期四
2.串行接口初始化
串行接口初始化的任务: (1)设置波特率 (2)确定通信的具体格式 (3)设置操作方式 (4)设定是否使用中断、是否自测试操作等
D7 D6 D5 D4
IEE 0 0
0
0
1 允许中断 0 禁止中断 1 允许中断 0 禁止中断
Modem状态中断 接收字符代码错 或接收中止状态中断
可编程串行通信接口8250A自发自收实验

可编程串行通信接口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,建立寄存器和中断允许寄存器的标志。
6_串行接口和8250

主机 8250 外设
8250 全双工异步通信接口电路
数据总 线收发 器
控制信号 逻辑
控制寄存器 状态寄存器 数据输入寄存器 串入 输入移位寄存器 数据输出寄存器 串出 输出移位寄存器
完
帧
帧
同步串行通信
同步字符1
同步字符2
单工通信
发
收
信号地
半双工通信
发
收
收
发
信号地
全双工通信
发
收
收
发
信号地
多工通信
设备1
复
设备2
用
器
设备3
设备4
复 用 设备5 器
设备6
通信速率
传输率:每秒传送二进制的位数。 波特率:通信线路的状态变化率。
信号的调制和解调
计
计
算
算
机
电话线
机
问题:数字波形会发生衰减和畸变。
6
串行通信和8250
6.1 串行通信
6.2 可编程串行输入输出接口8250
6.1 串行通信
并行通讯
主机
外设
优点:传输速度快,适用于距离短的场合。 缺点:通信线多,通信成本高,容易引入干扰。
串行通讯
主机
外设
信号地
优点:通信线少,通信成本低,不易引入干扰。 缺点:传输速度慢,适用于距离短的场合。
异步串行通信
计外 算 通信数据 机设
发送时钟 接收时钟
不采用同样的时钟,根据通信数据“帧”为 传送单位传送信息。
同步串行通信
计 外 同步字符 算 机 设 同步时钟
采用同步时钟,可以单独一根信号线,也可 以和数据线组合在一起。
异步串行通信
8250串行接口

add dx,0ah
in ax,dx ;读入线路状态寄存器(LSR)内容
test ax,20h ;检测发送保持寄存器状态
jnz recv2
pop ax
jmp send
recv2: pop ax
mov dx,bx
out dx,ax
ret
recv: mov bx,0480h
mov dx,bx
三、实验原理介绍
实验原理图见8250串行接口电路。由MAX232完成RS232电平和TTL电平的转换,由8250完成数据的收发。8250内部有10个寄存器,分别对应着不同的IO口地址。对不同的寄存器进行初始化或读出写入操作就可以完成与计算机的通信。由于不能同时收发数据,所以8250又称为通用串行异步收发器,简写为:UART。8250实验电路的所有信号均已连好。
六、程序框图
上位机程序框图下位机程序框图
程序框图
七、实验程序
code segment ;define data segment
assume cs:code
org 0100h
start: md dx,6;信线路控制寄存器端口地址PORT+6
mov ax,80h ; DLAB=1
8250串行接口电路
四、实验步骤
1、实验接线
利用串口电缆连接实验箱的串口和计算机的串口(COM1或COM2)
2、编写程序。
3、在实验箱上运行86编译系统,下载实验程序8250.asm,并全速运行。
4、实验箱退出86编译系统,启动实验六的上位机驱动程序T6UP.EXE,首先选择串行端口(COM1或COM2),端口与步骤1一致,键入串口号即可,然后从键盘上输入字符,看返回字符是否正确。欲退出T6UP.EXE,按回车键。
串口8250(16550) 微机原理

16550编程
16550编程分为两部分:初始化对话和操 作对话。 PC中串口I/O端口译码为:COM0为 3F8H~3FFH,COM2为2F8H~2FFH。
16550初始化
初始化对话出现在硬件或软件复位后 由两部分组成:编程线路控制寄存器和 波特率产生器。 线路控制寄存器选择数据位数、停止位 个数以及奇偶校验位 波特率产生器用一个确定发生器波特率 的除数进行编程。
16550
两个完全独立的 部分:接收器和 发生器 工作方式:单工、 半双工、全双工 内部接收器和发 送器FIFO存储器: 16字节
16550引脚功能
16550引脚功能
16550引脚功能
16550引脚功能
16550引脚功能
16550可控制调制解调器 MODEM将串行数据的TTL电平转换成可通过电 话系统的音频信号。 16550上有6个引脚用于调制解调器控制: DSR(data set ready), DTR(data terminal ready), CTS(clear-to-send), RTS(request-tosend), RI(ring indicator)和DCD(data carrier detect)。 调制解调器作为数据装置,16550作为数据终 端。
线路控制寄存器
最右边两位选择数据位数 S为停止位位数:S=0使用1 位;S=1,则对于5个数据 位使用1.5位数据位,对于 6,7,8则使用2位 接下来3位一起用于发送偶 校验或奇校验、发送无奇偶 校验或发送奇偶校验位位置 中的1或0. 其余两位用于发送一个间隔 符以及选择对波特率除数进 行编程。
接口的技术08-2串行通信接口8250

4、调制解调控制寄存器MCR(100B 3FCH)
MR:主复位输入信号,高电平有效 ADS-:地址选通信号=AEN DISTR、DISTR-:数据输入选通信号 DOSTR、DOSTR-:数据输出选通信号 DDIS:驱动器禁止信号,在CPU从 8250读取数据时为低电平,其他时 间为高电平禁止外部收发器对系统 总线的驱动 CSOUT:片选输出信号 XTAL1、XTAL2:外部时钟端 中断控制逻辑: INTR:中断请求输出信号 MODEM控制逻辑: CTS-:清除发送信号 RTS-:请求发送信号 DTR-:数据终端准备好信号 DSR-:数据装置准备好信号 RLSD-:接收线路信号检测信号 RI-:振铃指示信号 OUT1-:由用户编程指定的输出端 OUT2-:与OUT1一样,可以由用户 编程指定(PC用)
第二部分
PC 微机异步通信适配器的分析和使用
一、PC中的UART
1.INS8250
2.PC16450/PC16550 带16字节的发送缓冲器和14字节的接收缓冲器 FIFO
我 的 电 脑 中 串 口 配 置
3.端口基地址,硬件中断请求号,中断向量: COM1: 3F8H,4,0C COM2: 2F8H, 3, 0B 当加入其他的串口卡后,其地址一般为
ERROR:
MOV DX,3F8H
IN AL,DX ;接收一个字节
2. 中断方式
以查询方式发送数据,以中断方式接收数据, INISIR:MOV DX,3FBH MOV AL,80H OUT DX,AL ;置DLAB=1 MOV DX,3F8H MOV AL,0CH OUT DX,AL MOV DX,3F9H MOV AL,0 ;置除数为000CH,规定波特 率为9600波特 OUT DX,AL
7.4可编程接口芯及其接口-串行接口8250

国际上规定了一个标准波特率系列: n 例:波特率=9600bps,波特率因子=16,则 50、110、300、600、1200、1800、2400、4800、 接收时钟和发送时钟频率=9600×16=153600Hz 9600、19.2K、56K、115.2Kbps等。
bps =
收/发时钟
n
叫波特率因子,(可取 1, 16, 64)
+12V
DB-25
DB-25
+12V 1488 -12V
计 算 机 接 口
TXD
1488 -12V
2
2
2
2
TXD
+5V RXD
1489
+5V
3 7
座
3 3 7 信号地 7
头 头
3 7
座
1489
RXD
计 算 机 接 口
TTL电平
RS-232C电平(EIA电平)
TTL电平
一、 串行通信的基本概念
用MAX232芯片实现EIA/TTL电平转换 MAX232芯片只要单一+5V,其内部有电压倍增和转 换电路,可实现TTL与EIA电平之间的转换。
MODEM
MODEM
微机
一、 串行通信的基本概念
•不使用联络信号的3线相连方式
微机 TxD RxD GND 微机
为了交换信息,TxD和RxD应当交叉连接 程序中不必使RTS和DTR有效 也不应检测CTS和DSR是否有效
一、 串行通信的基本概念
•“伪”使用联络信号的3线相连方式
TXD RXD RTS
微机
发送数据TxD 2 2 2 2 接收数据RxD 3 3 3 3 请求发送RTS 4 4 4 4 允许发送CTS 电话线 5 5 5 5 数据装置准备好DSR 6 6 6 6 信号地GND 7 7 7 7 载波检测CD 8 8 8 8 20 数据终端准备好DTR 20 20 20 振铃指示RI 22 若通信链路是交换式系统的一部分,则还需两个信号: 22 22 22 接收时:当DCE启动‚载波检测‛线有效时,表明它正在接 发送时:DTE向DCE发‚发送请求‛信号,当收到DCE的应 无论是发送或接收,DSR(即DCE就绪)信号线必须有效,表明 收通信链路另一端的DCE发送的数据,并通过‚接收数据‛ RI(振铃)和DTR(DTE就绪)。DCE收到交换台振铃后以RI 答信号‚清除发送‛后,通过‚发送数据‛线发出数据。 DCE已接上信道,且不在测试、通话状态,可以通信。 线将数据送至DTE。 信号告知DTE;DTE则以DTR信号回应RI,建立通信链路.
uart8250 手册

uart8250 手册
UART8250手册是一份详细介绍UART8250通信协议的参考文档。
UART(通
用异步收发传输器)是一种常用的串行通信接口标准,用于在计算机系统中实现数据的传输和接收。
手册旨在为用户提供UART8250的功能特性、寄存器配置和操
作原理等方面的详细信息,以帮助用户正确使用和配置UART8250。
UART8250手册首先介绍了UART8250的基础知识和通信原理。
它解释了UART的工作模式、数据传输格式和波特率的概念。
这些基本概念将帮助用户了解UART8250的工作方式,并为正确配置和使用UART8250提供基本的理论支持。
随后,手册详细描述了UART8250的功能特性和寄存器配置。
它列出了
UART8250的各个寄存器及其功能,并提供了针对每个寄存器的配置说明。
用户可以根据需求配置这些寄存器以实现所需的数据传输设置,如数据位数、校验位、停止位等。
此外,手册还提供了UART8250的操作指南。
它详细描述了UART8250的数
据传输过程,包括数据的发送和接收。
用户可以根据手册中的操作流程和示例代码,编写自己的应用程序,并与其他设备进行数据交换。
最后,手册包含了常见问题解答和故障排除的相关信息。
如果用户在使用UART8250时遇到问题或故障,可以参考手册中的解答和排除步骤,以快速解决问题并恢复正常的通信功能。
总之,UART8250手册是一份必备的参考文档,用户可以通过阅读手册来了解UART8250的功能特性、配置和操作原理,以实现相关的串行通信任务。
8250源码解析

8250源码解析
8250是一款经典的串行通信芯片,被广泛应用于计算机和其他设备之间的串行通信。
以下是关于8250源码的解析:
8250是一款可编程的串行通信芯片,通过编程可以设置串行通信的波特率、数据位数、停止位数、奇偶校验等参数。
在8250的源码中,主要包含以下几个部分:
1、初始化程序:初始化程序用于设置8250芯片的初始状态,包括控制寄存器的设置、波特率发生器的设置等。
初始化程序通常在系统启动时运行一次,以确保串行通信的正常进行。
2、发送程序:发送程序用于将数据发送到串行通信线上。
在8250的源码中,发送程序将数据写入到发送缓冲区,然后通过控制寄存器启动发送。
发送程序还需要处理发送中断,以确定数据是否已经成功发送。
3、接收程序:接收程序用于从串行通信线上接收数据。
在8250的源码中,接收程序通过控制寄存器启动接收。
当接收到数据时,接收程序会将数据写入到接收缓冲区,并产生一个接收中断。
4、中断处理程序:中断处理程序用于处理接收和发送中断。
在8250的源码中,中断处理程序会检查接收和发送的状态,并执行相应的操作,例如清空缓冲区、启动发送或接收等。
除了以上几个部分,8250的源码还包括一些辅助函数,例如读写控制寄存器、读写数据寄存器等。
这些函数用于操作8250芯片的各种寄存器,确保串行通信的正常进行。
总的来说,8250的源码结构比较清晰,通过初始化程序、发送程序、接收程序和中断处理程序等几个部分,可以完成串行通信的功能。
在实际使用中,需要根据具体的应用场景和需求进行适当的配置和优化。
微机接口与编程第五章数字量输入输出6(8250)

№ 28
(二) 寄存器及寻址 P289 表5.10
A9A8A7A6 A5A4A3A2A1A0 DLAB(标志位) 寄存器
000 000 001 001 010 011 100 101 110 1111111 1011111
№ 18
4、 8250的引脚
连接CPU的部分 连接外设的部分 注意:8250不是
Intel公司的产品, 所以该芯片引脚 名称与前面学习 的8253、8255等 Intel产品有所不 同,但是引脚功 能却是类似的
№ 19
处理器接口引脚(1) 数据线D0-D7:在CPU与8250之间交换信息 地址线A0-A2:寻址8250内部寄存器 片选线:包括
– 若接收到的字符的“1”的个数不符合奇偶校验要求
帧错误FE(Frame Error)
– 若接收到的字符格式不符合规定(如缺少停止位)
溢出错误OE(Overrun Error)
– 若接收移位寄存器接收到一个数据,并送至输入缓冲
器时,CPU还未取走前一个数据,就会出现数据溢出 – 若接收缓冲器的级数多,则溢出错误的几率就少
№ 24
串行异步接口引脚
发送数据SOUT 接收数据SIN
请求发送RTS
允许发送CTS
8250
数据装置准备好DSR 数据终端准备好DTR 信号地GND 载波检测RLSD
9个最常 用的信号
振铃指示RI
8250 9个信号的名称与RS232-C信号的名称稍有不同
№ 25
输出线
OUT1和OUT2:
– 两个可由用户定义用途的输出信号 – 由调制解调器控制寄存器的D2和D3位控制其输出 – 使用时,一般低电平有效,复位时恢复为高
09-2串行通信接口8250

2.内部结构
D0 ~ D7 数 据 总 线 缓 冲 器 内 部 数 据 总 线
接收器控制逻辑 RCLK
数据接收寄存器
数据发送寄存器 线路控制寄存器 线路状态寄存器 除数寄存器高位
接收移位寄存器 发送移位寄存器
SIN SOUT
发送器控制逻辑
XTAL1 XTAL2 BAUD OUT RTS CTS DTR DSR RLSD RI OUT1 OUT2
将数据自动并行传送到RBR。RBR(接收缓冲)收到
RSR 的数据后,就立即在状态寄存器中建立"接收到数 据准备好"的状态,而且也可以用此状态位来触发中断。
因此,查询状态位或者利用该状态触发的中断即可实现
微机原理实验+PC机串行通讯(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实验中遇到问题及分析:在软件编程的过程中,因为是参考书上的程序,所以没有报错。
第十章 串行通信及串行通信接口8250

School of Engineering & Automation · Tianjin Polytechnic University
微机原理课程
§10.2 串行通信接口的基本结构
①接收移位寄存器:靠移位脉冲将数据串行传进来。
②接收数据缓冲寄存器:将移位寄存器中的数→缓冲 寄存器,实现串-并的转换过程,向CPU申请中断后, 等待CPU取走数据 ③接收脉冲发生器:产生接收的移位脉冲 (RXC) ④发送数据缓冲寄存器:接收CPU送来的并行数据 ⑤发送移位寄存器:接收发送缓冲寄存器的数据,完 成并-串的转换,在移位脉冲的作用下,将数据移出去。
School of Engineering & Automation · Tianjin Polytechnic University
微机原理课程
②.检测脉冲 接收方需对发送方发来的数据位进行检测,以决定 是”0“还是”1“。 通常检测脉冲是移位脉冲的16和64倍(常选16)。
RXD 16TC 启动位 TC RXC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 6 7 8 9 10
8250最高波特率为9600bps82508250由数据总线缓冲器地址选择和控制逻辑接收器发送移位寄存器modem控制逻辑和可编程寄存器等组成接收缓冲寄存器传输线控制寄存器接收移位寄存器接收同步控制发送同步控制sinrclk传输线状态寄存器csdistrdistrdostrdostrxatlmrxatlddircsout发送缓冲寄存器发送移位寄存器baudoutsoutmodem控制寄存器调制解调控制逻辑modem状态寄存器rtsctsdtrdsrrlsdriout中断允许寄存器中断识别寄存器中断控制逻辑intrpt5vgnd数据总线缓冲器一个位双向三态缓冲器它是8250同微机系统数据总线连接的接口
串行通信8250(补充)

第9个仍为 0
24
异步通信的一般格式
每个字符由起始位、数据位、校验位、停止位构成。 起始位和停止位用于字符的同步。
从图中可看出,这种格式是靠起始位和停止位来实现字符 的界定或同步的,故称为起止式协议。
25
异步通信的信息格式如下边的表所示 注:表中位数的本质含义是信号出现的时间,故可有分 数位,如1.5。 例:传送8位数据45H(0100,0101B),奇校验,1个 停止位,则信号线上的波形象图所示那样:异步通信的 速率:若9600bps,每字符8位,1起始,1停止,无奇偶 ,则实际每字符传送10位,则960字符/秒。
1.全双工(Full Duplex)
数据的发送和接收分别由两根可以在两个不同的站点同 时发送和接收的传输线进行传送,通信双方都能在同一时刻 进行发送和接收操作,选择的传送方式称为全双工制。
A站 发送器 接收器
B站
接收器 发送器
图6.3.1
全双工方式示意图
特点:①每一端都有发送器和接收器 ②有二条传送线 应用:交互式应用,远程监测控制
ISO(Inter national Standard Organization)国际标准化组织。 OSI(Open System Interconnection)开放系统互连参考模型。
面向字符(character Oriented)
同步协议 分类 异步协议 面向比特(Bit) 面向字节计数
一、起止式异步通信数据格式
同步传输用一个时钟脉冲确定一个数据位, 异步 传输用多个时钟脉冲确定一个数据位(如16个) 同步传输以数据块(当作“位流”看待)为单位传 输,异步传输以字符为单位传输,但都称为帧 (Frame)
21
同步通信的时钟定时方法
微机实验可编程串行通信(8250)

学生实验报告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等](https://img.taocdn.com/s3/m/8a94b045a88271fe910ef12d2af90242a895ab9d.png)
[转]串口芯片型号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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
若要访问除数寄存器(为了写入波特率因子,以得到合适 的内部时钟频率),可将控制字设定为1000 0000(80H) 若传送的数据通讯格式为1位停止位、8位数据位、无奇偶 校验,可将控制字设定为0000 0011(03H)
第7章 常用数字接口电路
传输线状态寄存器(LSR)
8位可读/写寄存器,用于表示8250收/发通信时的状态信息 。
8)MODEM控制逻辑
功能:通过对调制解调器控制寄存器的编程设置,可以 控制提供给调制解调器的控制信号。
MODEM 控制寄存器 MODEM 状态寄存器 调制 解调 控制 逻辑 RTS CTS DTR DSR RLSD RI OUT1 OUT2
内 部 数 据 总 线
MODEM控制寄存器(MCR )用来对MODEM实施控制。
MODEM状态寄存器(MSR )提供控制信号的状态变化信息。
第7章 常用数字接口电路
数据总线
72LS245 D0 ~D7 A B DIR G
串行数 2、8250的寻址和连接
据收发
+12V D0 ~D7 SOUT SIN RTS ADS DISTR DOSTR DISTR DOSTR +5V 1 CTS DSR RLSD 1 +5V 2 1 1 1 1 3 4 5 6 8 20 1 SN75154 22 7 DB-25 TXD RXD RTS CTS DSR DCD DTR RI SGND
25脚,只用9个信号 (2个数据线,6个控制线,1个地址)
DB-9型连接器
9针,9针全用
1、近距离连接(<15m)
只用3条线(发送线TXD,接收线RXD,信号地线)
A机 2 TXD 3 RXD 7 2 3 7 B机
TXD
RXD
4 5 6 20
4 5 6 20
2、远距离连接(>15m)
1)需用MODEM和专用电话线 2)需用2~9条信号线(在接口与MODEM之间)
三. 可编程串行接口8250功能简介
CPU利用串行通信与外部进行数据交换,必须 通过串行接口电路实现。
D7~D0
INS8250
SIN
SOUT
(1)进行串/并行转换。 (2)实现串行数据格式化。 (3)能进行可靠性校验。 (4)实现与数据通信设备之间的联络控制。
第7章 常用数字接口电路
8250主要功能 (1)支持异步串行通信规程,发送时可自动插入起 始位、停止位和奇偶校验位,接收时能自动删除。 (2)内部具有可编程的时钟产生电路,可对外部时 钟进行1~65535次分频。 (3)具有由CPU的发向调制解调器MODEM的控制 信号。 (4)具有优先级排除的中断系统,有多种中断源。 (5)发送和接收都采用双缓冲结构(数据稳定)。
第7章 常用数字接口电路
异步通信时,字符/字节是一帧一帧的传送,每帧 字符必须靠起始位来同步,在异步通信的数据传送中, 传输线上允许空字符。
2.波特率 (bps)
波特率就是传送数据位的速率(用位/秒)表示。 例:数据传送速率为120字符/秒,每帧包括10个数 据位,则波特率为 120×10=1200位/秒=1200bps 常用的异步通信的波特率的值为:150、300、600 、1200、2400、4800、9600、14400、28800。
RS-232标准是美国EIA(电子工业联合会) 与BELL等公司一起开发的,1969年公布的通信 协议,适合的数传率:0~20Kbps。 RS-232对电气特性,逻辑电平和各种信号 线的功能都作了规定。
计算机 串行接口 DTE 串行接口 DTE
计算机 或终端
第7章 常用数字接口电路
机械特性 连接器(Connector)
第7章 常用数字接口电路
同步通信的优缺点
优点:一次传输多个数据,传输效率高,速度快。 缺点:一帧数据中收发时钟要保持高度同步,如果双 方的时钟频率有偏差,会因为积累造成错位。
பைடு நூலகம்发送方
接收方
公用时钟
第7章 常用数字接口电路
异步串行通信方式
特点:以字符/字节为单位传送,通信双方需约定 协议(格式,速率等)。 异步通信必须遵从两项规定: 1.数据的格式:每一个数据传送时,必须加一个起 始位,后面加1或1.5或2个停止位。还可根据需要加 入校验位。 校验位 奇校验 :字符加上校验位有奇数个1; 偶校验 :字符加上校验位有偶数个1 。 校验位产生和检查由串行通信控制器内部自动产生, 停止位也是由硬件自动产生的。(偶数个错误不能检测)。
第7章 常用数字接口电路
调制解调器的调制方式有以下三种: ①振幅调制(Amplictute Shift Keying,ASK)
②频率调制(Frequency Shift Keying,FSK)
③相位调制(Phase Shift Keying,PSK)
串行通信需要解决的问题
双方以何种速率进行通讯
进行传输的数据格式
第7章 常用数字接口电路
1、8250的内部结构及工作原理 1) 数据总线缓冲器
数 据 总 线 缓 冲 器 内 部 数 据 总 线
D7 ~ 0 D
功能:与CPU总线D7~D0连接,实现数据传送。
第7章 常用数字接口电路
2) 读写控制逻辑
功能:接收读写命令和控制信号,决定对哪个寄存器进行操作
输入片选信 号,同时有 效选中8250 8250内部 锁存地址及 寄存器的 片选信号, 选择信号 数据输入选通信号, 以稳定译码 任一信号有效时,可 数据输出选通信号, 读出被选中的8250寄 任一信号有效时,可 存器的内容 向被选中的8250寄存
如何从位流中正确地采样到位数据
收发出错时如何处理
收发双方必须严格遵守相关通信协议:
同步串行通信 异步串行通信
第7章 常用数字接口电路
2、同步通信与异步通信
同步通信:
特点:利用同步字(SYN)获得双方的同步信息, 数据之间无间隔符(数据流)所以传输速率 较高,同步传输的数据格式:
CRC的意思是循环冗余校验码,用于检验在 传输过程中是否出现错误。
功能:实现中断优先权排队,允许在符合条件时发出中 断请求,或禁止在符合条件时发中断请求,实现中断管理。
内 部 数 据 总 线
中断允许 寄存器 中断识别 寄存器
中断 控制 逻辑
INTRPT
中断允许寄存器(IER )用于允许或禁止某种中断。 中断识别寄存器( IIR )用于识别中断源。
第7章 常用数字接口电路
第7章 常用数字接口电路
1、工作方式
单工方式:
发送器
接收器
半双工方式:
发送器/ 接收器 发送器/ 接收器
发送器/ 接收器 发送器/ 接收器
全双工方式:
第7章 常用数字接口电路
调制与解调
在做远距离传输时,需要通过MODEM将数字信号→模 拟信号,可以利用电缆线传输(称为调制),接收方 利用MODEM将模拟信号转换为数字信号(称为解调) 。
D7 0 接收数据寄存器满 发送移位寄存器空 发送数据寄存器空 线路间断 越限错 奇偶错 结构错 D6 D5 D4 D3 D2 D1 D0
若发送数据寄存器为空,其状态字为0010 0000(20H)
若接收数据寄存器为满,其状态字为0000 0001(01H)
第7章 常用数字接口电路
7)中断控制寄存器
第7章 常用数字接口电路
二、串行通信的物理标准
进行串行通信的线路连接时,需要解决的问题: 1. 计算机与外设之间要共同遵守的某种约定,称 为物理接口标准,包括电缆的机械特性、电气特性、 信号功能和传送过程的定义。 2. 按相关接口标准设计接口电路。常用RS-232-C。
第7章 常用数字接口电路
RS-232-C串行接口标准
6) 传输线控制寄存器和传输线状态寄存器
内 部 数 据 总 线
传输线控制 寄存器
接收同步 控制 发送同步 控制
RCLK
传输线状态 寄存器
第7章 常用数字接口电路
传输线控制寄存器(LCR)
8位可读/写寄存器,用于设置串行通信的帧数据格式。
D7 D6 D5 D4 D3 D2 D1 D0 DLAB SB SP EPS PEN STB WLS1 WLS0 字长 00: 5位 禁止访问波特率因子寄存器 :0 01: 6位 允许访问波特率因子寄存器 :1 10: 7位 正常 :0 11: 8位 停止位 0: 1位 设置间断,SOUT发送空号 :1 1: 1.5位 (数据5位) 无附加奇偶校验位 :0 2位 (数据6, 7, 8位) 有附加奇偶校验位 :1 0: 无奇偶校验 奇校验(D3=1) :0 1: 允许奇偶校验 偶校验(D3=1) :1
读写控 制逻辑
RD WR
MODEM 1 控制信号
DTR RI
AEN A8 A9 A7 A6 A5 A4 A3 A2 A1 A0
片选控制
&
CS1 CS0 CS2
INS 8250
RLCK BOUDOUT OUT1 OUT2 A2 A1 A0 MR
内部时 钟信号 -12V
1 SN75150
外部时 钟输入
时钟电路
f=fosc/分频次数=16*外部通讯波特率 分频次数也称作波特率因子,初始化时放入除数寄存 器。先写低八位,再写高八位。
外部提供的标准时钟频率 波特率因子= 16 波特率
内 部 数 据 总 线 波特率除数 锁存器 (低) 波特 率发 生器 BAUDOUT
波特率除数 锁存器 (高)
第7章 常用数字接口电路
0
0 0 0 0 0 0 0 0
0
0 0 0 0 1 1 1 1
0
0 0 1 1 0 0 1 1
0
1 1 0 1 0 1 0 1
1
1 0 × × × × × ×