首页 » 智能 » 一步步编写操作系统 14 CPU与外设通信——IO接口 上_接口_暗记

一步步编写操作系统 14 CPU与外设通信——IO接口 上_接口_暗记

少女玫瑰心 2024-12-16 00:11:46 0

扫一扫用手机浏览

文章目录 [+]

先容显卡之前,必须得和大家交待清楚,那么多的外部设备,cpu是如何与他们互换。

大家都学过微机接口技能吧?没学过也没紧要,反正我也只是笼统地说说^_^,担保大家一定能看得懂。

一步步编写操作系统 14  CPU与外设通信——IO接口 上_接口_暗记 一步步编写操作系统 14  CPU与外设通信——IO接口 上_接口_暗记 智能

按理说,如果硬件种类较少,让cpu直接同硬件进行IO操作也不是很过分,但现实不是这样的,打算性能发展到本日这样兴盛,是和出身各种各样的硬件分不开的。
微型打算机通过外部设备与表面的天下互换信息,外部设备种类繁多,事理互异,有机器式、电动式、电子式,输出的旗子暗记也多种多样,有仿照量、数字量、开关量。
它们都有自己特性,数据格式不相同,有的外设是用串行数据,有的是并行数据,并且它们都在自己的时序下事情,无论它们的速率如何,在cpu看来都太慢了。

一步步编写操作系统 14  CPU与外设通信——IO接口 上_接口_暗记 一步步编写操作系统 14  CPU与外设通信——IO接口 上_接口_暗记 智能
(图片来自网络侵删)

让cpu小朋友与每个“个性不同,脾气迥异”的硬件大大们打交道,这也太难堪cpu了,您看,通过实行jmp $这样的去世循环语句就能看得出,人家cpu可是个踏实低调的主,以是,“交际”这类活动对它还是少点好。
再说,同任何一个设备打交道,cpu那么速率那么快,它不得嫌弃别人慢吗,为了减少自己的等待韶光,还得为低速设备准备数据缓冲区。
cpu用的旗子暗记都是TTL电平,外设大多数都是机电设备,机电设备可不能用TTL电平驱动,这还不算完呢,cpu系统总线上传送的都是并行数据(以是你听到的都是8位、16位、32位cpu…),外设可是并行、串行都有,还得转换格式,想想就麻烦啊。
看来,不可能让cpu逐一适应它们,否则cpu要做的事情太多了。

cpu面临的问题,就像校长面临一群学生一样,让校长亲自管理每个学生的学习,纵然是肌肉男施瓦辛格也得累倒,于是,班主任的涌现帮了大忙,每个班主任卖力一批学生,由他们理解学生的情形后再向校长申报请示,这样校长他不须要过人的体格,事情起来也会游刃有余了。
人创造出来的东西一定分开不了人的思维,cpu工程师们也给cpu找了“班主任”,在cpu和外设之间加了个代理,总之,往后cpu有什么事就同它打仗就行了。
什么速率不匹配,缓冲区之类的,全都由代理来搞定。
举个例子,如果是串行设备,cpu就同串行接口通信,把数据发给它后,数据再经由串行接口发给串行设备,串行设备有了反馈后,把数据发送给串行接口,再经串行接口返回给cpu,并行设备也是如此。

任何不兼容的问题,都可以通过增加一“层”来办理。
在cpu和外设之间的这一层便是IO接口。
IO接口形式不限,它可以是个电路板,也可以是块芯片,乃至可以是个插槽,它的浸染便是在cpu和外设之间相互做折衷转换,如cpu和外设速率不匹配,它便是变速箱,cpu和外设旗子暗记不通用,它便是翻译机。

这样通过加了中间层后,事情就被划分成多个部分,每个部分都有专人卖力,大家都轻松了,多好啊。

不过,说的还是有点抽象是吗?那就整点详细的,机箱里的声卡便是驱动音响设备的IO接口,本章先容的显卡也同样是一种IO接口,它是用来驱动显示器的。
大概您打开机箱后也未创造我说的声卡和显卡,那是不是就没有它们呢?当然不会,假如听不到声音看不到图像,人们买电脑干吗?用来学习的?哈哈,你懂的。
实在它们被集成在主板芯片组中了,您用的便是传说中的集成声卡和集成显卡。
这下清楚多了吧,下面咱们还是连续说点抽象的。

