0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA NANO2開發(fā)板實現(xiàn)USB2.0接口通信的設(shè)計方案

牽手一起夢 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2020-01-16 09:20 ? 次閱讀

基于FPGA實現(xiàn)USB2.0接口通信, USB2.0 PHY芯片Cypress68013, 68013內(nèi)部集成8051 內(nèi)核,USB2.0芯片讀寫需要對8051核進行固件配置。

一.FX2特性介紹

1.1、介紹

Cypress Semiconductor公司的EZ-USB FX2是世界上第一款集成USB2.0的微處理器,它集成了USB2.0收發(fā)器、SIE(串行接口引擎)、增強的8051微控制器和可編程的外圍接口。FX2這種獨創(chuàng)性結(jié)構(gòu)可使數(shù)據(jù)傳輸率達到56Mbytes/s,即USB2.0允許的最大帶寬。在FX2中,智能SIE可以硬件處理許多USB1.1和USB2.0協(xié)議,從而減少了開發(fā)時間和確保了USB的兼容性。GPIF(General Programmable Interface)和主/從端點FIFO(8位或16位數(shù)據(jù)總線)為ATA、UTOPIA、EPP、PCMCIA和DSP等提供了簡單和無縫連接接口。

1.2、結(jié)構(gòu)

CY7C68013結(jié)構(gòu)圖如圖1所示。它有三種封裝形式:56SSOP,100TQFP和128TQFP。

1.3、特征

★ 內(nèi)嵌480MBit/s的收發(fā)器,鎖相環(huán)PLL,串行接口引擎SIE——集成了整個USB 2.0協(xié)議的物理層。

★ 為適應(yīng)USB 2.0的480MBit/s的速率,F(xiàn)IFO端點可配置成2,3,4個緩沖區(qū)。

★ 內(nèi)嵌可工作在48MHz的增強型8051,它具有以下特征:

- 具有256Byte的寄存器空間,兩個串口,三個定時器,兩個數(shù)據(jù)指針。

- 四個機器周期(工作在48MHz下時為83.3ns)即組成一個指令周期。

- 特殊功能寄存器(包括I/O口控制寄存器)可高速訪問。

- 應(yīng)用USB向量中斷,具有極短的ISR響應(yīng)時間。

- 只用作USB事務(wù)管理,控制,不參與數(shù)據(jù)傳輸,較好地解決了USB高速模式的帶寬問題。

★ “軟配置”——USB固件可由USB總線下載,片上不需集成ROM。

★ 擁有四個FIFO接口,可工作在內(nèi)部或外部時鐘下。端點和FIFO接口的應(yīng)用使外部邏輯和USB總線可高速連接。

★ 內(nèi)嵌通用可編程接口GPIF,它是一個狀態(tài)機,可充當(dāng)主控制器,提供外部邏輯和USB總線的“無膠粘貼”。

★ 一種單片USB 2.0外設(shè)解決方案,不需要外部的協(xié)議物理層,F(xiàn)X2把所有的功能集成在一個芯片上。

二、Slave FIFO傳輸

2.1、概述

當(dāng)有一個與FX2芯片相連的外部邏輯只需要利用FX2做為一個USB 2.0接口而實現(xiàn)與主機的高速通訊,而它本身又能夠提供滿足Slave FIFO要求的傳輸時序,可以做為Slave FIFO主控制器時,即可考慮用此傳輸方式。

Slave FIFO傳輸?shù)氖疽鈭D如下:

在這種方式下,F(xiàn)X2內(nèi)嵌的8051固件的功能只是配置Slave FIFO相關(guān)的寄存器以及控制FX2何時工作在Slave FIFO模式下。一旦8051固件將相關(guān)的寄存器配置完畢,且使自身工作在Slave FIFO模式下后,外部邏輯(如FPGA)即可按照Slave FIFO的傳輸時序,高速與主機進行通訊,而在通訊過程中不需要8051固件的參與。

2.2、硬件連接(標(biāo)準(zhǔn))

在Slave FIFO方式下,外部邏輯與FX2的連接信號圖如下:

IFCLK:FX2輸出的時鐘,可做為通訊的同步時鐘;

