驅(qū)動(dòng)程序(Driver)是一種可以使應(yīng)用軟件和硬件通信的特殊底層軟件,其功能是為上層軟件提供調(diào)用接口,控制硬件設(shè)備的工作。固定是指被硬件廠商固化在硬件內(nèi)部的驅(qū)動(dòng)程序。
系統(tǒng)芯片軟硬件構(gòu)架自下而上可分為硬件設(shè)備,硬件驅(qū)動(dòng)和上層軟件,其中硬件驅(qū)動(dòng)又可分為硬件依賴層(Hardware Dependent Layer)和硬件抽象層(Hardware Abstraction Layer),如圖5-98(a)所示。作為系統(tǒng)架構(gòu)的重要組成部分,硬件驅(qū)動(dòng)主要完成以下的功能:初始化和釋放設(shè)備;讀取上層軟件傳送給硬件設(shè)備的請(qǐng)求數(shù)據(jù)和回送硬件設(shè)備的響應(yīng)數(shù)據(jù);檢測(cè)錯(cuò)誤和處理中斷。
由于硬件驅(qū)動(dòng)程序與硬件設(shè)備緊密相關(guān),硬件驅(qū)動(dòng)程序通常由系統(tǒng)芯片廠商提供。硬件廠商根據(jù)硬件特性編寫硬件驅(qū)動(dòng)程序。硬件驅(qū)動(dòng)程序所需實(shí)現(xiàn)的接口和功能由硬件特性決定。從系統(tǒng)芯片軟件框架的角度看,硬件驅(qū)動(dòng)程序向下控制硬件設(shè)備運(yùn)行,向上提供標(biāo)準(zhǔn)的調(diào)用接口方便上層軟件使用。對(duì)于上層軟件,硬件驅(qū)動(dòng)程序是一個(gè)個(gè)獨(dú)立的“黑盒子”,其功能是使特定硬件以標(biāo)準(zhǔn)化應(yīng)用接口的方式對(duì)上層軟件提供服務(wù),隱藏設(shè)備的工作過程中的細(xì)節(jié)操作。只要保證驅(qū)動(dòng)層調(diào)用接口相同,軟件設(shè)計(jì)者就可以讓應(yīng)用程序在不同的硬件上運(yùn)行,硬件設(shè)計(jì)者可以不斷升級(jí)硬件而不影響舊軟件在新設(shè)備上運(yùn)行。當(dāng)上層軟件需要使用某個(gè)硬件功能,上層軟件會(huì)先發(fā)送相應(yīng)指令到外設(shè)驅(qū)動(dòng)程序,外設(shè)驅(qū)動(dòng)程序接收指令后,將其翻譯成外設(shè)控制器能讀懂的電子信號(hào)命令。
在操作系統(tǒng)中,硬件依賴層通常由硬件廠商以固件的形式提供,而硬件抽象層被集成到操作系統(tǒng)中,由操作系統(tǒng)廠商以標(biāo)準(zhǔn)設(shè)備驅(qū)動(dòng)的形式提供,如圖5-98(b)所示。目前,市場(chǎng)占有率領(lǐng)先的Windows和Linux操作系統(tǒng)內(nèi)核中均集成了硬件抽象層。然而,不同操作系統(tǒng)的設(shè)備驅(qū)動(dòng)上層接口不一致,且不同設(shè)備廠商的固件接口也存在差異,導(dǎo)致軟件開發(fā)者無法隨意選擇設(shè)備廠商。未來,標(biāo)準(zhǔn)設(shè)備驅(qū)動(dòng)接口與固件接口將進(jìn)一步標(biāo)準(zhǔn)化,使得軟件開發(fā)者可以在不同設(shè)備廠商的設(shè)備間無縫切換。
審核編輯 :李倩
-
控制器
+關(guān)注
關(guān)注
114文章
17067瀏覽量
183762 -
驅(qū)動(dòng)程序
+關(guān)注
關(guān)注
19文章
861瀏覽量
49017 -
系統(tǒng)芯片
+關(guān)注
關(guān)注
0文章
39瀏覽量
18487
原文標(biāo)題:系統(tǒng)芯片設(shè)計(jì)—驅(qū)動(dòng)程序
文章出處:【微信號(hào):Semi Connect,微信公眾號(hào):Semi Connect】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
RTC芯片有Linux PCA2131驅(qū)動(dòng)程序嗎?
用于InterBase的ODBC驅(qū)動(dòng)程序:可與多個(gè)第三方工具兼容

適用于MySQL的dbExpress驅(qū)動(dòng)程序:提供對(duì)MySQL的快速訪問
適用于Oracle的ODBC驅(qū)動(dòng)程序
適用于Oracle的dbExpress驅(qū)動(dòng)程序

Linux驅(qū)動(dòng)程序程序員指南

pcie設(shè)備驅(qū)動(dòng)程序安裝步驟
硬盤電機(jī)怎么驅(qū)動(dòng)程序?它有什么典型特征?
LSP 2.10 DaVinci Linux驅(qū)動(dòng)程序

評(píng)論