一種fpga高速讀取usb設備數(shù)據(jù)裝置制造方法
【專利摘要】本實用新型公開了一種FPGA高速讀取USB設備數(shù)據(jù)裝置,包括數(shù)據(jù)讀取模塊、控制模塊、數(shù)據(jù)轉發(fā)模塊、接收模塊和DDR儲存模塊,其特征在于,所述數(shù)據(jù)讀取模塊、控制模塊及數(shù)據(jù)轉發(fā)模塊存儲在ARM處理器中,所述數(shù)據(jù)讀取模塊與USB外設連接,所述數(shù)據(jù)轉發(fā)模塊與接收模塊連接,所述DDR儲存模塊與FPGA件連接,所述ARM處理器和FPGA件接口的信號線包括片選信號線、寫信號線、響應信號線、地址總線和數(shù)據(jù)總線。本實用新型采用ARM處理器間接實現(xiàn)FPGA讀取USB設備的數(shù)據(jù),大大降低FPGA控制和管理USB設備的工作量,節(jié)約成本。
【專利說明】一種FPGA高速讀取USB設備數(shù)據(jù)裝置
【技術領域】
[0001]本實用新型涉及電子設備領域,尤其涉及一種FPGA高速讀取USB設備數(shù)據(jù)裝置。
【背景技術】
[0002]USB具有傳輸速率快、即插即用、靈活性高、成本低和簡便易用等特點,USB接口越來越受消費者、研宄者的青睞,USB標準接口正逐漸取代其他接口,成為計算機外部設備應用最廣泛的標準接口。而FPGA由于其具有高集成度、高速、可編程等優(yōu)點,推動了數(shù)字系統(tǒng)設計的單片化、自動化發(fā)展,在超高速信號處理和實時測控方面有非常廣泛的應用。因此,將FPGA與USB接口結合,使FPGA能夠通過USB接口實現(xiàn)高速讀取外部設備的數(shù)據(jù)己成為嵌入式電子系統(tǒng)設計的重要手段。
[0003]具有USB接口的設備可分為從設備和主設備。目前FPGA作為從設備,通過USB接口實現(xiàn)與上位機(通常指計算機)的通信較為成熟,應用較廣的方案為上位機通過CY68013芯片實現(xiàn)與FPGA之間的通信,由于上位機一般體積較大,它約束了以FPGA為主的便攜式嵌入式系統(tǒng)的推廣。目前FPGA作為主設備實現(xiàn)高速讀取U盤、SD卡、數(shù)碼相機、移動硬盤等USB設備的數(shù)據(jù)存在困難,其原因有二,一是FPGA作為主設備,在其內部實現(xiàn)USB控制和傳輸協(xié)議較為困難,它需要實現(xiàn)USB底層傳輸協(xié)議,和USB控制協(xié)議;USB底層協(xié)議如果自己開發(fā),工作量大,如果采用IP核,需要付專利費;同時USB控制協(xié)議一般需要通過內建一個CPU軟核來實現(xiàn),這導致設計復雜,并且也占用較多的FPGA片上資源。二是FPGA外部采用專用USB芯片的解決方案。
[0004]典型的方案有兩種:第一種是集成了 USB控制器和USB收發(fā)器,但需自行實現(xiàn)文件系統(tǒng);另一種則是實現(xiàn)了包括文件系統(tǒng)在內的所有USB讀取U盤所需的軟硬件,只需要FPGA發(fā)送命令進行控制即可實現(xiàn)讀取U盤。在這兩類方案中,CY7C67300集成度高,但其只支持USB 1.1,傳輸速率較慢,同時需要FPGA對其進行配置和控制和實現(xiàn)文件系統(tǒng),F(xiàn)PGA端的開發(fā)量較大。CH376支持USB 2.0接口,是一個真正的單芯片解決方案。但CH376只支持FAT16/32文件系統(tǒng),不支持NTFS文件系統(tǒng),無法讀取大于4GB的大文件;同時CH376需要FPGA進行配置和控制,因此需要實現(xiàn)CH376的控制邏輯并占用一定的FPGA資源,而實際CH376芯片數(shù)據(jù)傳輸平均速度較慢,難以滿足高速傳輸要求。
實用新型內容
[0005]本實用新型的目的在于提供一種FPGA高速讀取USB設備數(shù)據(jù)裝置,以解決上述【背景技術】中提出的問題。
[0006]為實現(xiàn)上述目的,本實用新型提供如下技術方案:
[0007]一種FPGA高速讀取USB設備數(shù)據(jù)裝置,包括數(shù)據(jù)讀取模塊、控制模塊、數(shù)據(jù)轉發(fā)模塊、接收模塊和DDR儲存模塊,其特征在于,所述數(shù)據(jù)讀取模塊、控制模塊及數(shù)據(jù)轉發(fā)模塊存儲在ARM處理器中,所述數(shù)據(jù)讀取模塊與USB外設連接,所述數(shù)據(jù)轉發(fā)模塊與接收模塊連接,所述DDR儲存模塊與FPGA連接,所述ARM處理器和FPGA接口的信號線包括片選信號線、寫信號線、響應信號線、地址總線和數(shù)據(jù)總線。
[0008]作為優(yōu)選,所述FPGA選用XC5VFX130T-1738芯片,其存儲模塊選MT47H128M16HG芯片。
[0009]作為優(yōu)選,所述的ARM處理器選用支持USb2.0協(xié)議S5V210芯片。
[0010]一種FPGA高速讀取USB設備數(shù)據(jù)裝置讀取USB接口數(shù)據(jù)的方法,具體步驟為:[0011 ] 步驟I,ARM處理器初始化;
[0012]ARM處理器完成自身操作系統(tǒng)的加載,與數(shù)據(jù)傳輸相關部分的初始化工作,在USB外設插入后,完成USB設備驅動的加載;
[0013]步驟2,監(jiān)控FPGA初始化工作;
[0014]如果FPGA完成自身系統(tǒng)加載工作,F(xiàn)PGA會通過響應線向ARM處理器發(fā)出響應信號,表明已準備好接受數(shù)據(jù),此時ARM處理器會通過信號指示燈指示用戶進入數(shù)據(jù)轉發(fā)階段;
[0015]步驟3,被傳數(shù)據(jù)參數(shù)提??;
[0016]ARM處理器讀入USB外設被傳數(shù)據(jù)信息,計算傳輸次數(shù);
[0017]步驟4,啟動數(shù)據(jù)傳輸;
[0018]ARM處理器將USB外設數(shù)據(jù)轉發(fā)給FPGA ;
[0019]步驟5,判斷FPGA準備接收狀態(tài);
[0020]步驟6,組幀轉發(fā)數(shù)據(jù);
[0021]ARM處理器中的轉發(fā)模塊將待發(fā)的數(shù)據(jù)進行打包處理,添加幀頭信息,包括是否最后一包數(shù)據(jù)以及有效數(shù)據(jù)長度,F(xiàn)PGA可以判定數(shù)據(jù)是否完全發(fā)送完畢以及提取每幀有效數(shù)據(jù);
[0022]步驟7,判斷數(shù)據(jù)是否發(fā)送完畢;
[0023]ARM處理器中的控制模塊計算所有數(shù)據(jù)是否發(fā)送完畢,如果沒有完畢,轉入步驟5繼續(xù)發(fā)送數(shù)據(jù),如果發(fā)送完畢,則停止發(fā)送數(shù)據(jù);
[0024]步驟8,結束數(shù)據(jù)轉發(fā);
[0025]在轉發(fā)完數(shù)據(jù)后,ARM處理器關閉對USB外設的操作,通過指示燈提示數(shù)據(jù)發(fā)送完畢。
[0026]上述步驟4包括兩個過程,分別為從USB外設讀入ARM處理器的內存緩存器以及將內存緩存器的數(shù)據(jù)組幀轉發(fā)給FPGA兩個過程,
[0027]采用“乒乓方式”讀取USB外設數(shù)據(jù),即,ARM處理器開辟兩個緩存空間,以便在進行當前緩存空間組幀發(fā)送的同時,ARM將USB外設數(shù)據(jù)讀入另一緩存空間。
[0028]所述ARM處理器開辟第一緩存器和第二緩存器,所述ARM處理器監(jiān)控發(fā)送模塊是否發(fā)完第一緩存器的數(shù)據(jù),如果未發(fā)完,等待數(shù)據(jù)發(fā)完;如果發(fā)送完畢,則向第一緩存器讀入新的數(shù)據(jù),再判斷第二緩存器的數(shù)據(jù)是否發(fā)完,依此循環(huán)操作。
[0029]上述步驟5中,所述FPGA在發(fā)送下一幀數(shù)據(jù)時判斷FPGA是否準備好接收下一幀數(shù)據(jù),如果未收到FPGA通過響應線發(fā)來的準備好接收信號,則繼續(xù)等待,直到FPGA準備好接收數(shù)據(jù)為止。
[0030]上述步驟6中,ARM處理器中的轉發(fā)模塊中傳輸?shù)膸^信息默認長度為2字節(jié),可根據(jù)需要進行調整。
[0031]所述ARM處理器和FPGA接口信號線包括片選信號、寫信號、響應信號線、地址總線和數(shù)據(jù)總線,F(xiàn)PGA在完成初始化或接收完一幀數(shù)據(jù)后,通過響應信號線向ARM處理器發(fā)出允許發(fā)數(shù)據(jù)信號,ARM處理器通過數(shù)據(jù)總線向FPGA發(fā)數(shù)據(jù),同時向FPGA發(fā)出片選信號、寫信號和地址總線等輔助信息供FPGA正確接收數(shù)據(jù)用。
[0032]與現(xiàn)有技術相比,本實用新型的有益效果:1)本實用新型采用ARM處理器間接實現(xiàn)FPGA讀取USB設備的數(shù)據(jù),大大降低FPGA控制和管理USB設備的工作量,從而節(jié)省FPGA的資源開銷,間接降低FPGA的成本開銷。
[0033]2)本實用新型由于采用ARM處理器乒乓方式傳輸數(shù)據(jù)并以幀格式方式通過并行總線發(fā)送給FPGA,可以實現(xiàn)FPGA高速讀取數(shù)據(jù)的功能,便于開展超大規(guī)模圖像尺寸的FPGA圖像處理;
[0034]3)本實用新型由于采用ARM處理器,ARM處理器便于移植,系統(tǒng)便于升級處理以兼容更多USB外設。
[0035]4)本實用新型由于ARM處理器和FPGA模塊之間數(shù)據(jù)總線采用8位、16位和32位可調位寬設計,適合不同類型的數(shù)據(jù)傳輸處理。
[0036]5)本實用新型中的FPGA只需簡單處理,根據(jù)幀格式提取數(shù)據(jù),相比之前的方法更為簡潔,可以保證高速、實時接收數(shù)據(jù)。
【專利附圖】
【附圖說明】
[0037]圖1為本實用新型FPGA讀取USB設備數(shù)據(jù)裝置的示意圖;
[0038]圖2為本實用新型FPGA與ARM處理器之間連線示意圖;
[0039]圖3為本實用新型ARM處理器數(shù)據(jù)轉發(fā)組幀結構置示意圖;
[0040]圖4為本實用新型ARM處理器控制轉發(fā)USB設備數(shù)據(jù)流程圖。
【具體實施方式】
[0041]下面結合附圖和實施咧對本實用新型作進一步闡述:
[0042]請參閱圖1,本實用新型FPGA高速讀取USB設備數(shù)據(jù)裝置,包括數(shù)據(jù)讀取模塊、控制模塊、數(shù)據(jù)轉發(fā)模塊、接收模塊和DDR儲存模塊,數(shù)據(jù)讀取模塊、控制模塊和數(shù)據(jù)轉發(fā)模塊存儲在ARM處理器中,DDR儲存模塊與FPGA連接。
[0043]所述數(shù)據(jù)讀取模塊與USB外設連接,用于從USB外設中存儲的數(shù)據(jù),在用戶啟動數(shù)據(jù)讀取功能后,數(shù)據(jù)讀取模塊根據(jù)預定的文件路徑,從USB外設打開指定的文件,獲取文件大小信息,并按預設置的數(shù)據(jù)塊大小依次讀取,直至讀完數(shù)據(jù)并關閉文件。
[0044]所述控制模塊,控制ARM處理器讀取并轉發(fā)USB外設中的數(shù)據(jù),在進入數(shù)據(jù)轉發(fā)工作后,控制模塊采用“乒乓操作”模式負責將USB外設數(shù)據(jù)依次讀入內存中開辟的第一緩存器和第二緩存器,即監(jiān)控發(fā)送模塊是否發(fā)完第一緩存器的數(shù)據(jù),如果未發(fā)完,等待數(shù)據(jù)發(fā)完;如果發(fā)送完畢,則向第一緩存器讀入新的數(shù)據(jù),再判斷第二緩存器的數(shù)據(jù)是否發(fā)完,依此循環(huán)操作;由于ARM處理器從USB外設讀入的數(shù)據(jù)速率比轉發(fā)的數(shù)據(jù)速率快,因此,它不會造成數(shù)據(jù)的丟失。
[0045]所述數(shù)據(jù)轉發(fā)模塊,用于將內存中的第一緩存器和第二緩存器的數(shù)據(jù)轉發(fā)給FPGA,數(shù)據(jù)轉發(fā)模塊根據(jù)所讀取的文件大小信息,判斷需要傳輸?shù)拇螖?shù),每次按幀數(shù)據(jù)格式組幀,然后發(fā)送給FPGA接收端。
[0046]所述數(shù)據(jù)接收模塊,用于實現(xiàn)與ARM處理器之間的數(shù)據(jù)交互;FPGA將接收到的數(shù)據(jù)暫存于內部開辟的RAM,如果只需處理少量數(shù)據(jù),F(xiàn)PGA數(shù)據(jù)處理單元可以直接處理該部分數(shù)據(jù),如果需要處理大量的數(shù)據(jù),如大尺寸圖像數(shù)據(jù),則可將暫存于RAM的數(shù)據(jù)存入DDR高速緩存芯片以便實時處理。
[0047]請參閱圖2,本實用新型FPGA與ARM處理器之間連線示意圖,本實用新型的ARM處理器和FPGA接口信號線包括片選信號、寫信號、響應信號線、地址總線和數(shù)據(jù)總線,F(xiàn)PGA在完成初始化或接收完一幀數(shù)據(jù)后,通過響應信號線向ARM處理器發(fā)出允許發(fā)數(shù)據(jù)信號,ARM處理器通過數(shù)據(jù)總線向FPGA發(fā)數(shù)據(jù),同時向FPGA發(fā)出片選信號、寫信號和地址總線等輔助信息供FPGA正確接收數(shù)據(jù)用。
[0048]請參閱圖3,其為本實用新型ARM處理器數(shù)據(jù)轉發(fā)組幀結構置示意圖,本實用新型的幀格式,包括幀類型、擴展位、幀有效數(shù)據(jù)長度和數(shù)據(jù)信息,其中幀類型占2位位寬,用于區(qū)分是否最后一幀數(shù)據(jù)。擴展位用于今后功能擴展,幀有效數(shù)據(jù)長度表示將轉發(fā)的數(shù)據(jù)長度,數(shù)據(jù)信息為被傳的有效數(shù)據(jù)。
[0049]本實用新型中,所述的FPGA件選用乂丨1丨1?公司的乂05¥?乂1301'-1738芯片;所述的ARM處理器選用三星的S5V210芯片,它支持USb2.0協(xié)議,滿足高速傳輸要求;所述的FPGA件的存儲模塊選用美光公司的MT47H128M16HG芯片,單片存儲容量2Gbit,支持高速緩存,支持并聯(lián)以擴大存儲容量。
[0050]請參閱圖4,本實用新型ARM處理器控制轉發(fā)USB設備數(shù)據(jù)流程圖,本實用新型的ARM處理器控制發(fā)送USB外設數(shù)據(jù)流程如下:
[0051 ] 步驟I,ARM處理器初始化;
[0052]ARM處理器完成自身操作系統(tǒng)的加載,與數(shù)據(jù)傳輸相關部分的初始化工作,在USB外設插入后,完成USB設備驅動的加載。
[0053]步驟2,監(jiān)控FPGA初始化工作;
[0054]如果FPGA完成自身系統(tǒng)加載工作,F(xiàn)PGA會通過響應線向ARM處理器發(fā)出響應信號,表明已準備好接受數(shù)據(jù),此時ARM處理器會通過信號指示燈指示用戶進入數(shù)據(jù)轉發(fā)階段。
[0055]步驟3,被傳數(shù)據(jù)參數(shù)提?。?br>
[0056]ARM處理器讀入USB外設被傳數(shù)據(jù)信息,計算傳輸次數(shù);
[0057]步驟4,啟動數(shù)據(jù)傳輸;
[0058]ARM處理器將USB外設數(shù)據(jù)轉發(fā)給FPGA包括兩過程,即從USB外設讀入ARM處理器內存緩存器以及將內存緩存器的數(shù)據(jù)組幀轉發(fā)給FPGA兩過程,為了快速發(fā)送數(shù)據(jù),需要采用“乒乓方式”讀取USB外設數(shù)據(jù),即,ARM處理器開辟兩緩存空間,以便在進行當前緩存空間組幀發(fā)送的同時,ARM將USB外設數(shù)據(jù)讀入另一緩存空間,由于ARM處理器從USB外設數(shù)據(jù)讀入的速度比組幀發(fā)送給FPGA的速度快,通過這樣處理不會造成數(shù)據(jù)的丟失,并且可以提高整個系統(tǒng)讀取USB外設的速度。
[0059]數(shù)據(jù)組幀并行傳輸工作,ARM處理器采用并行傳輸模式向FPGA發(fā)送數(shù)據(jù),數(shù)據(jù)位寬可以選用8位、16位和32位等,為了保證FPGA快速讀取數(shù)據(jù),采用幀格式進行數(shù)據(jù)打包,ARM采用連續(xù)發(fā)送方式發(fā)送完一幀數(shù)據(jù)。
[0060]步驟5,判斷FPGA準備接收狀態(tài);
[0061]由于FPGA接收一幀數(shù)據(jù)后需要根據(jù)需求轉發(fā)數(shù)據(jù),為了保證FPGA準確接收數(shù)據(jù),需要在發(fā)送下一幀數(shù)據(jù)時判斷FPGA是否準備好接收下一幀數(shù)據(jù),如果未收到FPGA通過響應線發(fā)來的準備好接收信號,則繼續(xù)等待,直到FPGA準備好接收數(shù)據(jù)為止。
[0062]步驟6,組幀轉發(fā)數(shù)據(jù);
[0063]ARM轉發(fā)模塊將待發(fā)的數(shù)據(jù)進行打包處理,添加幀頭信息,包括是否最后一包數(shù)據(jù)以及有效數(shù)據(jù)長度,為節(jié)省幀開銷,幀頭信息默認長度為2字節(jié),可根據(jù)需要進行調整。通過以上處理,F(xiàn)PGA可以判定數(shù)據(jù)是否完全發(fā)送完畢以及提取每幀有效數(shù)據(jù)。
[0064]步驟7,判斷數(shù)據(jù)是否發(fā)送完畢;
[0065]ARM控制模塊計算所有數(shù)據(jù)是否發(fā)送完畢,如果沒有完畢,轉入步驟5繼續(xù)發(fā)送數(shù)據(jù),如果發(fā)送完畢,則停止發(fā)送數(shù)據(jù)。
[0066]步驟8,結束數(shù)據(jù)轉發(fā);
[0067]在轉發(fā)完數(shù)據(jù)后,ARM處理器關閉對USB外設的操作,通過指示燈提示數(shù)據(jù)發(fā)送完畢。
[0068]本實用新型中的FPGA只需簡單處理,根據(jù)幀格式提取數(shù)據(jù),相比之前的方法更為簡潔,可以保證高速、實時接收數(shù)據(jù)。
[0069]以上所述僅為本實用新型的較佳實施例,對實用新型而言僅僅是說明性的,而非限制性的。本專業(yè)技術人員理解,在實用新型權利要求所限定的精神和范圍內可對其進行許多改變,修改,甚至等效,但都將落入本實用新型的保護范圍內。
【權利要求】
1.一種FPGA高速讀取USB設備數(shù)據(jù)裝置,包括數(shù)據(jù)讀取模塊、控制模塊、數(shù)據(jù)轉發(fā)模塊、接收模塊和DDR儲存模塊,其特征在于,所述數(shù)據(jù)讀取模塊、控制模塊及數(shù)據(jù)轉發(fā)模塊存儲在ARM處理器中,所述數(shù)據(jù)讀取模塊與USB外設連接,所述數(shù)據(jù)轉發(fā)模塊與接收模塊連接,所述DDR儲存模塊與FPGA連接,所述ARM處理器和FPGA接口的信號線包括片選信號線、寫信號線、響應信號線、地址總線和數(shù)據(jù)總線。
2.根據(jù)權利要求1所述的一種FPGA高速讀取USB設備數(shù)據(jù)裝置,其特征在于,所述FPGA選用XC5VFX130T-1738芯片,其存儲模塊選MT47H128M16HG芯片。
3.根據(jù)權利要求1所述的一種FPGA高速讀取USB設備數(shù)據(jù)裝置,其特征在于,所述的ARM處理器選用支持USb2.0協(xié)議S5V210芯片。
【文檔編號】G06F13/38GK204256731SQ201420768086
【公開日】2015年4月8日 申請日期:2014年12月8日 優(yōu)先權日:2014年12月8日
【發(fā)明者】姚引娣 申請人:西安郵電大學