0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

系统芯片设计—驱动程序(Driver)

倩倩 来源:Semi Connect 作者:Semi Connect 2022-08-12 14:48 次阅读

驱动程序(Driver)是一种可以使应用软件和硬件通信的特殊底层软件,其功能是为上层软件提供调用接口,控制硬件设备的工作。固定是指被硬件厂商固化在硬件内部的驱动程序。

系统芯片软硬件构架自下而上可分为硬件设备,硬件驱动和上层软件,其中硬件驱动又可分为硬件依赖层(Hardware Dependent Layer)和硬件抽象层(Hardware Abstraction Layer),如图5-98(a)所示。作为系统架构的重要组成部分,硬件驱动主要完成以下的功能:初始化和释放设备;读取上层软件传送给硬件设备的请求数据和回送硬件设备的响应数据;检测错误和处理中断。

fe1dad14-19f6-11ed-ba43-dac502259ad0.jpg

由于硬件驱动程序与硬件设备紧密相关,硬件驱动程序通常由系统芯片厂商提供。硬件厂商根据硬件特性编写硬件驱动程序。硬件驱动程序所需实现的接口和功能由硬件特性决定。从系统芯片软件框架的角度看,硬件驱动程序向下控制硬件设备运行,向上提供标准的调用接口方便上层软件使用。对于上层软件,硬件驱动程序是一个个独立的“黑盒子”,其功能是使特定硬件以标准化应用接口的方式对上层软件提供服务,隐藏设备的工作过程中的细节操作。只要保证驱动层调用接口相同,软件设计者就可以让应用程序在不同的硬件上运行,硬件设计者可以不断升级硬件而不影响旧软件在新设备上运行。当上层软件需要使用某个硬件功能,上层软件会先发送相应指令到外设驱动程序,外设驱动程序接收指令后,将其翻译成外设控制器能读懂的电子信号命令。

操作系统中,硬件依赖层通常由硬件厂商以固件的形式提供,而硬件抽象层被集成到操作系统中,由操作系统厂商以标准设备驱动的形式提供,如图5-98(b)所示。目前,市场占有率领先的Windows和Linux操作系统内核中均集成了硬件抽象层。然而,不同操作系统的设备驱动上层接口不一致,且不同设备厂商的固件接口也存在差异,导致软件开发者无法随意选择设备厂商。未来,标准设备驱动接口与固件接口将进一步标准化,使得软件开发者可以在不同设备厂商的设备间无缝切换。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    15214

    浏览量

    171150
  • 驱动程序
    +关注

    关注

    19

    文章

    770

    浏览量

    47222
  • 系统芯片
    +关注

    关注

    0

    文章

    38

    浏览量

    18328

原文标题:系统芯片设计—驱动程序

文章出处:【微信号:Semi Connect,微信公众号:Semi Connect】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    怎么编写Framebuffer驱动程序

    Framebuffer 驱动程序框架 分为上下两层: fbmem.c:承上启下 实现、注册 file_operations 结构体 把 APP 的调用向下转发到具体的硬件驱动程序
    的头像 发表于 03-22 09:13 153次阅读
    怎么编写Framebuffer<b class='flag-5'>驱动程序</b>

    ch341a驱动程序无法使用

    ,以帮助用户顺利使用ch341a驱动程序。 第一部分:问题背景和可能原因 首先,我们来介绍一下ch341a驱动程序。ch341a驱动程序是一种通用的USB转串口芯片
    的头像 发表于 12-26 14:17 1302次阅读

    linux驱动程序的主要流程和功能

    驱动程序是用于控制和管理硬件设备的软件模块,它主要负责与设备进行交互,通过操作设备的寄存器和接口,实现对硬件的控制和访问。在Linux系统中,驱动程序是实现与硬件设备交互的一个关键部分。本文将详细
    的头像 发表于 12-08 14:56 772次阅读

    嵌入式系统驱动程序的结构和设计方法

    电子发烧友网站提供《嵌入式系统驱动程序的结构和设计方法.doc》资料免费下载
    发表于 10-27 10:23 0次下载
    嵌入式<b class='flag-5'>系统</b>中<b class='flag-5'>驱动程序</b>的结构和设计方法

    Windows驱动程序——07.703.06.00

    电子发烧友网站提供《Windows驱动程序——07.703.06.00.zip》资料免费下载
    发表于 08-28 11:44 0次下载
    Windows<b class='flag-5'>驱动程序</b>——07.703.06.00

    Windows驱动程序——07.708.12.00

    电子发烧友网站提供《Windows驱动程序——07.708.12.00.zip》资料免费下载
    发表于 08-24 15:42 0次下载
    Windows<b class='flag-5'>驱动程序</b>——07.708.12.00

    vmware驱动程序

    电子发烧友网站提供《vmware驱动程序.txt》资料免费下载
    发表于 08-24 14:27 0次下载
    vmware<b class='flag-5'>驱动程序</b>

    WINDOWS驱动程序——06.713.06.00

    电子发烧友网站提供《WINDOWS驱动程序——06.713.06.00.zip》资料免费下载
    发表于 08-21 10:58 0次下载
    WINDOWS<b class='flag-5'>驱动程序</b>——06.713.06.00

    分享Windows驱动程序

    电子发烧友网站提供《分享Windows驱动程序.zip》资料免费下载
    发表于 08-04 11:46 2次下载
    分享Windows<b class='flag-5'>驱动程序</b>

    Windows驱动程序案例

    电子发烧友网站提供《Windows驱动程序案例.zip》资料免费下载
    发表于 07-28 11:42 0次下载
    Windows<b class='flag-5'>驱动程序</b>案例

    Windows驱动程序分享

    电子发烧友网站提供《Windows驱动程序分享.zip》资料免费下载
    发表于 07-26 17:43 0次下载
    Windows<b class='flag-5'>驱动程序</b>分享

    Windows驱动程序

    电子发烧友网站提供《Windows驱动程序.zip》资料免费下载
    发表于 07-26 17:17 0次下载
    Windows<b class='flag-5'>驱动程序</b>

    linux内核中的driver_register介绍

    向linux内核注册驱动driver_register()完成。它将驱动程序的信息添加到内核的驱动程序列表中,使得内核能够在需要时与该驱动程序
    的头像 发表于 07-14 09:17 1210次阅读
    linux内核中的<b class='flag-5'>driver</b>_register介绍

    几种常见的单片机驱动程序设计模式

    单片机开发人员需要掌握的一项基本技能是,了解如何编写驱动程序。在嵌入式系统中,通常有两种类型的驱动程序:单片机外围设备驱动程序和通过I2C,SPI或UART等接口连接的外部设备
    的头像 发表于 07-10 11:09 3271次阅读
    几种常见的单片机<b class='flag-5'>驱动程序</b>设计模式

    了解和使用no-OS及平台驱动程序

    快速发展的技术需要软件支持(固件驱动程序和代码示例)来简化设计导入过程。本文介绍如何利用no-OS(无操作系统驱动程序和平台驱动程序来构建ADI公司精密模数转换器和数模转换器的应用固
    的头像 发表于 06-16 10:30 470次阅读
    了解和使用no-OS及平台<b class='flag-5'>驱动程序</b>