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