如何驅動一個硬體設備驅動程序
⑴ 軟體如何驅動硬體工作
軟體如何控制硬體
軟體在工作的時候也是實體,軟體的實質就是電流信號,用電壓的高低代表不同是信息,用這些電流信號去控制邏輯電路的通斷,靠邏輯電路的通斷來控制硬體的工作。
說到底軟體就是起到一個開關信號的作用,開關要工作,必需保證硬體是加電的,沒有接通電源的硬體是無法用軟體來控制的。就好比沒有插上電源的台燈,你怎麼按開關都是不會亮的。
任何軟體在運行前都要有一個將其轉化為電流信號的實體化過程,你寫在紙上的軟體代碼是永遠也不能控制硬體的。早期電腦用人工接線輸入程序,相當於用人體的力量將軟體代碼實體化為電信號;現在我們用的軟盤、硬碟是通過磁頭將程序代碼轉化為電信號,光碟需要通過光頭將程序代碼轉化為電信號等等。
操作系統和驅動程序在其中起到什麼作用?
操作系統:你進行的操作(例如QQ、音樂、視頻、游戲等)都必須有操作系統的支持。所以說,操作系統是計算機里最接近計算機硬體的、最重要的軟體!操作系統傳統的定義是:操作系統是控制和管理計算機系統內各種硬體和軟體資源、合理有效地組織計算機系統的工作,為用戶提供一個使用方便可擴展的工作環境,從而起到連接計算機和用戶的介面作用。
驅動程序(Device Driver)全稱為「設備驅動程序」,是一種可以使計算機和設備通信的特殊程序,可以說相當於硬體的介面,操作系統只能通過這個介面,才能控制硬體設備的工作,假如某設備的驅動程序未能正確安裝,便不能正常工作。
正因為這個原因,驅動程序在系統中的所佔的地位十分重要,一般當操作系統安裝完畢後,首要的便是安裝硬體設備的驅動程序。不過,大多數情況下,我們並不需要安裝所有硬體設備的驅動程序,例如硬碟、顯示器、光碟機、鍵盤、滑鼠等就不需要安裝驅動程序,而顯卡、音效卡、掃描儀、攝像頭、Modem等就需要安裝驅動程序。另外,不同版本的操作系統對硬體設備的支持也是不同的,一般情況下版本越高所支持的硬體設備也越多,例如筆者使用了Windows XP,裝好系統後一個驅動程序也不用安裝。
⑵ 驅動程序是如何驅動硬體的
驅動程序相當於硬體與操作系統之間的通信員一樣.並且告訴操作系統有哪些設備以及設備廠的功能.硬體一般自帶.裝好系統再裝好就行了.誤裝或者裝錯了..就會導致系統崩潰.
只是命令的管道,他來傳遞命令計算機才能更好的處理命令
⑶ 驅動程序怎麼控制硬體的
設備驅動程序用來將硬體本身的功能告訴操作系統,完成硬體設備電子信號與操作系統及軟體的高級編程語言之間的互相翻譯。當操作系統需要使用某個硬體時,比如:讓音效卡播放音樂,它會先發送相應指令到音效卡驅動程序,音效卡驅動程序接收到後,馬上將其翻譯成音效卡才能聽懂的電子信號命令,從而讓音效卡播放音樂。
所以簡單的說,驅動程序提供了硬體到操作系統的一個介面以及協調二者之間的關系,而因為驅動程序有如此重要的作用,所以人們都稱「驅動程序是硬體的靈魂」、「硬體的主宰」,同時驅動程序也被形象的稱為「硬體和系統之間的橋梁」。
驅動程序即添加到操作系統中的一小塊代碼,其中包含有關硬體設備的信息。有了此信息,計算機就可以與設備進行通信。驅動程序是硬體廠商根據操作系統編寫的配置文件,可以說沒有驅動程序,計算機中的硬體就無法工作。操作系統不同,硬體的驅動程序也不同,各個硬體廠商為了保證硬體的兼容性及增強硬體的功能會不斷地升級驅動程序。如:Nvidia
顯卡晶元公司平均每個月會升級顯卡驅動程序2-3次。驅動程序是硬體的一部分,當你安裝新硬體時,驅動程序是一項不可或缺的重要元件。凡是安裝一個原本不屬於你電腦中的硬體設備時,系統就會要求你安裝驅動程序,將新的硬體與電腦系統連接起來。驅動程序扮演溝通的角色,把硬體的功能告訴電腦系統,並且也將系統的指令傳達給硬體,讓它開始工作。
⑷ 如何更新硬體驅動程序詳細步驟..我是新手
以安裝音效卡驅動為例:
(一)右擊「我的電腦」----「屬性」---「硬體」----「設備管理器」,展開「聲音、視頻和游戲控制器」,看前面有沒有黃色的「?」,有,說明缺音效卡驅動,沒有,說明該音效卡驅動不能正常使用,右擊音效卡,選卸載將其刪除。
(二)怎樣知道音效卡型號
不知道音效卡型號,看展開的「聲音、視頻和游戲控制器」下的那一串字元和數字就是你的音效卡型號,也可「開始」—「運行」—輸入 dxdiag, 打開「DirectX診斷工具」—聲音,從打開的界面中找。
(三)光碟安裝
將音效卡的驅動光碟放入光碟機,右擊「聲音、視頻和游戲控制器」下的?號選項,選「更新驅動程序」,打開「硬體更新向導」,選「是,僅這一次」---「下一步」---「自動安裝軟體」--「下一步」,系統即自動搜索並安裝光碟中的音效卡驅動程序,如果該光碟沒有適合你用的音效卡驅動,再換一張試試,直到完成。
(四)下載驅動軟體安裝
1、下載音效卡驅動的網站不少,簡便的辦法是,在綜合大型網站主頁,把你的音效卡型號輸入到「搜索」文本框中,按「搜索」按鈕,從打開的界面中,選你要下載驅動的網站。
2、在打開的網站中,如果沒有顯示你要的驅動軟體,你可以運用該網站搜索引擎搜索。
3、下載驅動軟體要注意:一是品牌型號要對,二是在什麼系統上便用,三是要看該驅動軟體公布的時間,最新的未必適合使用,可多下載幾個,挑著使。
4、下載的驅動軟體一般有自動安裝功能,打開後,點擊即自動安裝。不能自動安裝的,解壓後備用,要記下該軟體在磁碟中的具體路徑,如D:\ ……\……。右擊「我的電腦」----「屬性」---「硬體」----「設備管理器」,打開「聲音、視頻和游戲控制器」,右擊「聲音、視頻和游戲控制器」下的?號音效卡選項,選「更新驅動程序」,打開「硬體更新向導」,去掉「搜索可移動媒體」前的勾,勾選「從列表或指定位置安裝」---「下一步」,勾選「在搜索中包括這個位置」,在下拉開列表框中填寫要使用的音效卡驅動文件夾的路徑(D:\……\……---「下一步」,系統即自動搜索並安裝你指定位置中的音效卡驅動程序。
⑸ 怎樣安裝計算機的硬體驅動程序
系統音效卡驅動掉文件了,可以還原系統或GOST系統恢復它,如果沒有的話只有重裝系統了。
⑹ 如何手動安裝硬體驅動程序
手動安裝硬體驅動,首先要下載好對應的硬體驅動程序,然後再在電腦,管理,設備管理器裡面逐一安裝。
⑺ 驅動程序是怎麼操作硬體設備的
這里以CreateFile API 為例,其自他操作設備的API類似。首先應用程序調用CreateFile Api,這個API是由Win32子系統的三大模塊中的Kernel32.dll實現的。CreateFile函數會
調用Ntdll.dll中的NtCreateFile函數,其中NtCreateFile是未文檔化的函數,最好不要直接調用
NtCreateFile 的作用是穿越用戶模式的邊界,進入到內核模式,這個步驟是通過軟中斷實現的。進入內核模式後,會調用系統服務函數,這里會調用同名的系統服務NtCreateFile。(同名函數,一個位於用戶模式,一個位於內核模式)
NtCreateFile 系統函數調用通過I/O管理器,創建IRP並傳輸到設備的驅動程序中。IRP(I/O Request Package)即輸入輸出請求包,是驅動程序開發中重要的數據結構。驅動程序的運行,完全靠IRP驅動的。
驅動程序根據IRP,進行相應的操作。這些操作一般對設備的直接操作,例如對埠的讀操作。對埠的讀操作根據不同硬體平台實現方法有所不同,Windows 根據不同的硬體平台,會有不同的HAL(硬體抽象層).
來自網路。
⑻ 驅動程序是如何驅動硬體的求答案
設備驅動程序用來將硬體本身的功能告訴操作系統,完成硬體設備電子信號與操作系統及軟體的高級編程語言之間的互相翻譯。當操作系統需要使用某個硬體時,比如:讓音效卡播放音樂,它會先發送相應指令到音效卡驅動程序,音效卡驅動程序接收到後,馬上將其翻譯成音效卡才能聽懂的電子信號命令,從而讓音效卡播放音樂。所以簡單的說,驅動程序提供了硬體到操作系統的一個介面以及協調二者之間的關系,而因為驅動程序有如此重要的作用,所以人們都稱「驅動程序是硬體的靈魂」、「硬體的主宰」,同時驅動程序也被形象的稱為「硬體和系統之間的橋梁」。驅動程序即添加到操作系統中的一小塊代碼,其中包含有關硬體設備的信息。有了此信息,計算機就可以與設備進行通信。驅動程序是硬體廠商根據操作系統編寫的配置文件,可以說沒有驅動程序,計算機中的硬體就無法工作。操作系統不同,硬體的驅動程序也不同,各個硬體廠商為了保證硬體的兼容性及增強硬體的功能會不斷地升級驅動程序。如:Nvidia 顯卡晶元公司平均每個月會升級顯卡驅動程序2-3次。驅動程序是硬體的一部分,當你安裝新硬體時,驅動程序是一項不可或缺的重要元件。凡是安裝一個原本不屬於你電腦中的硬體設備時,系統就會要求你安裝驅動程序,將新的硬體與電腦系統連接起來。驅動程序扮演溝通的角色,把硬體的功能告訴電腦系統,並且也將系統的指令傳達給硬體,讓它開始工作。
⑼ 如何編寫驅動程序
代碼:
#include<linux/mole.h>
#include<linux/kernel.h>
#include<asm/io.h>
#include<linux/miscdevice.h>
#include<linux/fs.h>
#include<asm/uaccess.h>
//流水燈代碼
#define GPM4CON 0x110002e0
#define GPM4DAT 0x110002e4
static unsigned long*ledcon=NULL;
static unsigned long*leddat=NULL;
//自定義write文件操作(不自定義的話,內核有默認的一套文件操作函數)
static ssize_t test_write(struct file*filp,const char __user*buff,size_t count,loff_t*offset)
{
int value=0;
int ret=0;
ret=_from_user(&value,buff,4);
//底層驅動只定義基本操作動作,不定義功能
if(value==1)
{
*leddat|=0x0f;
*leddat&=0xfe;
}
if(value==2)
{
*leddat|=0x0f;
*leddat&=0xfd;
}
if(value==3)
{
*leddat|=0x0f;
*leddat&=0xfb;
}
if(value==4)
{
*leddat|=0x0f;
*leddat&=0xf7;
}
return 0;
}
//文件操作結構體初始化
static struct file_operations g_tfops={
.owner=THIS_MODULE,
.write=test_write,
};
//雜設備信息結構體初始化
static struct miscdevice g_tmisc={
.minor=MISC_DYNAMIC_MINOR,
.name="test_led",
.fops=&g_tfops,
};
//驅動入口函數雜設備初始化
static int __init test_misc_init(void)
{
//IO地址空間映射到內核的虛擬地址空間
ledcon=ioremap(GPM4CON,4);
leddat=ioremap(GPM4DAT,4);
//初始化led
*ledcon&=0xffff0000;
*ledcon|=0x00001111;
*leddat|=0x0f;
//雜設備注冊函數
misc_register(&g_tmisc);
return 0;
}
//驅動出口函數
static void __exit test_misc_exit(void)
{
//釋放地址映射
iounmap(ledcon);
iounmap(leddat);
}
//指定模塊的出入口函數
mole_init(test_misc_init);
mole_exit(test_misc_exit);
MODULE_LICENSE("GPL");
(9)如何驅動一個硬體設備驅動程序擴展閱讀:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含標准庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:
#include<math.h>//一些數學函數的原型,以及相關的類型和宏
如果需要包含針對程序所開發的源文件,則應該使用第二種格式。
採用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。如下例所示:
#include"myproject.h"//用在當前項目中的函數原型、類型定義和宏
你可以在#include命令中使用宏。如果使用宏,該宏的取代結果必須確保生成正確的#include命令。例1展示了這樣的#include命令。
【例1】在#include命令中的宏
#ifdef _DEBUG_
#define MY_HEADER"myProject_dbg.h"
#else
#define MY_HEADER"myProject.h"
#endif
#include MY_HEADER
當上述程序代碼進入預處理時,如果_DEBUG_宏已被定義,那麼預處理器會插入myProject_dbg.h的內容;如果還沒定義,則插入myProject.h的內容。
⑽ 安裝硬體驅動程序的方法
一、安裝可執行文件 現在不少硬體驅動開發商,都將驅動程序專門製作成專門的Setup可執行文件(比如nVIDIA ForceWare顯卡驅動),因此當你安裝了新硬體設備時,系統提示找到新硬體,並彈出驅動搜索窗口,此時你將該窗口關閉,然後找到驅動光碟中的Setup.exe文件,然後直接運行它,按安裝提示操作完成硬體設備的驅動(如圖1),這種驅動程序安裝步驟比較簡化,使用起來更為方便,如果驅動光碟中有Setup程序,筆者建議初學者盡量使用它。 二、自動搜索驅動程序 對於即插即用設備(如攝像頭),但驅動又沒有提供Setup安裝文件,假如你不知道驅動程序放在哪個目錄下,那麼可以利用Windows自動搜索功能,一旦安裝了新設備後,系統會提示找到新硬體,並彈出一個「添加新硬體向導」窗口,如果你的驅動存在硬碟中,那麼選擇「自動安裝軟體(推薦)」,點「下一步」(如圖2),系統將硬碟中所有匹配的硬體驅動程序,找到後只要點「完成」即驅動完畢。 在「自動搜索驅動程序」中,如果無法找到驅動程序,或者說你使用的是驅動光碟,此時可以在圖2中選擇第二項,點下「下一步」,接著按(圖3)進行設置,點「下一步」開始搜索指定的驅動目錄,找到驅動後點「完成「即可。 三、指定驅動程序位置 對於插即用硬體設備,如果你對驅動程序存在的位置比較明確,那麼可以在圖3中點選「不要搜索……」這個選項,點「下一步」,然後點擊「從磁碟安裝」按鈕,然後單擊「瀏覽」選擇驅動程序所在的目錄即可(如圖4),這樣可以節省搜索驅動所等待的時間。 四、手工添加新硬體 對於一些非即插即用設備(如列印機),系統不會出現發現新硬體的提示,那麼此時我們需要自己進行硬體設備的添加,方法是進入「控制面板」,雙擊「添加新硬體」,直接啟動硬體安裝向導,點「下一步」,如果硬體已經連接好,那麼選擇「是,硬體已連接好」,繼續點「下一步」,接著選擇 「添加新的硬體設備」(如圖5),點「下一步」後選擇「安裝我手動從列表選擇的硬體」,接著選擇你需要添加的硬體設備,接下來的任務,就是按正常的方法選擇驅動程序所在的位置即可。 五、更新驅動程序方式 有的硬體設備,當你安裝到電腦上後,如果驅動程序沒有安裝,會在系統的「設備管理器」中出現一個黃色的嘆號,此時你也可以用滑鼠雙擊這個標志,進入「驅動程序」選項,點擊「更新驅動程序」(如圖6),接著出現如圖2的提示界面,最後按前面介紹的知識安裝好硬體驅動即可。 六、利用補丁安裝驅動 有部分硬體設備,比如USB2.0設備的驅動,除了採用普通驅動安裝方法外,還可以安裝系統補丁來驅動這些設備,比如WIN2000的SP4或WINXP的SP2補丁包中,都包括了USB2.0驅動程序,只要給系統安裝上相應的補丁,即完成了USB2.0驅動程序的安裝。 七、使用萬能驅動程序 有的雜牌設備(如雜牌U盤、雜牌攝像頭)或一些老硬體設備,如果用戶失去了驅動光碟後,即便是找到了設備型號,由於廠商網站沒有提供產品驅動下載,在這樣的情況下,我們可以使用一些萬能驅動程序,比如U盤通用驅動、AC97音效卡萬能驅動、攝像頭通用驅動等,大家可以到Google網站搜索查找,不過是否能通用就看你自己的運氣了,比如這款攝像頭通用驅動可以兼容大部分普通品牌的攝影頭(下載地址: http://soft.pdsu.e.cn/list.asp?id=916 ),而Direct Pad萬能手柄驅動則可以通過任何游戲手柄,同時還能擴展游戲手柄的功能鍵(下載地址: http://www.pchome.net/dl/drvjoystick.htm) 。 八、另類驅動安裝方法 有一些硬體設備,比如USB攝像頭、電視卡等,在驅動程序中即包括了Setup安裝程序,又提供了一些系統驅動文件,此時當你執行Setup安裝後,你會發現硬體設備並沒有驅動好,並且會彈出驅動搜索提示的界面窗口,因為Setup安裝文件只是安裝了硬體設備的一個軟體管理外殼,此時你依然需要在新硬體安裝提示窗口,按自己的需要指定硬體驅動程序文件,這也就是說需要分兩步來安裝驅動程序。