关键词: 外设、I/O端口、I/O空间、 操作外设的基本方式
1. 外设(Peripheral)
-
概念:
外设是一个非常宽泛的概念,既可以是集成在微控制器芯片内(片内外设),也可以是挂在处理器总线上的外部芯片(片外外设)。 -
种类:
1)用于实现以太网通信的外设;
2)用于实现RS232串行通信的外设;
3)用于实现USB通信的外设;
4)用于实现存储的闪存外设;
5)用于实现图像采集的外设;
6)...... - 中央处理器与外设的通信被称为输入与输出(Input/Output, I/O)
2. I/O端口(I/O port)
- 外设也像内存的存储单元那样通过地址进行区分,这样的地址被称为I/O端口
- 每一个外设在处理器的地址空间中占用不同的I/O端口,处理器可以通过不同的I/O端口实现与对应外设的通信
- 处理器除了通过I/O端口进行通信外,另一个重要的手段是中断(中断会在后续章节中详细讲解)
3. I/O空间
I/O端口所在的空间被称为I/O空间,各种架构的处理器存在不同的I/O空间设计形式。主要形式如下:
独立于内存所在的空间(独立I/O空间):
1) 独立于地址空间,无法通过地址访问外设
2)读写I/O端口需要使用于读取内存不一样的指令,即使用专用指令与外设进行通信
3)从编程角度看:对I/O端口操作不能像操作内存那样直接使用C语言中的指针完成,而是需要调用相应的函数,这些函数内封闭了I/O端口的操作指令内存映射I/O空间:
1)外设通过精密的硬件连接映射到处理器的地址空间
2)通过地址访问的方式与外设进行通信
3)从编程角度看:内存映射I/O空间的端口操作与访问内存是完全一样
4. 操作外设的基本方式
对于CPU而言,与外设进行通信时需要通过I/O端口配置控制寄存器和通过I/O端口读取数据寄存器
- 通过I/O端口配置控制寄存器:CPU指挥外设实现一定的功能,通过芯片的手册进行设置
- 通过I/O端口读取数据寄存器:CPU得到外设工作后的数据值
注意:这里的控制寄存器和数据寄存器是外设内部的寄存器,注意与CPU内部的寄存器相区别。
从软件工程师的角度看,只需要对不同的I/O端口读写就可以操作外设;读写I/O端口的时候具体值和意义需要查询具体的硬件手册。
声明:此文章为本人在学习狄泰软件学院《十二月提升计划》所做的笔记,参考书籍《专业嵌入式软件开发》——李云,文章中包含狄泰软件资料内容和《专业嵌入式软件开发》资料内容,一切版权归狄泰软件和《专业嵌入式软件开发》所有!