999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于WDF的航天測控數字基帶板驅動程序設計

2016-04-26 04:49:47王文基狄衛國
無線電工程 2016年4期

何 帥,王文基,狄衛國

(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081;

2.空軍石家莊地區軍事代表室,河北 石家莊 050081;

3.石家莊鐵道大學 電氣與電子工程學院,河北 石家莊050043)

?

基于WDF的航天測控數字基帶板驅動程序設計

何帥1,王文基2,狄衛國3

(1.中國電子科技集團公司第五十四研究所,河北 石家莊 050081;

2.空軍石家莊地區軍事代表室,河北 石家莊 050081;

3.石家莊鐵道大學 電氣與電子工程學院,河北 石家莊050043)

摘要航天測控系統面臨著操作系統升級的問題,這就需要為數字基帶板開發基于64位操作系統的設備驅動程序。針對這種需求,研究了Windows操作系統下驅動程序基礎(Windows Driver Fundation,WDF)驅動程序的工作機制,采用WDF程序框架設計了基帶設備板卡設備驅動程序,并設計了相應的應用程序編程接口(Application Programming Interface,API)和測試程序。通過對設備驅動程序及數字基帶板的測試,結果表明其功能得以實現,雙通道數據接收能夠在40 Mbps速率下長時間穩定地工作。

關鍵詞數字基帶;WDF;設備驅動;應用程序編程接口

The Design of Digital Baseband Card Device Driver Programs for Space TT&C Based on WDF

HE Shuai1,WANG Wen-ji2,DI Wei-guo3

(1.The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China;2.MilitaryRepresentOfficeofAirForceinShijiazhuang,ShijiazhuangHebei050081,China;3.CollegeofElectricalandElectronicsEngineering,ShijiazhuangTiedaoUniversity,ShijiazhuangHebei050043,China)

AbstractSpace TT&C systems has to confront the problem of operating system upgrading.And there is a demand to develop the device driver programs for Digital Baseband Card based on 64 bits Windows operating system.For this case,we have studied the working principle of device driver programs based on WDF.With this WDF frame,the device driver programs of digital baseband card is designed.Also,the application programming interface and test programs have been designed and developed.Some tests have been performed for the device driver programs.The result demonstrates that it can meet the requirement in function.The data transfer rate using DMA dual-channel reaches 40 Mbps.And it works well continuously for long time.

Key wordsdigital baseband;WDF;device drive;application programming interface

0引言

伴隨著數字基帶測控技術的發展[1],地面測控設備已經完成了集成化、小型化轉變,將遙控、測速、測距、測角、遙測接收和數傳數據接收等功能高度集成到基帶信號處理板上[2]。目前,航天測控基帶終端計算機的操作系統大多采用Windows XP 32位版本,受制于32位操作系統的限制,計算機內存和其他外設無法升級,所以升級64位操作系統迫在眉睫。

由于64位操作系統與32位操作系統系統架構有很大區別,設備驅動程序無法實現兼容,原有基帶板卡驅動程序將無法使用,需要重新設計和開發。針對這個問題,研究了WDF驅動程序模型及其在64位Windows 7平臺下的工作機制,設計出數字基帶板的驅動程序和相應的API函數。

1基帶終端整體框架

航天測控基帶終端采取分層設計,如圖 1所示。通過驅動程序和API接口函數將數字基帶板、操作系統和應用程序進行了結合,達到了完成測控任務的目的。

圖1 基帶終端分層設計

數字基帶板卡由FPGA、DSP、PCI接口芯片及相關輔助模塊組成[3]。其中,PCI接口芯片完成PCI接口與FPGA、PCI接口與計算機總線之間的接口轉換,該芯片具有2個獨立的DMA通道,可實現高速數據傳輸。

設備驅動程序是硬件板卡和操作系統之間的橋梁,具備打開/關閉設備、讀寫數據和中斷處理等功能。應用程序API接口函數為應用程序提供了通過驅動程序訪問硬件設備的接口,提供打開設備、讀取/寫入指定地址數據、中斷允許/禁止控制、DMA讀寫和關閉設備等函數。

2WDF框架驅動程序框架

WDF是微軟提出的全新的驅動程序模型[4],提供了更高層次抽象的高度靈活、可擴展和可診斷的驅動程序框架。

WDF提供了2個框架[5]:內核模式驅動程序框架(KMDF)和用戶模式驅動程序框架(UMDF)。數字基帶板設備驅動程序運行在內核模式,所以文中只介紹KMDF框架。

