chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

利用FPGA實(shí)現(xiàn)USB 2.0通信接口

FPGA設(shè)計(jì)論壇 ? 來源:FPGA設(shè)計(jì)論壇 ? 2024-12-30 13:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

USB2.0接口的實(shí)現(xiàn)方式

利用FPGA來實(shí)現(xiàn)USB 2.0接口的方式一般有兩種,一是借助外圍的USB接口芯片,二是FPGA內(nèi)部實(shí)現(xiàn)USB協(xié)議控制器,外部通過USB的PHY芯片來實(shí)現(xiàn)接口。

對(duì)于第一種方式,F(xiàn)PGA不需要實(shí)現(xiàn)USB通信協(xié)議,開發(fā)的風(fēng)險(xiǎn)小,而且性能穩(wěn)定,因此被大部分設(shè)計(jì)者所采用。而第二種方式需要購(gòu)買USB的IP核,門檻較高。如果自己開發(fā)基于FPGA的USB協(xié)議棧,風(fēng)險(xiǎn)高,而且兼容性和穩(wěn)定性很難保證。

目前市場(chǎng)上的USB 2.0接口芯片廠家和型號(hào)比較多,其中Cypress Semiconductor公司的EZ-USB FX2(CY7C68013)是世界上第一款集成USB 2.0的微處理器,它集成了USB 2.0收發(fā)器、SIE(串行接口引擎)、增強(qiáng)的8051微控制器和可編程的外圍接口。

FX2這種獨(dú)創(chuàng)性結(jié)構(gòu)可使數(shù)據(jù)傳輸率達(dá)到56MByte/s,即USB 2.0允許的最大帶寬。在FX2中,智能SIE可以硬件處理許多USB 1.1和USB 2.0協(xié)議,從而減少了開發(fā)時(shí)間、確保了USB的兼容性。

GPIF(General Programmable Interface)和主/從端點(diǎn)FIFO(8位或16位數(shù)據(jù)總線)為ATA、UTOPIA、EPP、PCMCIA和DSP等提供了簡(jiǎn)單和無縫連接接口。

CY7C68013結(jié)構(gòu)圖如圖10.4所示。FPGA與CY7C68013的電路連接關(guān)系可以參考本書2.2.11小節(jié)的內(nèi)容。

b19048ac-c409-11ef-9310-92fbcf53809c.png

圖10.4CY7C68013FX2結(jié)構(gòu)示意圖

10.3.2FX2接口芯片的SlaveFIFO傳輸模式

