基于WinDriver的PCIe設備驅動開發(fā)套件及數(shù)據(jù)交互實現(xiàn)的方法
【技術領域】
[OOO1 ] 本發(fā)明涉及一種WinDriver設備驅動開發(fā)套件,特別涉及一種基于WinDriver的PCIe設備驅動開發(fā)套件及數(shù)據(jù)交互實現(xiàn)的方法。
【背景技術】
[0002]隨著通信技術的不斷提高,高速信號通信成為越來越多人的需求。PCIe通信作為其中的一種,被廣泛應用于互聯(lián)網(wǎng)、多媒體、數(shù)字通信等行業(yè)中。在Windows操作系統(tǒng)下開發(fā)PCIe設備驅動,對很多設計人員都是一定難度的,WinDriver設備驅動開發(fā)組件正是為了方便設計人員快速開發(fā)PC1、PCIe、ISA等設備驅動程序而產(chǎn)生的。但由于WinDriver的框架層次較復雜,許多設計人員使用起來還是有一定困難的,因此PCIe設備驅動套件開發(fā)仍是困擾很多人的一項工作。
【發(fā)明內(nèi)容】
[0003]本發(fā)明正是要解決上述問題,提供一種基于WinDriver進行PCIe設備驅動套件及數(shù)據(jù)交互實現(xiàn)的方法。本發(fā)明采取的技術方案是,一種基于WinDriver的PCIe設備驅動套件,由PC機和ZC706開發(fā)板構成,其特征在于:PC機和ZC706開發(fā)板具備PCIe2.0x4的接口,ZC706開發(fā)板插到PC機的PCIe接口上,PC機裝有WinDriver驅動開發(fā)套件和Visual Stud12012軟件開發(fā)環(huán)境。
[0004]一種基于WinDriver的PCIe設備驅動套件數(shù)據(jù)交互實現(xiàn)的方法,ZC706開發(fā)板作為主設備,PC機作為從設備,ZC706開發(fā)板會不斷的給PC機發(fā)送數(shù)據(jù),并且通信中采用DMA模式,具體步驟如下:步驟一、將ZC706開發(fā)板插入PC機的PCIe插槽后,PC機開機,至操作系統(tǒng)正常啟動;步驟二、用WinDriver驅動開發(fā)套件,檢測當前PC機下的所有PCIe設備,找到ZC706開發(fā)板對應的一項,并為其生成簡單的后綴為.1nf的驅動文件;步驟三、給ZC706開發(fā)板安裝后綴為.1nf的驅動文件,至設備管理器中可以正常識別ZC706開發(fā)板;步驟四、在Visual Stud1 2012軟件開發(fā)環(huán)境下,進行應用程序設計,主要完成ZC706開發(fā)板的檢測、初始化、識別工作,并可以進行正常的數(shù)據(jù)通信;步驟五、進行通信模塊DMA通信設計,其中鏈表用塊DMA傳輸,數(shù)據(jù)用鏈式DMA傳輸,鏈表只需要傳送一次,即可進行多次的數(shù)據(jù)傳輸;步驟六、重復步驟五,一次或多次至通信結束。
[0005]本發(fā)明的有益效果是:PCIe設備驅動開發(fā)簡單,簡練、實用,占用系統(tǒng)資源少,實際通信性能高效。
【附圖說明】
[0006]圖1是本發(fā)明的模塊連接圖。
[0007]圖2是本發(fā)明的實現(xiàn)流程圖。
[0008]圖3WinDriver的Select your device窗口不意圖。
[0009]圖4WinDriver的Enter Informat1n for INF file窗口不意圖。
[0010]圖5WinDrive的Save Your.1NF file窗口不意圖。
[0011 ]圖6設備管理器中ZC706開發(fā)板示意圖。
[0012]圖7地址空間信息轉換成的表格示意圖。
[0013]圖8 PCIe測試例程運行開始示意圖。
[0014]圖9PCIe測試例程運行結束示意圖。
【具體實施方式】
[0015]以下結合實施例和附圖對本發(fā)明作進一步說明,如圖1、2所示,一臺裝有Win7操作系統(tǒng)的PC機,其上提供PCIe2.0x4接口,并安裝了WinDriver和Visual Stud1 2012開發(fā)環(huán)境,Xi Iinx公司具有PCIe2.0x4接口的ZC706開發(fā)板,ZC706開發(fā)板作為主設備,PC機作為從設備,進行PCIe2.0x4的帶寬通信,ZC706開發(fā)板作為數(shù)據(jù)采集源,通過PCIe2.0X4接口,向PC機傳輸數(shù)據(jù),每次傳輸數(shù)據(jù)量為128MB。
[0016]如圖3、4、5、6、7、8、9所示,具體步驟如下:1.在PC關機狀態(tài)下,將ZC706開發(fā)板插入PC機的PCIe2.0x4接口插槽,然后給PC機開機,至Win7操作系統(tǒng)正常啟動;
2.運行WinDriver軟件,在彈出的Choose your pro ject窗口中,選擇 “New hostdriver pro ject”選項,即新建一個驅動工程,在接下來彈出的Select your device窗口中,顯示出當前PC機檢測到的所有設備,選中ZC706開發(fā)板對應的一項,然后單擊Generate.1NF f i I e按鈕,彈出Enter Informat1n for INF f i Ie窗口,保持默認配置,將“Automatically install the INF file”選項選中,然后單擊Next按鈕,在彈出的SaveYour.1NF file窗口中,輸出驅動的名字,如HighPcie,點擊保存按鈕,在生成HighPcie.1nf后,會自動安裝該驅動文件;
3.在設備管理窗口中,查看ZC706開發(fā)板相關信息,此時驅動已被正確安裝,ZC706開發(fā)板已被正確識別可用了;
4.打開VisualStud1 2012開發(fā)環(huán)境,WinDriver開發(fā)套件提供了很多可用的庫函數(shù),如WDC_Pci ScanDevices,胃0(^:)(^1^&(10€8135^1(^32等,在¥;[1101';[¥61'的安裝目錄下,有例程,如Xi I inx公司vi tex5相關設備的PCIe例程位于:WinDri ver安裝目文件夾中,可以用這些例程進行進一步的應用程序設計,也可以自己新建一個VisualStud1 2012的工程進行應用程序設計,不管采用哪種方式,都要完成PCIe設備掃描和PCIe設備初始化工作,檢測到ZC706開發(fā)板,并且可以和其進行PCI e接口交互;
5.開始DMA數(shù)據(jù)通信,首先由PC機調用WDC_DMASGBufLock函數(shù),以鏈式DMA模式申請到128M空閑可用的存儲空間,然后將這些存儲空間的信息轉化成一個信息表格,之后,根據(jù)信息表格的大小,由PC機調用WDC_DMACont i gBuf Lock函數(shù),通過塊DMA方式申請到相應大小的空閑可用的存儲空間,并通過塊DMA方式將信息表格發(fā)送給ZC706開發(fā)板,同時啟動MSI中斷信號。當ZC706開發(fā)板收到信息表格后,會進行解讀,分析出PC機可用的存儲空間信息,并進行128M的數(shù)據(jù)傳輸,當傳輸完成時,發(fā)出MSI中斷信號,通知PC機128M數(shù)據(jù)已經(jīng)發(fā)送給你了,此時,PC機的MSI中斷信號已是有效狀態(tài),PC機就開始接受數(shù)據(jù)了,即從相應的存儲空間中讀取出ZC706開發(fā)板發(fā)來的數(shù)據(jù);
6.如果還需要進行PCIe通信,PC機就不需要再向ZC706開發(fā)板發(fā)送信息表格,因為已經(jīng)發(fā)送過一次了,此時ZC706開發(fā)板已經(jīng)知道信息表格是什么了,PC機只需要啟動MSI中斷信號,通知ZC706開發(fā)板可以發(fā)數(shù)據(jù)了,ZC706開發(fā)板就會進行128M的數(shù)據(jù)傳輸,當傳輸完成時,發(fā)出MSI中斷信號,通知PC機128M數(shù)據(jù)已經(jīng)發(fā)送給你了,此時,PC機的MSI中斷信號已是有效狀態(tài),PC機就開始接受數(shù)據(jù)了,即從相應的存儲空間中讀取出ZC706開發(fā)板發(fā)來的數(shù)據(jù);
7.步驟6的過程可以重復O次或多次。直至PC機與ZC706開發(fā)板完成數(shù)據(jù)通信時停止。
[0017]通過實測,PCIe的接口性能滿足理論值,并且通信穩(wěn)定高效。
【主權項】
1.一種基于WinDriver的PCIe設備驅動套件,由PC機和ZC706開發(fā)板構成,其特征在于:PC機和ZC706開發(fā)板具備PCIe2.0x4的接口,ZC706開發(fā)板插到PC機的PCIe接口上,PC機裝有WinDriver驅動開發(fā)套件和Visual Stud1 2012軟件開發(fā)環(huán)境。2.一種基于WinDriver的PCIe設備驅動套件數(shù)據(jù)交互實現(xiàn)的方法,其特征在于:ZC706開發(fā)板作為主設備,PC機作為從設備,ZC706開發(fā)板會不斷的給PC機發(fā)送數(shù)據(jù),并且通信中采用DMA模式,具體步驟如下: 步驟一、將ZC706開發(fā)板插入PC機的PCIe插槽后,PC機開機,至操作系統(tǒng)正常啟動;步驟二、用WinDriver驅動開發(fā)套件,檢測當前PC機下的所有PCIe設備,找到ZC706開發(fā)板對應的一項,并為其生成簡單的后綴為.1nf的驅動文件; 步驟三、給ZC706開發(fā)板安裝后綴為.1nf的驅動文件,至設備管理器中可以正常識別ZC706開發(fā)板; 步驟四、在Visual Stud1 2012軟件開發(fā)環(huán)境下,進行應用程序設計,主要完成ZC706開發(fā)板的檢測、初始化、識別工作,并可以進行正常的數(shù)據(jù)通信; 步驟五、進行通信模塊DMA通信設計,其中鏈表用塊DMA傳輸,數(shù)據(jù)用鏈式DMA傳輸,鏈表只需要傳送一次,即可進行多次的數(shù)據(jù)傳輸; 步驟六、重復步驟五,一次或多次至通信結束。
【專利摘要】本發(fā)明涉及一種基于WinDriver的PCIe設備驅動開發(fā)套件及數(shù)據(jù)交互實現(xiàn)的方法,一種基于WinDriver的PCIe設備驅動套件,由PC機和ZC706開發(fā)板構成,PC機和ZC706開發(fā)板具備PCIe2.0x4的接口,ZC706開發(fā)板插到PC機的PCIe接口上,PC機裝有WinDriver驅動開發(fā)套件和Visual?Studio?2012軟件開發(fā)環(huán)境,ZC706開發(fā)板作為主設備,PC機作為從設備,ZC706開發(fā)板會不斷的給PC機發(fā)送數(shù)據(jù),并且通信中采用DMA模式,有益效果是:PCIe設備驅動開發(fā)簡單,簡練、實用,占用系統(tǒng)資源少,實際通信性能高效。
【IPC分類】G06F9/44
【公開號】CN105487866
【申請?zhí)枴緾N201510842950
【發(fā)明人】劉佳, 高海源, 王東鋒, 張曉峰, 楊曉波, 孟祥坤, 李洋, 李響, 王文博, 呂海清
【申請人】天津光電通信技術有限公司
【公開日】2016年4月13日
【申請日】2015年11月27日