專利名稱:在dsp+fpga架構(gòu)中提高信號實時模式識別處理速度的系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及利用DSP的外部存儲器接口 (EMIF)完成DSP和FPGA之間的信號傳遞并 用FPGA取代DSP完成模式分類來提高整個模式識別系統(tǒng)的數(shù)據(jù)處理速度的一種解決方案。 屬于電子信息領(lǐng)域。
背景技術(shù):
隨著嵌入式技術(shù)應(yīng)用領(lǐng)域的日益廣泛,以及嵌入式技術(shù)不可避免的智能化發(fā)展趨勢,對 于嵌入式模式識別技術(shù)的需求也越來越大。對于需要進行模式識別的場合,往往能采集到大 量的信息,需要在短時間內(nèi)對這些信息進行歸納提煉,從而得到目標(biāo)的準(zhǔn)確、簡練的描述。 嵌入式模式識別的瓶頸就在于很難保證信號模式識別處理的速度,對于輸入信息量大、處理 結(jié)果實時性要求較高(比如視頻圖像信號、網(wǎng)絡(luò)數(shù)據(jù)流等)的應(yīng)用場合,傳統(tǒng)的技術(shù)手段往往 無法滿足處理速度上的要求。
在目前的嵌入式系統(tǒng)中,基于DSP+FPGA的架構(gòu)的特點就是FPGA以其靈活的可編程能 力負(fù)責(zé)對外接口和時序控制部分,主要的信號處理運算則由DSP完成,這樣充分利用了DSP 的運算能力。在這種架構(gòu)中,雖然考慮了FPGA在時序信號產(chǎn)生上的優(yōu)勢,但FPGA在并行 計算上的優(yōu)勢卻沒有得到利用,而簡單的時序控制往往只能用到FPGA內(nèi)很少的資源,大量 的資源被閑置了,本方案就是考慮到這一點,在FPGA中放入特別適合并行計算的神經(jīng)網(wǎng)絡(luò) 分類器,這樣FPGA可以代替DSP完成其模式識別中的分類環(huán)節(jié),改善了整個信號處理流程 的并行性,從而提高了系統(tǒng)的處理速度,滿足需要實時模式識別要求的應(yīng)用場合。
方案中的DSP使用TI公司的TMS320C6000系列,該系列的EMIF接口支持各種外部器 件的無縫連接,包括SRAM、 SDRAM、 ROM、 FIFO和外部共享器件等等。外部存儲空間劃 分為四個獨立的存儲空間(CE空間),由4根外部片選CE線及對應(yīng)的CE空間控制寄存器控 制。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對己有技術(shù)存在的不足,提供一種在DSP+FPGA架構(gòu)中提高信號實 時模式識別處理速度的系統(tǒng)及方法,能使該架構(gòu)的信號處理速度提高30 50%。
該方法利用FPGA的并行計算能力,將原本需要在DSP中處理的神經(jīng)網(wǎng)絡(luò)分類器放到 FPGA中處理,分?jǐn)偭?DSP的負(fù)擔(dān)。DSP和FPGA間使用EDMA方式在EMIF總線上進行通信,通信過程不占用CPU時間片,而DSP上使用多線程技術(shù),保證在FPGA內(nèi)進行分類處 理時DSP不閑置,做到DSP和FPGA的并行處理。 為實現(xiàn)上述目的,本發(fā)明的構(gòu)思是
基于DSP+FPGA架構(gòu)的嵌入式實時模式識別系統(tǒng),以DSP為主處理芯片,F(xiàn)PGA為協(xié)處 理芯片,存儲器配有SDRAM和FLASH, SDRAM作為主存儲器,提供DSP工作時的內(nèi)存支 持,F(xiàn)LASH作為輔助存儲器,利用其斷電不丟失數(shù)據(jù)的特點來保存DSP的啟動引導(dǎo)數(shù)據(jù)、 程序數(shù)據(jù)和FPGA內(nèi)的神經(jīng)網(wǎng)絡(luò)的權(quán)值數(shù)據(jù)。DSP、 FPGA、 SDRAM和FLASH均連接在DSP 的EMIF總線上,方便它們互相進行數(shù)據(jù)交互。系統(tǒng)除了以上核心部分外,還配有信號采集、 自動控制、輸出顯示和人機交互等外圍模塊,但與本發(fā)明的核心內(nèi)容無關(guān),故不再詳細(xì)介紹。
DSP的4個外部存儲空間(CE空間)中,CEO配置為同步空間,分配給主存儲設(shè)備SDRAM, CE1和CE2配置為異步空間,分別分配給FLASH和FPGA的內(nèi)部RAM。 DSP的EMIF接口 的地址線、數(shù)據(jù)線和控制線除了要連接到SDRAM和FLASH的相應(yīng)引腳外,還需要連接到 FPGA的引腳上。
對于待識別的信號,其整個處理流程如下
1. DSP通過信號采集線程得到待識別的信號。
2. DSP對于采集到的信號進行預(yù)處理,得到信號中若干個感興趣的目標(biāo),這些目標(biāo)就是 需要進行模式識別的主體。
3. DSP對于每一個感興趣的目標(biāo)進行特征提取,將提取到的特征打包,通過EMIF總線 以增強型直接存儲器訪問(EDMA)方式發(fā)送給FPGA進行識別分類。
4. FPGA利用片內(nèi)RAM接收DSP傳來的特征包,將特征對應(yīng)的輸入到FPGA內(nèi)的神經(jīng) 網(wǎng)絡(luò)分類器模塊中,經(jīng)過該模塊后的分類結(jié)果再反傳遞回片內(nèi)RAM中暫時儲存,在 DSP需要時通過EMIF總線將該結(jié)果發(fā)送給DSP。
5. DSP通過查詢的方式訪問FPGA內(nèi)RAM的一個地址,該地址記錄了 FPGA內(nèi)還未被 DSP拿回的分類結(jié)果數(shù),如果該數(shù)大于0,則DSP從FPGA中讀出個分類結(jié)果,對 該結(jié)果進行相應(yīng)的后續(xù)處理和輸出控制。
根據(jù)上述發(fā)明構(gòu)思,本發(fā)明采用下述技術(shù)方案
一種在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的系統(tǒng)。其特征在于系統(tǒng)結(jié)構(gòu) 為用DSP、 FPGA、 SDRAM和FLASH 4個芯片搭建成信號實時模式識別核心,其中DSP作 為主處理芯片,F(xiàn)PGA作為協(xié)處理芯片,SDRAM作為主存儲器,提供DSP工作時的內(nèi)存支 持,F(xiàn)LASH作為輔助存儲器。DSP、 FPGA、 SDRAM和FLASH均連接在DSP的EMIF總線上,方便它們互相進行數(shù)據(jù)交互。
上述DSP的EMIF接口有多個CE空間,艮卩CE0 CE3,用其中的一個連接DSP的主存 儲設(shè)備SDRAM,另一個CE空間連接輔助存儲設(shè)備FLASH,而第三個CE空間則連接由所 述FPGA片內(nèi)RAM模擬的一個外部存儲設(shè)備;所述DSP的EMIF接口中的數(shù)據(jù)線、地址線 和讀寫控制線除了常規(guī)的連接到所述SDRAM和所述FLASH夕卜,連同相應(yīng)的CE空間片選線 都還需要再全部連接到所述FPGA的引腳上。
一種在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的方法,采用上述的在 DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的系統(tǒng)進行信號處理,其特征在于整個信 號處理流程為
1. 信號釆集,由DSP完成;
2. 信號預(yù)處理和特征提取,由DSP完成;
3. 神經(jīng)網(wǎng)絡(luò)分類,由FPGA完成;
4. 處理分類結(jié)果,由DSP完成。
為配合上述流程,DSP中使用多線程技術(shù)實現(xiàn)4個線程,分別為主線程、信號采集、信 號處理和結(jié)果處理線程
主線程是其它3個線程的管理核心,其流程為
1. 完成DSP初始化;
2. 啟動其它3個線程;
3. 進入等待狀態(tài)。
信號采集線程完成輸入信號的采集,其流程為
1. 初始化采集設(shè)備;
2. 打開采集端口;
3. 等待信號輸入,若有,則進入步驟4;否則繼續(xù)等待;
4. 將采集到的信號放入一個在主存儲設(shè)備SDRAM上的隊列——輸入信號隊列,然后回 到步驟3。
信號處理線程完成信號的預(yù)處理和特征提取,其流程為
1. 判斷輸入信號隊列是否為空,若為空,則繼續(xù)判斷;否則進入步驟2;
2. 從輸入信號隊列中讀出一組輸入信號;
3. 對輸入信號進行預(yù)處理;
4. 檢測輸入信號中的感興趣目標(biāo),這些目標(biāo)就是需要進行模式識別的主體;5. 判斷還未處理的感興趣目標(biāo)的數(shù)量,若數(shù)量大于0,則進入步驟6;否則回到步驟l;
6. 對一個未處理的感興趣目標(biāo),對其進行特征提取;
7. 用步驟6中提取到的特征數(shù)據(jù)生成特征包;
8. 觸發(fā)DSP和FPGA之間的增強型直接存儲器訪問(EDMA),將特征包通過EMIF總線 傳遞給FPGA,然后回到步驟5。
結(jié)果處理線程完成分類結(jié)果的處理,其流程為
1. 讀取FPGA上的一個RAM寄存器的值,該寄存器記錄著還未被處理的分類結(jié)果數(shù);
2. 判斷步驟l中讀到的值是否大于0,若是,則進入步驟3,否則回到步驟l;
3. 改變步驟l中的FPGA上的RAM寄存器的值,使其減少l;
4. 從FPGA中讀出一個神經(jīng)網(wǎng)絡(luò)分類的結(jié)果;
5. 對分類結(jié)果進行相應(yīng)處理;
6. 進行人機交互和決策控制,然后回到步驟l。
另外,在整個模式識別流程中,F(xiàn)PGA為DSP分?jǐn)偭松窠?jīng)網(wǎng)絡(luò)分類器的工作,其工作流 程為-
1. 系統(tǒng)啟動時,所述FPGA從FLASH中通過EMIF總線讀入神經(jīng)網(wǎng)絡(luò)的權(quán)值數(shù)據(jù),由 FPGA內(nèi)的權(quán)值初始化模塊完成這一工作;
2. 在所述DSP觸發(fā)EDMA發(fā)送特征包數(shù)據(jù)給FPGA時,F(xiàn)PGA由RAM和RAM控制 模塊來接收這些數(shù)據(jù),其中RAM模塊接收EMIF數(shù)據(jù)線上的數(shù)據(jù),RAM控制模塊 接收EMIF地址線和控制線上的信號,產(chǎn)生RAM的寫地址供RAM模塊使用;
3. 接收到DSP發(fā)送來的特征包數(shù)據(jù)后,F(xiàn)PGA內(nèi)的神經(jīng)網(wǎng)絡(luò)分類器模塊從RAM模塊中 讀出這些特征包數(shù)據(jù),進行神經(jīng)網(wǎng)絡(luò)分類后將結(jié)果送回RAM模塊中,在此過程中, 神經(jīng)網(wǎng)絡(luò)分類器模塊需要用到權(quán)值初始化模塊中的權(quán)值,同時RAM控制模塊負(fù)責(zé)協(xié) 調(diào)和控制RAM的讀寫狀態(tài)以及提供RAM的讀寫地址;
4. 當(dāng)DSP需要讀出FPGA中的分類結(jié)果時,F(xiàn)PGA由RAM和RAM控制模塊來發(fā)送這 些數(shù)據(jù),其中RAM模塊將數(shù)據(jù)發(fā)送到EMIF數(shù)據(jù)線上,RAM控制模塊接收EMIF 地址線和控制線上的信號,產(chǎn)生RAM的讀地址供RAM模塊使用。
本發(fā)明與現(xiàn)有相關(guān)技術(shù)相比較,具有如下優(yōu)點
1.現(xiàn)有的DSP+FPGA方案對于FPGA的利用僅限于輸入輸出控制、時序控制或信號切 換等方面,沒有充分利用到FPGA并行計算的優(yōu)勢,本發(fā)明很好的改善了這一問題, 將更適合于并行計算的神經(jīng)網(wǎng)絡(luò)分類器放到FPGA中實現(xiàn),使FPGA成為真正意義上的協(xié)處理芯片。
2. DSP上利用多線程技術(shù),可以很好的和FPGA配合,在FPGA進行分類時,DSP不 用等待其結(jié)果,而是可以做別的事,由于FPGA為DSP分?jǐn)偭朔诸惼鞯墓ぷ?,使?DSP的信號處理周期變短,這樣DSP和FPGA的并行信號處理使模式識別的速度大 大提升。
圖1系統(tǒng)組成結(jié)構(gòu)示意圖。
圖2信號處理流程示意圖。
圖3DSP主線程流程圖。
圖4 DSP信號采集線程流程圖。
圖5 DSP信號處理線程流程圖。
圖6 DSP結(jié)果處理線程流程圖。
圖7FPGA內(nèi)部模塊結(jié)構(gòu)圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明的具體實施方式
進行詳細(xì)地描述。
參見圖1,本在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的系統(tǒng)是用DSP、 FPGA、 SDRAM和FLASH 4個硬件芯片搭建成信號實時模式識別核心,其中DSP作為主處 理芯片,F(xiàn)PGA作為協(xié)處理芯片,SDRAM作為主存儲器,提供DSP工作時的內(nèi)存支持,F(xiàn)LASH 作為輔助存儲器。DSP、 FPGA、 SDRAM和FLASH均連接在DSP的EMIF總線上,方便它 們互相進行數(shù)據(jù)交互。
在圖1的系統(tǒng)組成結(jié)構(gòu)示意圖中,選擇DSP芯片為TI的TMS320DM642, FPGA芯片為 Altera的EP2C20, SDRAM用4塊MT48LC16M16A2FG,共計容量128MB和64位數(shù)據(jù)線, FLASH選擇AM29LV033C-WD(4MB)。
DSP的CEO連至l」4塊SDRAM的CS膽卩,CE1連至U FLASH的CS展卩,CE2接入FPGA。 另外,EMIF的數(shù)據(jù)線、地址線和控制線分別和SDRAM和FLASH的數(shù)據(jù)線、地址線、控制 線相連,同時它們也一起接入FPGA。
圖2所示為整個信號處理流程,DSP通過信號采集、預(yù)處理和特征提取得到可以進行模 式分類的特征包,DSP將該特征包通過EDMA方式從EMIF總線上發(fā)送給FPGA。 FPGA對 特征數(shù)據(jù)進行神經(jīng)網(wǎng)絡(luò)分類后,將結(jié)果暫時儲存。DSP在需要分類結(jié)果進行后續(xù)處理的時候, 從FPGA內(nèi)讀出分類結(jié)果,完成相應(yīng)后續(xù)處理后輸出。所述的流程中,信號采集由DSP的信號采集線程完成,預(yù)處理和特征提取由DSP的信號處理線程完成,神經(jīng)網(wǎng)絡(luò)分類由FPGA內(nèi) 部模塊完成,處理分類結(jié)果由DSP的結(jié)果處理線程完成。
圖3為DSP的主線程流程圖,主線程在完成DSP初始化后,啟動其它線程,自身進入 等待狀態(tài)。
圖4為DSP的信號采集線程流程圖,在初始化采集設(shè)備和打開采集端口后,線程開始等 待信號輸入, 一旦有新的信號輸入,則將該信號的數(shù)據(jù)內(nèi)容加入到輸入信號隊列中,該隊列 是一段SDRAM上的全局內(nèi)存,我們用程序?qū)崿F(xiàn)其具有先入先出特性的數(shù)據(jù)結(jié)構(gòu)。
圖5為DSP的信號處理線程流程圖,若輸入信號隊列不為空,則從其中讀出一個輸入信 號,對該信號進行預(yù)處理,檢測其中的感興趣目標(biāo),若信號中存在若千感興趣目標(biāo),則對每 一個感興趣目標(biāo)進行特征提取,將提取到的特征打包后,通過EDMA方式發(fā)送給FPGA。
圖6為DSP的結(jié)果處理線程流程圖,線程通過讀取FPGA上的一個RAM寄存器的值來 判斷FPGA是否有還未被處理的分類結(jié)果,若有,則從FPGA中讀出一個分類結(jié)果,對其進 行結(jié)果處理,最后進行輸出和決策控制。
圖7為FPGA內(nèi)部模塊結(jié)構(gòu)圖,F(xiàn)PGA中和本發(fā)明相關(guān)的有RAM模塊、RAM控制模塊、 權(quán)值初始化模塊和神經(jīng)網(wǎng)絡(luò)分類器模塊,圖中各模塊間的實線連線為數(shù)據(jù)連線,虛線連線為 控制連線,模塊間的連接方式具體為
1. RAM模塊對外為FPGA引腳,連接DSP的EMIF接口的64根數(shù)據(jù)線,RAM的讀寫 控制線和地址線接RAM控制模塊,RAM的數(shù)據(jù)線除了接FPGA引腳外,還連接到 神經(jīng)網(wǎng)絡(luò)分類器模塊,提供神經(jīng)網(wǎng)絡(luò)分類器模塊的輸入數(shù)據(jù)以及接收神經(jīng)網(wǎng)絡(luò)分類器 模塊的輸出數(shù)據(jù)。
2. RAM控制模塊對外為FPGA引腳,連接DSP的EMIF接口的地址線、讀寫控制線和 CE空間選通線(CE2), RAM控制模塊還連接神經(jīng)網(wǎng)絡(luò)分類器模塊的狀態(tài)信號和神經(jīng) 網(wǎng)絡(luò)分類器模塊的讀寫RAM信號,通過接收DSP和神經(jīng)網(wǎng)絡(luò)分類器模塊對RAM的 讀寫狀態(tài)和需求,RAM控制模塊產(chǎn)生RAM的讀寫控制信號和地址信號,同時產(chǎn)生 神經(jīng)網(wǎng)絡(luò)分類器模塊的控制信號。
3. 神經(jīng)網(wǎng)絡(luò)分類器模塊連接RAM模塊的數(shù)據(jù)線,其狀態(tài)和對RAM的讀寫需求通過內(nèi) 部信號線連入RAM控制模塊,同時,神經(jīng)網(wǎng)絡(luò)分類器模塊接收RAM控制模塊對其 的控制信號。在神經(jīng)網(wǎng)絡(luò)分類過程中,神經(jīng)網(wǎng)絡(luò)分類器模塊從權(quán)值初始化模塊讀入運 算所需的權(quán)值。
4. 權(quán)值初始化模塊對外為FPGA引腳,連接DSP的EMIF接口中的FLASH相關(guān)數(shù)據(jù)線、地址線和控制線。在系統(tǒng)啟動的時候,權(quán)值初始化模塊從FLASH中讀出神經(jīng)網(wǎng)絡(luò)的 權(quán)值。在神經(jīng)網(wǎng)絡(luò)分類器模塊進行運算時,權(quán)值初始化模塊提供權(quán)值。需要注意的是, 權(quán)值初始化模塊的FPGA對外引腳和RAM模塊及RAM控制模塊的FPGA對外引腳 在物理上有一部分是相同的,但這并不會造成沖突,因為權(quán)值初始化模塊的對外引腳 僅在系統(tǒng)啟動的時候起作用,之后不會用到,在時間上和RAM模塊及RAM控制模 塊的FPGA對外引腳沒有沖突。 本在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的方法,采用上述系統(tǒng)進行信號 處理,其特征在于整個信號處理流程為-
1. 信號采集,由DSP完成;
2. 信號預(yù)處理和特征提取,由DSP完成;
3. 神經(jīng)網(wǎng)絡(luò)分類,由FPGA完成;
4. 處理分類結(jié)果,由DSP完成。
為配合上述流程,DSP中使用多線程技術(shù)實現(xiàn)4個線程,分別為主線程、信號采集、信 號處理和結(jié)果處理線程
主線程是其它3個線程的管理核心,其流程為
1. 完成DSP初始化;
2. 啟動其它3個線程;
3. 進入等待狀態(tài)。
信號采集線程完成輸入信號的采集,其流程為
1. 初始化采集設(shè)備;
2. 打開采集端口;
3. 等待信號輸入,若有,則進入步驟4;否則繼續(xù)等待;
4. 將采集到的信號放入一個在主存儲設(shè)備SDRAM上的隊列——輸入信號隊列,然后回 到步驟3。
信號處理線程完成信號的預(yù)處理和特征提取,其流程為
1. 判斷輸入信號隊列是否為空,若為空,則繼續(xù)判斷;否則進入步驟2;
2. 從輸入信號隊列中讀出一組輸入信號;
3. 對輸入信號進行預(yù)處理;
4. 檢測輸入信號中的感興趣目標(biāo),這些目標(biāo)就是需要進行模式識別的主體;
5. 判斷還未處理的感興趣目標(biāo)的數(shù)量,若數(shù)量大于0,則進入步驟6;否則回到步驟l;6. 對一個未處理的感興趣目標(biāo),對其進行特征提??;
7. 用步驟6中提取到的特征數(shù)據(jù)生成特征包;
8. 觸發(fā)dsp和fpga之間的增強型直接存儲器訪問(edma),將特征包通過emif總線 傳遞給fpga,然后回到步驟5。
結(jié)果處理線程完成分類結(jié)果的處理,其流程為
1. 讀取fpga上的一個ram寄存器的值,該寄存器記錄著還未被處理的分類結(jié)果數(shù);
2. 判斷步驟1中讀到的值是否大于O,若是,則進入步驟3,否則回到步驟l;
3. 改變步驟1中的fpga上的ram寄存器的值,使其減少1;
4. 從fpga中讀出一個神經(jīng)網(wǎng)絡(luò)分類的結(jié)果;
5. 對分類結(jié)果進行相應(yīng)處理;
6. 進行人機交互和決策控制,然后回到步驟l。
另外,在整個模式識別流程中,fpga為dsp分?jǐn)偭松窠?jīng)網(wǎng)絡(luò)分類器的工作,其工作流 程為
1. 系統(tǒng)啟動時,所述fpga從flash中通過emif總線讀入祌經(jīng)網(wǎng)絡(luò)的權(quán)值數(shù)據(jù),由 fpga內(nèi)的權(quán)值初始化模塊完成這-工作;
2. 在所述dsp觸發(fā)edma發(fā)送特征包數(shù)據(jù)給fpga時,fpga由ram和ram控制 模塊來接收這些數(shù)據(jù),其中ram模塊接收emif數(shù)據(jù)線上的數(shù)據(jù),ram控制模塊 接收emif地址線和控制線上的信號,產(chǎn)生ram的寫地址供ram模塊使用;
3. 接收到dsp發(fā)送來的特征包數(shù)據(jù)后,fpga內(nèi)的神經(jīng)網(wǎng)絡(luò)分類器模塊從ram模塊中 讀出這些特征包數(shù)據(jù),進行神經(jīng)網(wǎng)絡(luò)分類后將結(jié)果送回ram模塊中,在此過程中, 神經(jīng)網(wǎng)絡(luò)分類器模塊需要用到權(quán)值初始化模塊中的權(quán)值,同時ram控制模塊負(fù)責(zé)協(xié) 調(diào)和控制ram的讀寫狀態(tài)以及提供ram的讀寫地址;
4. 當(dāng)dsp需要讀出fpga中的分類結(jié)果時,fpga由ram和ram控制模塊來發(fā)送這 些數(shù)據(jù),其中ram模塊將數(shù)據(jù)發(fā)送到emif數(shù)據(jù)線上,ram控制模塊接收emif 地址線和控制線上的信號,產(chǎn)生ram的讀地址供ram模塊使用。
當(dāng)然,以上所述僅是本發(fā)明的一種優(yōu)選實施方式而已,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普 通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和 潤飾也應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
1、一種在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的系統(tǒng)。其特征在于系統(tǒng)結(jié)構(gòu)為用DSP、FPGA、SDRAM和FLASH 4個芯片搭建成信號實時模式識別核心,其中DSP作為主處理芯片,F(xiàn)PGA作為協(xié)處理芯片,SDRAM作為主存儲器,提供DSP工作時的內(nèi)存支持,F(xiàn)LASH作為輔助存儲器。DSP、FPGA、SDRAM和FLASH均連接在DSP的EMIF總線上,方便它們互相進行數(shù)據(jù)交互。
2、 根據(jù)權(quán)利要求1所述的在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的系統(tǒng),其 特征在于所述DSP的EMIF接口有多個CE空間,即CEO CE3,用其中的一個連接DSP 的主存儲設(shè)備SDRAM,另一個CE空間連接輔助存儲設(shè)備FLASH,而第二個CE空間則 連接由所述FPGA片內(nèi)RAM模擬的一個外部存儲設(shè)備;所述DSP的EMIF接口中的數(shù)據(jù) 線、地址線和讀寫控制線除了常規(guī)的連接到所述SDRAM和所述FLASH外,連同相應(yīng)的 CE空間片選線都還需要再全部連接到所述FPGA的引腳上。
3、 一種在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的方法,采用根據(jù)權(quán)利要求1 所述的在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的系統(tǒng)進行信號處理,其特 征在于整個信號處理流程為(1) 信號采集,由DSP完成;(2) 信號預(yù)處理和特征提取,由DSP完成;(3) 神經(jīng)網(wǎng)絡(luò)分類,由FPGA完成;(4) 處理分類結(jié)果,由DSP完成。
4、 根據(jù)權(quán)利要求3所述的在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的方法,其 特征在于所述DSP為了配合整個信號處理流程,采用多線程技術(shù), 一共實現(xiàn)4個線程, 分別為主線程、信號采集、信號處理和結(jié)果處理線程,其中主線程是其它3個線程的管理 核心,主線程的流程為-(1) 完成DSP初始化;(2) 啟動其它3個線程;(3) 進入等待狀態(tài)。
5、 根據(jù)權(quán)利要求3所述的在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的方法,其 特征在于所述流程(1)信號采集是在所述DSP中使用信號采集線程來完成,其流程為(1) 初始化采集設(shè)備;(2) 打開采集端口;(3) 等待信號輸入,若有,則進入步驟(4);否則繼續(xù)等待;(4)將采集到的信號放入一個在主存儲設(shè)備SDRAM上的隊列——輸入信號隊列,然 后回到步驟(3)。
6、 根據(jù)權(quán)利要求3所述的在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的方法,其 特征在于所述流程(2)信號預(yù)處理和特征提取是在所述DSP中使用信號處理線程來完成, 其流程為(1) 判斷輸入信號隊列是否為空,若為空,則繼續(xù)判斷;否則進入步驟(2);(2) 從輸入信號隊列中讀出一組輸入信號;(3) 對輸入信號進行預(yù)處理;(4) 檢測輸入信號中的感興趣目標(biāo),這些目標(biāo)就是需要進行模式識別的主體;(5) 判斷還未處理的感興趣目標(biāo)的數(shù)量,若數(shù)量大于0,則進入步驟(6);否則回到步 驟(1);(6) 對一個未處理的感興趣目標(biāo),對其進行特征提??;(7) 用步驟(6)中提取到的特征數(shù)據(jù)生成特征包;(8) 觸發(fā)DSP和FPGA之間的增強型直接存儲器訪問(EDMA),將特征包通過EMIF 總線傳遞給FPGA,然后回到步驟(5)。
7、 根據(jù)權(quán)利要求3所述的在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的方法,其 特征在于所述流程(4)處理分類結(jié)果是在所述DSP中使用結(jié)果處理線程來完成,其流程 為(1) 讀取FPGA上的一個RAM寄存器的值,該寄存器記錄著還未被處理的分類結(jié)果數(shù);(2) 判斷步驟(1)中讀到的值是否大于0,若是,則進入步驟(3),否則回到步驟(1);(3) 改變步驟(1)中的FPGA上的RAM寄存器的值,使其減少1;(4) 從FPGA中讀出一個神經(jīng)網(wǎng)絡(luò)分類的結(jié)果;(5) 對分類結(jié)果進行相應(yīng)處理;(6) 進行人機交互和決策控制,然后回到步驟(1)。
8、 根據(jù)權(quán)利要求3所述的在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的方法,其 特征在于所述流程(3)神經(jīng)網(wǎng)絡(luò)分類是用所述FPGA來完成,其流程為(1) 系統(tǒng)啟動時,所述FPGA從FLASH中通過EMIF總線讀入神經(jīng)網(wǎng)絡(luò)的權(quán)值數(shù)據(jù), 由FPGA內(nèi)的權(quán)值初始化模塊完成這一工作;(2) 在所述DSP觸發(fā)EDMA發(fā)送特征包數(shù)據(jù)給FPGA時,F(xiàn)PGA由RAM和RAM控 制模塊來接收這些數(shù)據(jù),其中RAM模塊接收EMIF數(shù)據(jù)線上的數(shù)據(jù),RAM控制模塊接收EMIF地址線和控制線上的信號,產(chǎn)生RAM的寫地址供RAM模塊使用;(3) 接收到DSP發(fā)送來的特征包數(shù)據(jù)后,F(xiàn)PGA內(nèi)的神經(jīng)網(wǎng)絡(luò)分類器模塊從RAM模 塊中讀出這些特征包數(shù)據(jù),進行神經(jīng)網(wǎng)絡(luò)分類后將結(jié)果送回RAM模塊中,在此過 程中,神經(jīng)網(wǎng)絡(luò)分類器模塊需要用到權(quán)值初始化模塊中的權(quán)值,同時RAM控制模 塊負(fù)責(zé)協(xié)調(diào)和控制RAM的讀寫狀態(tài)以及提供RAM的讀寫地址;(4) 當(dāng)DSP需要讀出FPGA中的分類結(jié)果時,F(xiàn)PGA由RAM和RAM控制模塊來發(fā)送 這些數(shù)據(jù),其中RAM模塊將數(shù)據(jù)發(fā)送到EMIF數(shù)據(jù)線上,RAM控制模塊接收EMIF 地址線和控制線上的信號,產(chǎn)生RAM的讀地址供RAM模塊使用。
全文摘要
本發(fā)明涉及一種在DSP+FPGA架構(gòu)中提高信號實時模式識別處理速度的系統(tǒng)及方法。本發(fā)明的系統(tǒng)結(jié)構(gòu)為用DSP、FPGA、SDRAM和FLASH這4個硬件芯片(組)搭建的信號實時模式識別核心。其中DSP作為主處理芯片,F(xiàn)PGA作為協(xié)處理芯片,SDRAM作為主存儲器,提供DSP工作時的內(nèi)存支持,F(xiàn)LASH作為輔助存儲器。本發(fā)明中的DSP采用多線程來配合整個信號處理流程,一共實現(xiàn)4個線程,分別為主線程、信號采集、信號處理和結(jié)果處理線程。該方法改善了系統(tǒng)數(shù)據(jù)處理的并行性,提高了系統(tǒng)的信號處理速度,為嵌入式實時高速信號模式識別系統(tǒng)提供了一種基于DSP+FPGA架構(gòu)的解決方案。
文檔編號G06K9/00GK101673343SQ20091019718
公開日2010年3月17日 申請日期2009年10月15日 優(yōu)先權(quán)日2009年10月15日
發(fā)明者穎 張, 輝 楊, 袁承宗, 臻 金, 陸小鋒 申請人:上海大學(xué)