KMDF框架支持面向對象、事件驅動的驅動程序模型[6]。該框架定義了一系列的對象用來表示設備、驅動和中斷等,每個對象有對應的屬性、方法和事件,驅動程序利用這些方法創建對象、設置屬性和響應事件,如表 1所示;另外,該框架還定義了一系列例程函數用于定義驅動程序的入口函數、設備添加、設備刪除和I/O請求處理等,如表 2所示。關于KMDF框架內容較多,在此僅介紹與本文相關的基本內容。

表1 KMDF框架模型定義的主要對象

表2 KMDF框架模型定義的主要例程

3數字基帶板驅動程序設計

3.1驅動程序設計

數字基帶板卡驅動程序按照WDF框架進行設計,如圖 2所示。

圖2 數字基帶板驅動程序框架

數字基帶板卡驅動程序針對KMDF框架中的各個例程進行了設計,這里對主要例程中對應的相關函數進行介紹。

3.1.1EvtDriverDeviceAdd例程

實現名稱WDFBBE_EvtDeviceAdd(),該例程完成設備對象創建以及各個例程的初始化和掛接工作:

① 調用WDF_PNPPOWER_EVENT_CAL_LBACKS_INIT初始化即插即用回調例程,并掛接EvtDevicePrepareHardware和EvtDeviceReleaseHardware例程;

② 調用WdfDeviceCreate創建設備對象,并建立一個私有的設備擴展對象;

③ 初始化中斷服務例程和DPC例程,并創建中斷對象;

④ 初始化IRP請求隊列,并掛接EvtIoRead、EvtIoWrite和EvtIoDeviceControl等例程;

⑤ 初始化DMA對象;

⑥ 注冊設備接口,給出設備名并創建應用程序能夠使用的符號連接;

⑦ 注冊設備接口,給出設備名并創建符號連接。數字基帶板卡驅動程序采用命名方法命名設備對象,并創建應用程序能夠使用的符號連接,該名稱為“WDFBBEBOARD*”。

3.1.2EvtIoRead例程

實現名稱WDFBBE_EvtIoRead(),用于響應上層應用軟件的ReadFile操作,該操作用于進行DMA數據讀操作,由于該請求未必能夠馬上完成,所以需將該請求保存到設備對象擴展中,待數據中斷到來后才能完成;另外,收到該請求后需啟動一次定時器,如在既定時間內該請求未能完成則在定時消息響應例程將該請求標記為超時并返回。

3.1.3EvtIoWrite例程

實現名稱WDFBBE_EvtIoWrite(),用于響應上層應用軟件的WriteFile操作,該操作用于進行DMA數據寫操作,由于該請求未必能夠馬上完成,所以需將該請求保存到設備對象擴展中,待數據中斷到來后才能完成;另外,收到該請求后需啟動一次定時器,如在既定時間內該請求未能完成則在定時消息響應例程將該請求標記為超時并返回。

3.1.4中斷處理例程(ISR)

實現名稱WDFBBE_EvtInterruptIsr()。Windows的中斷處理機制允許多個設備共享一個硬件中斷[7]。因此,中斷服務例程(ISR)的首要工作就是判斷是否為期望的中斷。ISR執行在高于DISPATCH_LEVEL的IRQL上,在ISR能調用的內核模式函數十分有限。為了提高系統性能,ISR應該盡可能快地執行,只做服務硬件所需的最小量的工作(如清除中斷),然后立即返回。如果有額外的工作需要做(例如完成一個IRP),應該由延遲過程調用(DPC)例程來完成?;鶐О蹇ü部梢援a生2種類型的中斷:數據中斷、DMA結束中斷[8]。在本例程中應首先讀取中斷控制/狀態寄存器,根據標志位判斷基帶板卡是否產生了中斷,產生了哪種類型的中斷。如果沒有產生中斷則立即返回FALSE即可。如果產生了數據中斷,應判斷當前IRP類型(讀/寫),清楚中斷后申請一個DPC請求用于后續啟動DMA(讀/寫)傳輸。如果產生了DMA結束中斷,也應判斷當前IRP類型(讀/寫),清除中斷后也申請一個DPC請求用于完成該請求。在申請DPC時應標明該請求的類型(DMA讀/ DMA寫/DMA讀完成/DMA寫完成)。

3.1.5DPC例程

實現名稱WDFBBE_EvtInterruptDpc(),DPC例程用于完成中斷處理例程中未完成的工作,在本驅動程序中中斷處理例程申請了4種類型的DPC,所以在DPC例程中也有以下4種處理:

① DMA讀:計算本次可以讀取數據的長度,然后啟動DMA傳輸;

② DMA寫:計算本次可以寫入數據的長度,然后啟動DMA傳輸;

③ DMA讀完成:保存已讀取數據的最終地址后,完成該請求;

④ DMA寫完成:保存當前寫數據的最終地址后,完成該請求。

3.2驅動程序API接口設計

為了便于上層應用程序通過設備驅動程序訪問基帶設備[9],用Visual Stuido 2010開發驅動程序API接口,在該API接口中封裝了設備創建、設備關閉、DMA接收數據、DMA發送數據和設備中斷控制等函數。這里主要介紹DMA讀寫函數。

3.2.1DMA讀取數據函數

函數格式:bool DMARead(BYTE*pReadBuffer,int iReadLen,int& iRetLen,int& iRetID)

pReadBuffer表示存放被讀取數據的緩沖區的指針;iReadLen表示本次所要讀取數據的字節數;iRetLen表示返回值存放本次成功讀取數據的字節數;iRetID表示返回值指示本次從哪個通道讀取了數據,范圍為1~2。此函數返回結果為布爾型,函數的返回值為true表示讀取數據成功,長度存放在iReadedLen中;返回值為false表示讀取數據失敗。

當應用程序調用讀取數據函數后,讀取數據函數會被阻塞,當數據中斷到來,驅動程序讀完一次數據后,讀取數據函數才會返回。

3.2.2DMA數據寫入函數

函數格式:bool DMAWrite(BYTE*pWriteBuffer,int iWriteLen,int& iRetLen)

pWriteBuffer表示存放需要寫入數據的緩沖區的指針;iWriteLen表示本次所要寫入數據的長度;iRetLen表示返回值存放本次成功寫入數據的長度。此函數返回結果為布爾型,函數的返回值為true表示寫入數據成功,長度存放在iWrittenLen中;返回值為false表示寫入數據失敗。

當應用程序調用寫入數據函數后,寫入數據函數會被阻塞,當數據寫操作完成或操作失敗才會返回。

4驅動程序測試及結果分析

4.1API接口測試

驅動程序測試程序集成了驅動程序API接口模塊,并設計了專用操控界面進行API接口測試,該界面通過調用API接口函數可以實現多板卡識別、設備讀寫等功能。

4.2DMA數據傳輸測試

針對實際應用,從數據傳輸速率、數據傳輸可靠性和資源占用率方面進行DMA數據傳輸測試。測試中設定傳輸速率為20 Mbps,數據中斷頻率為100 Hz,FPGA程序將測試程序下發的帶幀序號的模擬數據通過單/雙通道DMA上報測試程序,應用程序實時統計丟幀數、誤碼率和CPU占用率。測試結果如表 3和表 4所示。

表3 單通道自閉環測試表

表4 雙通道自閉環測試表

4.3測試結果分析

API接口測試和DMA數據傳輸測試表明,在基帶板卡和測試程序配合下,驅動程序可以很好地完成單路20 Mbps發送和單路/2路20 Mbps數據接收,2路數據接收可以達到40 Mbps。通過多次長時間的測試,整套基帶終端設備工作穩定,驅動程序運行正常。

5結束語

從測控系統數字基帶技術的發展形勢[10],結合當前系統平臺升級需求,分析了測控系統數字基帶驅動程序的功能和性能需求,提出了以WDF模型為核心技術的解決方案。

文章把WDF驅動程序技術應用于航天測控系統的數字基帶設備,完成了設備驅動程序的設計和實現;為方便上層應用程序訪問基帶板卡,設計了基于基帶板卡驅動程序的API接口模塊;最后開發了測試程序,對API接口模塊、驅動程序和基帶設備集成性能進行測試。

由于受數字基帶板硬件條件限制,DMA數據傳輸測試使用20 Mbps的發送速率。在以后的應用中,隨著硬件系統的升級,DMA數據傳輸速率能夠得到大幅度的提升[11],以更好地滿足航天測控發展的需要。

參考文獻

[1]唐軍,謝澍霖.測通通信系統綜合基帶設備的發展和應用[J].電訊技術,2001(4):6-9.

[2]房鴻瑞.導彈航天測控新技術管窺[J].遙測遙控,2006,36(5):1-8.

[3]張麗君.基于IP核的PCI接口FPGA設計實現[J].無線電通信技術,2013,39(1):91-93.