當(dāng)FPGA與FX2芯片相連時(shí),只需要利用FX2作為一個(gè)USB 2.0數(shù)據(jù)通道來實(shí)現(xiàn)與主機(jī)的高速通信。FPGA能夠提供滿足Slave FIFO要求的傳輸時(shí)序,可以作為Slave FIFO主控制器。`

Slave FIFO傳輸?shù)氖疽鈭D如圖10.5所示。

b1a624f6-c409-11ef-9310-92fbcf53809c.png

圖10.5SlaveFIFO傳輸?shù)氖疽鈭D

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

在Slave FIFO方式下,F(xiàn)PGA與FX2的連接信號(hào)圖如圖10.6所示。

b1be32bc-c409-11ef-9310-92fbcf53809c.png

下面是信號(hào)線的說明。

IFCLK:FX2輸出的時(shí)鐘,可作為通信的同步時(shí)鐘。

FLAGA、FLAGB、FLAGC、FLAGD:FX2輸出的FIFO狀態(tài)信息,如滿、空等。

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

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

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

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

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

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

FIFOADR[1:0]:選擇4個(gè)FIFO端點(diǎn)的地址線,外部邏輯控制。

10.3.3SlaveFIFO模式的典型操作時(shí)序

1.同步SlaveFIFO寫操作

同步Slave FIFO寫的標(biāo)準(zhǔn)連接圖如圖10.7所示。

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

· IDLE:當(dāng)寫事件發(fā)生時(shí),進(jìn)狀態(tài)1。

·狀態(tài)1:使FIFOADR[1:0]指向IN FIFO,進(jìn)狀態(tài)2。

·狀態(tài)2:如FIFO滿,在當(dāng)前狀態(tài)等待,否則進(jìn)狀態(tài)3。

·狀態(tài)3:驅(qū)動(dòng)數(shù)據(jù)到數(shù)據(jù)線上,使SLWR有效,持續(xù)一個(gè)IFCLK周期,進(jìn)狀態(tài)4。

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

狀態(tài)跳轉(zhuǎn)示意圖如圖10.8所示。

b1c62c60-c409-11ef-9310-92fbcf53809c.png

圖10.7同步SlaveFIFO寫的標(biāo)準(zhǔn)連接圖 圖10.8同步SlaveFIFO寫的標(biāo)準(zhǔn)時(shí)序

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

2.同步SlaveFIFO讀操作

同步Slave FIFO讀的標(biāo)準(zhǔn)連接圖如圖10.9所示。

b1d6bed6-c409-11ef-9310-92fbcf53809c.png

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

· IDLE:當(dāng)讀事件發(fā)生時(shí),進(jìn)狀態(tài)1。

·狀態(tài)1:使FIFOADR[1:0]指向OUT FIFO,進(jìn)狀態(tài)2。

·狀態(tài)2:使SLOE有效,如FIFO空,在當(dāng)前狀態(tài)等待,否則進(jìn)狀態(tài)3,

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

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

狀態(tài)跳轉(zhuǎn)示意圖如圖10.10所示。

3.異步SlaveFIFO寫操作

異步Slave FIFO寫的標(biāo)準(zhǔn)連接圖如圖10.11所示。

b1e771ea-c409-11ef-9310-92fbcf53809c.png

圖10.10同步SlaveFIFO讀狀態(tài)跳轉(zhuǎn)示意圖 圖10.11異步SlaveFIFO寫的標(biāo)準(zhǔn)連接圖

異步Slave FIFO寫的標(biāo)準(zhǔn)時(shí)序如下。

· IDLE:當(dāng)寫事件發(fā)生時(shí),進(jìn)狀態(tài)1。

·狀態(tài)1:使FIFOADR[1:0]指向IN FIFO,進(jìn)狀態(tài)2。

·狀態(tài)2:如FIFO滿,在當(dāng)前狀態(tài)等待,否則進(jìn)狀態(tài)3。

·狀態(tài)3:驅(qū)動(dòng)數(shù)據(jù)到數(shù)據(jù)線上,使SLWR有效,再無效,以使FIFO寫指針遞增,進(jìn)狀態(tài)4。

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

狀態(tài)跳轉(zhuǎn)示意圖如圖10.12所示。

4.異步SlaveFIFO讀操作

異步Slave FIFO讀的標(biāo)準(zhǔn)連接如圖10.13所示。

b1eeb13a-c409-11ef-9310-92fbcf53809c.png

圖10.12異步SlaveFIFO寫狀態(tài)跳轉(zhuǎn)示意圖圖10.13異步SlaveFIFO讀的標(biāo)準(zhǔn)連接圖

異步Slave FIFO讀的標(biāo)準(zhǔn)時(shí)序如下。

· IDLE:當(dāng)讀事件發(fā)生時(shí),進(jìn)狀態(tài)1。

·狀態(tài)1:使FIFOADR[1:0]指向OUT FIFO,進(jìn)狀態(tài)2。

·狀態(tài)2:如FIFO空,在當(dāng)前狀態(tài)等待,否則進(jìn)狀態(tài)3。

b2059e86-c409-11ef-9310-92fbcf53809c.png

·狀態(tài)3:使SLOE有效,使SLRD有效,從數(shù)據(jù)線上讀數(shù),再使SLRD無效,以遞增FIFO讀指針,再使SLOE無效,進(jìn)狀態(tài)4。

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

狀態(tài)跳轉(zhuǎn)示意圖如圖10.14所示。

10.3.4FX2的固件程序設(shè)計(jì)

在FX2芯片的固件程序設(shè)計(jì)中,最關(guān)鍵的就是系統(tǒng)初始化函數(shù)TD_Init(void),下面講解這個(gè)函數(shù)的部分代碼。

//時(shí)鐘設(shè)置

CPUCS=0x12;//48MHzCLKOUT輸出使能

IFCONFIG=0x43;//使用外部時(shí)鐘,IFCLK輸入不反向

SYNCDELAY;//同步延遲

EP2CFG=0xA0;//需要設(shè)定為4緩沖,每個(gè)緩沖區(qū)大小為512字節(jié)

SYNCDELAY;

EP4CFG=0x00;

SYNCDELAY;

EP6CFG=0xE0;

SYNCDELAY;

EP8CFG=0x00;

SYNCDELAY;

FIFORESET=0x80;//激活NAK-ALL避免競(jìng)爭(zhēng)

SYNCDELAY;

FIFORESET=0x02;//復(fù)位FIFO2

SYNCDELAY;

FIFORESET=0x06;//復(fù)位FIFO6

SYNCDELAY;

FIFORESET=0x00;//取消激活NAK-ALL

SYNCDELAY;

PINFLAGSAB=0xE6;//FLAGA設(shè)定為EP6PF,FLAGB設(shè)定為EP6FF

SYNCDELAY;

PINFLAGSCD=0xf8;//FLAGC設(shè)定為EP2EF,FLAGD保留

SYNCDELAY;

PORTACFG|=0x00;//SLCS有效

SYNCDELAY;

FIFOPINPOLAR=0x00;//所有信號(hào)低電平有效

SYNCDELAY;

10.3.5USB2.0接口的典型應(yīng)用

由于USB 2.0接口的數(shù)據(jù)傳輸速度快,而且使用方便,因此被廣泛應(yīng)用于各種便攜設(shè)備中。例如,基于USB 2.0接口的數(shù)據(jù)采集終端,可以將各種類型的數(shù)據(jù)采集到電腦主機(jī)中進(jìn)行處理和結(jié)果顯示,其典型的結(jié)構(gòu)如圖10.15所示。

b21254fa-c409-11ef-9310-92fbcf53809c.png

圖10.15基于USB2.0接口的數(shù)據(jù)采集終端結(jié)構(gòu)框圖

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

    關(guān)注

    1654

    文章

    22271

    瀏覽量

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

    關(guān)注

    60

    文章

    8367

    瀏覽量

    281470
  • 通信接口
    +關(guān)注

    關(guān)注

    3

    文章

    259

    瀏覽量

    31793

原文標(biāo)題:利用FPGA實(shí)現(xiàn)USB 2.0通信接口

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    高云半導(dǎo)體宣布發(fā)布USB 2.0接口解決方案

    廣東高云半導(dǎo)體科技宣布發(fā)布其USB 2.0接口解決方案,此方案能夠使FPGA設(shè)計(jì)人員輕松的集成USB 2
    發(fā)表于 05-17 15:28 ?4167次閱讀

    FPGA應(yīng)用開發(fā)入門與典型實(shí)例pdf免費(fèi)下載(華清遠(yuǎn)見編寫)

    FPGA實(shí)現(xiàn)外設(shè)通信接口  10.1 FPGA在外設(shè)接口實(shí)現(xiàn)方面的優(yōu)勢(shì)  10.2 
    發(fā)表于 02-09 15:45

    基于Verilog的FPGAUSB 2.0高速接口設(shè)計(jì)

    引 言在高速的數(shù)據(jù)采集或傳輸中,目前使用較多的都是采用USB 2.0接口控制器和FPGA或DSP實(shí)現(xiàn)的,本設(shè)計(jì)在
    發(fā)表于 06-24 07:00

    如何實(shí)現(xiàn)基于FPGA的RS485通信接口設(shè)計(jì)

    RS485是什么?如何實(shí)現(xiàn)基于FPGA的RS485通信接口設(shè)計(jì)?
    發(fā)表于 09-28 07:53

    基于USB接口技術(shù)的無線通信設(shè)計(jì)與實(shí)現(xiàn)

    提出了一種運(yùn)用USB接口芯片PDIUSBD12、89C51微處理器、射頻收發(fā)器nRF401構(gòu)建的無線USB 接口,并利用
    發(fā)表于 08-05 09:29 ?44次下載

    基于USB2.0的數(shù)據(jù)傳輸接口轉(zhuǎn)換系統(tǒng)

    針對(duì)工業(yè)現(xiàn)場(chǎng)的復(fù)雜情況,設(shè)計(jì)出一種數(shù)據(jù)傳輸接口轉(zhuǎn)換方法,采用DSP、FPGAUSB2.0,結(jié)合RS-422接口,實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)距離采集。本系
    發(fā)表于 02-24 11:33 ?31次下載

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

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

    IR-UWB通信系統(tǒng)高速USB接口的設(shè)計(jì)與實(shí)現(xiàn)

    IR-UWB通信系統(tǒng)高速USB接口的設(shè)計(jì)與實(shí)現(xiàn) 摘要: 采用高速USB接口連接計(jì)算機(jī)終端與UW
    發(fā)表于 03-13 11:32 ?2541次閱讀
    IR-UWB<b class='flag-5'>通信</b>系統(tǒng)高速<b class='flag-5'>USB</b><b class='flag-5'>接口</b>的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    FPGA的嵌入式系統(tǒng)USB接口設(shè)計(jì)

    FPGA的嵌入式系統(tǒng)USB接口設(shè)計(jì) 摘要:設(shè)計(jì)基于FPGA的IP-BX電話應(yīng)用系統(tǒng),用于傳統(tǒng)的電話網(wǎng)絡(luò)(PSTN)與PC機(jī)之間的接口連接。
    發(fā)表于 04-03 10:52 ?2152次閱讀
    <b class='flag-5'>FPGA</b>的嵌入式系統(tǒng)<b class='flag-5'>USB</b><b class='flag-5'>接口</b>設(shè)計(jì)

    基于USB2.0芯片CY7C68013的高速數(shù)據(jù)通信接口設(shè)計(jì)

    利用USB2.0接口芯片CY7C68013實(shí)現(xiàn)了語音信號(hào)處理系統(tǒng)中DSP與PC機(jī)的高速通信,簡(jiǎn)要介紹了CY7C68013的功能結(jié)構(gòu)以及與TM
    發(fā)表于 09-21 11:41 ?177次下載

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

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

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

    Cypress Semiconductor公司的EZ-USB FX2是世界上第一款集成USB2.0的微處理器,它集成了USB2.0收發(fā)器、SIE(串行接口引擎)、增強(qiáng)的8051微控制器
    的頭像 發(fā)表于 01-16 09:20 ?4065次閱讀
    基于<b class='flag-5'>FPGA</b> NANO2開發(fā)板<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>USB2.0</b><b class='flag-5'>接口</b><b class='flag-5'>通信</b>的設(shè)計(jì)方案

    基于Verilog的FPGAUSB 2.0高速接口設(shè)計(jì)資料下載

    電子發(fā)燒友網(wǎng)為你提供基于Verilog的FPGAUSB 2.0高速接口設(shè)計(jì)資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決
    發(fā)表于 04-12 08:53 ?17次下載
    基于Verilog的<b class='flag-5'>FPGA</b>與<b class='flag-5'>USB</b> <b class='flag-5'>2.0</b>高速<b class='flag-5'>接口</b>設(shè)計(jì)資料下載

    FPGAUSB3.0通信-USB3.0 PHY簡(jiǎn)介

    可以和FPGA搭配使用的USB3.0 PHY芯片 通過之前的介紹FPGAUSB3.0通信-USB
    的頭像 發(fā)表于 11-09 09:36 ?1w次閱讀
    <b class='flag-5'>FPGA</b>和<b class='flag-5'>USB</b>3.0<b class='flag-5'>通信</b>-<b class='flag-5'>USB</b>3.0 PHY簡(jiǎn)介

    FPGAUSB3.0通信-USB3.0 PHY介紹

    可以和FPGA搭配使用的USB3.0 PHY芯片通過之前的介紹
    發(fā)表于 12-20 19:11 ?35次下載
    <b class='flag-5'>FPGA</b>和<b class='flag-5'>USB</b>3.0<b class='flag-5'>通信</b>-<b class='flag-5'>USB</b>3.0 PHY介紹