USB2.0接口IP核的開發(fā)與設(shè)計
緩存控制器( Buffer Controller)
緩存控制器負責(zé)暫時存儲接收或發(fā)送的數(shù)據(jù),這些數(shù)據(jù)來自設(shè)備端的外部SDRAM或者主機??紤]到USB 2. 0 高速數(shù)據(jù)的傳輸要求,減小存儲或讀取數(shù)據(jù)的等待時間,本文采用了雙緩沖區(qū)的緩存結(jié)構(gòu),硬件電路可以自動在兩個緩沖區(qū)間進行轉(zhuǎn)換,這樣就可以同時對不同RAM分別讀寫,減少等待時間,提高了傳輸效率。不同的傳輸方式應(yīng)該有不同的專用緩沖區(qū)(主要是區(qū)別控制傳輸和其他傳輸方式) ,但是為了節(jié)省RAM的硬件開銷,本文采用了控制傳輸和其他傳輸方式緩沖區(qū)復(fù)用的結(jié)構(gòu)。這種緩存結(jié)構(gòu)也是整個USB 2. 0 接口硬件設(shè)計電路的特點之一。如圖4 所示,在控制傳輸時,使用每個RAM地址為00H—31H 的存儲空間,因為控制傳輸?shù)淖畲髷?shù)據(jù)包容量為32 ×16 位;在其他傳輸方式時,使用每個RAM地址為00H—FFH的存儲空間,數(shù)據(jù)包的最大容量為256 ×16 位。由此可知,每個RAM的大小為4 種傳輸方式中最大數(shù)據(jù)包的容量———512 字節(jié)。
本文設(shè)計的緩存結(jié)構(gòu)要求緩存控制器對不同的傳輸方式加以區(qū)分,相應(yīng)增加了一些控制邏輯的復(fù)雜度。對于控制傳輸,數(shù)據(jù)是在USB 協(xié)議控制器和MCU 之間傳輸;對于其他傳輸方式,數(shù)據(jù)則是在USB 協(xié)議控制器和DMA(Direct Memory AccESS) 之間傳輸??傮w來說,這種緩存結(jié)構(gòu)是非常合理且有效的:節(jié)省硬件開銷,而且保證傳輸速度。
MCU(Micro Control Unit)
MCU 采用的是51 系列的89C52 ,這部分是固件程序,負責(zé)協(xié)助完成控制傳輸,即USB 設(shè)備功能與設(shè)置配置的工作,利用MCU 可以降低硬件復(fù)雜度和硬件開銷。在控制傳輸中,利用MCU 的中斷程序來及時處理相應(yīng)的數(shù)據(jù)交換,在批量傳輸時,MCU 幾乎不參與工作,這是因為其工作速度較慢,不能滿足大量數(shù)據(jù)傳輸對速度傳輸要求,影響傳輸效率。因為這部分不是硬件電路設(shè)計,所以就不再贅述了。
測試方案及測試結(jié)果
測試電路
設(shè)計了一個測試電路來驗證USB 2. 0 接口電路功能的正確性,如圖5 所示。在原USB 2. 0 接口電路的基礎(chǔ)上,添加了MCU 接口、DMA(Direct Memory Access) 、EPP(Enhanced Parallel Port) 和SDRAM。MCU 負責(zé)控制整個電路系統(tǒng)中各個模塊的協(xié)調(diào)工作。這個測試電路實際上基于數(shù)碼相機電路系統(tǒng),USB 為該系統(tǒng)與主機的接口電路。
在測試USB 上傳數(shù)據(jù)給主機時,主機先通過EPP 將數(shù)據(jù)下載到SDRAM中,然后緩存控制器通過DMA總線將數(shù)據(jù)從SDRAM中讀出來,傳送給USB 協(xié)議控制器,經(jīng)過USB 協(xié)議控制器的打包處理,數(shù)據(jù)通過收發(fā)器傳送給主機。通過上傳到主機的數(shù)據(jù)和原數(shù)據(jù)的對比,就可以驗證傳送數(shù)據(jù)的正確性。
下傳數(shù)據(jù)則和上傳數(shù)據(jù)的驗證過程類似. 或者直接通過USB 先下傳然后再上傳來驗證數(shù)據(jù)的正確性。值得一提的是,MCU 接口、DMA ,EPP 和SDRAM這幾個模塊沒有使用收發(fā)器芯片提供的30 MHz 時鐘,而是使用了另外的系統(tǒng)時鐘(13. 5 MHz/ 27 MHz/ 54 MHz) ,這樣可以保證在USB 接口電路沒有連接到主機或處在掛起狀態(tài)(收發(fā)器此時也處在掛起狀態(tài),不提供時鐘) 時,主機可以自由地將數(shù)據(jù)通過EPP 上傳或下傳到SDRAM中,而不必受USB 接口電路工作與否的限制,便于整個系統(tǒng)的測試工作。這樣使得緩存控制器和DMA 之間的數(shù)據(jù)傳輸變?yōu)楫惒降墓ぷ髂J?增加了一些處理的復(fù)雜度。圖6 為USB 2. 0 接口電路FPGA 驗證的驗證平臺。
測試結(jié)果
上述硬件電路使用ISE 軟件綜合后下載到Xilinx 的SPARTAN2XC2S2002PQ208AFP0049 ,其規(guī)模大小為20 萬門,該FPGA 芯片的工作電壓為3. 3 V。綜合結(jié)果為:硬件邏輯開銷為1670 Slices ,RAM開銷為1 KB ,時鐘最快可達45 MHz ,這完全能夠滿足整個USB 2. 0 接口電路30 MHz 的工作頻率要求。利用邏輯分析儀和Bus Hound 軟件進行相應(yīng)的邏輯功能分析,通過仔細的測試工作可知,在和主機建立連接后,整個USB 2. 0 接口電路可以和主機正常通信。因為整個電路主要應(yīng)用于數(shù)碼相機的專用集成電路中,所以著重測試了控制傳輸和批量傳輸這兩種數(shù)據(jù)傳輸方式。
相應(yīng)的測試結(jié)果為:USB 2. 0 接口電路功能正確,在高速,全速和掛起狀態(tài)下的功耗(包括收發(fā)器以及其他的輔助模塊EPP , SDRAM 等) 分別為:584 ,254 ,102 mw。批量傳輸?shù)挠行?shù)據(jù)傳輸速率可以達到100 Mbps ,沒有達到當(dāng)然也不可能達到USB 2. 0 協(xié)議所規(guī)定的480 Mbps ,這是傳輸帶寬的限制和數(shù)據(jù)包中冗余信息(包開始符、包結(jié)束符、同步字段以及校驗碼) 的存在所導(dǎo)致的,同時在USB 接口電路內(nèi)部緩存通過DMA總線和SDRAM交互數(shù)據(jù)的時候,由于DMA 總線速度的限制,緩存也增加了一定的等待時間??傮w來講,100Mbps 的批量傳輸速率還是令人滿意的。
本文提出的USB 2. 0 接口電路系統(tǒng),兼顧了軟硬件的優(yōu)缺點,硬件電路與單片機有效結(jié)合使用,硬件實現(xiàn)簡單,造價低廉. 同時為了實現(xiàn)較高的傳輸速率,滿足USB 2. 0 高速傳輸?shù)囊?并有效節(jié)省RAM,電路采用了不同傳輸方式緩沖區(qū)復(fù)用的雙緩沖區(qū)的緩存結(jié)構(gòu)。在FPGA 的驗證過程中,為了實現(xiàn)測試的方便性,部分電路采用了異步的工作模式。整個模塊已經(jīng)通過FPGA 驗證,功能正確?,F(xiàn)在FPGA 的驗證工作已經(jīng)完成,下一步的任務(wù)就是在此基礎(chǔ)上實現(xiàn)USB 2. 0 接口電路的芯片設(shè)計。
pid控制相關(guān)文章:pid控制原理
pid控制器相關(guān)文章:pid控制器原理
評論