當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀] 摘要:針對(duì)FPGA訪問(wèn)USB設(shè)備存在傳輸速率低、資源消耗大、開發(fā)復(fù)雜的缺點(diǎn),提出了一種將ARM處理器與FPGA相結(jié)合實(shí)現(xiàn)高速訪問(wèn)USB設(shè)備的方案。該方案利用ARM處理器的USB Host讀取USB設(shè)備數(shù)據(jù)井緩存于高速內(nèi)存,采用乒乓

 摘要:針對(duì)FPGA訪問(wèn)USB設(shè)備存在傳輸速率低、資源消耗大、開發(fā)復(fù)雜的缺點(diǎn),提出了一種將ARM處理器與FPGA相結(jié)合實(shí)現(xiàn)高速訪問(wèn)USB設(shè)備的方案。該方案利用ARM處理器的USB Host讀取USB設(shè)備數(shù)據(jù)井緩存于高速內(nèi)存,采用乒乓機(jī)制通過(guò)SRAM接口將數(shù)據(jù)傳給FPGA。經(jīng)測(cè)試,數(shù)據(jù)傳輸速率可以達(dá)到48 Mbps。該方案具有開發(fā)難度小,資源占用率低和傳輸速率高的特點(diǎn),適合于FPGA高速讀取大量外部數(shù)據(jù)。

引言

目前FPGA通過(guò)USB接口獲取USB設(shè)備中數(shù)據(jù)的方案大致分為兩大類,一類為在FPGA內(nèi)部實(shí)現(xiàn)USB設(shè)備控制,另一類為在FPGA外部實(shí)現(xiàn)USB設(shè)備控制。在FPGA內(nèi)部實(shí)現(xiàn)的方案需要在FPGA內(nèi)部實(shí)現(xiàn)USB控制器,在內(nèi)部實(shí)現(xiàn)或者外接USB收發(fā)器。該方案的實(shí)現(xiàn)具有較大難度,同時(shí)由于USB協(xié)議和文件系統(tǒng)都相當(dāng)復(fù)雜,需要使用相當(dāng)多的FPGA資源,因此完全不能滿足快速開發(fā)和低FPGA資源占用率的要求。在FPGA外部實(shí)現(xiàn)的方案通常使用單芯片的USB解決方案,典型的方案有兩種:一種是集成了USB控制器和USB收發(fā)器,但需自行實(shí)現(xiàn)文件系統(tǒng),如美國(guó)Cypress公司的CY7C67300;另一種是實(shí)現(xiàn)了包括文件系統(tǒng)在內(nèi)的所有USB讀取U盤所需的軟硬件,只需要FPGA發(fā)送命令進(jìn)行控制即可實(shí)現(xiàn)讀取U盤,如南京沁恒電子的CH376。在這兩類方案中,CY7C67300集成度高,但其只支持USB 1.1,傳輸速率較低;同時(shí)需要FPGA對(duì)其進(jìn)行配置和控制及實(shí)現(xiàn)文件系統(tǒng),F(xiàn)PGA端的開發(fā)量較大。CH376支持USB2.0接口,是一個(gè)真正的單芯片解決方案;但CH376只支持FAT16/32文件系統(tǒng),不支持NTFS文件系統(tǒng),無(wú)法讀取大于4 GB的大文件。另外,CH376需要FPGA進(jìn)行配置和控制,因此需要實(shí)現(xiàn)CH376的控制邏輯并占用一定的FPGA資源。

由于現(xiàn)有方案均存在數(shù)據(jù)傳輸速率低、FPGA開發(fā)量大的缺點(diǎn),本文提出了一種使用ARM+FPGA的方案,通過(guò)ARM處理器讀取USB設(shè)備數(shù)據(jù)并傳輸給FPGA,從而實(shí)現(xiàn)FPGA從USB設(shè)備獲取數(shù)據(jù)。該方案既能達(dá)到較高的數(shù)據(jù)傳輸速率,又能降低FPGA開發(fā)量,同時(shí)還具有很高的靈活性。

1 系統(tǒng)設(shè)計(jì)

本方案的系統(tǒng)設(shè)計(jì)如圖1所示。該系統(tǒng)由ARM處理器、FPGA和USB設(shè)備構(gòu)成,F(xiàn)PGA通過(guò)內(nèi)部開辟的異步RAM空間接收數(shù)據(jù),ARM處理器負(fù)責(zé)將USB設(shè)備中數(shù)據(jù)通過(guò)并行總線轉(zhuǎn)發(fā)給FPGA,USB設(shè)備支持常見(jiàn)的U盤、照相機(jī)、移動(dòng)硬盤等支持USB接口的從設(shè)備。本設(shè)計(jì)還將ARM處理器的兩個(gè)引腳與FPGA的通信。指令線用于ARM向FPGA發(fā)送準(zhǔn)備進(jìn)行數(shù)據(jù)傳輸?shù)闹噶?響應(yīng)線用于FPGA在接收到ARM的通知并準(zhǔn)備好后響應(yīng)ARM。與FPGA相連的DDR存儲(chǔ)器用于高速緩存大量圖像數(shù)據(jù),支持常見(jiàn)的DDR、DDR2和DDR3等類型。

1.1 ARM處理器選擇

本方案選用的ARM處理器為韓國(guó)三星公司的S5PV210。S5PV210是一款基于ARM Cortex—A8內(nèi)核的RSIC處理器,該芯片擁有強(qiáng)大的計(jì)算能力、豐富的內(nèi)部資源和外部接口,主頻高達(dá)1 GHz,同時(shí)它還擁有優(yōu)化的外部存儲(chǔ)器接口。外部存儲(chǔ)器接口為異步接口,時(shí)鐘頻率為133MHz,位寬為16位,具有完善且可調(diào)的時(shí)序控制功能,可用于連接ROM、SRAM、oneNAND、NAND Flash等多種存儲(chǔ)器,能滿足在高端通信服務(wù)中的數(shù)據(jù)帶寬要求。本方案使用這個(gè)接口完成數(shù)據(jù)從ARM處理器到FPGA的高速傳輸。

1.2 ARM與FPGA接口設(shè)計(jì)

本方案將FPGA異步RAM連接在ARM處理器的XM0內(nèi)存總線上,作為一個(gè)位寬為16位的SRAM使用,其對(duì)應(yīng)的硬件地址為0x10000000到0x1000 1002,共4 098字節(jié)。由于異步RAM的位寬為16位,故只需使用地址線ADDR 1~ADDR 13。指令線連接ARM處理器的GPIO引腳,方向?yàn)檩敵?,高電平有效。響?yīng)線連接ARM處理器的中斷引腳,方向?yàn)檩斎?,上升沿有效?/p>

1.3 軟件設(shè)計(jì)

在本方案中,ARM處理器以幀為單位向FPGA傳輸數(shù)據(jù)。每幀長(zhǎng)度為4 098字節(jié),其中,幀頭長(zhǎng)度為2字節(jié),數(shù)據(jù)長(zhǎng)度為4 096字節(jié)。幀格式如圖2所示。

幀類型的取值為:此幀不是最后幀為00,此幀是最后幀則為11。幀長(zhǎng)度為幀數(shù)據(jù)的長(zhǎng)度,以字節(jié)為單位。

本方案所設(shè)計(jì)的軟件分為兩個(gè)部分一一驅(qū)動(dòng)程序和應(yīng)用程序,軟件總體框圖如圖3所示。驅(qū)動(dòng)程序在Linux系統(tǒng)中注冊(cè)硬件并提供控制硬件的功能函數(shù),以供應(yīng)用程序調(diào)用。應(yīng)用程序使用驅(qū)動(dòng)程序提供的功能函數(shù)控制硬件,完成整個(gè)傳輸過(guò)程。軟件總體流程圖如圖4所示。

1.3.1 驅(qū)動(dòng)程序設(shè)計(jì)

本方案涉及3種驅(qū)動(dòng)程序:USB驅(qū)動(dòng)程序、文件系統(tǒng)驅(qū)動(dòng)程序和FPGA驅(qū)動(dòng)程序。

Linux系統(tǒng)有豐富完善的USB設(shè)備和文件系統(tǒng)支持。本方案使用Linux系統(tǒng)中自帶的USB Mass Storage驅(qū)動(dòng)程序和文件系統(tǒng)驅(qū)動(dòng)程序,自行編寫FPGA驅(qū)動(dòng)程序。FPGA驅(qū)動(dòng)程序基于Linux系統(tǒng)字符設(shè)備驅(qū)動(dòng)程序模型進(jìn)行編寫。FPGA驅(qū)動(dòng)程序的主要函數(shù)有初始化函數(shù)init()、寫入中斷服務(wù)函數(shù)write_int()、寫入函數(shù)write()。

初始化函數(shù)init()首先將FPGA異步RAM對(duì)應(yīng)的硬件地址0x10000000~0x10001002映射為L(zhǎng)inux系統(tǒng)中的內(nèi)存虛擬地址A到A+4098(設(shè)映射的內(nèi)存虛擬地址起始為A),實(shí)現(xiàn)在Linux系統(tǒng)中直接向異步RAM寫入數(shù)據(jù)。然后,設(shè)置指令線、響應(yīng)線所對(duì)應(yīng)的寄存器。將指令線的方向設(shè)置為輸出,并輸出低電平;響應(yīng)線的方向設(shè)置為中斷輸入。最后,函數(shù)將響應(yīng)線中斷服務(wù)函數(shù)設(shè)置為write_int()。

寫入函數(shù)write()與寫入中斷服務(wù)函數(shù)write_int()配合,完成一次數(shù)據(jù)傳輸:

①當(dāng)應(yīng)用程序調(diào)用寫入函數(shù)后,函數(shù)首先設(shè)置指令線為高電平指示FPGA準(zhǔn)備傳輸數(shù)據(jù),然后將驅(qū)動(dòng)程序置于休眠狀態(tài),等待喚醒。

②FPGA收到指令后判斷現(xiàn)在能否傳輸數(shù)據(jù),如果能,則在中斷線上發(fā)送一個(gè)上升沿。ARM處理器捕捉到該上升沿后,調(diào)用write_int(),喚醒驅(qū)動(dòng)程序。

驅(qū)動(dòng)程序被喚醒后,繼續(xù)執(zhí)行write()。write()函數(shù)首先根據(jù)應(yīng)用程序提供的參數(shù)生成幀頭,并將幀頭寫入地址ADDR和ADDR+1,完成幀頭的傳輸。隨后將數(shù)據(jù)寫入地址ADDR+2及其后的地址,完成數(shù)據(jù)的傳輸。

1.3.2 應(yīng)用程序設(shè)計(jì)

本方案通過(guò)Linux系統(tǒng)的熱插拔機(jī)制自動(dòng)啟動(dòng)應(yīng)用程序。在U盤插入U(xiǎn)SB接口后,Linux系統(tǒng)自動(dòng)加載USB驅(qū)動(dòng)和FPGA驅(qū)動(dòng)并啟動(dòng)應(yīng)用程序。應(yīng)用程序流程如圖5所示。

