基于USB通信的FPGA高速數(shù)據(jù)采集系統(tǒng)
2.3 USB通信
在系統(tǒng)中,USB控制器被配置為SlaVe FIFO模式,CY7C68013A Slave模式接口引腳的連接如圖4所示,這樣FPGA可以將USB控制器當(dāng)成FI-FO來(lái)控制,而不用考慮USB標(biāo)準(zhǔn)的各種規(guī)則。而USB控制器則將USB標(biāo)準(zhǔn)的各種規(guī)則通過(guò)許多特殊寄存器來(lái)設(shè)置,將USB控制簡(jiǎn)化。
因此,此部分的軟件實(shí)現(xiàn)包括2個(gè)部分。從圖4可以看出,FPGA對(duì)各RAM輪流讀取數(shù)據(jù),由于RAM大小與USB數(shù)據(jù)包大小設(shè)定一致,直接把數(shù)據(jù)送入CY7C68013A即可。而FPGA把CY7C68013A當(dāng)成FIFO來(lái)控制,所以該部分程序比較簡(jiǎn)單。而CY7C68013A內(nèi)程序設(shè)計(jì)主要是通過(guò)固件程序?qū)鬏斔俣?、傳輸方式、傳輸模式等進(jìn)行設(shè)置。本文引用地址:http://www.ex-cimer.com/article/156123.htm
固件程序是指運(yùn)行在設(shè)備CPU中的程序,只有在該程序運(yùn)行時(shí),外設(shè)才能稱之為具有給定功能的外部設(shè)備。系統(tǒng)把固件代碼固化到1片E2PROM中,外設(shè)加電后由FX2通過(guò)I2C總線下載到片內(nèi)RAM中自動(dòng)執(zhí)行。固件架構(gòu)是由Keil C51編譯器與其整合開發(fā)工具所編寫和構(gòu)建。其主要文件包括:fw.c負(fù)責(zé)設(shè)備連接、重枚舉、設(shè)備初始化;periph.c負(fù)責(zé)響應(yīng)各種中斷事件,是主要的用戶函數(shù)應(yīng)用代碼;gpif.c含有GP IF波形描述符表,可以實(shí)現(xiàn)波形的傳輸;dscr.a(chǎn)51文件定義USB設(shè)備握手時(shí)需要的各種描述符;fx2.h定義各種二級(jí)中斷向量和描述符的數(shù)據(jù)結(jié)構(gòu);fx2 regs.h定義USB單片機(jī)中所有的寄存器。
USB支持4種傳輸類型:控制傳輸、中斷傳輸、等時(shí)傳輸、批量傳輸。批量傳輸可以是雙向的,也可以是單向的。它特別適合大數(shù)據(jù)量的傳輸,而且它對(duì)傳輸?shù)臏?zhǔn)確性要求較高。因此,通過(guò)固件程序設(shè)定本系統(tǒng)采用Slave FIFO模式,批量(BULK)傳輸方式進(jìn)行數(shù)據(jù)傳輸。
3 實(shí)驗(yàn)結(jié)果
為了方便實(shí)驗(yàn),使用耦合器將一路光信號(hào)分為16路相同的信號(hào),這樣所有采集到的信號(hào)波形基本相同。實(shí)驗(yàn)時(shí),AD7356設(shè)定為1 MHz采樣速率,USB數(shù)據(jù)包大小為512 Kb,CY7C68013A采用異步SlaveFIFO模式發(fā)送數(shù)據(jù),上位機(jī)采用Cypress公司自帶的EZ-USB Interface軟件采集實(shí)驗(yàn)數(shù)據(jù)。采集到的信號(hào)如圖5所示,系統(tǒng)在16.7 Mb/s的傳輸速率下工作正常。
4 結(jié)語(yǔ)
本文采用目前使用最為廣泛的EZ-USB FX2LP芯片,給出了基于USB數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)。該系統(tǒng)充分表現(xiàn)了USB接口傳輸數(shù)據(jù)量大,傳輸速度快的特點(diǎn),非常的適合大批量數(shù)據(jù)實(shí)時(shí)的傳輸場(chǎng)合,尤其適合數(shù)據(jù)采集系統(tǒng)和主機(jī)的通信,能夠?qū)崟r(shí)的處理采集到的數(shù)據(jù)。這克服了以往數(shù)據(jù)采集速度慢,采集數(shù)量少,接口復(fù)雜等特點(diǎn),實(shí)現(xiàn)了數(shù)據(jù)采集的高速率、多通道。系統(tǒng)進(jìn)行實(shí)測(cè)實(shí)驗(yàn)表明,在CY7C68013A設(shè)定為16.7 Mb/s的傳輸速率下,系統(tǒng)工作正常。
評(píng)論