工作前、学校里一直搞单片机,工作后、公司里改成搞计算机。单片机对GPIO、串口等外设的访问,程序中直接写寄存器就可以了;计算机中有CPU(如intel、amd)、每个外设又都有自己的控制器,那CPU怎么能访问到每个外设的控制器里面的寄存器,以实现对外设的控制呢?

其实无论单片机还是计算机中CPU,都有自己的地址空间,CPU只能访问自己的地址空间(不是内存地址空间,内存地址空间只是CPU地址空间的一部分),而地址空间与存储器、外设控制器中寄存器存在一一对应的地址映射,当CPU访问某一个地址空间时,硬件上自动映射到对应的存储器存储单元或外设控制器中某个寄存器,从而实现CPU对存储器、外设的访问。

单片机中的CPU其实也是这个道理,只是系统简单,所有的外设控制器都集成到一个芯片中,学校里不求甚解,其实也是访问的自己的地址空间,和计算机中CPU访问独立的SATA控制器、USB控制器等方式是相同的。首先看一下PIC LF1825单片机内部框图,其实物是一个独立的物理芯片:

如下是ARM控制器中外设控制器、存储器地址空间分配:

另外,单片机中集成了I2C控制器、SPI控制器等;计算机主板中集成了SATA控制器、USB控制器、PS/2控制器等。此些控制器的存在作用是什么?

其实目的很简单,外设控制器的存在,屏蔽了物理层的数据、命令传输时的总线协议的具体实现,程序员只需读、写寄存器,具体的数据依据相应的总线协议在总线上的传输过程,此是控制器硬件上自己完成的。

最好理解的就是I2C,你只需写data、cmd寄存器即可,data、cmd按照I2C协议在SCL、SDA上传输是I2C控制器完成。对于不存在I2C的单片机或CPU,需要通过GPIO按照I2C协议实现SCL、SDA的时序关系,实现数据的传输。FPGA实现I2C也是此道理。

计算机CPU对外设的访问方法相关推荐

  1. 本地计算机 feifei pc,局域网中其它计算机对共享打印机的访问方法

    局域网中其它计算机对共享打印机的访问方法 导语:对共享打印机的访问方法,你掌握了相关的技巧了吗?欢迎大家参考相关的内容! 局域网中其它计算机对共享打印机的访问方法 在任意一台需要访问共享打印机的电脑上 ...

  2. 计算机寄存器端口,CPU和外设之间的数据传送方式有哪几种

    数据传输(data transmission),指的是依照适当的规程,经过一条或多条链路,在数据源和数据宿之间传送数据的过程.也表示借助信道上的信号将数据从一处送往另一处的操作. CPU与外设之间的数 ...

  3. 论述计算机与外设的访问控制方法,外设访问控制方法、装置与系统

    具体实施方式 为使本发明的目的.技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明.在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定. 本发明实施 ...

  4. 外设位宽为8、16、32时,CPU与外设之间地址线的连接方法

    有不少人问到: flash连接CPU时,根据不同的数据宽度,比如16位的NOR FLASH (A0-A19),处理器的地址线要(A1-A20)左移偏1位.为什么要偏1位? 从软件和CPU的角度而言,一 ...

  5. 计算机故障分析与处理事例,几个典型CPU故障案例的处理方法

    CPU作为电脑的核心组成部份,它的好坏直接影响到电脑的性能.CPU有时会发生故障,那么,下面让学习啦小编带您去看看几个典型的案例的处理方法吧. 几个典型CPU故障案例的处理方法: 一般情况下,CPU出 ...

  6. 计算机cpu损坏,电脑cpu坏了的处理方法

    电脑cpu坏了的处理方法 导读:友为大家分享的电脑故障维修大全,电脑常见故障处理,电脑常见故障排除"电脑cpu坏了怎么办"资料,内容精辟独到,非常感谢网友的分享,希望这篇资料对您有 ...

  7. cpu与外设工作原理

    总结来说,就是插上外设后,cpu就可以检测和连接到外设上的寄存器,把它当成内存来使用,然后就是对这些寄存器进行读写,写控制寄存器来控制外设,读状态寄存器来检测外设状态(外设会把当前状态信息放到指定寄存 ...

  8. 《计算机存储与外设》----2.3 DRAM

    本 节 书 摘 来 自 华 章 出 版 社 <计算机存储与外设> 一 书 中 的 第2章,第2.3节, 作 者 Computer Organization and Architecture ...

  9. cpu与外设接口,cpu时序控制、电源时序控制(电源IC控制)

    目录 1.cpu与外设和存储器数据交换分别通过两种接口连接:I/O接口和存储器接口 2.89C51单片机时钟电路和时序控制 3.CPU-指令周期,时序产生器和控制方式(重要) 3.1.时序控制方式 4 ...

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

    介绍显卡之前,必须得和大家交待清楚,那么多的外部设备,cpu是如何与他们交流. 大家都学过微机接口技术吧?没学过也没关系,反正我也只是笼统地说说^_^,保证大家一定能看得懂. 按理说,如果硬件种类较少 ...

最新文章

  1. JDK 环境变量设置参考
  2. 学习率对神经网络迭代次数的影响
  3. linux kernel中的cmdline的详细介绍
  4. Qt Creator操作方法
  5. github设置中文_【Github】100+ Chinese Word Vectors 上百种预训练中文词向量
  6. Flutter实战5 -- 天气查询APP重构之状态管理(ScopedModel)
  7. 程序员应该做的事(转自CSDN)
  8. 华为 台积电 高通申请_华为表态愿意合作,台积电送来“神助攻”,高通:我太难了...
  9. 服务器宕机可能的原因以及服务器宕机解决办法
  10. 什么软件可以查手机卡的imsi_怎么查看手机的IMSI?
  11. 服务器bmc口装系统,IBM X3650服务器BMC安装系统
  12. jquery插件封装
  13. php 如何拉取百度统计,如何添加百度统计工具?-MetInfo帮助中心
  14. [Power Query]:自动提取自定义一周的数据
  15. H5唤起web地图导航
  16. 数数小绵羊(四刷) kkmd66
  17. 电脑显示无法加载远程访问连接管理服务器,Win7系统宽带连接出现错误711无法加载远程访问连接管理器服务如何解决?...
  18. JS中如何获取JSON子项的个数或叫length
  19. 人体组织平面波超声成像仿真(MATLAB k-Wave仿真)
  20. P1460 [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins

热门文章

  1. 【个税】2020年个人所得税计算规则
  2. Redis中五中数据类型的实例
  3. 100以内的平方数记忆法
  4. 修改注册表 打造个性化右键菜单
  5. Linux——就业方向选择、学习内容、学习方法
  6. php_enchant,Enchant - [ php中文手册 ] - 在线原生手册 - php中文网
  7. 江苏省无锡市高二计算机小高考,江苏新高考高二还要考小高考吗?江苏新高考高中怎么分科?...
  8. 手把手带你调参Yolo v5 (v6.2)(训练)
  9. 一名2018年应届生的美团前端校招面试之旅
  10. JAVA使用pdfbox将pdf转换成图片