FLAGA,F(xiàn)LAGB,F(xiàn)LAGC,F(xiàn)LAGD:FX2輸出的FIFO狀態(tài)信息,如滿,空等;

SLCS:FIFO的片選信號,外部邏輯控制,當(dāng)SLCS輸出高時,不可進行數(shù)據(jù)傳輸;

SLOE:FIFO輸出使能,外部邏輯控制,當(dāng)SLOE無效時,數(shù)據(jù)線不輸出有效數(shù)據(jù);

SLRD:FIFO讀信號,外部邏輯控制,同步讀時,F(xiàn)IFO指針在SLRD有效時的每個IFCLK的上升沿遞增,異步讀時,F(xiàn)IFO讀指針在SLRD的每個有效—無效的跳變沿時遞增;

SLWR:FIFO寫信號,外部邏輯控制,同步寫時,在SLWR有效時的每個IFCLK的上升沿時數(shù)據(jù)被寫入,F(xiàn)IFO指針遞增,異步寫時,在SLWR的每個有效—無效的跳變沿時數(shù)據(jù)被寫入,F(xiàn)IFO寫指針遞增;

PKTEND:包結(jié)束信號,外部邏輯控制,在正常情況下,外部邏輯向FX2的FIFO中寫數(shù),當(dāng)寫入FIFO端點的字節(jié)數(shù)等于FX2固件設(shè)定的包大小時,數(shù)據(jù)將自動被打成一包進行傳輸,但有時外部邏輯可能需要傳輸一個字節(jié)數(shù)小于FX2固件設(shè)定的包大小的包,這時,它只需在寫入一定數(shù)目的字節(jié)后,聲明此信號,此時FX2硬件不管外部邏輯寫入了多少字節(jié),都自動將之打成一包進行傳輸;

FD[15:0]:數(shù)據(jù)線;

FIFOADR[1:0]:選擇四個FIFO端點的地址線,外部邏輯控制。

2.3、 Slave FIFO的幾種傳輸方式

2.3.1 、同步Slave FIFO寫

同步Slave FIFO寫的標(biāo)準(zhǔn)連接圖如下:

同步Slave FIFO寫的標(biāo)準(zhǔn)時序如下:

IDLE:當(dāng)寫事件發(fā)生時,進狀態(tài)1;

狀態(tài)1:使FIFOADR[1:0]指向IN FIFO,進狀態(tài)2;

狀態(tài)2:如FIFO滿,在本狀態(tài)等待,否則進狀態(tài)3;

狀態(tài)3:驅(qū)動數(shù)據(jù)到數(shù)據(jù)線上,使SLWR有效,持續(xù)一個IFCLK周期,進狀態(tài)4;

狀態(tài)4:如需傳輸更多的數(shù),進狀態(tài)2,否則進狀態(tài)IDLE。

狀態(tài)跳轉(zhuǎn)示意圖如下:

幾種情況的時序圖示意如下(FULL,EMPTY,SLWR,PKTEND均假定低有效):

圖示FIFO中本來沒有數(shù)據(jù),外部邏輯寫入第一個數(shù)據(jù)時的情況。

圖示假定FX2設(shè)定包大小為512字節(jié),外部邏輯向FIFO端點中寫入的數(shù)據(jù)達512字節(jié)時的情況。此時FX2硬件自動將已寫入的512字節(jié)打成一包準(zhǔn)備進行傳輸,這個動作就和在普通傳輸中,F(xiàn)X2固件向FIFO端點中寫入512字節(jié)后,把512這個數(shù)寫入EPxBC中一樣,只不過這個過程是由硬件自動完成的。在這里可以看出“FX2固件不參與數(shù)據(jù)傳輸過程”的含義了。外部邏輯只須按上面的時序圖所示的時序向FIFO端點中一個一個字節(jié)(或字)地寫數(shù),寫到一定數(shù)量,F(xiàn)X2硬件自動將數(shù)據(jù)打包傳輸,這一切均不需固件的參與,由此實現(xiàn)高速數(shù)據(jù)傳輸。

圖示的是FIFO端點被寫滿時的情況。

2.3.2 、同步Slave FIFO讀:

同步Slave FIFO讀的標(biāo)準(zhǔn)連接圖如下:

同步Slave FIFO讀的標(biāo)準(zhǔn)時序如下:

IDLE:當(dāng)讀事件發(fā)生時,進狀態(tài)1;

狀態(tài)1:使FIFOADR[1:0]指向OUT FIFO,進狀態(tài)2;

狀態(tài)2:使SLOE有效,如FIFO空,在本狀態(tài)等待,否則進狀態(tài)3;

狀態(tài)3:從數(shù)據(jù)線上讀數(shù),使SLRD有效,持續(xù)一個IFCLK周期,以遞增FIFO讀指針,進狀態(tài)4;

狀態(tài)4:如需傳輸更多的數(shù),進狀態(tài)2,否則進狀態(tài)IDLE。

狀態(tài)跳轉(zhuǎn)示意圖如下:

幾種情況的時序圖示意如下(FULL,EMPTY,SLRD,SLOE均假定低有效):

圖示正常情況時的時序。

圖示FIFO被讀空時的情況。

幾種情況的時序圖示意如下(FULL,EMPTY,SLWR,PKTEND均假定低有效):

圖示FIFO中本來沒有數(shù)據(jù),外部邏輯寫入第一個數(shù)據(jù)時的情況。

三、測試USB接口:

對于USB接口的測試,本次實驗控制開發(fā)板上面的USB接口實現(xiàn)與PC機的通信。

用usb2.0線連接pc與開發(fā)板usb接口,先下載s3_dram.bit程序,在沒有掉電的情況下,打開相應(yīng)的EZ-USB軟件(ez-usb為usb2.0接口PC端驅(qū)動,安裝文件在 “CY7C68013開發(fā)相關(guān)工具” 目錄下)。

在使用前,接上USB2.0接口到PC端,PC端設(shè)備管理器可以識別到USB設(shè)備,如果沒有識別到USB設(shè)備,需要手動安裝驅(qū)動,驅(qū)動文件為ezusbw2k.inf(測試目錄下)的文件,手動選擇inf所在目錄。

啟動畫面如下圖:

上圖表示連接可以進行下面測試,通過EZ_USB軟件下載相應(yīng)固件s3_dpram.bit程序,slavefifo.hex文件在“下載bit”目錄下點擊Download,

雙擊打開相應(yīng)讀寫的usb接口VC程序(如下圖)

看到寫的測試現(xiàn)象,流過的數(shù)據(jù)速率。

應(yīng)用平臺 :紅色颶風(fēng)NANO2

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21538

    瀏覽量

    600454
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7846

    瀏覽量

    263288
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4834

    瀏覽量

    96821
