控制-驱动程序是如何驱动硬件的?

问题描述

驱动程序是如何驱动硬件的?

我想问一下,一个硬件设备被计算机系统控制如果必须要安装驱动程序的话,那么驱动程序是如何控制硬件的?

解决方案

驱动程序相比应用程序没有什么特别的,特别只是特别在它们可以拥有一些特权指令,访问操作系统的关键区域以及特殊的地址。

硬件大致分为几类,一类是像显卡之类的硬件,本质上它们相当于一个异构的处理器,它拥有专门的独立的指令,你的驱动程序相当于上传这些代码给它,然后它自己处理。
一类是类似硬盘、网卡之类的,高速IO,这些一般使用DMA,操作起来如同读写内存,操作系统会映射地址给这些设备,你去读写,好像是写内存,其实这些地址在你和设备之间共享。
还有一类类似USB、蓝牙、打印机、COM等等,这些外设相当于外设通讯,通过端口收发数据。

解决方案二:

设备驱动程序用来将硬件本身的功能告诉操作系统,完成硬件设备电子信号与操作系统及软件的高级编程语言之间的互相翻译。当操作系统需要使用某个硬件时,比如:让声卡播放音乐,它会先发送相应指令到声卡驱动程序,声卡驱动程序接收到后,马上将其翻译成声卡才能听懂的电子信号命令,从而让声卡播放音乐。  所以简单的说,驱动程序提供了硬件到操作系统的一个接口以及协调二者之间的关系,而因为驱动程序有如此重要的作用,所以人们都称“驱动程序是硬件的灵魂”、“硬件的主宰”,同时驱动程序也被形象的称为“硬件和系统之间的桥梁”。  驱动程序即添加到操作系统中的一小块代码,其中包含有关硬件设备的信息。有了此信息,计算机就可以与设备进行通信。驱动程序是硬件厂商根据操作系统编写的配置文件,可以说没有驱动程序,计算机中的硬件就无法工作。操作系统不同,硬件的驱动程序也不同,各个硬件厂商为了保证硬件的兼容性及增强硬件的功能会不断地升级驱动程序。如:Nvidia 显卡芯片公司平均每个月会升级显卡驱动程序2-3次。驱动程序是硬件的一部分,当你安装新硬件时,驱动程序是一项不可或缺的重要元件。凡是安装一个原本不属于你电脑中的硬件设备时,系统就会要求你安装驱动程序,将新的硬件与电脑系统连接起来。驱动程序扮演沟通的角色,把硬件的功能告诉电脑系统,并且也将系统的指令传达给硬件,让它开始工作。

解决方案三:

严格来说,几乎所有的硬件都包含自己的cpu,当然有自己的指令,但是依照和主机连接方式的不同,并不一定需要主机传送什么指令。好比x86的计算机和arm的手机通讯,计算机并不需要了解手机的cpu用什么指令。
驱动程序不是什么翻译,它就是一个程序。
和你写的hello world本质上没有区别,只是这个程序运行在特权等级下。

时间: 2025-01-20 21:42:51

控制-驱动程序是如何驱动硬件的?的相关文章

按钮-网页要实现控制一台遥控车(硬件)的行走路径(行为),请问如何实现?

问题描述 网页要实现控制一台遥控车(硬件)的行走路径(行为),请问如何实现? 前几天买了一台遥控车玩具,只有一个遥控手柄,不大方便. 我想如果能搞个网页然后坐在电脑前或者拿出手机打开浏览器登录网页,网页左面是遥控车上装载的摄像头传过来的视频事实画面,右面是行为操控按钮,这样该有多好玩啊. 解决方案 你买的是啥遥控车-不好实现 解决方案二: 遥控车是脉冲信号,电脑无法模拟施放出这种信号,除非你接上某种外设,能释放脉冲信号,但是如何将数字信号转换成脉冲信号,这是个问题

请教BS系统中如何驱动硬件的问题

问题描述 各位好:我们知道如果用C#通过WINFORM程序,实现对硬件的控制相对比较简单,可以调用DLL或发串口命令就能实现对附带的硬件设备进行操作,比如驱动IC卡读卡器.超市显示屏什么的.但是,现在单位主管的要求是用BS开发系统,并且实现对硬件的控制,比如通过封装好的DLL对IC卡读卡器.身份证读卡器进行操作:或者像C#的WINFORM程序那样,通过串口命令实现对硬件的控制,请问实现的思路是怎么样的?或者,还有一个变通的办法,就是外围程序用C#的WINFORM做一个壳,通过WEBBROWSER