[4]王蘭英,居錦武.Windows平臺驅動程序新架構分析[J].計算機系統應用,2008(1):109-112.

[5]李正平,徐超,陳軍寧,等.WDF設備驅動程序的設計與實現[J].計算機技術與發展,2007,17(5):228-230.

[6]張小磊,孟李林,崔晨琪.基于KMDF的PCI Express設備驅動設計[J].西安航空學院學報,2014,32(1):59-63.

[7]王孝國,王凌,張雄偉.高速數據采集系統中的PCI中斷處理機制和DMA編程[J].軍事通信技術,2004,25(1):44-47.

[8]滑偉.一種PCI總線接口的數據接收卡設計[J].無線電通信技術,2013,39(4):53-55.

[9]馬進.數控工業以太網系統設計及驅動程序開發[D].上海:上海交通大學,2010:31-32.

[10]信侃.基于Xilinx FPGA的PCIe總線接口設計與實現[J].無線電通信技術,2014,40(4):94-96.

[11]王波,郭建.基于PCI設備的DMA傳輸建模與分析[J].計算機測量與控制,2011(4):972-974.

何帥男,(1986—),助理工程師。主要研究方向:航天測控。

王文基男,(1978—),碩士,工程師。主要研究方向:武器裝備質量控制與監督檢驗。

作者簡介

中圖分類號TP391.4

文獻標志碼A

文章編號1003-3106(2016)04-0005-04

基金項目:國家自然科學基金資助項目(61401119);河北省教育廳基金資助項目(Q2012118)。

收稿日期:2016-01-07

doi:10.3969/j.issn.1003-3106.2016.04.02

引用格式:何帥,王文基,狄衛國.基于WDF的航天測控數字基帶板驅動程序設計[J].無線電工程,2016,46(4):5-8,17.

主站蜘蛛池模板: 久久综合婷婷| 夜精品a一区二区三区| 看av免费毛片手机播放| 国产交换配偶在线视频| 欧洲一区二区三区无码| 中文字幕欧美成人免费| 国产在线欧美| 沈阳少妇高潮在线| 麻豆精选在线| 色哟哟国产精品| 在线国产综合一区二区三区| 亚洲一级色| 人人看人人鲁狠狠高清| 国产精品香蕉在线观看不卡| 国产尤物在线播放| 亚洲日本中文字幕天堂网| 久久香蕉国产线看观看精品蕉| 亚洲日本中文字幕乱码中文| 亚洲专区一区二区在线观看| 国产97公开成人免费视频| 国产精品永久在线| 国产欧美高清| 日本成人精品视频| 无码一区二区波多野结衣播放搜索| 中文字幕乱码二三区免费| 日韩在线2020专区| 日本91视频| JIZZ亚洲国产| 国产男人天堂| 国产成人精品18| 久操线在视频在线观看| 一级毛片网| 一区二区三区国产精品视频| 国产网站免费看| 亚洲AV成人一区二区三区AV| 任我操在线视频| 日韩精品一区二区三区swag| 天天躁日日躁狠狠躁中文字幕| 为你提供最新久久精品久久综合| 亚洲视频在线网| 亚洲精品午夜无码电影网| 91无码网站| 成人在线观看不卡| 中文字幕2区| 激情六月丁香婷婷| 欧美午夜视频| 国产成人91精品| 午夜精品福利影院| 久久精品一品道久久精品| 国产丝袜91| 国产在线一区二区视频| 超级碰免费视频91| 成年人免费国产视频| 呦系列视频一区二区三区| 精品国产免费人成在线观看| 黄色网站在线观看无码| 2021国产乱人伦在线播放| 欧美特黄一级大黄录像| 精品在线免费播放| 无码av免费不卡在线观看| 国产免费高清无需播放器| 久久久久国产精品熟女影院| 亚洲系列中文字幕一区二区| 免费A∨中文乱码专区| 国产精品免费电影| 国产97视频在线| 在线免费看黄的网站| 国产99视频在线| 中文字幕va| 91在线无码精品秘九色APP | yjizz视频最新网站在线| 国产H片无码不卡在线视频| 一边摸一边做爽的视频17国产| 欧美啪啪一区| 亚洲精品第1页| 久久成人国产精品免费软件 | 九九九久久国产精品| 国产精品亚洲日韩AⅤ在线观看| 无码日韩视频| 国产无码制服丝袜| 国内精品久久人妻无码大片高| 波多野结衣中文字幕一区二区|