IO设备

若吾起舞时,丽人皆沉醉。

若吾起舞时,皓月亦鸣音。

神降合婚夜,破晓鸫鸟啼。

外设分为字符设备和块设备,通过IO接口与CPU相连,本文将对外设相关的知识进行总结。

简介

什么是外设

外设特点

  • 种类多
  • 工作速度比CPU慢,且速度分布宽
  • 信号类型与信息格式多样化

IO接口

定义及组成

IO接口是一个电子电路,内部有若干寄存器和相应控制逻辑电路。

作用

作为CPU和IO设备交换信息的媒介,IO接口基本功能如下:

  • 速度匹配
  • 信号形式匹配(AD/DA/串并/并串)
  • 电平转换及驱动能力增加
  • 信息格式及时序匹配

IO端口

IO端口是IO接口中的一组能和处理器交换信息的寄存器,CPU对外设的访问实际是通过对IO端口的访问实现的。IO端口一般包含如下几个部分:

  • 数据端口:存放数据
  • 控制端口:存放控制指令
  • 状态端口:存放状态信息

IO端口编址方式

传统电脑:采用专用的IO地址
  • 和访问内存的方式类似
  • 有1024个IO地址
  • 通过IN、OUT命令访问

下面的代码展示了一个向打印设备写入一个byte的过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#define DATA_PORT    0x378
#define STATUS_PORT 0x379
#define BUSY 0x80
#define CONTROL_PORT 0x37A
#define STROBE 0x01
void
lpt_putc(int c)
{
/* wait for printer to consume previous byte */
while((inb(STATUS_PORT) & BUSY) == 0)
;

/* put the byte on the parallel lines */
outb(DATA_PORT, c);

/* tell the printer to look at the data */
outb(CONTROL_PORT, STROBE);
outb(CONTROL_PORT, 0);
}
内存映射IO(现代计算机常用)

这种情况下外设接口与内存进行了统一编址,其优缺点如下:

  • 优点
    • 不需要额外指令
    • 访问控制信号统一
    • IO地址空间扩展
  • 缺点
    • 访问类似内存,但是工作行为不是
    • 会占用内存的一部分地址

数据传输方式

参考文献

0%