IO接口是连接cpu与外部设备的逻辑掌握部件,既然称为逻辑,就解释可分为硬件和软件两部分。
硬件部分所做的都是一些本色详细的事情,其功能是折衷cpu和外设之间的各类不匹配,如双方由于速率不匹配,那IO接口就实现数据缓冲以减少等待韶光,数据格式不匹配,IO接口就在这两种格式间相互转换。
IO接口内部实际上也是由软件来掌握运作的,这便是所谓的“逻辑”部分,以是软件是指用来掌握接口电路事情的驱动程序以及完成内部数据传输所须要的程序。

既然提到了软件,这就意味着编程,这样一来,IO接口芯片又可按照是否可编程来分类,可分为可编程接口芯片和不可编程接口芯片。

接口的浸染是连接处理器和外部设备,如果外部设备很大略,傻瓜型的、不须要设定就直接能用,就可以用不可编程接口芯片与处理器连接,不可编程接口芯片是种非常大略的IO接口。

当然物理设备还是很贵重的,并且打算机中的IO接口数量也是有限的,以是我们当然希望IO接口功能越多越好,可以设置多种事情模式,乃至许可多个外部设备通过同一个IO接口芯片与处理器连接。
打算机与IO接口的通信是通过打算机指令实现的,当我们须要定制某些功能时,我们也必须用打算机指令见告IO接口:哪些设备连接在此IO接口上、此IO接口的事情模式等。
这种通过软件指令选择IO接口上的功能、事情模式的做法,称为“IO接口掌握编程”。
这常日是用端口读写指令in/out来实现的,后面会说到。

cpu太忙了,它的韶光特殊宝贵,为了简化cpu访问外部设备的事情,能够轻松地同任何硬件通信,大家就约定好IO接口的功能:

1.设置数据缓冲,办理cpu与外设的速率不匹配。

cpu和外设速率上的差异可以通过设置缓冲区来办理,也便是说,数据先存储在缓冲区里,等须要的时候(无论缓冲区是否满了)就传送出去。

2.设置旗子暗记电平转换电路。

cpu和外设的旗子暗记电等分歧,如cpu所用的旗子暗记是TTL电平,而外设大多数是机电设备,故不能利用TTL电平驱动,可以在接口电路中设置电平转换电路来办理。

3.设置数据格式转换

外设是多种多样的,输出的信息可能是数字旗子暗记、仿照旗子暗记等,而cpu只能处理数字旗子暗记。
数字旗子暗记须要经由数/模转换(D/A)成仿照量才能被送到外设以驱动硬件,仿照量也同样须要经由模/数(A/D)转换成数字量才能被cpu处理。
以是接口电路中须要包括A/D转换器和D/A转换器。
其余,纵然双方利用的都是数字旗子暗记,这也牵扯到格式和字长的问题,如cpu利用的是8位或16位或32位并行数据,而外设用并行或串行数据都有可能,以是IO接口中必须能够识别格式并且转换成对方须要的形式才行。

4.设置时序掌握电路来同步cpu和外部设备

硬件的事情也是按照某种时序,它们都有自己的时序系统,就像cpu事情在自己的晶振时序上一样。
双方时序不同,接口电路就要折衷这两种不同的韶光计法。
如,cpu发掌握旗子暗记、定时旗子暗记给IO接口电路,IO接口用它们来掌握和管理硬件。
随后硬件有了反馈后,其应答旗子暗记也须要通过接口返回给cpu,这样cpu先“问”,硬件后“回答”,就实现了一次握手,之后便可以实现IO的同步操作。

5.供应地址译码

cpu同多个硬件打交道,每个硬件要反馈的信息很多,以是一个IO接口必须包含多个端口(即IO接口上的寄存器)来存储这些信息内容。
但同一时候,只能有一个端口和cpu数据交流,这就须要IO接供词给地址译码电路,使cpu可以选中某个端口,使其可以访问数据总线。

在后来新加入的硬件只要符合此约定就能同cpu数据交流,这样cpu就可以轻松应对种类万千的硬件啦。

后面的内容下半场再说。

【再续】

标签:

相关文章

AD转换模块设计_电压_通道

„设计目的:节制AD电路设计原则和方法 „设计任务:设计一个多路AD采样电路,能 够对输入电压进行采样并通过LCD显示采 样电压值...

智能 2024-12-29 阅读0 评论0