如何在FPGA和ASIC設計中結合高速USB功能
USB提供的吞吐量足夠大,適合高帶寬應用,如硬盤驅動器和掃描器。事實上,對于大部分計算機外設,如鍵盤,鼠標,PDA,游戲鍵盤,操縱桿,掃描儀,數碼相機,打印機,USB已經是互連標準。
除了簡單的電腦外圍設備,FPGA應用也廣泛存在,其可以受益于高速USB接口的增加。數字信號示波器、心電圖、攝像機和數據采集系統是其中的一些例子。將USB接口添加到設備里將會大大擴展其能力。例如,在數據記錄系統中(如數字儲存示波器和心電圖),得到實時數據可以通過主機實時傳輸,也可以通過網絡傳輸這個數據,如圖1所示。對于遠程數據采集應用,將數字記錄儀設備通過USB連接到主機也可以使設備進行遠程控制,主機可以位于幾英里以外,通過網絡連接到USB主機。本文將探討其設計方法,可以在FPGA或ASIC系統中實現高效高速USB 2.0接口。

圖1 基于USB的分布式數據采集系統
在介紹整合通用串行總線接口到FPGA或ASIC系統的各種方法之前,我們需要了解一下典型USB系統的工作原理。典型的USB系統由收發器,串行接口引擎(SIE),和接口控制器構成,如圖2所示。

圖2 典型的USB系統
收發器實現了USB協議的物理層。收發器形成了主設備和從設備之間數據連結的兩端。USB接收器會有差分和單端兩種輸出。SIE進行串行數據的編碼和解碼,位填充,錯誤校驗和其他信號級處理任務。它還將并行數據轉換成串行數據,反之亦然。SIE應該連接到智能master,其通過控制端點相應主設備請求實施高級USB協議。master也將實現器件功能所需的應用級任務。
在這篇文章中,我們將討論三種不同的方法,實現USB接口添加到FPGA或者ASIC系統。
使用USB協議棧知識產權(IP)及外部收發器
在第一種方法中,我們可以在FPGA或ASIC中實現SIE(見圖3)。

圖3 FPGA + USB協議棧IP + USB收發器














評論