收藏 人收藏

    評論

    相關(guān)推薦

    NANO2開發(fā)板實例之 USB2.0接口通信回環(huán)

    ` 本帖最后由 v3cyclone 于 2014-3-24 11:03 編輯 NANO2開發(fā)板實例之USB2.0接口通信回環(huán)  基于
    發(fā)表于 03-24 10:06

    NANO2開發(fā)板實例之__FPGA實現(xiàn)UDP數(shù)據(jù)收發(fā)數(shù)據(jù)

    `NANO2開發(fā)板實例之__FPGA實現(xiàn)UDP數(shù)據(jù)收發(fā)數(shù)據(jù) 1、首先需要了解網(wǎng)絡(luò)分層結(jié)構(gòu),直接看圖,分層架構(gòu)已經(jīng)很清晰了。 了解一下這些名詞U
    發(fā)表于 03-25 12:46

    NANO2開發(fā)應(yīng)用之 如何使用xilinx下載工具下載bit,固化FPGA

    `NANO2開發(fā)應(yīng)用之如何使用xilinx下載工具下載bit,固化FPGA 1、首先,需要在PC下識別xilinx下載器設(shè)備 2、打開xilinx下載工具,也可以可以從
    發(fā)表于 03-26 10:53

    基于FPGAUSB2.0設(shè)計

    基于FPGAUSB2.0設(shè)計
    發(fā)表于 12-07 11:27

    想問一下怎么用FPGA去驅(qū)動這個芯片來完成USB2.0協(xié)議?

    我的FPGA開發(fā)板上帶了USB HOST接口芯片USB3320,想問一下怎么用FPGA去驅(qū)動這個
    發(fā)表于 03-21 14:42

    USB2.0 接口控制演示實驗

    USB2.0 接口控制演示實驗 一. 實驗?zāi)康恼莆栈贗2C 總線器件ZLG7290、PCF8563 常用器件的應(yīng)用;學(xué)習(xí)使用ISP1581 USB2.0
    發(fā)表于 09-26 16:05 ?1352次閱讀
    <b class='flag-5'>USB2.0</b> <b class='flag-5'>接口</b>控制演示實驗

    USB2.0接口IP核的開發(fā)與設(shè)計

    USB2.0接口IP核的開發(fā)與設(shè)計 隨著PC機和外圍設(shè)備的發(fā)展,傳統(tǒng)的并行接口和串行接口RS-232在易用性(即插即用) 和端口擴展等方面
    發(fā)表于 04-22 16:34 ?1294次閱讀

    基于FPGAUSB2.0控制器設(shè)計

    摘要:介紹了一種用VHDL設(shè)計USB2.0功能控制器的方法,詳術(shù)了其原理和設(shè)計思想,并在FPGA上予以實現(xiàn)。 關(guān)鍵詞:USB VHDL FPGA
    發(fā)表于 06-20 13:26 ?1636次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>USB2.0</b>控制器設(shè)計

    USB開發(fā)板功能特點

    USB2.0 開發(fā)板 USB+FPGA 開發(fā)板 USB2.0 開發(fā)板功能特點 ● 符合
    發(fā)表于 12-13 10:32 ?57次下載
    <b class='flag-5'>USB</b><b class='flag-5'>開發(fā)板</b>功能特點

    數(shù)字合成掃頻儀USB2.0接口設(shè)計

    在對數(shù)字合成掃頻儀的硬件設(shè)計進行概述的基礎(chǔ)上,描述了一種基于ISP1362的USB2.0接口設(shè)計方案,包括USB接口的硬件結(jié)構(gòu)設(shè)計,
    發(fā)表于 05-30 09:17 ?0次下載
    數(shù)字合成掃頻儀<b class='flag-5'>USB2.0</b><b class='flag-5'>接口</b>設(shè)計

    USB2.0協(xié)議的通用測控通信接口設(shè)計

    USB2.0協(xié)議的通用測控通信接口設(shè)計
    發(fā)表于 08-31 14:20 ?23次下載
    <b class='flag-5'>USB2.0</b>協(xié)議的通用測控<b class='flag-5'>通信</b><b class='flag-5'>接口</b>設(shè)計

    PL2586 USB2.0 HUB芯片設(shè)計方案

    PL2586 USB2.0 HUB芯片設(shè)計方案
    發(fā)表于 12-07 09:47 ?29次下載

    AN4775_從USB2.0接口USB_Type-C接口的基礎(chǔ)和低成本STM32解決方案

    AN4775_從USB2.0接口USB_Type-C接口的基礎(chǔ)和低成本STM32解決方案
    發(fā)表于 11-21 17:07 ?7次下載
    AN4775_從<b class='flag-5'>USB2.0</b><b class='flag-5'>接口</b>到<b class='flag-5'>USB</b>_Type-C<b class='flag-5'>接口</b>的基礎(chǔ)和低成本STM32解決<b class='flag-5'>方案</b>

    USB2.0接口選型時要注意的問題

    外壓也叫工作電壓,它主要依賴于USB2.0接口所使用的絕緣數(shù)據(jù),觸點間的間隙很大。有些部件或設(shè)備如果低于它的附加電壓,就可能無法完成其應(yīng)有的功能。事實上,USB2.0接口的附加電壓應(yīng)被
    的頭像 發(fā)表于 11-22 10:00 ?1519次閱讀
    <b class='flag-5'>USB2.0</b><b class='flag-5'>接口</b>選型時要注意的問題

    NANO2用戶文檔

    電子發(fā)燒友網(wǎng)站提供《NANO2用戶文檔.pdf》資料免費下載
    發(fā)表于 11-16 10:44 ?0次下載
    <b class='flag-5'>NANO2</b>用戶文檔