5-嵌入式开发总结之--外设模型

   这一部分对外设模块进行建模。

   在计算机大家庭里,外部设备可谓丰富多样。从键盘鼠标这些最基础的设备,到有线网络、无线网络、USB、蓝牙、打印机等等。不同的外设,它们的功能,外观差别都很大。而且,随着技术的发展,一些外设被淘汰,新的满足需求的设备又不断的加进来。所以,要想在这里对它们来个完全介绍,困难有点大。不过,我们还是可以对外设建立一个统一的模型。

   站在操作系统的角度,外设对其而言,最直接,最直观的表现,就是驱动。通过驱动封装操作外设的接口,提供给上层应用。不同的设备,需要不同的驱动适配,这在计算机操作系统设计中,已是无可争议。我们有丰富的外设,操作系统就得有丰富的驱动。再往底层,驱动要操作设备,通过什么呢?显然是设备中的控制芯片,这些能够处理数字信号的芯片才是外设的核心。所以,CPU控制设备,其实就是控制设备中的各种芯片,驱动就是操作系统控制芯片的软件体现。但是,这里有一个问题,CPU如何才能控制到外设的芯片呢?其实,这是两个问题,因为要回答这个问题,我们要解决两个疑问:一是CPU如何找到设备,其次是CPU如何操作设备。先说第一个,CPU从哪里找到这些控制芯片呢?答案是地址。设备同内存中的数据一样,也是有地址的。这就像邮递员投递邮件,第一件事是要知道地址。CPU控制设备的第一件事也是通过地址找到设备。有了地址,找到设备的控制芯片,就要解决第二个问题,即如何真正,直接的控制设备。答案是寄存器。CPU是不变的,而外设多样且多变,为实现控制,设备芯片的设计是有规律的:其一般都会包含命令、地址和数据寄存器。CPU向命令寄存器写命令,地址寄存器写地址,然后读写数据寄存器,这样就完成了同设备的交互过程。需要额外说的是,这里地址寄存器是用来标明设备里的地址,这好比外设是一座大楼,里面还有好多房间,要定位到房间,还需要房间号,这就是内部地址。可见,寄存器是CPU和外设芯片之间的桥梁和接口。既然这样,我们就将外设的模型建立在寄存器基础上,用寄存器来抽象外设。如下图所示:

   相信写过驱动的人,对于寄存器深有体会。拿到一款设备芯片,第一件事可能就是阅读芯片手册,了解都有那些寄存器,做什么用,下一步才能入手写驱动。有了驱动,才可以让设备发挥作用。

   对于外设的建模就介绍这么多,这块不再展开来,感兴趣的读者请阅读接口和驱动方面的书籍。

   到此,我们就完成了计算机各个部分的建模,下一步就将这些分散的模型整合起来,创建一个整体模型。其实通过在学校学习,我们对计算机相关知识已经形成了一种固有的完整的概念,那么这里希望通过整体模型,能在另一个角度,完成对这些概念的另一个“拍照”。同一个东西,我们换一个角度来看,也许就会有不一样的感受。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙赤子

你的小小鼓励助我翻山越岭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值