發布日期:2022-04-17 點擊率:102
1.引言 3.配置時序的發生 本設計方案使用了一個控制端點(端點 0)和一個大端點(端點 2)傳輸數據。其中控制端點是所有 USB設備所必備的,它用于在設備枚舉時傳輸 USB請求和相關數據,在本設計中,控制端點還用來傳輸專門設計的 USB廠商請求來控制配置進程、獲取配置狀態。大端點用來傳輸配置數據,由于配置數據需要及時、無誤的傳輸,因此使用可以同時保證傳輸準確性和最大延時的中斷傳輸方式,并設置端點緩存為 1KB、做 4倍緩沖,最大傳輸間隔為一個微幀(125us),且每個傳輸間隔內傳輸 3個有效載荷為 1KB的包(最后一個包的載荷可能小于 1KB),這樣配置數據在 USB通道中的傳輸速率可達到 3*1KB*(1/125us) =24000KB/s。
FPGA器件結合了 ASIC的高性能和微處理器的靈活,不僅擁有豐富的邏輯資源,而且可以進行方便靈活的配置。主動配置方式盡管配置速度快、實現簡單,但并未發揮 FPGA配置靈活的特點,適合于 FPGA用作單一應用的場合,并且大容量的配置芯片及其占用的電路板面積也帶來了較高的成本;被動配置方式需要使用外部控制單元產生配置時序,實現一般較為復雜,而且在目前常見的方案中,常由于接口速率限制 [1]或者采用微處理器介入數據傳輸等原因,而造成配置速度不高。
USB2.0協議在目前 PC外設的接口方案中非常流行,它支持高速率、多管道、多類型的數據傳輸,可以方便的構建出高性能的數據傳輸通道和靈活的控制通道。
本文提出了一種基于 USB接口的 FPGA SelectMap(并行被動)配置方式的實現方案,不但具有被動配置靈活、設計成本低的特點,而且實現簡單、配置快速。方案以 Xilinx Spartan3系列目前最大容量的 500萬門 FPGA(XC3S5000)作為配置目標,選用 Cypress EZ-USB FX2LP作為 USB設備芯片,并使用其內部的大容量端點 FIFO,在 GPIF狀態機的控制下,實現了一個高性能的配置數據傳輸通道。配置的進程則由設計的 USB請求來控制。此配置方案具有開發簡單、配置成本低、速度快、使用靈活的特點,具有很強的實用性。
2.系統的總體設計
如圖 1所示,系統使用 USB通道連接上位機和 EZ-USB。EZ-USB是一塊高速 USB外設芯片,它支持 USB協議所描述全部四種傳輸模式,并擁有 1個 64Byte 的控制傳輸專用端點、2個緩存為 64Byte的普通端點和 4個緩存最大可達 1KB、并可以進行四倍緩沖的大數據從端點轉移到外設(FPGA)的過程中,如果使用 USB設備芯片內嵌的 8051 MCU進行轉移的話,最快 8個時鐘周期才能傳輸一個字節的數據[2],在 8051的時鐘周期為 48MHz情況下,傳輸速度為 6MB/s,遠小于 USB通道的傳輸速率,會成為瓶頸而無法發揮出 USB傳輸通道高傳輸速率的優勢;而如果通過位寬為 8bit的 FIFO來傳輸的話,最快情況下,每時鐘周期都可以傳輸一個字節數據[2]。在 EZ-USB中,大端點的緩存可以作為端點 FIFO直接連接 FPGA的配置數據輸入口形成高速傳輸通道,端點 FIFO的讀寫時序可由 EZ-USB內嵌的 GPIF[4](General Programmable Interface)產生,MCU可以不參與端點到 FPGA的數據轉移,只起到配置和控制的作用,在 FIFO位寬為 8bit,GPIF時鐘頻率為 48MHz的情況下,傳輸速率為 48MB/s,這樣數據從端點到 FPGA的傳輸速度超過了上位機到端點的 USB中斷傳輸管道的最大速度,不對 USB傳輸通道構成瓶頸。
配置數據需要在配置時序的配合下寫入 FPGA[5]。GPIF是一個可編程的狀態機,它可以采集 5個輸入引腳(RDY)的狀態,并通過 5個輸出引腳(CTL)對外產生任意時序,因此可用來產生 FPGA的配置時序。表 1說明了 FPGA在 SelectMap模式下各配置引腳的作用[5],如圖 1所示,CCLK連接 EZ-USB提供的界面時鐘 IFCLK,D[7:0]連接端點 FIFO,其它配置引腳連接著 GPIF狀態機的 RDY及 CTL引腳。為了確保各引腳的輸入有充足的建立時間供 FPGA采樣,FPGA的時鐘輸入應與 GPIF的內部時鐘倒相。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV