[發(fā)明專利]一種FPGA高速讀取USB接口數(shù)據(jù)的方法有效
| 申請?zhí)枺?/td> | 201410077587.6 | 申請日: | 2014-02-28 |
| 公開(公告)號: | CN103838694B | 公開(公告)日: | 2017-02-08 |
| 發(fā)明(設(shè)計)人: | 姚引娣 | 申請(專利權(quán))人: | 西安郵電大學(xué) |
| 主分類號: | G06F13/38 | 分類號: | G06F13/38 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 710121 陜西省西*** | 國省代碼: | 陜西;61 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 fpga 高速 讀取 usb 接口 數(shù)據(jù) 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及電子設(shè)備的USB接口領(lǐng)域,尤其涉及一種基于FPGA實現(xiàn)USB接口高速獲取大容量數(shù)據(jù)的方法。
背景技術(shù)
USB具有傳輸速率快、即插即用、靈活性高、成本低和簡便易用等特點,USB接口越來越受消費者、研究者的青睞,USB標(biāo)準(zhǔn)接口正逐漸取代其他接口,成為計算機(jī)外部設(shè)備應(yīng)用最廣泛的標(biāo)準(zhǔn)接口。而FPGA由于其具有高集成度、高速、可編程等優(yōu)點,推動了數(shù)字系統(tǒng)設(shè)計的單片化、自動化發(fā)展,在超高速信號處理和實時測控方面有非常廣泛的應(yīng)用。因此,將FPGA與USB接口結(jié)合,使FPGA能夠通過USB接口實現(xiàn)高速讀取外部設(shè)備的數(shù)據(jù)己成為嵌入式電子系統(tǒng)設(shè)計的重要手段。
具有USB接口的設(shè)備可分為從設(shè)備和主設(shè)備。目前FPGA作為從設(shè)備,通過USB接口實現(xiàn)與上位機(jī)(通常指計算機(jī))的通信較為成熟,應(yīng)用較廣的方案為上位機(jī)通過CY68013芯片實現(xiàn)與FPGA之間的通信,由于上位機(jī)一般體積較大,它約束了以FPGA為主的便攜式嵌入式系統(tǒng)的推廣。目前FPGA作為主設(shè)備實現(xiàn)高速讀取U盤、SD卡、數(shù)碼相機(jī)、移動硬盤等USB設(shè)備的數(shù)據(jù)存在困難,其原因有二,一是FPGA作為主設(shè)備,在其內(nèi)部實現(xiàn)USB控制和傳輸協(xié)議較為困難,它需要實現(xiàn)USB底層傳輸協(xié)議,和USB控制協(xié)議;USB底層協(xié)議如果自己開發(fā),工作量大,如果采用IP核,需要付專利費;同時USB控制協(xié)議一般需要通過內(nèi)建一個CPU軟核來實現(xiàn),這導(dǎo)致設(shè)計復(fù)雜,并且也占用較多的FPGA片上資源。二是FPGA外部采用專用USB芯片的解決方案。
典型的方案有兩種:第一種是集成了USB控制器和USB收發(fā)器,但需自行實現(xiàn)文件系統(tǒng);另一種則是實現(xiàn)了包括文件系統(tǒng)在內(nèi)的所有USB讀取U盤所需的軟硬件,只需要FPGA發(fā)送命令進(jìn)行控制即可實現(xiàn)讀取U盤。
在這兩類方案中,CY7C67300集成度高,但其只支持USB1.1,傳輸速率較慢,同時需要FPGA對其進(jìn)行配置和控制和實現(xiàn)文件系統(tǒng),F(xiàn)PGA端的開發(fā)量較大。CH376支持USB2.0接口,是一個真正的單芯片解決方案。但CH376只支持FAT16/32文件系統(tǒng),不支持NTFS文件系統(tǒng),無法讀取大于4GB的大文件;同時CH376需要FPGA進(jìn)行配置和控制,因此需要實現(xiàn)CH376的控制邏輯并占用一定的FPGA資源而實際CH376芯片數(shù)據(jù)傳輸平均速度較慢,難以滿足高速傳輸要求。
鑒于上述缺陷,本發(fā)明創(chuàng)作者經(jīng)過長時間的研究和實踐終于獲得了本創(chuàng)作。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種FPGA高速讀取USB接口數(shù)據(jù)的方法,用以克服上述技術(shù)缺陷。
為實現(xiàn)上述目的,本發(fā)明提供一種FPGA高速讀取USB接口數(shù)據(jù)的方法,該具體過程為:
步驟1,ARM處理器初始化;
ARM處理器完成自身操作系統(tǒng)的加載,與數(shù)據(jù)傳輸相關(guān)部分的初始化工作,在USB外設(shè)插入后,完成USB設(shè)備驅(qū)動的加載;
步驟2,監(jiān)控FPGA初始化工作;
如果FPGA完成自身系統(tǒng)加載工作,F(xiàn)PGA會通過響應(yīng)線向ARM處理器發(fā)出響應(yīng)信號,表明已準(zhǔn)備好接受數(shù)據(jù),此時ARM處理器會通過信號指示燈指示用戶進(jìn)入數(shù)據(jù)轉(zhuǎn)發(fā)階段;
步驟3,被傳數(shù)據(jù)參數(shù)提取;
ARM處理器讀入USB外設(shè)被傳數(shù)據(jù)信息,計算傳輸次數(shù);
步驟4,啟動數(shù)據(jù)傳輸;
ARM處理器將USB外設(shè)數(shù)據(jù)轉(zhuǎn)發(fā)給FPGA;
步驟5,判斷FPGA準(zhǔn)備接收狀態(tài);
步驟6,組幀轉(zhuǎn)發(fā)數(shù)據(jù);
ARM處理器中的轉(zhuǎn)發(fā)模塊將待發(fā)的數(shù)據(jù)進(jìn)行打包處理,添加幀頭信息,包括是否最后一包數(shù)據(jù)以及有效數(shù)據(jù)長度,F(xiàn)PGA可以判定數(shù)據(jù)是否完全發(fā)送完畢以及提取每幀有效數(shù)據(jù);
步驟7,判斷數(shù)據(jù)是否發(fā)送完畢;
ARM處理器中的控制模塊計算所有數(shù)據(jù)是否發(fā)送完畢,如果沒有完畢,轉(zhuǎn)入步驟5繼續(xù)發(fā)送數(shù)據(jù),如果發(fā)送完畢,則停止發(fā)送數(shù)據(jù);
步驟8,結(jié)束數(shù)據(jù)轉(zhuǎn)發(fā);
在轉(zhuǎn)發(fā)完數(shù)據(jù)后,ARM處理器關(guān)閉對USB外設(shè)的操作,通過指示燈提示數(shù)據(jù)發(fā)送完畢。
進(jìn)一步,上述步驟4包括兩個過程,分別為從USB外設(shè)讀入ARM處理器的內(nèi)存緩存器以及將內(nèi)存緩存器的數(shù)據(jù)組幀轉(zhuǎn)發(fā)給FPGA兩個過程,
采用″乒乓方式″讀取USB外設(shè)數(shù)據(jù),即,ARM處理器開辟兩個緩存空間,以便在進(jìn)行當(dāng)前緩存空間組幀發(fā)送的同時,ARM將USB外設(shè)數(shù)據(jù)讀入另一緩存空間。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于西安郵電大學(xué),未經(jīng)西安郵電大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410077587.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:三維自調(diào)式枕頭
- 下一篇:均勻保暖羽絨被





