

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于FPGA技術實現(xiàn)USB通信——軟件</p><p> 【摘要】本設計能實現(xiàn)的功能:PC主機應用程序通過USB接口模塊,對FPGA系統(tǒng)進行控制,以實現(xiàn)語音信號的采集、存儲、回放,并且FPGA系統(tǒng)亦可通過USB接口模塊將相關的狀態(tài)信息回傳給PC主機應用程序。本設計軟件結構由四部分組成:PC主機應用程序,USB接口模塊驅動程序,USB接口模塊固件程序,F(xiàn)PGA系統(tǒng)控制程序。</p>
2、;<p> 【關鍵詞】應用程序,USB,F(xiàn)PGA,語音</p><p> USB Communication Based on FPGA —— Software</p><p> Abstract: This Design can implement the following functions: PC Application Program can control
3、 the FPGA-System through the USB-Interface module, in order to sample, store and replay the sound signal , and also FPGA-System can send back the status signal to the PC Application Program. The software structure of thi
4、s design consist of 4 parts: PC Application Program, USB-Interface module Driver program, USB-interface module Firm program, FPGA-System control program.</p><p> Key Words: Application Program, USB,F(xiàn)PGA, S
5、ound</p><p><b> 目 錄</b></p><p><b> 第一章 緒論1</b></p><p> 1.1 課題背景及意義1</p><p> 1.2 國內外相關研究狀況2</p><p> 1.3 USB的特點3</p&g
6、t;<p> 1.4 系統(tǒng)軟件設計要求4</p><p> 1.5 系統(tǒng)基本方案4</p><p> 1.6 軟件設計主要內容4</p><p> 第二章 軟件實現(xiàn)方案選擇論證5</p><p> 2.1 PC主機應用程序設計實現(xiàn)方案5</p><p> 2.2 WIN
7、DOWS下USB設備驅動程序的設計實現(xiàn)方案5</p><p> 2.3 USB設備固件設計實現(xiàn)方案5</p><p> 2.4 FPGA程序設計實現(xiàn)方案6</p><p> 第三章 PC主機應用程序設計7</p><p> 3.1 開發(fā)環(huán)境VC++ 6.0簡介7</p><p> 3.2
8、 API函數(shù) 簡介7</p><p> 3.3 應用程序控制界面設計7</p><p> 3.4 應用程序設計8</p><p> 3.4.1 查找設備10</p><p> 3.4.2 打開設備12</p><p> 3.4.3 讀寫USB設備12</p><p&g
9、t; 3.4.4 關閉通信13</p><p> 第四章 USB接口模塊驅動程序設計14</p><p> 4.1 驅動程序開發(fā)14</p><p> 4.1.1 WDM驅動程序的分層結構14</p><p> 4.1.2 USB驅動程序的WDM結構16</p><p> 第五章
10、 USB接口模塊固件設計18</p><p> 5.1 PDIUSBD12與AT89S52 特性概述18</p><p> 5.1.1 PDIUSBD12特性概要18</p><p> 5.1.2 AT89S52 特性概要18</p><p> 5.2 USB通信協(xié)議重要概念概述19</p>&
11、lt;p> 5.2.1 端點19</p><p> 5.2.2 幀19</p><p> 5.2.3 上行與下行19</p><p> 5.2.4 USB的傳輸線結構19</p><p> 5.2.5 USB的編碼方案20</p><p> 5.2.6 USB的數(shù)據(jù)格式20&l
12、t;/p><p> 5.2.6.1 域20</p><p> 5.2.6.2 包21</p><p> 5.2.6.3 事務21</p><p> 5.2.6.4 傳輸23</p><p> 5.3 USB固件程序設計23</p><p> 第六章 FPGA語音采集與
13、回放程序設計26</p><p> 6.1 FPGA語音采集、存儲、回放控制程序設計26</p><p> 6.1.1 ADC0809語音采集控制程序設計26</p><p> 6.1.2 語音數(shù)據(jù)存儲器設計26</p><p> 6.1.3 DAC0832語音回放控制程序設計27</p>&l
14、t;p> 6.1.4 地址與控制總線選擇器設計28</p><p> 6.1.5 FPGA系統(tǒng)設計總體框圖29</p><p> 第七章 系統(tǒng)調試30</p><p> 7.1 主機應用程序與USB接口模塊程序聯(lián)調30</p><p> 7.2 FPGA系統(tǒng)調試30</p><p>
15、 7.3 整機系統(tǒng)調試30</p><p><b> 總結31</b></p><p><b> 致謝32</b></p><p><b> 參考文獻33</b></p><p><b> 附錄34</b></p>&l
16、t;p><b> 第一章 緒論 </b></p><p> 1.1 課題背景及意義 </p><p> USB總線(Universal Serial Bus)翻譯為中文就是通用串行總線,由Compaq,DEC,IBM,Inter,Microsoft,NEC和Northen Telecom等公司為簡化PC與外設之間的互連而共同研究開發(fā)的一種免費的標準化連
17、接協(xié)議,它支持各種PC與外設之間的連接,還可實現(xiàn)數(shù)字多媒體集成。作為一種新興的通用接口,USB已經(jīng)可以在所有類型的計算機上代替現(xiàn)有接口來連接低、中、高速標準的外設。</p><p> 一直以來,作為電腦連接外圍設備通道—接口,一直就沒有一個統(tǒng)一的標準。1994年,由上述幾家世界著名的計算機和通訊公司成立了USB論壇;1995年11月正式制定了USB 0.9通用串行總線規(guī)范,自從通用串行總線(USB)推出以來,U
18、SB很快就成為了PC機事實上的外部通訊標準。</p><p> USB當初的設計構想是,將這些接口統(tǒng)一起來,使用一個4針插頭作為標準插頭。更重要的是它還整合了電源線和數(shù)據(jù)線,其中兩根芯線用于提供最低最高達500mA的電力,另外兩根芯線用于數(shù)據(jù)通訊。這樣,很多外設就不再需要另外提供電源,只需要通過計算機的USB接口就能實現(xiàn)向外設供電,用戶也就不再需要為每一個外設都預留下一個電源插口,大大方便了用戶的使用;而且它還
19、支持最多127個外設的同時串聯(lián)。 </p><p> 隨著USB設備種類的增多,1997年,真正符合USB1.1技術規(guī)范的技術標準的外設出現(xiàn)了,USB逐步走進了實用階段。盡管USB有許多優(yōu)秀的特質,但它同時也被許多問題困擾著。所面臨的主要問題是,速度仍然不夠快,USB1.1版的最高速度為12Mbps,因此當連接設備多了時,帶寬共享導致每個設備得到的有效帶寬太小。所以USB所應用的范圍仍然很窄,針對于這些缺點,經(jīng)
20、過改進的USB2.0規(guī)范誕生了。 </p><p> 1999年初在Intel的開發(fā)者論壇大會上,與會者介紹了USB 2.0規(guī)范,該規(guī)范的支持者除了原有的Intel、Microsoft和NEC等成員外,還有惠普、朗訊和飛利浦三個新成員。1999年10月,正式制定了USB2.0通用串行總線規(guī)范,2001年11月Comdex展覽上,基于USB 2.0的外設產(chǎn)品系統(tǒng)如USB 2.0界面擴充卡、外接式硬盤、外接式刻錄機
21、等產(chǎn)品開始出現(xiàn)。</p><p> 隨著時間的推移,USB已成為PC的標準配置?;赨SB的外設越來越多,現(xiàn)在可以直接使用Windows ME默認驅動的外設就有:調制解調器,鍵盤,鼠標,光驅,數(shù)碼相機,活動硬盤,手柄,軟驅,掃描儀等,而非獨立性I/O連接的外設將日漸減少。即主機控制式外設減少,智能軟件控制的外設增多。</p><p> 1.2 國內外相關研究狀況 </p>
22、<p> 2008年11月18日,由Intel、微軟、惠普、德州儀器、NEC、ST-NXP等業(yè)界巨頭組成的USB 3.0 Promoter Group宣布,該組織負責制定的新一代USB 3.0標準已經(jīng)正式完成并公開發(fā)布。新規(guī)范提供了十倍于USB 2.0的傳輸速度和更高的節(jié)能效率,可廣泛用于PC外圍設備和消費電子產(chǎn)品。</p><p> 制定完成的USB 3.0標準已經(jīng)移交給該規(guī)范的管理組織USB
23、 Implementers Forum(簡稱USB-IF)。該組織將與硬件廠商合作,共同開發(fā)支持USB 3.0標準的新硬件,不過實際產(chǎn)品上市還要等一段時間。</p><p> 第一版USB 1.0是在1996年出現(xiàn)的,速度只有1.5Mb/s;兩年后升級為USB 1.1,速度也大大提升到12Mb/s,至今在部分舊設備上還能看到這種標準的接口;2
24、000年4月,目前廣泛使用的USB 2.0推出,速度達到了480Mb/s,是USB 1.1的四十倍;如今八個半年頭過去了,USB 2.0的速度早已經(jīng)無法滿足應用需要,USB 3.0也就應運而生,最大傳輸帶寬高達5.0Gb/s,也就是625MB/s,同時在使用A型的接口時向下兼容。 IEEE組織最近也批準了新規(guī)范IEEE1394-2008,不過新版FireWire的傳輸速度只有3.2Gb/s,相當于USB 3.0的60%多一點。難怪蘋果等
25、業(yè)界廠商普遍對該技術失去了興趣。</p><p> USB 2.0基于半雙工二線制總線,只能提供單向數(shù)據(jù)流傳輸,而USB 3.0采用了對偶單純形四線制差分信號線,故而支持雙向并發(fā)數(shù)據(jù)流傳輸,這也是新規(guī)范速度猛增的關鍵原因。</p><p> 除此之外,USB 3.0還引入了新的電源管理機制,支持待機、休眠和暫停等狀態(tài)。測量儀器大廠泰克(Tektronix)在上個月第一家宣布了用于USB
26、 3.0的測試工具,可以幫助開發(fā)人員驗證新規(guī)范與硬件設計之間的兼容性。</p><p> USB 3.0在實際設備應用中將被稱為“USB SuperSpeed”,順應此前的USB 1.1 FullSpeed和USB 2.0 HighSpeed。預計支持新規(guī)范的商用控制器將在2009年下半年面世,消費級產(chǎn)品則有望在2010年上市。</p><p> 1.3 USB的特點</p&
27、gt;<p> USB總線與傳統(tǒng)的外圍總線接口相比,主要有以下一些特點:</p><p><b> ?。?)傳輸速度快:</b></p><p> USB有低速(Low-Speed)、全速(Full-Speed)和高速(High-Speed)三種傳輸模式,傳輸速率分別為1.5Mbps、12Mbps和480Mbps,可以靈活選擇以適應各種不同類型外設的
28、需求。</p><p> ?。?)安裝配置簡單快捷:</p><p> USB設備支持即插即用(Plug and Play)和熱插拔(Hot Plug)功能。USB連接器將各種各樣的外設I/O端口合而為一,使之可熱插拔,并具有自動配置能力。在電腦正常工作時,用戶只要簡單地將外設插入到PC的USB總線上, PC就能自動識別所連接的是什么設備, 并動態(tài)的加載驅動程序,而無須關機斷電或重新啟動
29、,打開機箱等操作,實現(xiàn)真正的即插即用。</p><p> (3)供電方式靈活,總線結構簡單</p><p> USB總線自身能夠提供5V電壓,最大500mA電流。同時,也可以由外部供電,或使用兩種供電方式的組合,并且支持掛起和喚醒模式。總線結構簡單,信號定義僅由2條電源線,2條信號線組成。</p><p> ?。?)良好的兼容性:</p><
30、p> USB接口標準有良好的向下兼容性,例如USB2.0就能很好的兼容USB1.1的外設。系統(tǒng)會自動偵測外設接口的版本,并自動選擇傳輸速度。</p><p> (5)使用和擴展靈活:</p><p> 為了適應各種不同類型外設的要求,USB提供了四種不同的數(shù)據(jù)傳輸模式。增加外設時無需在PC內添加接口卡,多個USB集線器可相互傳送數(shù)據(jù),使PC可以用全新的方式控制外設。使用USB
31、Hub可以同時連接多達127個外設。</p><p><b> (6)廣泛的應用</b></p><p> 1.4 系統(tǒng)軟件設計要求</p><p> ?。?)通過大規(guī)??删幊绦酒現(xiàn)PGA完成對數(shù)據(jù)的實時處理、并進行轉換,以便進行數(shù)據(jù)傳輸。</p><p> ?。?)編寫下載到USB芯片中的固件程序,完成對電路時序
32、的控制,實現(xiàn)數(shù)據(jù)從硬件電路到計算機之間的傳輸。</p><p> ?。?)開發(fā)在Windows下的驅動程序和應用程序,完成數(shù)據(jù)的存儲、分析及顯示等功能。</p><p> 1.5 系統(tǒng)基本方案</p><p> 系統(tǒng)確定的基本方案:PC主機控制程序與USB接口模塊進行通信,并通過USB接口模塊控制FPGA進行語音的采集、存儲、回放。</p>&l
33、t;p> 系統(tǒng)框圖如圖1_5-1所示:</p><p> 圖1_5-1 系統(tǒng)框圖</p><p> 1.6 軟件設計主要內容</p><p> 本系統(tǒng)軟件主要由以下四個部分組成:</p><p> ?。?)PC主機應用程序設計</p><p> ?。?)USB接口模塊WINDOWS驅動程序設計</
34、p><p> ?。?)USB接口模塊固件設計</p><p> ?。?)FPGA模塊語音采集,存儲,回放控制程序設計</p><p> 第二章 軟件實現(xiàn)方案選擇論證</p><p> 2.1 PC主機應用程序設計實現(xiàn)方案</p><p> 方案一:采用Visual Basic編程</p><
35、p> VB是Visual Basic,是微軟的比爾蓋茨發(fā)明的,專為編程初學者設計,界面友好。但VB是不夠完全的面向對象編程工具,屬本地編譯語言,其效率相對VC低了很多。</p><p> 方案二:采用Visual C++編程</p><p> VC++是在Windows平臺下構建32位應用程序的強大而有復雜的開發(fā)工具,是目前世界上使用最多的開發(fā)工具之一。VC++的應用非常廣泛,
36、從桌面應用程序到服務器端軟件,從系統(tǒng)軟件到應用軟件,從單機程序到分布式應用程序,VC++無所不在。 VC++是完全面向對象的編程工具,VC++效率高,封裝性好,繼承性高。掌握VC++編程,對于電子專業(yè)人員而言也是非常必要的。</p><p><b> 綜上,選擇方案二。</b></p><p> 2.2 WINDOWS下USB設備驅動程序的設計實現(xiàn)方案<
37、/p><p> 方案一: 采用DDK進行驅動程序開發(fā)</p><p> DDK是Device Development Kit——設備開發(fā)包,是由微軟提供的專業(yè)的設備驅動程序開發(fā)包,里面有很多驅動程序開發(fā)的例子。但對于剛接觸USB設備驅動程序開發(fā)的人員而言,有點博大精深。</p><p> 方案二:采用DriverStudio進行驅動程序開發(fā)</p>
38、<p> DriverStudio是Numega公司提供的驅動程序開發(fā)工具,它提供對USB總線的封裝,大大簡化了對USB總線的操作接口。DriverStudio中的DriverWorks軟件為開發(fā)WDM程序提供了一個完整的框架,相比于DDK驅動程序的開發(fā)會比較簡單。</p><p><b> 綜上,采用方案二。</b></p><p> 2.3 US
39、B設備固件設計實現(xiàn)方案</p><p> 方案一:采用匯編語言進行固件程序開發(fā)</p><p> 匯編語言有執(zhí)行效率高的優(yōu)點,但其可移植性和可讀性差,以及它本身就是一種編程,效率低下的低級語言,這些都使它的編程和維護極不方便,從而導致整個系統(tǒng)的可靠性也較差。</p><p> 方案二:采用C語言進行固件程序開發(fā)</p><p> 使用
40、C語言進行嵌入式系統(tǒng)的開發(fā),有著匯編語言編程不可比擬的優(yōu)勢。其優(yōu)勢主要是:編程調試靈活方便,生成的代碼編譯效率高,完全模塊化,可移植性好,便于項目維護管理等。</p><p><b> 綜上,采用方案二。</b></p><p> 2.4 FPGA程序設計實現(xiàn)方案</p><p> 方案一:采用Verilog 語言進行開發(fā)</p&
41、gt;<p> 產(chǎn)業(yè)界Verilog比較流行,其語法比較自由。Verilog HDL 推出已經(jīng)有 20 年了,擁有廣泛的設計群體,成熟的資源也比 VHDL 豐富。 Verilog 更大的一個優(yōu)勢是:它非常容易掌握,只要有 C 語言的編程基礎,通過比較短的時間,經(jīng)過一些實際的操作,可以在 2 ~ 3 個月內掌握這種設計技術</p><p> 方案二:采用VHDL語言進行開發(fā)</p>
42、<p> 目前,高校教學主要采用VHDL,其語法比較嚴謹。VHDL語言具有很強的電路描述和建模能力,能從多個層次對數(shù)字系統(tǒng)進行建模和描述,從而大大簡化了硬件設計任務,提高了設計效率和可靠性。VHDL具有與具體硬件電路無關和雨設計平臺無關的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化、結構化方面,表現(xiàn)了強大的生命力和應用潛力。本人對VHDL語法與設計流程也比較熟悉,固以VHDL為首選。</p&
43、gt;<p><b> 綜上,選擇方案二。</b></p><p> 第三章 PC主機應用程序設計</p><p> 3.1 開發(fā)環(huán)境VC++ 6.0簡介</p><p> 本設計應用程序的開發(fā)采用VC++ 6.0,VC++是在Windows平臺下構建32位應用程序的強大而有復雜的開發(fā)工具,VC++是微軟公司開發(fā)的一
44、個IDE(集成開發(fā)環(huán)境), 是目前世界上使用最多的開發(fā)工具之一。</p><p> VC++應用程序的開發(fā)主要有兩種模式,一種是WIN API方式,另一種則是MFC方式,傳統(tǒng)的WIN API開發(fā)方式比較繁瑣,而MFC則是對WIN API再次封裝。</p><p> 3.2 API函數(shù) 簡介</p><p> API——Application Program
45、ming Interface(應用程序接口)函數(shù),這些函數(shù)是Windows提供給應用程序編程的接口,也就是系統(tǒng)提供的函數(shù),主要的函數(shù)都在Windows.h頭文件中進行了聲明。</p><p> Windows操作系統(tǒng)提供了1000多種的API函數(shù),API函數(shù)名大都是有意義的單詞的組合,每個單詞的首字母大寫,這些函數(shù)的準確拼寫與調用語法都可以再MSDN中查找到。</p><p> 3.3
46、 應用程序控制界面設計 </p><p> 本系統(tǒng)控制界面 設計如圖3_3-1所示:</p><p> 圖3_3-1 語音采集與回放系統(tǒng)控制界面</p><p> 3.4 應用程序設計 </p><p> 在Win32系統(tǒng)中,把每一個設備都抽象為文件,此時的應用程序只需通過幾條簡單的文件操作API函數(shù),就可以實現(xiàn)與驅動程序中某個設
47、備通信。一個驅動程序可以驅動多個設備,并且此驅動程序可能為Windows系統(tǒng)中已有的,也可能為用戶安裝的。</p><p> 通常,這些Win32 API函數(shù)有以下幾種:</p><p> CreateFile函數(shù). 打開一個設備,返回一個與設備相關的句柄。該函數(shù)的聲明形勢如下:</p><p> HANDLE CreateFile(</p>
48、<p> LPCTSTR lpFileName, //要打開的設備名</p><p> DWORD dwDesiredAccess, //訪問模式</p><p> DWORD dwShareMode, //共享模式</p><p> LPSECURITY_ATTRIBUTES
49、lpSecurityAttributes, //通常為NULL</p><p> DOWRD dwCreationDistribution, // 創(chuàng)建方式</p><p> DOWRD dwFlagsAndAttributes, //文件屬性和標志</p><p> HANDLE hTemplateFile
50、 //臨時文件的句柄,通常為NULL</p><p><b> );</b></p><p> 如果調用成功,該函數(shù)返回打開設備的句柄。</p><p> ReadFile函數(shù)。 從設備中讀取數(shù)據(jù),該函數(shù)的聲明形式如下:</p><p> BOOL ReadFile( </p><p&g
51、t; HANDLE hCom, //設備句柄</p><p> LPVOID lpBuffer, //指向接收緩沖區(qū)的指針</p><p> DWORD nNumberOfByteToRead, //指向所要讀的字節(jié)數(shù)</p><p> LPWORD lpNumberOfBytesRead,
52、 //指向調用該函數(shù)讀出的字節(jié)數(shù)</p><p> LPOVERLAPPED lpOverlapped //異步結構</p><p><b> );</b></p><p> WriteFile 函數(shù),向設備寫數(shù)據(jù),該函數(shù)聲明形式如下:</p><p> BOOL WriteFile(</p
53、><p> HANDLE hCom, //設備句柄</p><p> LPCVOID lpBuffer, //指向讀數(shù)據(jù)緩沖區(qū)</p><p> DWORD nNUMBEROfBytesToWrite, //所讀的字節(jié)數(shù)</p><p> LPDW
54、ORD lpNumberOfBytesWritten , //指向已讀入的字節(jié)數(shù)</p><p> LPOVERLAPPED lpOverlapped //異步結構</p><p><b> );</b></p><p> 其中,參數(shù)hCom為CreateFile函數(shù)所打開的串口句柄。</p><
55、p> ?。?)DeviceControl函數(shù)。對設備進行一些自定義的操作,比如更改設備等。該函數(shù)的聲明形式如下:</p><p> BOOL DeviceControl(</p><p> HANDLE hDevie, //設備句柄</p><p> DWORD dwIoControlCode, //所要執(zhí)行的操作
56、命令碼</p><p> LPVOID lpInBuffer, //輸入緩沖區(qū)</p><p> DWORD nInBufferSize, //輸入緩沖區(qū)空間大小</p><p> LPVOID lpOutBuffer, //接收緩沖區(qū)</p><p>
57、DWORD nOutBufferSize, //接收緩沖區(qū)空間</p><p> LPDWORD lpBytesReturned, //實際所需接收數(shù)據(jù)個數(shù)</p><p> LPOVERLAPPED lpOverlapped //異步結構</p><p><b> );</b></p>
58、;<p> 其中,參數(shù)hDevice為CreateFile函數(shù)所打開的串口句柄。</p><p> ?。?)CloseFile函數(shù),關閉一個由CreateFile打開的設備。該函數(shù)聲明形式如下:</p><p> BOOL CloseHandle(HANDLE hCom);</p><p> 其中,參數(shù)hCom為CreateFile函數(shù)多所打開
59、的串口句柄。</p><p> 這些函數(shù)的執(zhí)行,都對應著驅動程序的一些分發(fā)例程。表3_4-1是常用API函數(shù)和驅動程序的IRP對應關系表。</p><p> 表3_4-1 常用API函數(shù)和驅動程序的IRP對應關系</p><p> 3.4.1 查找設備</p><p> 利用CreateFile函數(shù)打開一個串口,通常可用以下程序實現(xiàn)
60、:</p><p> HANDLE hCom</p><p> HCOM=CreateFile( “COM1”, //設備名</p><p> GENERIC_READ | GENERIC_WRITE, //允許讀和寫</p><p> 0,
61、 //獨占方式</p><p><b> NULL,</b></p><p> OPEN_EXISTING, // 打開而不是創(chuàng)建</p><p> FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, //重疊方式</p><p>
62、;<b> NULL</b></p><p><b> );</b></p><p> ?。?) 獲取設備信息</p><p> 一個應用程序與某個設備的驅動程序通信前,一定要獲取此設備的獨特標識符(GUID)。GUID是一個128位的值,它表征了唯一一個設備對象。在實際開發(fā)中,可以在編寫設備驅動程序時獲得該設備的G
63、UID,也可以通過API函數(shù)調用獲得。</p><p> 可以調用Windows設備管理函數(shù)SetupDiGetClassDevs來獲取的信息集。該函數(shù)的聲明如下:</p><p> HDEVINFO SetupDiGetClassDevs(</p><p> IN LPGUID ClassGuid, OPTIONAL</p><p&g
64、t; IN PCTSTR Enumerator, OPTIONAL</p><p> IN HWND HwndParent, OPTIONAL</p><p> IN DWORD Flags</p><p><b> );</b></p><p> (2) 識別接口信息</p><p&g
65、t; SetupDiEnumDeviceInterface函數(shù)返回設備信息集的一個設備接口元素的環(huán)境結構,每次調用該函數(shù)返回一個設備接口的信息??梢灾貜驼{用此函數(shù),直至獲取了設備信息集中所有的設備的接口信息。該函數(shù)的聲明如下:</p><p> BOOLEAN SetupDiEnumDeviceInterface(</p><p> IN HDEVINFO DeviceInfoSe
66、t,</p><p> IN PSP_DEVINFO_DATA DeviceInfoData,OPTIONAL</p><p> IN LPGUID InterfaceCalssGuid,</p><p> IN DWORD MemberIndex,</p><p> OUT PSSP_DEVICE_INTERFACE_DATA
67、 DeviceInterfaceData);</p><p> (3) 獲得設備路徑名</p><p> 在調用上一個函數(shù)SetupDiEnumDeviceInterface時,獲得了一個DeviceInfoData結構。該結構指向標識一個請求設備的接口。為了得到該接口的詳細信息,可以通過調用函數(shù)SetupDiEnumDeviceInterfaceDetail來實現(xiàn)。此時,返回該接口
68、的詳細信息中包含了設備接口的名稱。用戶的首要任務就得到解決。SetupDiEnumDeviceInterfaceDetail函數(shù)的聲明如下:</p><p><b> BOOLEAN </b></p><p> SetupDiEnumDeviceInterfaceDetail(</p><p> IN HDDEVINFO Device
69、InfoSet,</p><p> IN PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,</p><p> OUT PSP_DEVICE_INTERFACE_DETAIL_DATA DeviceInterfaceDetailDATA,</p><p> IN DWORD DeviceInterfac
70、eDetalDatasize,</p><p> OUT PDWORD RequirdSize,</p><p> OUT PSP_DEVINFO_DATA DeviceInfoData);</p><p> 3.4.2 打開設備</p><p> 有了打開設備的路徑名,下一步的任務就是打開該設備,獲得這個設備的句柄。如前所
71、述,打開一個設備是通過調用API函數(shù)CreateFile來實現(xiàn)的。</p><p> 當需要與所打開的USB設備通信時,還必須打開相應的USB端口。</p><p> 3.4.3 讀寫USB設備</p><p> 對于應用程序來說,讀寫USB端口與讀寫串口并無什么的區(qū)別。在用ReadFile和WriteFile讀寫USB設備時,既可以同步執(zhí)行,也可異步執(zhí)行。
72、在同步執(zhí)行時,函數(shù)知道操作完成才返回。這意味著在同步執(zhí)行時線程會被阻塞,從而導致效率下降。在異步執(zhí)行時,即使操作還為完成,調用的函數(shù)也會立即返回。費時的I/O操作在后臺進行,這樣線程就可以干別的事情。</p><p> ReadFile()函數(shù)和WriteFile()函數(shù)是否執(zhí)行異步操作有CreateFile()函數(shù)決定的。如果在調用CreateFile()創(chuàng)建句柄是指定了FILE_FLAG_OVERLAPPE
73、D標志,調用ReadFile( )和WriteFile()對該句柄進行的讀寫操作可以是異步,如果未指定異步標志,則讀寫操作是同步。</p><p> 異步操作結構聲明如下:</p><p> typedef struct _OVERLAPPED{</p><p> DWORD Internal,</p><p> DWORD In
74、teralHigh,</p><p> DWORD Offset,</p><p> HANDLE hEvent,</p><p><b> }</b></p><p> OVERLAPPED;</p><p> 3.4.4 關閉通信</p><p> 和關閉
75、串口一樣,關閉USB端口也是調用CloseHandle()函數(shù)來完成。函數(shù)調用形式如下:</p><p> CloseHandle(hComn);</p><p> 第四章 USB接口模塊驅動程序設計</p><p> 本設計不屬于Windows的標準設備,故要自己設計驅動程序。USB的驅動開發(fā)是一個技術難點,也是一個技術核心。</p><
76、;p> Windows的驅動開發(fā)需要安裝的開發(fā)軟件有:</p><p><b> 1)Win DDK</b></p><p> 2)DriverStudio3.2</p><p> 3)VC++ 6.0</p><p> 4.1 驅動程序開發(fā)</p><p> Windows環(huán)境
77、下驅動程序共有三類:</p><p> 一類是Vxd虛擬設備驅動程序,起源于 Windows 3.1時代,用于Windows95/98操作想系統(tǒng)中。</p><p> 一類是KMD內核模式驅動程序,用于WindowsNT下。</p><p> 還有一類是WDM—Win32驅動程序模型,是微軟從Windows98開始,推出的一個新的驅動類型,它是一個跨平臺的驅動
78、程序模型,WDM驅動程序還可以在不修改源代碼的情況下經(jīng)過重新編譯后在非Intel平臺下運行。</p><p> WDM在NT4.0驅動程序結構上發(fā)展起來,所以它與NT4.0的驅動程序極為相似,但是它卻有了本質上的提高,增加了對即插即用、高級電源管理、Windows管理接口的支持。更重要的是,WDM是一種通用的驅動模式,提供了包括USB、IEEE1394和HID等在內的一系列驅動程序類。</p>&
79、lt;p> 4.1.1 WDM驅動程序的分層結構</p><p> WDM體系結構實行分層處理,典型的分層:高層驅動程序、中間層驅動程序、底層驅動程序。每層驅動再把IO請求劃分成更簡單的請求,以傳給更下層的驅動執(zhí)行。最底層的驅動程序在收到IO請求后,通過硬件抽象層,與硬件發(fā)生作用,從而完成IO請求工作。</p><p> 在這樣的結構下,上面的驅動層就不需要對每個操作系統(tǒng)都開
80、發(fā)一遍。如圖4_1_1-1所示:</p><p> 圖4_1_1-1 WDM驅動程序的體系結構</p><p> WDM還引入了功能設備對象FDO與物理設備對象PDO兩個新類來描述硬件,一個PDO對應一個真實硬件。一個硬件只允許有一個PDO,但卻可以擁有多個FDO,而在驅動程序中我們不是直接操作硬件而是操作相應的PDO與FDO。驅動程序和設備對象的分層情況如圖4_1_1-2 所示。&
81、lt;/p><p> 圖4_1_1-2 WDM中驅動程序和設備對象的分層情況</p><p> 其中總線驅動程序(Bus Driver)位于最底層控制總線上所有設備的訪問,創(chuàng)建PDO代表發(fā)現(xiàn)的設備。功能驅動程序(Function Driver)控制設備的主要功能,分層在總線驅動的上面,負責創(chuàng)建FDO。在USB情況下,功能驅動程序必須使用USB類驅動程序訪問設備。</p>&
82、lt;p> 4.1.2 USB驅動程序的WDM結構</p><p> USB驅動程序的構成層次如圖4_1_2-1所示。其中USB客戶驅動程序通過Windows系統(tǒng)提供的USB類驅動程序接口與下層驅動程序通信。</p><p> 4_1_2-1 USB驅動程序的構成層次</p><p> 在USB設備可用之前,必須對其進行配置和接口選擇,然后所選擇
83、的接口的各個管道才可用。在USBDI的基礎上進行編程將大大簡化,設計者不用關心IRP的類型,而只需在相應的分發(fā)例程中通過構造USB塊并將其通過USBDI發(fā)送下去就可以實現(xiàn)對USB設備的控制。</p><p> 設備的訪問WDM不是通過驅動程序名稱,而是通過一個128位的全局唯一的標識符(GUID)實現(xiàn)驅動程序的識別。在應用程序與WDM驅動程序通信方面系統(tǒng)為每一個用戶請求打包成一個IO請求包(IRP)結構,將其發(fā)
84、送至驅動程序,并通過識別IRP中PDO來區(qū)別是發(fā)送給哪一個設備的。內核通常通過發(fā)送IRP來運行驅動程序中的代碼。</p><p> WDM驅動程序有一個主要的初始化入口點,即一個必須成為DriverEntry的例程。它有一個標準的函數(shù)原型。當WDM驅動程序被載入時,內核調用DriverEntry例程。驅動程序的DriverEntry例程必須設置一系列的回調例程來處理IRP。每個回調例程有一個標準的函數(shù)原型。內核
85、會在合適的環(huán)境下調用這個例程。</p><p> 大多數(shù)的WDM設備對象都是在即插即用管理器調用ADDDevice例程入口點時被創(chuàng)建的。插入新設備后,當系統(tǒng)找到由安裝信息文件所批示的驅動程序時,這個例程被調用。在此之后,一系列即插即用IRP被發(fā)送到驅動程序,設備驅動程序可進行相應的功能處理。</p><p> 第五章 USB接口模塊固件設計</p><p>
86、 USB接口模塊由PDIUSBD12接口芯片與AT89S52單片機構成。AT89S52作為主控核心進行相關事務的處理,PDIUSBD12作為接口芯片完成USB協(xié)議層的功能。</p><p> 5.1 PDIUSBD12與AT89S52 特性概述</p><p> 5.1.1 PDIUSBD12特性概要</p><p><b> 功能描述:&l
87、t;/b></p><p> PDIUSBD12是一款性價比很高的USB器件。它通常用作微控制器系統(tǒng)中實現(xiàn)與微控制器進行通信的高速通用并行接口。它還支持本地的DMA傳輸。 </p><p> 這種實現(xiàn)USB接口的標準組件使得設計者可以在各種不同類型微控制器中選擇出最合適的微控制器。這種靈活性減小了開發(fā)的時間、風險以及費用(通過使用已有的結構和減少固件上的投資),從而用最快捷的方法
88、實現(xiàn)最經(jīng)濟的USB外設的解決方案。 </p><p> PDIUSBD12完全符合USB1.1版的規(guī)范。它還符合大多數(shù)器件的分類規(guī)格:成像類、海量存儲器件、通信器件、打印設備以及人機接口設備。同樣地,PDIUSBD12理想地適用于許多外設,例如:打印機、掃描儀、外部的存儲設備(Zip驅動器)和數(shù)碼相機等等。它使得當前使用SCSI的系統(tǒng)可以立即降低成本。 </p><p> PDIUSB
89、D12所具有的低掛起功耗連同LazyClock輸出可以滿足使用ACPI、OnNOW和USB電源管理的要求。低的操作功耗可以應用于使用總線供電的外設。 此外它還集成了許多特性,包括SoftConnetTM、GoodLinkTM、可編程時鐘輸出、低頻晶振和終止寄存器集合。所有這些特性都為系統(tǒng)顯著節(jié)約了成本,同時使USB功能在外設上的應用變得容易。 </p><p
90、> 5.1.2 AT89S52 特性概要</p><p><b> 功能描述:</b></p><p> AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。
91、在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。</p><p> AT89S52具有以下標準功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支
92、持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。</p><p> 5.2 USB通信協(xié)議重要概念概述</p><p><b> 5.2.1 端點</b></p><p> 位于USB
93、設備或主機上的一個數(shù)據(jù)緩沖區(qū),用來存放和發(fā)送USB的各種數(shù)據(jù),每一個端點都有惟一的確定地址,有不同的傳輸特性(如輸入端點、輸出端點、配置端點、批量傳輸端點)</p><p><b> 5.2.2 幀</b></p><p> 時間概念,在USB中,一幀就是1ms,它是一個獨立的單元,包含了一系列總線動作,USB將1幀分為好幾份,每一份中是一個USB的傳輸動作。&
94、lt;/p><p> 5.2.3 上行與下行</p><p> 設備到主機為上行,主機到設備為下行</p><p> 5.2.4 USB的傳輸線結構</p><p> 一條USB的傳輸線分別由地線、電源線、D+、D-四條線構成,D+和D-是差分輸入線,它使用的是3.3V的電壓(與CMOS的5V電平不同),而電源線和地線可向設備提供5V
95、電壓,最大電流為500mA(可以在編程中設置)。</p><p> 5.2.5 USB的編碼方案</p><p> USB采用不歸零取反來傳輸數(shù)據(jù),當傳輸線上的差分數(shù)據(jù)輸入0時就取反,輸入1時就保持原值,為了確保信號發(fā)送的準確性,當在USB總線上發(fā)送一個包時,傳輸設備就要進行位插入操作(即在數(shù)據(jù)流中每連續(xù)6個1后插入一個0),從而強迫NRZI碼發(fā)生變化。</p><
96、;p> 5.2.6 USB的數(shù)據(jù)格式</p><p> USB數(shù)據(jù)是由二進制數(shù)字串構成的,首先數(shù)字串構成域(有七種),域再構成包,包再構成事務(IN、OUT、SETUP),事務最后構成傳輸(中斷傳輸、并行傳輸、批量傳輸和控制傳輸)。</p><p> 下面簡單介紹一下域、包、事務、傳輸,以及它們間的關系。</p><p><b> 5.2.
97、6.1 域</b></p><p> USB數(shù)據(jù)最小的單位,由若干位組成(至于是多少位由具體域決定),域可分為七個類型:</p><p> 1、同步域(SYNC),八位,值固定為0000 0001,用于本地時鐘與輸入同步。</p><p> 2、標識域(PID),由四位標識符+四位標識符反碼構成,表明包的類型和格式,這是一個很重要的部分,這里可以計
98、算出,USB的標識碼有16種。</p><p> 3、地址域(ADDR):七位地址,代表了設備在主機上的地址,地址000 0000被命名為零地址,是任何一個設備第一次連接到主機時,在被主機配置、枚舉前的默認地址,由此可以知道為什么一個USB主機只能接127個設備的原因。</p><p> 4、端點域(ENDP),四位,由此可知一個USB設備有的端點數(shù)量最大為16個。</p>
99、<p> 5、幀號域(FRAM),11位,每一個幀都有一個特定的幀號,幀號域最大容量0x800,對于同步傳輸有重要意義(同步傳輸為四種傳輸類型之一,請看下面)。</p><p> 6、數(shù)據(jù)域(DATA):長度為0~1023字節(jié),在不同的傳輸類型中,數(shù)據(jù)域的長度各不相同,但必須為整數(shù)個字節(jié)的長度</p><p> 7、校驗域(CRC):對令牌包和數(shù)據(jù)包(對于包的分類請看下
100、面)中非PID域進行校驗的一種方法,CRC校驗在通訊中應用很泛,是一種很好的校驗方法,至于具體的校驗方法這里就不多說,請查閱相關資料,只須注意CRC碼的除法是模2運算,不同于10進制中的除法。</p><p><b> 5.2.6.2 包</b></p><p> 由域構成的包有四種類型,分別是令牌包、數(shù)據(jù)包、握手包和特殊包,前面三種是重要的包,不同的包的域結構不
101、同,介紹如下:</p><p> 1、令牌包:可分為輸入包、輸出包、設置包和幀起始包(注意這里的輸入包是用于設置輸入命令的,輸出包是用來設置輸出命令的,而不是放據(jù)數(shù)的)</p><p> 其中輸入包、輸出包和設置包的格式都是一樣的:</p><p> SYNC+PID+ADDR+ENDP+CRC5(五位校驗碼) </p><p>&
102、lt;b> 幀起始包的格式:</b></p><p> SYNC+PID+11位FRAM+CRC5(五位校驗碼)</p><p> 2、數(shù)據(jù)包:分為DATA0包和DATA1包,當USB發(fā)送數(shù)據(jù)的時候,當一次發(fā)送的數(shù)據(jù)長度大于相應端點的容量時,就需要把數(shù)據(jù)包分為好幾個包,分批發(fā)送,DATA0包和DATA1包交替發(fā)送,即如果第一個數(shù)據(jù)包是DATA0,那第二個數(shù)據(jù)包就是D
103、ATA1。但也有例外情況,在同步傳輸中(四類傳輸類型中之一),所有的數(shù)據(jù)包都是為DATA0,格式如下:</p><p> SYNC+PID+0~1023字節(jié)+CRC16</p><p> 3、握手包:結構最為簡單的包,格式如下</p><p><b> SYNC+PID</b></p><p> 注:上面每種包都
104、有不同類型的,USB1.1共定義了十種包。</p><p> 5.2.6.3 事務</p><p> 分別有IN事務、OUT事務和SETUP事務三大事務,每一種事務都由令牌包、數(shù)據(jù)包、握手包三個階段構成,這里用階段的意思是因為這些包的發(fā)送是有一定的時間先后順序的,事務的三個階段如下:</p><p> 1、令牌包階段:啟動一個輸入、輸出或設置的事務</p
105、><p> 2、數(shù)據(jù)包階段:按輸入、輸出發(fā)送相應的數(shù)據(jù)</p><p> 3、握手包階段:返回數(shù)據(jù)接收情況,在同步傳輸?shù)腎N和OUT事務中沒有這個階段,這是比較特殊的。</p><p> 事務的三種類型如下(以下按三個階段來說明一個事務):</p><p><b> 1、 IN事務:</b></p>&
106、lt;p> 令牌包階段——主機發(fā)送一個PID為IN的輸入包給設備,通知設備要往主機發(fā)送數(shù)據(jù);</p><p> 數(shù)據(jù)包階段——設備根據(jù)情況會作出三種反應(要注意:數(shù)據(jù)包階段也不總是傳送數(shù)據(jù)的,根據(jù)傳輸情況還會提前進入握手包階段)</p><p> 1) 設備端點正常,設備往入主機里面發(fā)出數(shù)據(jù)包(DATA0與DATA1交替);</p><p> 2) 設
107、備正在忙,無法往主機發(fā)出數(shù)據(jù)包就發(fā)送NAK無效包,IN事務提前結束,到了下一個IN事務才繼續(xù);</p><p> 3) 相應設備端點被禁止,發(fā)送錯誤包STALL包,事務也就提前結束了,總線進入空閑狀態(tài)。</p><p> 握手包階段——主機正確接收到數(shù)據(jù)之后就會向設備發(fā)送ACK包。</p><p><b> 2、 OUT事務:</b>&l
108、t;/p><p> 令牌包階段——主機發(fā)送一個PID為OUT的輸出包給設備,通知設備要接收數(shù)據(jù);</p><p> 數(shù)據(jù)包階段——比較簡單,就是主機會設備送數(shù)據(jù),DATA0與DATA1交替</p><p> 握手包階段——設備根據(jù)情況會作出三種反應:</p><p> 1)設備端點接收正確,設備往入主機返回ACK,通知主機可以發(fā)送新的數(shù)據(jù)
109、,如果數(shù)據(jù)包發(fā)生了CRC校驗錯誤,將不返回任何握手信息;</p><p> 2) 設備正在忙,無法往主機發(fā)出數(shù)據(jù)包就發(fā)送NAK無效包,通知主機再次發(fā)送數(shù)據(jù);</p><p> 3) 相應設備端點被禁止,發(fā)送錯誤包STALL包,事務提前結束,總線直接進入空閑狀態(tài)。</p><p> 3、SETUP事務:</p><p> 令牌包階段——
110、主機發(fā)送一個PID為SETUP的輸出包給設備,通知設備要接收數(shù)據(jù);</p><p> 數(shù)據(jù)包階段——比較簡單,就是主機會設備送數(shù)據(jù),注意,這里只有一個固定為8個字節(jié)的DATA0包,這8個字節(jié)的內容就是標準的USB設備請求命令(共有11條) </p><p> 握手包階段——設備接收到主機的命令信息后,返回ACK,此后總線進入空閑狀態(tài),并準備下一個傳輸(在SETUP事務后通常是一個IN或
111、OUT事務構成的傳輸)</p><p> 5.2.6.4 傳輸</p><p> 傳輸由OUT、IN、SETUP事務其中的事務構成,傳輸有四種類型,中斷傳輸、批量傳輸、同步傳輸、控制傳輸,其中中斷傳輸和批量轉輸?shù)慕Y構一樣,同步傳輸有最簡單的結構,而控制傳輸是最重要的也是最復雜的傳輸。</p><p> 1、中斷傳輸:由OUT事務和IN事務構成,用于鍵盤、鼠標等
112、HID設備的數(shù)據(jù)傳輸中。</p><p> 2、批量傳輸:由OUT事務和IN事務構成,用于大容量數(shù)據(jù)傳輸,沒有固定的傳輸速率,也不占用帶寬,當總線忙時,USB會優(yōu)先進行其他類型的數(shù)據(jù)傳輸,而暫時停止批量轉輸。</p><p> 3、同步傳輸:由OUT事務和IN事務構成,有兩個特殊地方,第一,在同步傳輸?shù)腎N和OUT事務中是沒有返回包階段的;第二,在數(shù)據(jù)包階段所有的數(shù)據(jù)包都為DATA0。
113、</p><p> 4、控制傳輸:最重要的也是最復雜的傳輸,控制傳輸由三個階段構成(初始設置階段、可選數(shù)據(jù)階段、狀態(tài)信息步驟),每一個階段可以看成一個的傳輸,也就是說控制傳輸其實是由三個傳輸構成的,用來于USB設備初次加接到主機之后,主機通過控制傳輸來交換信息,設備地址和讀取設備的描述符,使得主機識別設備,并安裝相應的驅動程序,這是每一個USB開發(fā)者都要關心的問題。</p><p>
114、1)初始設置步驟:就是一個由SET事務構成的傳輸</p><p> 2)可選數(shù)據(jù)步驟:就是一個由IN或OUT事務構成的傳輸,這個步驟是可選的,要看初始設置步驟有沒有要求讀/寫數(shù)據(jù)(由SET事務的數(shù)據(jù)包階段發(fā)送的標準請求命令決定)</p><p> 3) 狀態(tài)信息步驟:這個步驟就是要獲取狀態(tài)信息,由IN或OUT事務構成的傳輸,但是要注意這里的IN和OUT事務和之前的INT和OUT事務有兩
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于fpga技術實現(xiàn)usb通信說明書
- 基于FPGA實現(xiàn)的USB串口通信.pdf
- 基于FPGA的USB通信系統(tǒng)的設計.pdf
- 畢業(yè)設計----基于usb的串行通信軟硬件設計
- 基于fpga的soc技術畢業(yè)設計
- FPGA與PC機USB通信的實現(xiàn).pdf
- 基于FPGA的鏈路口和USB通信接口實現(xiàn).pdf
- 基于usb總線數(shù)據(jù)采集系統(tǒng)設計與實現(xiàn)畢業(yè)設計
- 畢業(yè)設計--基于xilinx fpga高速串行接口設計與實現(xiàn)
- 基于fpga的usb2.0控制芯片設計與實現(xiàn)
- 畢業(yè)設計---基于fpga技術的數(shù)字存儲示波器設計
- 畢業(yè)設計(論文)基于fpga的fft算法設計與實現(xiàn)
- 基于USB和FPGA技術的高性能數(shù)據(jù)采集系統(tǒng)設計與實現(xiàn).pdf
- 基于fpga的差錯控制編碼的設計與實現(xiàn)【畢業(yè)設計】
- 畢業(yè)設計kmp算法的fpga實現(xiàn)
- 畢業(yè)設計論文基于fpga技術的數(shù)字存儲示波器設計
- 基于FPGA的USB芯片設計.pdf
- 畢業(yè)設計---基于fpga的sdram控制器的實現(xiàn)
- 基于usb2.0fpga的密碼算法硬件實現(xiàn)平臺設計
- 基于fpga大氣激光通信機的調制電路畢業(yè)設計
評論
0/150
提交評論