存储介质一般由半导体器构成,半导体存储器可分为三大类:随机存储器、只读存储器、特殊存储器。随机存取存储器(Random

Access

Memory)简称RAM,其特点是可以读写,存取任一单元所需的时间相同,通电是存储器内的内容可以保持,断电后,存储的内容立即消失。RAM可分为动态(Dynamic

RAM)和静态(Static

RAM)两大类。所谓动态随机存储器DRAM是用MOS电路和电容来作存储元件的。由于电容会放电,所以需要定时充电以维持存储内容的正确,例如互隔2ms刷新一次,因此称这为动态存储器。所谓静态随机存储器SRAM是用双极型电路或MOS电路的触发器来作存储元件的,它没有电容放电造成的刷新问题。只要有电源正常供电,触发器就能稳定地存储数据。DRAM的特点是集成密度高,主要用于大容量存储器。SRAM的特点是存取速度快,主要用于调整缓冲存储器。只读存储器(Read

Only

Memory)ROM,它只能读出原有的内容,不能由用户再写入新内容。原来存储的内容是由厂家一次性写放的,并永久保存下来。ROM可分为可编程(Programmable)ROM、可擦除可编程(Erasable

Programmable)ROM、电擦除可编程(Electrically Erasable

Programmable)ROM。如,EPROM存储的内容可以通过紫外光照射来擦除,这使它的内可以反复更改。特殊固态存储器包括电荷耦合存储器、磁泡存储器、电子束存储器等,它们多用于特殊领域内的信息存储。

所以硬件里的存储介质就是所谓的rom储存器,每个硬件都有这样的储存器,主要存储的是硬件的一些基本信息,如产地、生产商、类型等。这些信息可供cpu自动识别。

在早期计算机系统连接的外设较少,各外部设备可以与主机有单独的数据通路,形成所谓的辐射式连接,如图P233A,它虽有控制简单的优点,但连线多,结构复杂。

随着计算机组成结构发展成为总线形式,各外部设备也通过共同的总线与主机相连,如图P233B

总线是将信息以一个或多个源部件传送到一个或多个目的部件的一组传输线,是电脑中传输数据的公共通道。总线分为内部总线、系统总线和外部总线。内部总线指芯片内部连接各元件的总线。系统总线指连接CPU、存储器和各种I/O模块等主要部件的总线。外部总线则是微机和外部设备之间的总线,为主机和各类外设之间提供信息交换通路,它和接口一起实现主机与外设的连接。重要的是,采用总线结构便于部件和设备的扩充,使用统一的总线标准,不同设备间互连将更容易实现。

这种总线连接方式具有结构简单、易于扩展等优点,其缺点是所有的外设都通过同一组总线分时工作,这回影响其信息交换速度。这种结构广泛应用于微型、小型计算机中。

在大型计算机系统中,常利用I/O通道或I/O处理机连接外部设备,这就形成了如下图所示的连接方式。

一台大型计算机系统中可以有多个通道,一个通道可以连接多个设备控制器,而一个设备控制器又可以管理一台或多台外围设备,这样就形成了一个非常典型的输入输出系统的4级层次结构。这种结构中,主机将大部分输入输出工作交由通道或外围处理机完成,极大的提高了cpu的效率;同时,外设又可以分类连接到不同的通道上,最大限度地提高各自的工作速度。

一般说来,通道的功能应该包括如下几个方面:

1、接受CPU发来的输入输出指令,根据指令要求选择一台指定的外围设备与通道相连接。

2、执行CPU为通道组织的通道程序,从主存中取出通道指令,对通道指令进行译码,并根据需要向被选中的设备控制器发出各种操作命令。

3、给出外围设备的有关地址,即进行读/写操作的数据所在的位置。如,磁盘存储器的拄面号、磁头号、扇区号等。

4、给出主存缓冲区的首地址,这个缓冲区用来暂时存放从外围设备上输入的数据,或者暂时存放将要输出到外围设备中去的数据。

5、控制外围设备与主存缓冲区之间数据交换的个数,对交换的数据个数进行计数,并判断数据传送工作是否结束。

6、指定传送工作结束时要进行的操作。例如,将外围设备的中断请求及通道的中断请求送往CPU等。

7、检查外围设备的工作状态,是正常或故障。根据需要将设备的状态信息送往主存指定单元保存。

8、在数据传输过程中完成必要的格式的变换,例如,把字拆卸为字节,或者把字节装配成字等。

