新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于PCI總線的嵌入式實時圖像處理系統(tǒng)

基于PCI總線的嵌入式實時圖像處理系統(tǒng)

作者: 時間:2013-03-14 來源:網(wǎng)絡 收藏


Windows主要根據(jù)頁錯誤機制實現(xiàn)對存儲器映射設(shè)備訪問的虛擬化。要捕獲對某個設(shè)備內(nèi)存的訪問,設(shè)備VxD驅(qū)動程序會將頁表中對應于相應當內(nèi)存頁標注為“不可用”。當在虛擬環(huán)境中運行的程序試圖訪問這個頁時,會產(chǎn)生一個錯誤。VM的異常處理器會調(diào)用已注冊的設(shè)備VxD驅(qū)動程序的頁錯誤處理器進行相關(guān)處理,即當VM訪問該端口時產(chǎn)生異常時進入該硬件的回調(diào)處理器,由我們自己編寫的函數(shù)進行處理。

3.2 各種驅(qū)動程序比較

常見的驅(qū)動程序包括三種:VxD,KMD和WDM。

(1) VxD:虛擬設(shè)備驅(qū)動程序,是系統(tǒng)用于各種硬件資源識別、管理、維護運作的擴展。VxD和VMM一起維持著系統(tǒng)的運作。VxD運作組Intel系列CPU保護模式下的Ring0,擁有對硬件的最高控制權(quán)。
(2) KMD,Kernel Mode Driver。它是WindowsNT下提出的管理、維護硬件運作的驅(qū)動程序模式。該Driver運行于WindowsNT的Kernel模式下(類似于Ring0)。但一個KMD的運行環(huán)境在不同的時候是根本不同的,Driver收到設(shè)備請求時的運行環(huán)境很可能和設(shè)備請求實際操作的運行環(huán)境根本不同,因此在WindowsNT下Driver的運作受到WindowsNT本身的很多限制。
(3) WDM,Win32 Driver Model。它可以和Windows2000兼容,MS力推的全新的驅(qū)動程序模式,它實際也可以理解為一個即插即用的KMD。WMD代碼很長,Windows98對WDM支持有限,因此WMD難以一時取代VxD。

3.3 PCI2040驅(qū)動程序開發(fā)

PCI2040不是標準的硬件設(shè)備,因此必須自己編寫PCI2040的硬件安裝信息文件和驅(qū)動程序。PCI2040配置空間如附表:

其中設(shè)備ID用以標識特定的設(shè)備,具體的代碼由供應商來分派;供應商ID用以表明設(shè)備的制造者,這二者是識別PCI設(shè)備的唯一標識。對于PCI2040來說,當讀Vendor-device ID時,返回值為AC60104C。

(1) 設(shè)備信息安裝文件

設(shè)備信息安裝文件(.INF)包含了驅(qū)動程序的名稱、驅(qū)動程序應該復制到的目錄,以及在驅(qū)動程序安裝時必須生成和修改的注冊表入口。

在編寫INF文件時,可以使用了VtoolsD開發(fā)包中的INF Editor工具,以下是我所編寫的PCI2040安裝信息文件。

[Version]
Signature=$CHICAGO$
Class=PCI Bridge file://設(shè)備類型為PCI橋設(shè)備
Provider=%String0% file://供應商的名稱
[ClassInstall]
[DestinationDirs]
DefaultDestDir=11 file://將驅(qū)動程序安裝在
file://C:WindowsSystem目錄下
[Manufacturer]
%String1%=SECTION_0
[SECTION_0]
%String2%=sevenstar,PCIVEN_104CDEV_AC60
[sevenstar]
CopyFiles=CopyFiles_sevenstar
AddReg=AddReg_sevenstar
[CopyFiles_sevenstar]
DSP_PCI_Bridge.vxd file://驅(qū)動程序的名稱為 file://DSP_PCI_Bridge.vxd
[AddReg_sevenstar]
HKR,,DevLoader,0, DSP_PCI_Bridge.vxd file://在注 file://冊表中添加相關(guān)信息
[sevenstar_LogConfig]
ConfigPriority=NORMAL
IRQConfig=3,7,9,10,15 file://指定PCI2040可 file://選的中斷口
[ControlFlags]
[SourceDisksNames]
1=pci2040驅(qū)動盤,,0000-0000
[SourceDisksFiles]
DSP_PCI_Bridge.vxd=1
[Strings]
String0="Texas Instruments"
String1="TI"
String2=“PCI橋接”

(2) VxD的創(chuàng)建

Windows支持靜態(tài)安裝和動態(tài)安裝VxD,前者是在Windows初始化時安裝VxD并一直保存在Windows中,后者是在一個應用程序或其他VxD的控制下安裝和卸載。靜態(tài)安裝的VxD始終占用著一定的內(nèi)存資源以及中斷口,若不是一直運行,則導致了資源浪費。

在使用QuickVxD開發(fā)VxD只需在Dynamically Loadable選項中打勾就行了,其中Device Name是指我們的VxD的設(shè)備名,每個VxD都有設(shè)備名這兒是指PCI2040芯片,Device ID是用來標識設(shè)備,只有當該VxD需要提供對其他VxD的調(diào)用入口時才用,且不能任意取應該由Microsoft公司提供,一般情況直接用UNDEFINED_DEVICE_ID就行了,Device Initialization Order確定Windows對VxD的安裝順序,比如你想要你的VxD先于VDD初始化就應該設(shè)置為VDD_INIT_ORDER-1,一般情況也使用默認值。

4 結(jié)束語

圖像實現(xiàn)的關(guān)鍵在于如何對大容量的信息進行暫存、壓縮和傳輸?shù)葐栴}進行處理。本系統(tǒng)的實現(xiàn)很好的解決了這三個難題。在圖像信息暫存方面充分利用了DSP存儲空間的可擴展性,保證了系統(tǒng)可暫存的信息量足夠大;信息壓縮是DSP的最擅長做的事情,可以在很短的時間內(nèi)完成大量的信息壓縮工作;的引入保證了信息在足夠的帶寬下進行快速傳輸。

上一頁 1 2 3 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