運(yùn)行應(yīng)用程序時(shí),通過(guò)設(shè)置參數(shù)能使應(yīng)用程序讀取U盤、移動(dòng)硬盤甚至網(wǎng)絡(luò)上的文件,使方案具有很高的靈活性。應(yīng)用程序使用了多線程技術(shù)來(lái)充分利用系統(tǒng)資源,使用兩個(gè)線程分別實(shí)現(xiàn)從U盤讀取數(shù)據(jù)存入緩沖區(qū)的過(guò)程和將緩沖區(qū)內(nèi)的數(shù)據(jù)傳輸至FPGA的過(guò)程。在讀取線程或?qū)懭刖€程中,可以加入數(shù)據(jù)處理代碼實(shí)現(xiàn)數(shù)據(jù)的預(yù)處理,減少FPGA工作量。應(yīng)用程序分配了多個(gè)緩沖區(qū)提高性能,并使用了互斥鎖實(shí)現(xiàn)讀取線程與傳輸線程間的線程同步,確保數(shù)據(jù)正確傳輸。

1.4 ARM向FPGA傳輸數(shù)據(jù)設(shè)計(jì)

本方案在FPGA中實(shí)現(xiàn)一個(gè)異步RAM,其使用乒乓機(jī)制接收來(lái)自ARM處理器的數(shù)據(jù),同時(shí)需要將異步RAM中的數(shù)據(jù)寫入DDR 2存儲(chǔ)器。異步RAM內(nèi)部有兩個(gè)數(shù)據(jù)緩沖模塊。在乒乓機(jī)制中,兩個(gè)模塊分別執(zhí)行不同的任務(wù),當(dāng)模塊1接收數(shù)據(jù)來(lái)自ARM處理器的數(shù)據(jù)時(shí),模塊2將數(shù)據(jù)寫入DDR 2存儲(chǔ)器。當(dāng)兩個(gè)模塊的任務(wù)都完成后,交換模塊1和模塊2的任務(wù)。與現(xiàn)有方案相比,本方案FPGA無(wú)需配置外部芯片,所需開發(fā)量較小。

2 測(cè)試與分析

2.1 傳輸速率測(cè)試

此測(cè)試傳輸3個(gè)不同大小的文件,記錄數(shù)據(jù)傳輸時(shí)間,從而獲得數(shù)據(jù)傳輸速率。

測(cè)試結(jié)果如表1所列。

由表1可知,在傳輸速率測(cè)試中,測(cè)得的最高數(shù)據(jù)傳輸速率為47.6 Mbps,比現(xiàn)有方案如CY7C67300、CH376的數(shù)據(jù)傳輸速率高。在傳輸速率測(cè)試中,傳輸100 KB文件的傳輸速率與傳輸1 MB和1 GB文件的傳輸速率相比偏低,而傳輸1 MB和1 GB文件的傳輸速率則相差不大。原因?yàn)椋?/p>

①測(cè)試為先進(jìn)行計(jì)時(shí)后開始傳輸,存在一段時(shí)間未傳輸數(shù)據(jù)。

②應(yīng)用程序在傳輸開始前需要一段時(shí)間進(jìn)行初始化,存在一段時(shí)間未傳輸數(shù)據(jù)。

在后兩種測(cè)試中,以上兩種未傳輸數(shù)據(jù)的時(shí)間占總時(shí)間的比重較低,因此數(shù)據(jù)傳輸速率較高。

2.2 傳輸準(zhǔn)確率測(cè)試

此測(cè)試在FPGA內(nèi)實(shí)現(xiàn)一個(gè)比較器,比較異步RAM接收到的數(shù)據(jù)與比較器內(nèi)置數(shù)據(jù)是否一致,從而測(cè)試傳輸是否正確并確定正確率。經(jīng)測(cè)試,此方案在傳輸過(guò)程中無(wú)差錯(cuò)發(fā)生,傳輸正確率為100%。

結(jié)語(yǔ)

FPGA與ARM處理器相配合實(shí)現(xiàn)FPGA高速獲取U盤數(shù)據(jù)的方案,可以滿足FPGA高速讀取U盤數(shù)據(jù)的需求。在傳輸過(guò)程中無(wú)差錯(cuò),且具有良好的靈活性。本方案具有很高的實(shí)用價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