5509a usb PC 驅(qū)動與測試程序,DriverWorks開發(fā),測試通過,使用見說明.請編譯.
標(biāo)簽: DriverWorks 5509a usb PC
上傳時間: 2017-09-28
上傳用戶:時代電子小智
本課題是在課題組已實現(xiàn)的高速串行通信平臺的基礎(chǔ)上,進一步引伸,設(shè)計開源的PCI軟核通信模塊替代Xilinx公司提供的LogiCORE PCI核,力求在從模式下,做到占用資源更少,傳輸速度更快,也為以后實現(xiàn)更完整的功能提供平臺。 本文以此為背景,基于FPGA平臺,搭建以開源的PCI軟核為核心的串行通信接口平臺,使其成為PCI總線與用戶邏輯之間的橋梁,使用戶邏輯避開與復(fù)雜的PCI總線協(xié)議。本課題采用Spartan-II FPGA芯片XC2S200-6FG456C系統(tǒng)開發(fā)板作為串行通信接口的硬件實驗平臺,實現(xiàn)了支持配置讀/寫交易、單數(shù)據(jù)段讀/寫、突發(fā)模式讀/寫、命令/地址譯碼功能和數(shù)據(jù)傳送錯誤檢測與處理功能的PCI軟核。 本文主要闡述了以PCI軟核為核心的串行通信平臺的實現(xiàn),首先介紹了PCI軟核的編程語言、軟件工具和硬件實驗平臺Spartan-II FPGA芯片XC2S200-6FG456C系統(tǒng)開發(fā)板。然后,介紹了PCI總線命令、PCI軟核所支持的功能、PCI軟核兩側(cè)信號的定義、PCI軟核配置模塊以及探討了PCI軟核的狀態(tài)機接收、發(fā)送數(shù)據(jù)等過程,分析了PCI軟核的數(shù)據(jù)收發(fā)功能仿真,主要包括配置讀/寫交易、單數(shù)據(jù)段模式讀/寫和突發(fā)模式讀/寫的仿真圖形,并闡述了管腳約束的操作流程。最后介紹PCI軟核模塊的WDM驅(qū)動,內(nèi)容包括驅(qū)動程序簡介、驅(qū)動程序的開發(fā)、中斷處理、驅(qū)動程序與應(yīng)用程序之間的通信以及應(yīng)用程序操作。最后,對PCI軟核的各種性能進行了比較分析。整個模塊設(shè)計緊湊,完成在實驗平臺上的數(shù)據(jù)發(fā)送。 設(shè)計選用硬件描述語言VerilogHDL,在開發(fā)工具Xilinx ISE7.1中完成整個系統(tǒng)的設(shè)計、綜合、布局布線,利用Modelsim進行功能及時序仿真,使用DriverWorks為PCI軟核編寫WinXP下的驅(qū)動程序,用VC++6.0編寫相應(yīng)的測試應(yīng)用程序。之后,將FPGA設(shè)計下載到Spanan-II FPGA芯片XC2S200-6FG456C系統(tǒng)開發(fā)板中運行。 文章最后指出工作中的不足之處和需要進一步完善的地方。
上傳時間: 2013-04-24
上傳用戶:sc965382896
國家863項目“飛行控制計算機系統(tǒng)FC通信卡研制”的任務(wù)是研究設(shè)計符合CPCI總線標(biāo)準(zhǔn)的FC通信卡。本課題是這個項目的進一步引伸,用于設(shè)計SCI串行通信接口,以實現(xiàn)環(huán)上多計算機系統(tǒng)間的高速串行通信。 本文以此項目為背景,對基于FPGA的SCI串行通信接口進行研究與實現(xiàn)。論文先概述SCI協(xié)議,接著對SCI串行通信接口的兩個模塊:SCI節(jié)點模型模塊和CPCI總線接口模塊的功能和實現(xiàn)進行了詳細(xì)的論述。 SCI節(jié)模型包含Aurora收發(fā)模塊、中斷進程、旁路FIFO、接受和發(fā)送存儲器、地址解碼、MUX。在SCI節(jié)點模型的實現(xiàn)上,利用FPGA內(nèi)嵌的RocketIO高速串行收發(fā)器實現(xiàn)主機之間的高速串行通信,并利用Aurora IP核實現(xiàn)了Aurora鏈路層協(xié)議;設(shè)計一個同步FIFO實現(xiàn)旁路FIFO;利用FPGA上的塊RAM實現(xiàn)發(fā)送和接收存儲器;中斷進程、地址解碼和多路復(fù)合分別在控制邏輯中實現(xiàn)。 CPCI總線接口包括PCI核、PCI核的配置模塊以及用戶邏輯三個部分。本課題中,采用FPGA+PCI軟核的方法來實現(xiàn)CPCI總線接口。PCI核作為PCI總線與用戶邏輯之間的橋梁:PCI核的配置模塊負(fù)責(zé)對PCI核進行配置,得到用戶需要的PCI核;用戶邏輯模塊負(fù)責(zé)實現(xiàn)整個通信接口具體的內(nèi)部邏輯功能;并引入中斷機制來提高SCI通信接口與主機之間數(shù)據(jù)交換的速率。 設(shè)計選用硬件描述語言VerilogHDL和VHDL,在開發(fā)工具Xilinx ISE7.1中完成整個系統(tǒng)的設(shè)計、綜合、布局布線,利用Modelsim進行功能及時序仿真,使用DriverWorks為SCI串行通信接口編寫WinXP下的驅(qū)動程序,用VC++6.0編寫相應(yīng)的測試應(yīng)用程序。最后,將FPGA設(shè)計下載到FC通信卡中運行,并利用ISE內(nèi)嵌的ChipScope Pro虛擬邏輯分析儀對設(shè)計進行驗證,運行結(jié)果正常。 文章最后分析傳輸性能上的原因,指出工作中的不足之處和需要進一步完善的地方。
上傳時間: 2013-04-24
上傳用戶:竺羽翎2222
隨著現(xiàn)代計算機技術(shù)、微電子技術(shù)的進一步結(jié)合和發(fā)展,可編程邏輯技術(shù)已成為當(dāng)前電子設(shè)計領(lǐng)域中最具活力和發(fā)展前途的技術(shù)。通過采用FPGA/EDA技術(shù),對通信卡的PCI接口、E1接口、外部邏輯電路進行集成,并利用目前通用計算機強大的數(shù)字信息處理能力,可大大簡化CTI硬件的設(shè)計,降低制造成本,提高系統(tǒng)可靠性。 據(jù)此,本論文提出了基于FPGA/EDA技術(shù)的PCI-E1接口設(shè)計方法,文中對PCI總線接口、E1接口及兩接口的互連等相關(guān)技術(shù)進行了深入分析,對各功能模塊和系統(tǒng)進行了VHDL建模與仿真。 同時,論文還介紹了基于ALTERACyclone系列FPGA芯片的PCI-E1接口硬件平臺的設(shè)計原理和基于DriverWorks的WDM驅(qū)動程序的設(shè)計方法。 本論文涉及的軟件、硬件系統(tǒng)已經(jīng)開發(fā)、調(diào)試完成。測試結(jié)果表明:1、論文所研究的PCI接口(主/從設(shè)備)在進行配置讀/寫、I/O讀寫、存儲器讀寫及總線的猝發(fā)數(shù)據(jù)傳送等操作中,各項性能符合PCI2.3規(guī)范的要求。 2、論文所研究的E1接口支持成幀和不成幀兩種傳輸方式:在成幀模式下,信息的有效傳送速率為31×64Kbit/s;在不成幀的模式下,信息的有效傳送速率為2.048Mbit/s。E1輸出口各項參數(shù)符合CCITT相關(guān)規(guī)范要求。 3、論文所研究的PCI-E1接口在與現(xiàn)網(wǎng)設(shè)備、模塊的對接測試中,性能穩(wěn)定。基于本論文的產(chǎn)品已經(jīng)正式發(fā)布。國內(nèi)部分廠家已對該產(chǎn)品進行了多方面的綜合測試,并計劃將其應(yīng)用到實際的生產(chǎn)和研究中。 本論文對于CTI硬件的設(shè)計是一項嘗試和革新。測試和應(yīng)用證明該方法行之有效,符合設(shè)計目標(biāo),具有較廣闊的應(yīng)用前景。
標(biāo)簽: PCIE1 FPGA 接口設(shè)計
上傳時間: 2013-06-02
上傳用戶:wpwpwlxwlx
隨著現(xiàn)代計算機技術(shù)、微電子技術(shù)的進一步結(jié)合和發(fā)展,可編程邏輯技術(shù)已成為當(dāng)前電子設(shè)計領(lǐng)域中最具活力和發(fā)展前途的技術(shù)。通過采用FPGA/EDA技術(shù),對通信卡的PCI接口、E1接口、外部邏輯電路進行集成,并利用目前通用計算機強大的數(shù)字信息處理能力,可大大簡化CTI硬件的設(shè)計,降低制造成本,提高系統(tǒng)可靠性。 據(jù)此,本論文提出了基于FPGA/EDA技術(shù)的PCI-E1接口設(shè)計方法,文中對PCI總線接口、E1接口及兩接口的互連等相關(guān)技術(shù)進行了深入分析,對各功能模塊和系統(tǒng)進行了VHDL建模與仿真。 同時,論文還介紹了基于ALTERACyclone系列FPGA芯片的PCI-E1接口硬件平臺的設(shè)計原理和基于DriverWorks的WDM驅(qū)動程序的設(shè)計方法。 本論文涉及的軟件、硬件系統(tǒng)已經(jīng)開發(fā)、調(diào)試完成。測試結(jié)果表明:1、論文所研究的PCI接口(主/從設(shè)備)在進行配置讀/寫、I/O讀寫、存儲器讀寫及總線的猝發(fā)數(shù)據(jù)傳送等操作中,各項性能符合PCI2.3規(guī)范的要求。 2、論文所研究的E1接口支持成幀和不成幀兩種傳輸方式:在成幀模式下,信息的有效傳送速率為31×64Kbit/s;在不成幀的模式下,信息的有效傳送速率為2.048Mbit/s。E1輸出口各項參數(shù)符合CCITT相關(guān)規(guī)范要求。 3、論文所研究的PCI-E1接口在與現(xiàn)網(wǎng)設(shè)備、模塊的對接測試中,性能穩(wěn)定。基于本論文的產(chǎn)品已經(jīng)正式發(fā)布。國內(nèi)部分廠家已對該產(chǎn)品進行了多方面的綜合測試,并計劃將其應(yīng)用到實際的生產(chǎn)和研究中。 本論文對于CTI硬件的設(shè)計是一項嘗試和革新。測試和應(yīng)用證明該方法行之有效,符合設(shè)計目標(biāo),具有較廣闊的應(yīng)用前景。
標(biāo)簽: PCIE1 FPGA 接口設(shè)計
上傳時間: 2013-04-24
上傳用戶:lixinxiang
圖像采集和處理技術(shù)在機器視覺和圖像分析等諸多領(lǐng)域應(yīng)用十分廣泛,大部分情況下,采集卡只需將前端相機捕獲的圖像信息正確地傳回計算機即可。但是在要求較高的應(yīng)用場合需要采集卡能準(zhǔn)確控制外部光源和相機,完成圖像采集,預(yù)處理,數(shù)據(jù)傳輸。只有這樣,用戶才可以根據(jù)不同的興趣和需求對特定的某些圖像進行采集、傳輸以及處理,以達(dá)到某種分析目的。 本文根據(jù)國家985二期項目“三維粒子圖像測速系統(tǒng)”的圖像采集與處理需要,設(shè)計開發(fā)了一款以FPGA為核心控制芯片的嵌入式圖像采集卡。采集卡以FPGA為邏輯和算法實現(xiàn)的核心器件,不僅實現(xiàn)了傳統(tǒng)意義上的圖像采集,而且實現(xiàn)了CCD相機控制和激光器同步曝光功能,打破了以往單純靠增加硬件設(shè)備實現(xiàn)同步控制的方法,簡化了系統(tǒng)硬件結(jié)構(gòu)并節(jié)約系統(tǒng)成本。此外,在系統(tǒng)中嵌入了圖像增強算法和采用PCI接口與計算機連接滿足了高速采集的要求。同時,采用市場上廣泛應(yīng)用的Camera Link作為采集卡的圖像輸入接口,提高了系統(tǒng)的通用性、傳輸速率和抗干擾能力,簡化圖像獲取設(shè)備和模擬攝像頭之間需要視頻解碼等連接。具有嵌入式處理功能,光源同步和相機控制的采集卡將使機器視覺系統(tǒng),圖像測速等諸多領(lǐng)域的圖像采集應(yīng)用變得更為便捷。 論文首先對圖像采集卡系統(tǒng)的組成、整體方案和可行性進行了論證。然后給出了圖像采集卡的硬件設(shè)計。在此部分結(jié)合整體設(shè)計方案,討論芯片的選型問題。根據(jù)所選芯片的本身特點,分模塊地對圖像采集卡的硬件設(shè)計原理進行了詳細(xì)的闡述。接下來是圖像采集卡的軟件設(shè)計部分。用VHDL和原理圖結(jié)合的方法對FPGA進行編程,實現(xiàn)了圖像采集系統(tǒng)的各個功能模塊。根據(jù)圖像采集系統(tǒng)的要求用DriverWorks軟件設(shè)計了圖像采集卡的WDM底層驅(qū)動程序和上層應(yīng)用程序。最后是用FPGA實現(xiàn)了帶修改參數(shù)的硬件嵌入式圖像處理算法——圖像增強。論文中使用QUARTUS軟件嵌入的邏輯分析儀SignalTap對FPGA設(shè)計的模塊進行了硬件調(diào)試,給出了調(diào)試的時序圖和調(diào)試結(jié)果,經(jīng)測試分析該采集卡滿足“三維粒子圖像測速系統(tǒng)”的要求,達(dá)到了預(yù)期目標(biāo)。
上傳時間: 2013-04-24
上傳用戶:cazjing
在開放式數(shù)控系統(tǒng)結(jié)構(gòu)模型的基礎(chǔ)上,研究了基于ISA總線的DSP通信控制原理。采用中斷方式完成了PC機和DSP之間的通信。介紹了以DriverWorks為工具開發(fā)ISA設(shè)備WDM驅(qū)動程序的方法,探討了中斷處理、驅(qū)動程序與應(yīng)用程序之間的通信,簡要說明了驅(qū)動程序的安裝與調(diào)試。通過調(diào)試,系統(tǒng)設(shè)計運行穩(wěn)定。 Abstract: The ISA bus and DSP correspondence control principle is investigated in the basis of the existing open architecture numerical control system.The interrupt method is used to realize the communication between PC and DSP based on the ISA bus.The methods of WDM driver exploitation for ISA device using Driver Works are introduced.The main process of driver program and the keys such as handle interrupt and the communication between the drivers and application are presented.And how to debug and install the drive is explained.
上傳時間: 2013-11-04
上傳用戶:kang1923
有兩種方式可以讓設(shè)備和應(yīng)用程序之間聯(lián)系:1. 通過為設(shè)備創(chuàng)建的一個符號鏈;2. 通過輸出到一個接口WDM驅(qū)動程序建議使用輸出到一個接口而不推薦使用創(chuàng)建符號鏈的方法。這個接口保證PDO的安全,也保證安全地創(chuàng)建一個惟一的、獨立于語言的訪問設(shè)備的方法。一個應(yīng)用程序使用Win32APIs來調(diào)用設(shè)備。在某個Win32 APIs和設(shè)備對象的分發(fā)函數(shù)之間存在一個映射關(guān)系。獲得對設(shè)備對象訪問的第一步就是打開一個設(shè)備對象的句柄。 用符號鏈打開一個設(shè)備的句柄為了打開一個設(shè)備,應(yīng)用程序需要使用CreateFile。如果該設(shè)備有一個符號鏈出口,應(yīng)用程序可以用下面這個例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3", GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統(tǒng)本調(diào)用希望打開一個設(shè)備。這個設(shè)備必須有一個符號鏈,以便應(yīng)用程序能夠打開它。有關(guān)細(xì)節(jié)查看有關(guān)Kdevice和CreateLink的內(nèi)容。在上述調(diào)用中第一個參數(shù)中前綴后的部分就是這個符號鏈的名字。注意:CreatFile中的第一個參數(shù)不是Windows 98/2000中驅(qū)動程序(.sys文件)的路徑。是到設(shè)備對象的符號鏈。如果使用DriverWizard產(chǎn)生驅(qū)動程序,它通常使用類KunitizedName來構(gòu)成設(shè)備的符號鏈。這意味著符號鏈名有一個附加的數(shù)字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應(yīng)用程序需要被覆蓋的I/O,第六個參數(shù)(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個輸出接口打開句柄用這種方式打開一個句柄會稍微麻煩一些。DriverWorks庫提供兩個助手類來使獲得對該接口的訪問容易一些,這兩個類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個設(shè)備信息集,該信息集包含了特殊類中的所有設(shè)備接口信息。應(yīng)用程序能有用CdeviceInterfaceClass類的一個實例來獲得一個或更多的CdeviceInterface類的實例。CdeviceInterface類是一個單一設(shè)備接口的抽象。它的成員函數(shù)DevicePath()返回一個路徑名的指針,該指針可以在CreateFile中使用來打開設(shè)備。下面用一個小例子來顯示這些類最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface( GUID* pClassGuid, DWORD instance, PDWORD pError){ CDeviceInterfaceClass DevClass(pClassGuid, pError); if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; CDeviceInterface DevInterface(&DevClass, instance, pError); if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; cout << "The device path is " << DevInterface.DevicePath() << endl; HANDLE hDev; hDev = CreateFile( DevInterface.DevicePath(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if (hDev == INVALID_HANDLE_VALUE) *pError = GetLastError(); return hDev;} 在設(shè)備中執(zhí)行I/O操作一旦應(yīng)用程序獲得一個有效的設(shè)備句柄,它就能使用Win32 APIs來產(chǎn)生到設(shè)備對象的IRPs。下面的表顯示了這種對應(yīng)關(guān)系。Win32 API DRIVER_FUNCTION_xxxIRP_MJ_xxx KDevice subclass member function CreateFile CREATE Create ReadFile READ Read WriteFile WRITE Write DeviceIoControl DEVICE_CONTROL DeviceControl CloseHandle CLOSECLEANUP CloseCleanUp 需要解釋一下設(shè)備類成員的Close和CleanUp:CreateFile使內(nèi)核為設(shè)備創(chuàng)建一個新的文件對象。這使得多個句柄可以映射同一個文件對象。當(dāng)這個文件對象的最后一個用戶級句柄被撤銷后,I/O管理器調(diào)用CleanUp。當(dāng)沒有任何用戶級和核心級的對文件對象的訪問的時候,I/O管理器調(diào)用Close。如果被打開的設(shè)備不支持指定的功能,則調(diào)用相應(yīng)的Win32將引起錯誤(無效功能)。以前為Windows95編寫的VxD的應(yīng)用程序代碼中可能會在打開設(shè)備的時候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個屬性,因為它將導(dǎo)致沒有特權(quán)的用戶企圖打開這個設(shè)備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數(shù)轉(zhuǎn)換成IRP域的方法依賴于設(shè)備對象的屬性。當(dāng)設(shè)備設(shè)置DO_DIRECT_IO標(biāo)志,I/O管理器將buff鎖住在存儲器中,并且創(chuàng)建了一個存儲在IRP中的MDL域。一個設(shè)備可以通過調(diào)用Kirp::Mdl來存取MDL。當(dāng)設(shè)備設(shè)置DO_BUFFERED_IO標(biāo)志,設(shè)備對象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或?qū)懖僮鳙@得buff地址。當(dāng)設(shè)備不設(shè)置DO_BUFFERED_IO標(biāo)志也不設(shè)置DO_DIRECT_IO,內(nèi)核設(shè)置IRP 的UserBuffer域來對應(yīng)ReadFile或WriteFile中的buff參數(shù)。然而,存儲區(qū)并沒有被鎖住而且地址只對調(diào)用進程有效。驅(qū)動程序可以使用KIrp::UserBuffer來存取IRP域。對于DeviceIoControl調(diào)用,buffer參數(shù)的轉(zhuǎn)換依賴于特殊的I/O控制代碼,它不在設(shè)備對象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構(gòu)造控制代碼。這個宏的其中一個參數(shù)指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對應(yīng)的能獲得輸入緩沖與輸出緩沖的KIrp中的成員函數(shù):Method Input Buffer Parameter Output Buffer Parameter METHOD_BUFFERED KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代碼指明METHOD_BUFFERED,系統(tǒng)分配一個單一的緩沖來作為輸入與輸出。驅(qū)動程序必須在向輸出緩沖放數(shù)據(jù)之前拷貝輸入數(shù)據(jù)。驅(qū)動程序通過調(diào)用KIrp::IoctlBuffer獲得緩沖地址。在完成時,I/O管理器從系統(tǒng)緩沖拷貝數(shù)據(jù)到提供給Ring 3級調(diào)用者使用的緩沖中。驅(qū)動程序必須在結(jié)束前存儲拷貝到IRP的Information成員中的數(shù)據(jù)個數(shù)。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數(shù)呈現(xiàn)不同的含義。參數(shù)InputBuffer被拷貝到一個系統(tǒng)緩沖,這個緩沖驅(qū)動程序可以通過調(diào)用KIrp::IoctlBuffer。參數(shù)OutputBuffer被映射到KMemory對象,驅(qū)動程序?qū)@個對象的訪問通過調(diào)用KIrp::Mdl來實現(xiàn)。對于METHOD_OUT_DIRECT,調(diào)用者必須有對緩沖的寫訪問權(quán)限。注意,對METHOD_NEITHER,內(nèi)核只提供虛擬地址;它不會做映射來配置緩沖。虛擬地址只對調(diào)用進程有效。這里是一個用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現(xiàn)在使用一個DeviceIoControl調(diào)用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING, NULL, // no input 注意,這里放的是包含有執(zhí)行操作命令的字符串指針 0, FirmwareRev, //這里是output串指針,存放從驅(qū)動程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize, NULL // not overlapped I/O );如果輸出緩沖足夠大,設(shè)備拷貝串到里面并將拷貝的資結(jié)束設(shè)置到FirmwareRevSize中。在驅(qū)動程序中,代碼看起來如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){ ULONG fwLength=0; switch ( I.IoctlCode() ) { case IOCTL_MYDEV_GET_FIRMWARE_REV: fwLength = strlen(FIRMWARE_REV)+1; if (I.IoctlOutputBufferSize() >= fwLength) { strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV); I.Information() = fwLength; return I.Complete(STATUS_SUCCESS); } else { } case . . . } }
標(biāo)簽: 驅(qū)動程序 應(yīng)用程序 接口
上傳時間: 2013-10-17
上傳用戶:gai928943
隨著總線和接口技術(shù)的發(fā)展,在工業(yè)場合如何更加可靠、快速、便捷地進行數(shù)據(jù)傳輸成為該領(lǐng)域通信的研究重點之一。而USB技術(shù)以其高速、可靠、通用性強等一系列特點在過去的十多年時間里發(fā)展迅猛,而USB OTG技術(shù)的誕生,使得兩USB設(shè)備在沒有PC參與的情況下進行數(shù)據(jù)傳輸成為可能。本文通過搭建以16位微處理器MSP430F149為核心控制芯片、ISPl362為USB接口芯片的硬件平臺,分別實現(xiàn)了USB部分主機和從機功能,使之能進行USB數(shù)據(jù)的存儲與交換。本文完成以下工作:首先,認(rèn)真研究USB協(xié)議,深入理解USB通信的基本概念和傳輸方式等內(nèi)容。仔細(xì)分析USB Mass Storage類協(xié)議,并討論了采用BULK-ONLY傳輸實現(xiàn)Mass Storage類協(xié)議的方法,并對SCSI指令集等進行了深入的剖析。其次,根據(jù)要求,設(shè)計出由控制、接口、數(shù)據(jù)存儲、過流保護與供電切換電路等硬件模塊組成的系統(tǒng),在ALTIUM 2004軟件上完成原理圖的設(shè)計和PCB圖的布局、布線,并完成硬件調(diào)試工作。再次,在已構(gòu)建的硬件平臺上,針對ISPl362 USB接口芯片的主/從機功能,分別設(shè)計了USB主機和從機的固件程序。利用IAR Workbench、BusHound等軟件進行固件程序的調(diào)試,最終USB主機可對u盤進行檢測、識別與配置;USB設(shè)備實現(xiàn)了USB設(shè)備的基本功能,能夠被Windows XP操作系統(tǒng)識別,與PC機之間實現(xiàn)數(shù)據(jù)的批量傳輸。最后,用DriverWorks軟件包的Driver Wizard生成驅(qū)動程序框架,并利用Windows DDK和vc++等軟件進行驅(qū)動程序的編譯,最終生成基于Windows操作系統(tǒng)的WDM型USB設(shè)備驅(qū)動程序。通過對USB通信協(xié)議的研究,本人成功地構(gòu)建了以MsP430F149和ISPl362為核心的硬件試驗平臺,并在此平臺上進行USB主機、從機通信試驗。經(jīng)測試表明,PC機能檢測、識別、讀寫USB設(shè)備,其讀取與寫入速度分別為560KB/s和312Ⅺ玳。而主機能識別、配置接入的U盤。關(guān)鍵詞:USB主機、USB從機、MSI'430F149、ISPl362、BuR-Only傳輸
上傳時間: 2013-10-11
上傳用戶:淺言微笑
本文介紹一種基于PCI Express 總線的高速數(shù)據(jù)采集卡的設(shè)計方案及功能實現(xiàn)。給出系統(tǒng)的基本結(jié)構(gòu)及單元組成,重點闡述系統(tǒng)硬件設(shè)計的關(guān)鍵技術(shù)和本地總線的控制邏輯,詳細(xì)探討了基于DriverWorks 的設(shè)備驅(qū)動程序的開發(fā)以及上層應(yīng)用軟件的設(shè)計。該系統(tǒng)通過實踐驗證,可用于衛(wèi)星下行高速數(shù)據(jù)的接收并可適用于其他高速數(shù)據(jù)采集與處理系統(tǒng)。關(guān)鍵詞:PCI Express 總線 PCIE PEX8311 DMA 板卡驅(qū)動 隨著空間科學(xué)和空間電子學(xué)技術(shù)的飛速發(fā)展,空間科學(xué)實驗的種類和數(shù)量以及科學(xué)實驗所產(chǎn)生的數(shù)據(jù)量不斷增加。為了使地面接收處理系統(tǒng)能夠?qū)崟r處理和顯示科學(xué)圖像數(shù)據(jù),必須要設(shè)計出新的地面數(shù)據(jù)接收處理系統(tǒng),實現(xiàn)大量高速數(shù)據(jù)的正確接收采集、處理以及存儲。為了滿足地面系統(tǒng)的要求,并為以后的計算機系統(tǒng)升級提供更廣闊的空間,本系統(tǒng)擬采用第三代I/O 互連技術(shù)PCI Express(簡稱PCI-E)作為本數(shù)據(jù)采集卡的進機總線形式。本文通過對PCI-E 總線專用接口芯片PLX 公司的PEX8311 性能分析,特別是對突發(fā)讀、寫和DMA讀操作的時序研究,設(shè)計出本地總線的可編程控制邏輯,并詳細(xì)討論了整個PCI-E 高速數(shù)據(jù)采集卡的硬件設(shè)計方案,以及WDM 驅(qū)動程序和上層應(yīng)用程序的設(shè)計方法。
標(biāo)簽: Express PCI 總線 卡的設(shè)計
上傳時間: 2013-10-28
上傳用戶:tianyi996
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1