• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種數(shù)字圖像接收測試系統(tǒng)的設(shè)計與實現(xiàn)

      2013-10-21 00:54:10李冠林苗克堅
      電子設(shè)計工程 2013年13期
      關(guān)鍵詞:中間層數(shù)字圖像驅(qū)動程序

      李冠林,苗克堅

      (西北工業(yè)大學(xué) 計算機(jī)學(xué)院,陜西 西安 710072)

      在航空電子設(shè)備的研制過程中,通常需要對目標(biāo)設(shè)備進(jìn)行全面的測試。設(shè)備測試通過對目標(biāo)設(shè)備發(fā)送激勵信號,接收并記錄目標(biāo)設(shè)備的輸出信號。通過對反饋信號的分析,測試目標(biāo)設(shè)備功能的完整性、邏輯的正確性、整體運(yùn)行性能、以及可靠性和實時性。鑒于對設(shè)備可維護(hù)性的考慮,測試過程通常要求進(jìn)行全程的測試數(shù)據(jù)記錄,以便在檢測到設(shè)備故障時進(jìn)行現(xiàn)場恢復(fù)和故障定位。用于測試的設(shè)備通常采用工業(yè)控制計算機(jī)作為設(shè)備主機(jī),安裝各種總線通信擴(kuò)展卡、信號采集卡、數(shù)字I/O 卡完成激勵信號的輸出和反饋信息的收集[1]。

      論文以測試設(shè)備對目標(biāo)設(shè)備的圖像板進(jìn)行測試為背景,提出了一種基于CPCI 總線,以LVDS 接口卡為數(shù)據(jù)接收卡,通過DMA 驅(qū)動程序快速的提取接口卡的數(shù)據(jù)并提交給用戶程序的設(shè)計方案。該方案符合設(shè)計要求,滿足用戶需求。

      1 測試系統(tǒng)需求分析

      為滿足目標(biāo)設(shè)備圖像板測試的需求,該測試系統(tǒng)采用CPCI 總線接口的專用測試卡和LVDS 信號傳輸模式,使其傳輸速度高和抗干擾性強(qiáng)[2]。由于目標(biāo)設(shè)備發(fā)送圖像數(shù)據(jù)速率快,設(shè)備需要采用DMA 方式傳輸LVDS 接口卡接收到的數(shù)據(jù)。最后,測試設(shè)備要將接收的數(shù)字圖像數(shù)據(jù)以圖像的形式在用戶界面上顯示出來,便于判斷圖像板的工作狀態(tài)。

      要想完成以上的測試,需要做好以下幾個方面。首先該測試系統(tǒng)應(yīng)能夠?qū)y試設(shè)備進(jìn)行自檢,確保測試設(shè)備工作是正常;其次DMA 驅(qū)動程序能夠正確地接收全部數(shù)字圖像數(shù)據(jù);最后測試系統(tǒng)能夠?qū)崟r的顯示圖像。

      2 總體設(shè)計

      該測試系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖如圖1 所示,在對目標(biāo)設(shè)備的圖像板進(jìn)行測試時,首先測試系統(tǒng)對目標(biāo)設(shè)備加電;接著目標(biāo)設(shè)備的圖像板開始發(fā)送圖像數(shù)據(jù),測試系統(tǒng)通過LVDS 接口卡接收圖像數(shù)據(jù);然后測試系統(tǒng)通過DMA 驅(qū)動程序提取LVDS 接口卡中的數(shù)字圖像數(shù)據(jù);最后測試系統(tǒng)處理圖像數(shù)據(jù),同時把圖像顯示到用戶圖像區(qū)。

      圖1 系統(tǒng)結(jié)構(gòu)圖Fig.1 Structure diagram of test system

      3 測試系統(tǒng)硬件設(shè)計

      測試系統(tǒng)硬件主要由工控機(jī)、LVDS 接口卡、電源板和目標(biāo)設(shè)備組成。系統(tǒng)硬件結(jié)構(gòu)圖如圖2 所示。工控機(jī)是設(shè)備的核心,包含控制器和機(jī)箱。LVDS 接口卡主要負(fù)責(zé)數(shù)字圖像的接收,其CPCI 總線接口的實現(xiàn)采用PLX 的協(xié)議芯片PCI-9054,該芯片實現(xiàn)CPCI 總線與局部總線的橋接,并提供對DMA 方式傳輸數(shù)據(jù)的支持。電源板主要負(fù)責(zé)為目標(biāo)設(shè)備提供高效、穩(wěn)定的+12 V 電源。

      圖2 系統(tǒng)硬件結(jié)構(gòu)圖Fig.2 Structure diagram of the hardware system

      4 測試系統(tǒng)軟件設(shè)計

      測試系統(tǒng)軟件部分采用分層設(shè)計的思想,從上到下依次為:用戶層、中間層和DMA 驅(qū)動層,具體結(jié)構(gòu)框架如圖3所示。

      圖3 系統(tǒng)軟件設(shè)計結(jié)構(gòu)圖Fig.3 Schematic diagram of the software test system

      用戶層負(fù)責(zé)數(shù)字圖像的處理和實時顯示,該層使用中間層提供的服務(wù)接口,對底層的圖像數(shù)據(jù)進(jìn)行提??;中間層為用戶層提供服務(wù),使用戶只能看見中間層提供的服務(wù)而無法看見底層的操作,底層的操作對用戶來講是透明的,同時該層功能的實現(xiàn)需要DMA 驅(qū)動層提供服務(wù)接口;DMA 驅(qū)動層為中間層提供服務(wù)接口,負(fù)責(zé)將圖像板發(fā)送的數(shù)字圖像數(shù)據(jù)從LVDS 接口卡中提取出來,通知中間層取數(shù)。軟件設(shè)計的流程圖如圖4 所示。

      4.1 DMA 驅(qū)動程序模塊

      DMA 驅(qū)動程序以WDM 驅(qū)動框架為模版,開發(fā)環(huán)境為Microsoft DDK+VS2008。

      4.1.1 WDM 驅(qū)動模型

      WDM 驅(qū)動模型層次關(guān)系圖如圖5 所示,圖中左邊是一個設(shè)備對象堆棧,每一層驅(qū)動程序各對應(yīng)一個設(shè)備對象(PDO)。設(shè)備對象是操作系統(tǒng)幫助軟件管理硬件而創(chuàng)建的一種數(shù)據(jù)結(jié)構(gòu)。圖中處于最底層的是物理設(shè)備對象,中間層是功能設(shè)備對象(FDO),在FDO 的上下層可能有一些過濾設(shè)備對象[3]。

      在單個硬件的驅(qū)動程序中,不同位置的驅(qū)動程序扮演了不同的角色??偩€驅(qū)動程序管理計算機(jī)與PDO 代表的設(shè)備連接;功能驅(qū)動程序管理了FDO 代表的設(shè)備;過濾驅(qū)動程序用于監(jiān)視和修改IRP 流。對硬件板卡的每個操作轉(zhuǎn)換為相應(yīng)的I/O 請求包(IRP)。IRP 通常先被送到設(shè)備堆棧的最頂層驅(qū)動程序,然后逐漸傳到下層的驅(qū)動程序。每一層驅(qū)動程序都根據(jù)IRP 攜帶的內(nèi)容決定如何處理IRP[3-5]。

      4.1.2 DMA 驅(qū)動層

      圖4 軟件設(shè)計數(shù)據(jù)流圖Fig.4 Flow chart of the software design

      圖5 WDM 設(shè)備對象和驅(qū)動程序的層次關(guān)系圖Fig.5 Level diagram of the WDM device object and driver

      Windows 操作系統(tǒng)提供了適配器對象來描述設(shè)備上的DMA 特征,并用它來控制訪問共享資源,如系統(tǒng)DMA 通道和映射寄存器。驅(qū)動程序要控制DMA,需要先創(chuàng)建一個適配器對象,適配器對象中有一個指針,指向一個DmaOperations的結(jié)構(gòu),該結(jié)構(gòu)包含了所有需要的DMA 相關(guān)的函數(shù),如函數(shù)AllocateCommonBuffer 等。

      DMA 驅(qū)動程序首先從操作系統(tǒng)中獲取相關(guān)的硬件資源,包括LVDS 接口卡映射的內(nèi)存地址和DMA 相關(guān)中斷資源;然后在函數(shù)StartDevice 中調(diào)用函數(shù)IoGetDmaAdapter 獲取適配 器 對 象pDmaAdapterObject,通 過pDmaAdapterObject->DmaOperations->AllocateCommonBuffer 函數(shù)申請公共的DMA數(shù)據(jù)接收緩沖區(qū);當(dāng)中斷發(fā)生時,驅(qū)動程序判斷中斷源,如果是DMA 中斷,調(diào)用函數(shù)Dma_Transfer 啟動DMA 傳輸LVDS接口卡中的圖像數(shù)據(jù);當(dāng)DMA 傳輸圖像數(shù)據(jù)結(jié)束中斷產(chǎn)生后,驅(qū)動程序?qū)⒔邮盏臄?shù)據(jù)放在本層的循環(huán)緩沖區(qū)中,通知中間層到緩沖區(qū)中提取數(shù)據(jù)。

      在啟動DMA 進(jìn)行數(shù)據(jù)傳輸前,需要設(shè)定DMA 數(shù)據(jù)的傳輸方向、傳輸起始地址、傳輸長度和傳輸通道等相關(guān)信息,最后打開DMA 通道進(jìn)行數(shù)據(jù)傳輸。以下是Dma_Transfer 函數(shù)的核心代碼。

      4.2 中間層

      中間層提供的接口函數(shù)有:打開設(shè)備接口函數(shù)OpenDeviceDMA、關(guān)閉設(shè)備接口函數(shù)CloseDeviceDMA、使能中斷接口函數(shù)EnableInterruptDMA、中斷回調(diào)例程掛接接口函數(shù)ConnectIntDMA、中斷例程卸載接口函數(shù)DisConnectIntDMA、接收DMA 數(shù)據(jù)接口函數(shù)RevLVDSData和相關(guān)的對LVDS 接口卡寄存器操作的接口函數(shù)。

      4.3 用戶層

      用戶層軟件是在VS2008 環(huán)境下編寫的基于MFC 框架的應(yīng)用程序,負(fù)責(zé)從中間層提取圖像數(shù)據(jù),并將其處理保存,在界面上實時顯示圖像。

      用戶層首先將中斷回調(diào)函數(shù)掛接到中間層,當(dāng)驅(qū)動層有DMA 數(shù)據(jù)傳輸結(jié)束中斷產(chǎn)生,驅(qū)動層將通知中間層,中間層接到通知后,提取驅(qū)動層的圖像數(shù)據(jù)存放到其循環(huán)存儲區(qū)。中間層調(diào)用中斷回調(diào)函數(shù),通知用戶層,用戶層接到通知后,從中間層將圖像數(shù)據(jù)提取出來,并對圖像數(shù)據(jù)進(jìn)行處理和實時顯示。

      由于用戶層還要處理其它事務(wù),往往會使提取圖像數(shù)據(jù)的速率與DMA 傳輸數(shù)據(jù)的速率不匹配,在驅(qū)動層和中間層都申請一塊循環(huán)緩沖隊列來存儲DMA 傳輸?shù)臄?shù)據(jù),這樣就不會出現(xiàn)由于用戶層還未完全取走圖像數(shù)據(jù),DMA 傳輸過來的數(shù)據(jù)就把未及時取走的數(shù)據(jù)覆蓋掉的問題。待用戶層提取數(shù)據(jù)完成后,直接調(diào)用圖像數(shù)據(jù)解析函數(shù),根據(jù)圖像板數(shù)據(jù)格式,將圖像數(shù)據(jù)從數(shù)據(jù)幀中解析出來,然后調(diào)用Invalidate()函數(shù)使圖像客戶顯示區(qū)失效,對圖像進(jìn)行重繪。為了消除重繪過程中產(chǎn)生的閃屏問題,采用了雙緩沖機(jī)制來繪制圖像[6]。在圖像繪制結(jié)束后,將圖像數(shù)據(jù)保存到固定的文件中。若測試不合格,該測試系統(tǒng)對數(shù)據(jù)進(jìn)行分析,查找故障原因。

      5 實驗應(yīng)用

      測試系統(tǒng)測試目標(biāo)設(shè)備圖像板的過程為:打開測試軟件圖像板測試模塊,給目標(biāo)設(shè)備上電。等待大約3 s 的時間,界面上會出現(xiàn)特定的圖像。程序的部分操作界面如圖6 所示,該測試系統(tǒng)對顯示的圖像進(jìn)行判定以檢驗圖像板工作是否正常。

      圖6 測試系統(tǒng)部分界面Fig.6 Interface chart of testing system

      6 結(jié)束語

      測試系統(tǒng)采用裝有LVDS 接口卡的CPCI 工控機(jī)作為硬件平臺,軟件采用分層的設(shè)計思想,提高了系統(tǒng)的可擴(kuò)展性和可維護(hù)性,便于二次開發(fā)。該測試系統(tǒng)采用了友好的界面設(shè)計,目前已經(jīng)交付用戶使用。實際應(yīng)用情況表明,該測試系統(tǒng)提高了測試效率,具有人機(jī)交互界面友好、簡單、測試準(zhǔn)確、穩(wěn)定性高的特點,達(dá)到了設(shè)計目標(biāo)。

      [1]劉艷霞,苗克堅,陸寅.基PCI的智能化仿真通訊存儲板的設(shè)計[J].計算機(jī)測量與制,2011,13(9):1184-1186.LIU Yan-xia,MIAO Ke-jian,LU Yin.The design of intelligent simulation communication memory board based on PCI[J].Computer Measurement &Control,2011,13(9):1184-1186.

      [2]張威,苗克堅,陸寅.基LVDS的多路SPI的PCI板卡設(shè)計與實現(xiàn)[J].計算機(jī)測量與控制,2012,20(3):790-792.ZHANG Wei,MIAO Ke-jian,LU Yin.The design and implement of PCI card of multi-channel SPI based on LVDS[J].Computer Measurement &Control,2012,20(3):790-792.

      [3]郭艷,苗克堅.Windows 2000下WDM 驅(qū)動程序的研究與開發(fā)[J].計算機(jī)工程,2006,32(22):266-268.GUO Yan,MIAO Ke-jian.Research and design of WDM driver under windows 2000 [J].Computer Engineering,2006,32(22):266-268.

      [4]魏超,苗克堅,楊成果.基于CPCI的ARINC429總線通信卡的WDM 驅(qū)動程序開發(fā)[J].計算機(jī)工程與科學(xué),2008,30(10):156-159.WEI Chao,MIAO Ke-jian,YANG Cheng-guo.Development of the WDM driver for the ARINC429 bus communication card based on CPCI [J].Computer Engineering &Science,2008,30(10):156-159.

      [5]張帆,史彩成.Windows驅(qū)動開發(fā)詳解[M].北京:電子工業(yè)出版社,2010.

      [6]明日科技,孫秀梅,王雪,等.Visaul C++典型模塊與項目實戰(zhàn)大全[M].北京:電子工業(yè)出版社,2012.

      猜你喜歡
      中間層數(shù)字圖像驅(qū)動程序
      ARGUS-100 藝術(shù)品鑒證數(shù)字圖像比對系統(tǒng)
      鎳基高溫合金TLP擴(kuò)散焊中間層材料研究進(jìn)展
      焊接(2016年8期)2016-02-27 13:05:10
      B含量對IC10合金TLP焊接用中間層材料及接頭組織的影響
      焊接(2016年6期)2016-02-27 13:04:55
      基于塊效應(yīng)測度的JPEG數(shù)字圖像盲取證
      社會中間層建設(shè)與活動機(jī)制網(wǎng)研究
      數(shù)字圖像修復(fù)在圖像壓縮上的應(yīng)用
      基于DirectShow的便攜式X射線數(shù)字圖像采集的實現(xiàn)
      柵格中間層數(shù)據(jù)在數(shù)字地形分析中的應(yīng)用
      驅(qū)動程序更新與推薦
      驅(qū)動程序更新與推薦
      巫山县| 南充市| 上饶县| 当阳市| 廉江市| 莫力| 昭通市| 正定县| 三河市| 闵行区| 柘城县| 贺州市| 渭南市| 剑川县| 忻城县| 电白县| 鄂尔多斯市| 县级市| 清镇市| 定安县| 兴文县| 襄樊市| 鸡泽县| 阜康市| 长顺县| 广州市| 铜鼓县| 繁昌县| 大荔县| 长乐市| 图片| 安宁市| 儋州市| 民丰县| 镇平县| 阜城县| 乌兰察布市| 鹤峰县| 称多县| 黑龙江省| 乌苏市|