FT245BM與FPGA的USB接口電路設計
USB總線(xiàn)因其傳輸速度快、占用資源少以及真正的即插即用等諸多優(yōu)點(diǎn),受到了廣大開(kāi)發(fā)者的青睞,已經(jīng)成為很多計算機設備的一種基本配置。目前被廣泛采用的USB設備開(kāi)發(fā)方案主要有以下兩種(1)利用USB設備端接口芯片加微控制器結構。如國內用的比較多的Philips公司的PDIUSBD12/ISP1581等。(2)采用USB單片機。采用這兩種方案要求開(kāi)發(fā)者徹底理解USB協(xié)議的細節,并編寫(xiě)出固件程序。固件的運行要占用微控制器的時(shí)間和空間資源,實(shí)際通信效率不會(huì )很高。也有人用FPGA實(shí)現固件的功能,但這種方案開(kāi)發(fā)和調試的難度很大。本人在實(shí)際工作中用FPGA外部直接連接一片USB協(xié)議芯片FT245BM,實(shí)現了FPGA與PC機的USB通信,該方法不用微控制器,減少了元器件的個(gè)數,并且占用FPGA資源很少,FPGA仍然可以實(shí)現其他邏輯功能,系統設計的靈活性很大。
本文引用地址:http://dyxdggzs.com/article/201710/369302.htm關(guān)于FT245BM的內部結構及詳細地引腳介紹讀者可以參考其他相關(guān)資料,在此僅對與本設計相關(guān)的內容作一個(gè)介紹。FT245BM內含兩個(gè)FIFO數據緩沖區,一個(gè)是128字節的接收緩沖區,另一個(gè)是384字節的發(fā)送緩沖區。它們用作USB 數據與并行I/O口數據的交換緩沖區。FIFO實(shí)現與外界(微控制器、FPGA或其它器件)的接口,主要通過(guò)8根數據線(xiàn)D0~D7、讀寫(xiě)控制線(xiàn)RD#和 WR#以及FIFO發(fā)送緩沖區空標志TXE#和FIFO接收緩沖區非空標志RXF來(lái)完成數據交互。TXE#為低表示當前FIFO發(fā)送緩沖區為空,為高表示當前FIFO發(fā)送緩沖區滿(mǎn)或者正在存儲前一個(gè)字節,禁止向緩沖區中寫(xiě)數據。RXF#為低表示當前FIFO的接收緩沖區非空。RD#信號由低變高將從 FIFO緩沖區中讀取數據。當RD#變低時(shí)將數據送到數據總線(xiàn)。RXF#為高不能從FIFO讀數據。讀寫(xiě)時(shí)序見(jiàn)圖1和圖2。
圖2 寫(xiě)數據時(shí)序
FT245BM與FPGA的接口電路設計
硬件電路設計
圖3是FT245BM的USB與FPGA的接口電路,FPGA選用ALTERA EPF1K50TC-144,其中D0~D7是FT245BM與FPGA交換數據的數據總線(xiàn),USB_RD#、USB_WR、USB_TXE#、USB_RXF#是相關(guān)的控制總線(xiàn)。
圖3 FT245BM與FPGA的接口電路
評論