外部设备通过各自的接口电路与主机相连,也就是说,主机与外设之间是通过“接口”交换信息的,接口(Interface)也称适配器(Adapter)、设备控制卡(Device

Control

Card)或输入输出控制器。每一种外围设备,都是在它自己的设备控制器控制下进行工作,而设备控制器则通过适配器和主机连接,并受主机控制。适配器是一个物理设备,它允许硬件或电子接口与其它硬件或电子接口相连。在计算机中,适配器通常内置于可插入主板上插槽的卡中(也有外置的),卡中的适配信息与处理器和适配器支持的设备间进行交换。

每台外部设备都有各自的接口,不同种类的外设其接口的组成和任务各不相同,但它们能实现的功能大致是相同的。各种接口都必须具有下列基本功能:

(1)实现数据缓冲,在外设接口中设置若干个数据缓冲寄存器,在主机与外设交换数据时,先将数据暂存在该缓冲器中,然后输出到外部设备或输入到主机。

(2)“记录”外设工作状态,并“通知”主机,为主机管理外设提供必要信息。接口中用状态寄存器记录外设的工作状态。外设的工作状态一般可分为“空闲”、“忙”和“结束”三种。

(3)能够接收主机发来的各种控制信号,以便控制外设的操作。为此,在接口中设置了控制寄存器,以存放主机发来的控制字。

(4)实现主机与外设之间的通信控制,包括同步控制、中断控制等。为此,在接口中包含有控制逻辑电路。中断就是指CPU暂停当前正在执行的程序,转而去执行其它的程序,当其它程序执行结束之后,再回到中断点继续执行原来的程序

(5)能够判断主机是否选中该接口及其所连接的外部设备。我们知道,一个计算机系统往往连接多台不同种类的外部设备,为了管理这些设备,每台设备都设置了设备号,也称端口地址。主机根据这些设备号来确定与哪一台外部设备交换数据。为识别该设备号(端口地址),接口中设置了设备译码器。

通常,根据与储存器地址的关系,有两种编址方式。

1.统一编址

在这种编址方式中,I/O端口和内存单元统一编址,即把I/0端口当作内存单元对待,从整个内存空间中划出一个子空间给I/0端口,每一个I/0端口分配一个地址码,用访问存储器的指令对I/O端口进行操作。

这种编址方式的优点是:I/0端口的数目几乎不受限制;访问内存指令均适用于I/O端口,对I/0端口的数据处理能力强;cPu无需产生区别访问内存操作和I/O操作的控制信号,从而可减少引脚。其缺点是:程序中I/O操作不清晰,难以区分程序中的I/O操作和存储器操作;I/0端口占用了一部分内存空间;I/O端口地址译码电路较复杂(因为内存的地址位数较多)。

2.单独编址

I/O独立编址

I/O端口编址和存储器的编址相互独立,即I/0端口地址空间和存储器地址空间分开设置,互不影响。采用这种编址方式,对I/O端口的操作使用输入/输出指令(I/O指令)。

I/0独立编址的优点是:不占用内存空间;使用I/O指令,程序清晰,很容易看出是I/O操作还是存储器操作;译码电路比较简单(因为I/0端口的地址空间一般较小,所用地址线也就较少)。其缺点是:只能用专门的I/0指令,访问端口的方法不如访问存储器的方法多。

上面两种编址方式各有优点和缺点,究竟采用哪一种取决于系统的总体设计。在一个系统中也可以同时使用两种方式,前提是首先要支持I/O独立编址。:Intel的x86微处理器都支持I/O独立编址,因为它们的指令系统中都有I/O指令,并设置了可以区分I/O访问和存储器访问的控制信号引脚。而一些微处理器或单片机,为了减少引脚,从而减少芯片占用面积,不支持I/O独立编址,只能采用存储器统一编址。

一般来说,计算机主机与外设之间的信息交换方式有5种:

1.程序查询式

2.中断式

3.DMA式

4.通道式

5.外围处理机方式

程序查询和程序中断方式适用于数据传输比较低的外设,而DMA、通道和外围处理机方式适用于数据传输率比较高的外设。目前,小型机和微型机大都采用程序查询、中断和DMA方式。通道和外围处理机大都用在大型、中型计算机系统中。

当外设与主机相连时(即与接口相连),接口中的中断控制器会发出中断请求,要求cpu暂停当前工作,转而执行中断处理,中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的时间处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。外设的rom种储存的基本信息通过地址总线传入cpu,就能被cpu所识别了。

计算机主机外设接口,计算机是如何自动识别外设~~凯凯最终成果!相关推荐

  1. 计算机主机和外设的接口是,外设接口

    外设指除了主机箱.显示屏.键盘以外的设备.接口是指MD产品输入输出的地方.那么外设接口就是连接外围设备的接口. 中文名 外设接口 外文名 Peripheral Interface 英文简写 PI定   ...

  2. 嵌入式硬件协议: SPI串行外设接口 Serial Peripheral Interface

    简介 SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是 一种高速全双工的通信总线.它被广泛地使用在ADC.LCD 等设备与M ...

  3. 计算机各外设的作用,外设在计算机中的作用及传输方式.doc

    1. 外设在计算机系统中的作用 在计算机系统中,外围设备的作用显然非常重要.一台普通的微机系统中,外围设备的价格已经远远超过主机的价格.外围设备的作用归纳起来有以下几方面. ⑴ 提供人机对话 人操作计 ...

  4. Transifex与GTK文档翻译, Linux镜像文件, 外设接口杂谈

    Transifex与GTK文档翻译 参与GTK+开发的一段小经历(2013.10) 最近忽然对GTK+产生了浓厚的兴趣,打算研究一下.学习一个新东西,最好的方法就是先阅读一下它的文档.应该说GTK的文 ...

  5. I2C-两线外设接口-用于ArduinoNano, uno ,Mega2560

    这篇文章描述了I2C(互连集成电路,或"两线制")接口的工作方式,特别是参考了基于ATmega328P微处理器芯片的Arduino Uno.但是,很多细节将引起人们的广泛关注. 两 ...

  6. 谈谈SPI (Serial Peripheral Interface,串行外设接口)

    今天我们来一起聊聊谈谈SPI (Serial Peripheral Interface,串行外设接口): 什么是SPI SPI (Serial Peripheral Interface,串行外设接口) ...

  7. 微雪树莓派PICO笔记——7. SPI(串行外设接口)

    文章目录 SPI简介 硬件连接 通讯协议详解 RP2040 SPI 主要参数 RP2040 SPI 逻辑框图 machine.SPI类函数详解 例程地址 代码示例 代码实现 SPI简介 SPI全称为串 ...

  8. 华为模块MH5000-31外设接口应用指南

    本手册主要介绍华为模块的外设接口特性与功能,包括 UART.PCM/I2S.I2C.GPIO.ADC 和 PCIe,并详细介绍了各特性的使用方法和注意事项. 适用对象:系统工程师.软件工程师. UAR ...

  9. 同步和串行的区别_谈谈SPI (Serial Peripheral Interface,串行外设接口)

    什么是SPI SPI (Serial Peripheral Interface,串行外设接口)是Motorola 公司推出的一 种同步串行接口技术,是一种高速的,全双工,同步的通信总线: 它以主从方式 ...

最新文章

  1. 全国所有省市县地理坐标Json格式
  2. CSS 工程化 小结
  3. 13-SDEI: Software Delegated Exception Interface
  4. TTS Text-to-speech(文字转语音)服务
  5. 安装openstack时遇到的错误
  6. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]47.什么是Fiat-Shamir变换?
  7. tableau度量值计算_Tableau图表界面组成介绍
  8. linux编译内核后无法进入,编译linux内核,ubuntu,x86的环境出现warning,然后就出现无法启动ubuntu...
  9. pytorch dataloader_基于pytorch的DeepLearning入门流程
  10. expect java ssh_使用expect实现自动化ssh以及执行命令
  11. PL/SQL Developer 更改字体
  12. faster rcnn论文_【论文解读】精读Faster RCNN
  13. linux不允许将硬链接指向目录,为什么 UNIX/Linux 不允许目录硬链 【翻译】
  14. [leetcode] 117. 填充同一层的兄弟节点 II
  15. Visual Studio 2017 15.6预览版最新进展
  16. deb方式安装openjdk8
  17. 一套完整的直播系统开发、直播平台搭建的原理
  18. 小学算术运算测试c语言,c语言小学算术运算测试.doc
  19. ROS2机器人笔记20-08-15
  20. cocos creator 背包bag制作

热门文章

  1. 妙用 Intellij IDEA 创建临时文件,Git 跟踪不到的那种
  2. 为何从单体架构迁移到微服务这么难?
  3. Gradle 6.6 发布,引入配置缓存特性,大幅提升构建性能
  4. 前后端API交互如何保证数据安全性?
  5. 博客搭建攻略(三):创造收益
  6. python处理大型矩阵_在python中处理大型密集矩阵
  7. qstring如何初始化_QString介绍
  8. mxnet参数初始化,查看
  9. pybind传输list
  10. Failed to get convolution algorithm. This is probably because cuDNN failed to initialize