基于FPGA的USB2.0通訊系統設計4800字【論文】_第1頁
基于FPGA的USB2.0通訊系統設計4800字【論文】_第2頁
基于FPGA的USB2.0通訊系統設計4800字【論文】_第3頁
基于FPGA的USB2.0通訊系統設計4800字【論文】_第4頁
基于FPGA的USB2.0通訊系統設計4800字【論文】_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于FPGA的USB2.0通訊系統設計摘要設計是基于FPGA的USB通訊,設計中采用Cypress公司EZ-FX2LP系列的CY7C68013A作為USB2.0控制芯片,AC606作為FPGA核心開發板,使用VerilogHDL編程語言來編寫FPGA程序,利用QuartusⅡ軟件進行電路設計和仿真調試,通過異步讀寫CY7C68013A四個端口的FIFO的數據來實現FPGA與USB芯片之間的數據通信,進而成功完成了USB2.0通訊系統與PC上位機的通信。從仿真結果和實物功能測試來看,本次設計的USB2.0通訊系統能夠傳輸數據和文件,且傳輸速度基本符合高速傳輸的要求。關鍵詞:FPGA;USB2.0;數據傳輸目錄TOC\o"1-2"\h\u緒論 緒論目前,系統設備正在不斷向高速處理、高度靈活性、低功耗的方向發展。而現場可編程門陣列FPGA因其得天獨厚的優勢已經發展成為實現數字系統的主流平臺之一。FPGA具有高度的可重構定制性和高效的并發數據處理能力,在使用FPGA設計外部控制器時,能夠做到低功耗開發的同時保持定制電路的靈活更改和高效處理數據的能力,所以更受設計人員的青睞。USB2.0高速版本的理論傳輸速度是60MB/s,從USB2.0高速標準被提出一直到今天,USB2.0已經基本上成為電腦的標準接口,鍵盤鼠標等應用外設均可用USB標準連接在電腦上,而且憑借其可靠的傳輸速度極大開拓了應用前景。于是本文設計了一種基于FPGA的USB2.0通訊系統,能夠安全可靠的傳輸數據,傳輸速度可觀,在降低開發成本的同時能夠保證數據傳輸的安全穩定,具有一定的實用價值。1系統設計方案分析1.1FPGA開發板的選擇AC606是武漢芯路恒科技有限公司針對高校和企業應用市場開發的另一款低成本嵌入式FPGA核心板。核心板在設計時充分考慮了學生群體和工業應用客戶的應用需求。開發板的核心芯片的型號是Intel公司EP4CE6E22C8型芯片,這款芯片在使用過程中功耗較低,雖然此芯片是E系列芯片中最低級別的,但是對比其它芯片成本降低了不少,而且豐富的資源能夠滿足設計所需。AC606開發板提供了豐富的標準外設接口,能夠滿足本次USB通訊系統的設計開發需求。1.2USB控制芯片的選擇CY7C68013A包含高速USB2.0通信協議,還有一顆兼容的8051控制器。在此芯片中含16KB的內部RAM,所以將固件程序燒錄進芯片內后,用戶可以直接運行固件程序,就不需要再外加存儲器。在確保USB的兼容性的同時減少了開發時間。使用這款芯片能夠在保持設計需要的前提下降低開發成本,所以選擇此芯片作為USB控制芯片。1.3系統總體方案通過上面的選擇,本次設計的所有硬件都被選擇出來。CY7C68013A來作為用USB控制芯片;FPGA開發板采用的是AC606核心板。本設計的具體的系統方案如下圖2.1所示:圖1系統框圖2系統硬件電路設計本章節主要介紹設計中各個部分的電路,其中包括它們的設計原理、工作原理及作用。2.1開發板AC606的基本配置主芯片EP4CE6E22C8擁有6272個邏輯單元,兩個通用鎖相環,180個用戶IO管腳,276480bit嵌入式存儲資源,里面包含有時鐘晶振電路,JTAG接口電路,程序存儲電路,USB供電電路等。開發板原理圖如下:圖2原理圖晶振是為整個電路產生穩定的頻率用的。若想產生出各部分所需的不同頻率,這就需要用到晶振了。FPGA開發板提供的50Mhz時鐘晶振電路如下圖所示:圖3時鐘晶振電路設計中采用的是標準的JTAG接法(10腳),TCK是JTAG的測試時鐘,TMS控制模式選擇,TDI是數據輸入端,TDO是數據輸出端,JTAG接口電路如下: 圖4JTAG接口電路FPGA開發板的三個按鍵電路如下圖所示:圖5按鍵電路串行FLASH芯片W25Q16,擁有2M字節的存儲空間,使用SPI接口,默認作為FPGA芯片的上電配置器件,它的作用就是保證芯片每次上電后,都能獲得有效的配置數據。使用FPGA控制USB芯片的程序就是儲存在這里。電路圖如下:圖6程序存儲器配置電路開發板的供電電源可以從電源適配器供電,也可以通過USB供電,其USB供電原理圖如下圖所示:圖7USB供電原理圖開發板提供了3.3V、2.5V、1.2V的電源電壓,都可以由5V電源電壓轉換而來,其電壓轉換電路原理圖如下圖所示:圖8電壓轉換電路原理圖電壓轉換電路能滿足開發板對不同電壓的需求,使開發板能夠支持多種接口電平通信。2.2USB控制芯片詳情下圖為FX2控制器的內部結構圖:圖9FX2控制器內部結構圖FX2接口為基于FPGA的應用執行高速度的USB連接事項提供了非常簡單易用的接口。FX2在同步從設備FIFO模式下運行,FPGA作為主設備使用。本設計中采用從設備FIFO模式。在該模式下,連接至FX2的外部系統能夠生成讀和寫控制信號,因此,它能作為FX2的主設備使用。在基于FPGA的應用中,FX2一般被配置為從設備FIFO模式。下圖為FX2使用從設備FIFO接口與外部FPGA連接時的示意圖:圖10從設備FIFO模式下連接圖在這種方式下,FX2內嵌的8051固件的功能只是配置SlaveFIFO相關的寄存器以及控制FX2何時工作在SlaveFIFO模式下。一旦8051固件將相關的寄存器配置完畢,且使自身工作在SlaveFIFO模式下后,外部邏輯(如FPGA)即可按照SlaveFIFO的傳輸時序,高速與主機進行通訊,而在通訊過程中不需要8051固件的參與。下圖為FX2與FPGA連接示意圖:圖11FX2與FPGA連接圖IFCLK:FX2輸出的時鐘,可做為通訊的同步時鐘;SLCS:FIFO的片選信號,外部邏輯控制,當SLCS輸出高時,不可進行數據傳輸。SLOE:FIFO輸出使能,外部邏輯控制,當SLOE無效時,數據線不輸出有效數據。SLRD:FIFO讀信號,外部邏輯控制,同步讀時,FIFO指針在SLRD有效時的每個IFCLK的上升沿遞增。SLWR:FIFO寫信號,外部邏輯控制,同步寫時,在SLWR有效時的每個IFCLK的上升沿時數據被寫入,FIFO指針遞增。FD[15:0]:數據線。FIFOADR[1:0]:選擇四個FIFO端點的地址線,外部邏輯控制。3系統軟件部分設計3.1開發工具的介紹在Quartus軟件中使用VerilogHDL語言來編寫程序,并且編寫完成后Quartus軟件會自動檢查語法錯誤,編譯完成后還能直接進行仿真。除此之外,還要用到FX2開發軟件,Cypress提供了一個基本的開發工具包,供用戶開發USB應用,名為CySuiteUSB3.4,該文件可以到Cypress官網下載;編輯和編譯FX2芯片固件所需使用的軟件是Keil4KB_Cypress。USB通訊系統軟件部分的開發含兩部分,一部分為CY7C6803A的固件燒寫,另一部分為在FPGA的verilog程序測試,安裝完上述軟件后即可開始。3.2CY7C68013A固件燒寫CY7C68013A的固件程序可以在KeiluVision開發環境中完成,編寫好程序后進行編譯,軟件會自動生成一個hex文件和IIC文件,其中hex文件是下載到CY7C68013A的RAM中的目標文件,重新上電后消失;IIC文件是固化到CY7C68013外部的EEPROM中的目標文件,重新上電后不消失。用USB線連接PC和開發板上的J6后,我們可以通過EZ-USBInterfac工具下載Bit文件或IIC文件。其中Download按鈕是下載hex文件,LgEEPROM按鈕是選擇下載IIC文件。FPGA芯片內部,則設計了一個專用的硬件電路,能夠保證數據掉電不丟失。在Quartus軟件中設置好FPGA核心芯片類型等配置后,設置完成后,點擊Start(前提是下載器與開發板已經正確連接),則軟件開始燒錄固件,整個燒錄時間大約花費20秒鐘左右。燒錄完成后,此時固件已經保存在了配置芯片中,但是此刻FPGA還不能運行該固件,因為當前的固件是存在配置芯片中的,并沒有被配置到FPGA中,因此需要讓FPGA執行一次從配置芯片中主動配置固件的過程,方法很簡單,給開發板斷電后重新上電即可。此時,我們按下按鍵0或者按鍵1,就可以看到LED的狀態發生變化了。斷電再上電,固件依舊保持,整個設計固化工作完成。3.3FPGA程序仿真根據前面的系統設計方案,在Quartus軟件中搭建出電路,結構如下:圖12仿真電路在編寫完程序代碼后,點擊編譯按鈕即可開始編譯,結果如下圖所示:圖13編譯結果編譯結果顯示此次編譯成功。在Quartus軟件中點擊生成UniversityprogramVWF文件,右鍵左側空白區域,導出所有nodeorbus,最后給輸入賦上信號,還要將默認的modelsim仿真切換為Quartus仿真,點擊開始仿真即可得到仿真圖,仿真波形如圖所示:圖14仿真波形3.4USB2.0功能調試數據的發送與接收測試可以使用ControlCenter軟件來進行。點開CypressFX2LPSampleDevice以及下屬所有節點前面的+號,直到找到”Bulkoutendpoint(0x02)”這個選項,然后在右側點擊DataTransfer選項以切換到數據發送選項卡。在Texttosend窗口中輸入一段字符,例如“HelloFX2!”,下面Bytestotransfer窗口中的值會變成10,也就是“HelloFX2!”這個字符串所實際占用的字節數,右側的DatatoSend(hex)框里面顯示的,則是該字符串的hex格式的內容。然后點擊TransferData-OUT按鈕進行數據的發送,則在下方的實時數據框中會顯示發送出去的數據內容,如下圖所示:圖15此時,數據已經經由電腦發送到了FX2芯片的OUT端點(端點2)中,并立即被FX2中的8051CPU拷貝到了IN端點(端點6)中。經過上述操作,數據最終已經到達了FX2芯片的IN端點(端點6)中,接下來,我們可以在上位機上將端點6里面的數據讀回來。在左側選中Bulkinendpoint(0x86)端點,然后在右側的DataTransfer選項卡中。在Bytestotransfer一欄中輸入數值10,即讀取10個字節的數據,然后點擊TransferData-IN按鈕,則在下方的實時數據框中會顯示讀取到的數據內容,與之前發送的數據內容一致,如下圖所示:圖16同時,該軟件還支持發送文件,直接選中“Bulkoutendpoint(0x02)”端點,然后點擊TransferFile-OUT按鈕,在打開的文件瀏覽器中定位到我們的模塊資料包中提供的512_Count.hex文件,然后打開,則軟件自動讀取該文件的內容并發送到FX2芯片的端點2,最終由FX2芯片上的8051CPU將這512個字節的數據移動到端點6中,如下圖所示:圖17發送完成后,再在左側選中Bulkinendpoint(0x86)端點,然后在右側的DataTransfer選項卡中,在Bytestotransfer一欄中輸入數值512,然后點擊TransferData-IN按鈕,則在下方的實時數據框中會顯示讀取到的數據內容,與之前發送的數據內容一致,如下圖所示:圖18上述測試,都是通過手工發送和讀取數據的方式進行測試的,本身很難實現高強度的壓力測試,而PC和FX2芯片間連接涉及到了USB接口、USB傳輸電纜以及FX2應用電路板上的USB差分走線信號完整性,所以,Cypress提供了一個名為BulkLoop的軟件,該軟件可以以很快的速度向FX2的OUT端點中寫入數據,然后從IN端點中讀回來,并記錄寫入OUT端點的數據總量和從IN端點中讀出的數據總量,通過對比這兩個數據總量是否匹配,即可獲知整個通信鏈路以及端點中數據回送部分的可靠性。直接在Windows系統的開始菜單中找到BulkLoop軟件并打開,該軟件可以選擇端點2和端點6,或者端點4與端點8進行回送測試,測試時使用的數據模式有常數模式、隨機數模式、遞增的8位數據模式和遞增的32位數模式,任選一種數據模式,然后點擊Start按鈕,即可開始測試,下方的BytestransferredOUT和BytestransferredIN數據框中會實時顯示傳輸的數據量,傳輸一段時間之后,點擊Stop,發現兩個統計框中的值一樣,表明沒有數據丟失。即整個USB通信鏈路和端點回送鏈路是可靠的。測試結果如下圖所示:圖19測試本次USB2.0通訊系統的傳輸速度是利用Cypress官網提供的測速軟件streamer來進行的,電腦上識別到驅動后,即可開始測速,測速結果如下:圖20數據接收速度圖21數據發送速度從測試結果可以看出設計的USB2.0通訊系統數據接收速度是35.8MB/s,數據發送速度是38.4MB/s,能夠實現FPGA與USB模塊之間高速的數據傳輸。4結論本次設計在硬件平臺與軟件設計的基礎上,正式實現了基于FPGA的USB通訊設計,實現了PC與FPGA的相互通信,傳輸速率達到要求,且本次設計還能夠在原有基礎上擴展功能模塊,能夠滿足更多需求。但在設計中并不是一帆風順的,還是存在了很多問題,如燒錄程序時失敗,無法識別USB設備,是程序燒錄地址錯誤;功能測試時,將數據從FX2端口讀出時報錯,重新調試后正常運行;在速度測試時,測試結果不如預期好,在排查原因后及時修改,使得設計最終達到預期。本次設計還存在不足之處,由于時間精力有限,沒能夠實現更多功能的擴展,希望以后能夠在此基礎上增添一些新功能。在此過程中,回顧了很多之前學習的知識,鍛煉了動手能力,鞏固了自己的專業知識技能。

參考文獻[1]陳柯勛,王振田,王飛.基于FPGA和USB2.0的數據采集系統[J].工業技術創新,2017,4(005):12-15.[2]鄧睿.基于FPGA與USB2.0的數據采集和傳輸系統設計[J].貴州師范學院學報,2016,32(009):36-39.[3]曹楊,藏鑫.基于FPGA的USB2.0接口電路多功能測試系統[J].電子設計工程,2020,028(009):27-31,36.[4]韋凱,張鉚,黃旭東.基于US

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論