串行通讯控制器8250
DLAB
|
A2
|
A1
|
A0
|
I/O口地址
|
对应寄存器
|
0
|
0
|
0
|
0
|
3F8H(2F8H)
|
发送端数据寄存器
|
0
|
0
|
0
|
0
|
3F8H(2F8H)
|
接受端数据寄存器
|
1
|
0
|
0
|
0
|
3F8H(2F8H)
|
波特率因子寄存器(低8位)
|
1
|
0
|
0
|
1
|
3F9H(2F9H)
|
波特率因子寄存器(高8位)
|
0
|
0
|
0
|
1
|
3F9H(2F9H)
|
中断允许寄存器(IER)
|
X
|
0
|
1
|
0
|
3FAH(2FAH)
|
中断识别寄存器(IIR)
|
X
|
0
|
1
|
1
|
3FBH(2FBH)
|
线路控制寄存器(LCR)
|
X
|
1
|
0
|
0
|
3FCH(2FCH)
|
MODEM控制寄存器(MCR)
|
X
|
1
|
0
|
1
|
3FDH(2FDH)
|
线路状态寄存器(LSR)
|
X
|
1
|
1
|
0
|
3FEH(2FEH)
|
MODEM状态寄存器
|
X
|
1
|
1
|
1
|
3FFH(2FFH)
|
保留
|
波特率
|
波特率因子寄存器
|
|
MSB
|
LSB
|
|
300
|
01H
|
80H
|
600
|
00H
|
C0H
|
1200
|
00H
|
60H
|
2400
|
00H
|
30H
|
4800
|
00H
|
18H
|
9600
|
00H
|
0CH
|
设置好波特率因子寄存器后,要先恢复LCR的DLAB为0才能正常通信。
linux串口的初始化
static void init(int port)
{
outb_p(0x80,port+3); /* set DLAB of line control reg *///
outb_p(0x30,port); /* LS of divisor (48 -> 2400 bps */
outb_p(0x00,port+1); /* MS of divisor */
outb_p(0x03,port+3); /* reset DLAB */
outb_p(0x0b,port+4); /* set DTR,RTS, OUT_2 */
outb_p(0x0d,port+1); /* enable all intrs but writes */
(void)inb(port); /* read data port to reset things (?) */
}
void rs_init(void)
{
set_intr_gate(0x24,rs1_interrupt); //设置串行口1的中断门向量
set_intr_gate(0x23,rs2_interrupt); //设置串行口2的中断门向量
init(tty_table[1].read_q.data); // 初始化串行口 1
init(tty_table[2].read_q.data);
outb(inb_p(0x21)&0xE7,0x21); //允许主 8259A 芯片的 IRQ3,IRQ4 中断信号请求
}
串行通讯控制器8250相关推荐
- 【微机接口】可编程串行异步通信芯片8250
8250能实现数据串并变换,实现全双工异步通信. 支持异步通信协议,数据格式.通信速率由初始化编程设定. 内部有中断机制,CPU可用查询中断方式与之交换信息. 8250内部寄存器: 发送保持寄存器: ...
- SPI、I2C、UART三种串行总线的原理、区别及应用
SPI协议解析,链接如下 https://blog.csdn.net/weiqifa0/article/details/82765892 I2C协议解析,链接如下 https://blog.csdn. ...
- 俩个PC机通过串行口互联,实现件的无差错传输。程序必须用中断方式来完成任务
课程设计(论文)任务书 一.设计题目:1.题目名称 PC机通过串行口互联 2.题目来源 二.目的和意义 俩个PC机通过串行口互联,实现件的无差错传输.程序必须 ...
- setserial - 取得/设置 Linux 串行口的信息
总览 setserial [ -abqvVWZ] 设备 [ 命令参数一 [ 设备变元参数 ] ] ... setserial -g [-abGv ] 设备一 ... 描述 setserial 是一个用 ...
- 微机接口串行口的测试
要求 运用微机系统串行口知识,进行微机系统串行偶的测试:完成硬件测试环境,编写程序对微机系统的串口进行自发自收外环测试:数据发送从键盘输入,接收数据在屏幕显示. 硬件 实验前,首先要进行串口的连接以实 ...
- 南京邮电大学微型计算机原理与接口技术:微机系统串行口的测试
一.实验目的和要求 了解微机系统串行口RS-232C的内部结构.工作原理: 掌握Ins 8250的初始化编程方法,学会串行通信程序的设计. 二.实验内容 实验内容1:完成硬件测试环境,编写程序对微机系 ...
- (九)单片机串行口 内部结构的讲解 01
1. 基本概念 常用于数据通信的传输方式有单工.半双工.全双工和多工方式. 单工方式:数据仅按一个固定方向传送.因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集. 半双工方 ...
- Modus串行链路系统电气特性:2线-Modus、4线-Modus、RS232-Modus和RS485-Modus的特性
目录 1.2线-Modus 2.4线-Modus 3.4线-Modus和2线-Modus的兼容性 4.RS232-Modus 5.RS485-Modus 一个Modus多点串行链路系统是由主电缆(主干 ...
- Modbus协议在串行链路上的实现
目录 1.串行链路通信简介 2.串行链路通信协议原理 3.串行链路通信帧描述 4.RTU.ASCII串行传输模式 4.1.RTU传输模式 4.2.ASCII传输模式 1.串行链路通信简介 Modbus ...
- promise实现多个请求并行串行执行
早上查资料,偶然发现这个话题,发现自己并不会,于是乎,下来研究了一下. 想想之前我们用jquery写请求的时候,要实现请求的串行执行,我们可能是这么做的. $.ajax({url: '',data: ...
最新文章
- python对数运算符号_科学网—Python中算数运算符之注意及np.logspace - 张伟的博文...
- man手册查找ascii码和运算符优先级
- 为窗体添加防机器人的验证机制
- php-Arrays函数-array_flip-交换数组的键值
- C语言 | C语言实现十六进制转八进制
- 6.1 图的深度优先和广度优先搜索
- java 无名类做参数_说说你知道的几种主要的JVM参数
- AttributeError: type object ‘Image‘ has no attribute ‘open‘
- cmake安装配置及入门指南
- 闪退没由报错_使命召唤:(cod16)出现的闪退问题以及解决办法
- Go接口(Interface)的使用方法
- 相同风格,牛仔裤和青花瓷风行世界
- 卷积神经网络CNN原理以及TensorFlow实现
- poj1273:Drainage Ditches
- 工业铝型材是怎样去生产的
- windows下安装redis并设置自启动
- python加载模型包_R中的错误:需要h5py Python包来保存和加载模型
- 小游戏上传分数是怎么实现的_如何利用微信小游戏做公众号吸粉营销活动
- 工程师和他媳妇儿好玩的对话1——20160704
- CentOS 7 操作防火墙