东芝L700在windows XP下安装显卡驱动硬件不兼容怎么办

五一入手了东芝L700-C06W白色款式笔记本电脑,原版安装window7家庭版,回家后立马升级win7旗舰版,感觉i3的速度还没有我以前的酷睿快,分区.安装软件好卡.(因为上班没时间就不上图了).今天休假加装window xp系统,其他驱动都可以安装升级XP版,唯独显卡是个杯具!上网搜索好多机友都出现这种现象,还在为此烦恼,安装驱动人家.驱动精灵.到官方下载都没办法. 手中有款XP版驱动安装时提示硬件不兼容无法使用,我们就用这款驱动更改.写这一篇东芝L700-window7改Xp显卡驱动修改教

Linux内核驱动--硬件访问I/O【原创】

寄存器与内存         寄存器与内存的区别在哪里呢? 寄存器和RAM的主要不同在于寄存器操作有副作用(side effect或边际效果): 读取某个地址时可能导致该地址内容发生变化,比如很多设备的中断状态寄存器只要一读取,便自动清零. 内存与IO 在X86处理器中存在IO空间的概念,IO空间是相对内存空间而言的,他们是彼此独立的地址空间,在32位的x86系统中,IO空间大小只有64K,内存却有4G   X86          支持内存空间.IO空间 ARM                

为系统处理器编写Linux设备驱动程序

引 言 编写 Linux 设备驱动程序无疑是一项复杂的工作.本文将集中介绍非标准硬件的设备驱动程序编写,探讨硬件应用编程接口,并借用 Cirrus Logic EP9312 片上系统嵌入式平台添加设备驱动程序这一案例来进行分析. 如果有些编程内容未能在本文中涉及,那么读者亦可以查阅相似的设备驱动程序编码,以做参考.还有一种方法,就是检索历史档案或者向 Linux 内核问讯中心去函问讯. Linux 概述 Linux 是 UNIX 操作系统的翻版,1991 年由 Linus Torvalds 最先

驱动人生备份还原驱动

  图(1)为驱动人生2009beat版主界面 一.超强硬件检测能力,自动智能驱动更新 利用先进的硬件检测技术,以及数据库正版硬件厂商驱动的积累,驱动人生2009beat版能够检测市面所有流行硬件,并自动为您的电脑下载安装最合适的驱动程序.除了替未知设备安装驱动程序,驱动人生还能够自动检测驱动升级,随时保持电脑最佳工作性能. 点击桌面上的驱动人生快捷方式打开软件,点击驱动更新按钮,驱动会自动联网检测您的硬件设备和驱动(如图2所示),基于网络状况不同,检测过程可能需要十几秒到几分钟不等,在此过程中

驱动人生如何备份还原驱动

今天给大家介绍的驱动人生2009 Beta1,是一款非常强大的驱动程序备份工具,具备专业的驱动备份功能.它能够自动检测,记忆用户计算机系统中的硬件设备,将全部或任意部分硬件的驱动程序提取备份出来,非常方便. 驱动人生 下载地址 图(1)为驱动人生2009beat版主界面 一.超强硬件检测能力,自动智能驱动更新 利用先进的硬件检测技术,以及数据库正版硬件厂商驱动的积累,驱动人生2009beat版能够检测市面所有流行硬件,并自动为您的电脑下载安装最合适的驱动程序.除了替未知设备安装驱动程序,驱动人生

电脑驱动程序如何分类?

  一.什么是驱动程序 根据百度百科:驱动程序,英文名为"Device Driver",全称为"设备驱动程序", 是一种能够使计算机和设备通信的特殊程序,能够说相当于硬件的接口,操作系统只有通过这种接口,才能控制硬件设备的工作,如果某设备的驱动程序没有能正确安装,便不能够正常工作. 所以,驱动程序被誉为"硬件的灵魂"."硬件的主宰".和"硬件和系统之间的桥梁"等. 刚安装好的系统操作系统,很可能驱动程序安装

VxWorks下USB驱动总结1

1.USB设备 物理特征:4条电缆,电源线.地线.数据线.脉冲线; 速 度:低速1.5Mbps,全速12Mbps,高速480Mbps; 规范版本:1998年USB1.1,2000年USB2.0; 连 接:PCI总线<->USB控制器(OHCI/UHCI/EHCI)<->USB设备; 单个USB控制器最大连接个数:127; 距离限制:USB单条线缆长度不能超过5m,通过hub可延长至30m. 重要概念:主机-USB设备采用master-slave方式分工,所有通信都是主机发起的:在某