<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 采用WDM的精確定時(shí)器及其在冗余技術(shù)中的應用

采用WDM的精確定時(shí)器及其在冗余技術(shù)中的應用

作者: 時(shí)間:2011-01-16 來(lái)源:網(wǎng)絡(luò ) 收藏

3 軟件設計

3. 1 WDM 模式驅動(dòng)程序

在Window s XP 操作系統中, 運行于用戶(hù)模式的應用程序訪(fǎng)問(wèn)硬件資源是通過(guò)Win32 API 調用內核模式的驅動(dòng)程序實(shí)現的。這種內核模式的驅動(dòng)程序就是WDM(Window s Driver Model) 驅動(dòng)程序, 它是微軟在Window s XP 操作系統中提出的新的驅動(dòng)程序模式, 支持即插即用、電源管理和I/ O 管理等功能。圖2 是Window s XP 的系統結構。

如圖2 所示設備驅動(dòng)程序是操作系統的一個(gè)組成部分, 它由I/ O 管理器( I/ O Manager ) 管理和調動(dòng)。

I/ O管理器每收到一個(gè)來(lái)自用戶(hù)應用程序的請求就創(chuàng )建一個(gè)I/ O 請求包( IRP) 的數據結構, 并將其作為參數傳遞給驅動(dòng)程序。驅動(dòng)程序通過(guò)識別IRP 中的物理設備對象( PDO) 來(lái)區別是發(fā)送給哪一個(gè)設備。IRP 結構中存放請求的類(lèi)型、用戶(hù)緩沖區的首地址、用戶(hù)請求數據的長(cháng)度等信息。驅動(dòng)程序處理完這個(gè)請求后, 在該結構中填入處理結果的有關(guān)信息, 調用IoCompleteRequest 將其返回給I/ O 管理器, 用戶(hù)應用程序的請求隨即返回。訪(fǎng)問(wèn)硬件時(shí), 驅動(dòng)程序通過(guò)調用硬件抽象層的函數實(shí)現。

采用WDM的精確定時(shí)器及其在冗余技術(shù)中的應用
圖2 Windows XP 系統結構

WDM 的開(kāi)發(fā)可采用DDK, DriverWorks 等開(kāi)發(fā)工具。以下重點(diǎn)描述在此WDM 驅動(dòng)實(shí)例中采用定時(shí)查詢(xún)實(shí)現CAN 總線(xiàn)冗余功能。

3. 2 驅動(dòng)冗余設計

本設計中, CAN 通路采用2 路冗余, 使得當一個(gè)CAN 總線(xiàn)接口出現故障時(shí), 可以很方便地切換到另一個(gè)CAN 總線(xiàn)接口。

故障檢測在定時(shí)器中實(shí)現。在DriverWorks 中有兩種定時(shí)器對象, 即附屬于設備對象的1 Hz 定時(shí)器和KTimedCallback 類(lèi)定義的定時(shí)器, WDM 定時(shí)方法是通過(guò)它們實(shí)現的。KT imedCal lback 是KTimer 的派生類(lèi), KTimer 封裝了系統定時(shí)器, 構成分發(fā)對象定時(shí)器類(lèi), 可用于同步目的。KT imedCal lback 類(lèi)包含了系統延時(shí)過(guò)程調用( DPC) 對象, 當定時(shí)器超時(shí)后系統就調用DPC。KTimedCallback 的成員函數主要是Set 和SetPeriodic, Set 用于設置一次有效定時(shí)器參數, SetPeriodie 設置周期性定時(shí)器參數, Set 和SetPeriodic 在設置定時(shí)參數時(shí)同時(shí)啟動(dòng)定時(shí)器并建立與回調函數的關(guān)聯(lián),定時(shí)器超時(shí)后調用回調函數。

具體的切換工作放在DPC 中完成。DPC 為推遲過(guò)程調用, 一些操作不適合在ISR 中處理需放入限制較少的DPC 中, 如通知事件置標記等等。DPC 是一個(gè)通用機制, 但通常都用在中斷處理中。在最普通的情況下, ISR 決定當前請求的完成并請求一個(gè)DPC。之后,內核在DISPATCH_LEVEL 級上調用這個(gè)DPC 例程。


關(guān)鍵詞: FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>