當(dāng)前位置:首頁 > EDA > 電子設(shè)計自動化
[導(dǎo)讀]本文介紹了基于SOPC、嵌入生物特征的個人證件識讀器設(shè)計。本設(shè)計采用Altera公司的FPGA軟核處理器以及通用IP核實現(xiàn)系統(tǒng)的集成化,并且用C2H工具對軟件算法的瓶頸進(jìn)行硬件加速處理,系統(tǒng)性能得到了明顯提高。

摘   要:在現(xiàn)今的電子產(chǎn)品開發(fā)領(lǐng)域中,基于FPGA的SOPC占有極其重要的地位。本文介紹了基于SOPC、嵌入生物特征的個人證件識讀器設(shè)計。其中,生物特征主要以聲紋特征為目標(biāo),將其嵌入到二維條形碼中,再打印條碼到個人證件上,用于個人證件的防偽驗證。本設(shè)計采用Altera公司的FPGA軟核處理器以及通用IP核實現(xiàn)系統(tǒng)的集成化,并且用C2H工具對軟件算法的瓶頸進(jìn)行硬件加速處理,系統(tǒng)性能得到了明顯提高。
關(guān)鍵詞: SOPC;IP核;二維條形碼;C2H

引言
    SOPC可編程片上系統(tǒng)是一種獨特的嵌入式微處理系統(tǒng)。首先,它是SoC,即由單個芯片完成整個系統(tǒng)的主要邏輯功能;其次,它是可編程系統(tǒng),以FPGA為硬件基礎(chǔ),具有靈活的設(shè)計方式,可裁減、可擴(kuò)充、可升級,并具備軟硬件系統(tǒng)在線可編程的能力。

    本系統(tǒng)采用了Altera公司的Cyclone II FPGA開發(fā)平臺和相應(yīng)的開發(fā)工具Quartus II進(jìn)行系統(tǒng)硬件部分的開發(fā);利用Nios II IDE實現(xiàn)了語音識別算法的編譯、鏈接、調(diào)試和運行;同時還應(yīng)用了Altera公司獨具特色的C2H加速工具,實現(xiàn)了語音算法程序的硬件加速,使系統(tǒng)性能得到了明顯的提升。

    此次設(shè)計采用了二維條形碼進(jìn)行語音特征的存儲,一方面是考慮到二維條形碼的成本很低,市場應(yīng)用潛力巨大;另一方面,正因為在個人證件上擁有了二維條形碼,系統(tǒng)可以脫離數(shù)據(jù)庫的支持,變得更加靈活實用。

系統(tǒng)結(jié)構(gòu)
    本設(shè)計采用SOPC的可編程設(shè)計思想,以Cyclone II中實現(xiàn)的Nios II處理器為核心,系統(tǒng)架構(gòu)如圖1所示。

    中心處理模塊可以接收其他模塊的數(shù)據(jù),并進(jìn)行處理,再將處理結(jié)果送到外部設(shè)備進(jìn)行顯示和報告。語音采集模塊在用戶注冊和認(rèn)證時采集用戶口令(即語音),其中包含A/D采樣、量化、編碼等,并會將數(shù)字形式的數(shù)據(jù)送到中心處理模塊等待處理。系統(tǒng)以串口掃描槍做為條碼掃描設(shè)備,用于讀取個人證件上嵌入聲紋特征的二維條形碼中的數(shù)據(jù),這些數(shù)據(jù)是在用戶注冊時生成的。



圖1 系統(tǒng)結(jié)構(gòu)框圖

    本設(shè)計將SOPC設(shè)計與二維條形碼數(shù)據(jù)存儲相結(jié)合,不僅發(fā)揮了各自的特點,而且擴(kuò)寬了應(yīng)用領(lǐng)域。

    系統(tǒng)工作流程分為注冊和驗證兩個階段。注冊過程需要采集同一用戶的多個語音,通過注冊算法生成個人的生物特征,將其嵌入到二維條碼中,再打印條碼到此用戶的個人證件上。這樣的證件具備了唯一、不易復(fù)制等特點,從而提高了證件的安全性能。對證件進(jìn)行驗證時,先用條碼掃描設(shè)備讀取條碼中的特征數(shù)據(jù),然后現(xiàn)場采集證件持有人的語音,進(jìn)行比對,給出驗證結(jié)果。

硬件的具體實現(xiàn)
    本設(shè)計以32位Nios II軟核處理器為系統(tǒng)的核心部分,負(fù)責(zé)執(zhí)行指令和數(shù)據(jù)運算。各種IP都可以通過SOPC Builder連接到Avalon總線上,其中包含用戶自定義的外設(shè)。用戶外設(shè)的編寫需要符合Avalon總線的規(guī)范。

    系統(tǒng)硬件結(jié)構(gòu)如圖2所示,包括CPU、UART、LCD、三態(tài)橋、片外存儲器控制,以及各種輸入/輸出控制,這些IP都可以直接復(fù)用。這樣的系統(tǒng)設(shè)計方法不僅模塊化,而且大大縮短了系統(tǒng)設(shè)計周期。FFT運算模塊不僅可以直接使用IP,還可以用C2H加速工具來提高系統(tǒng)性能。在此次設(shè)計中,F(xiàn)FT、DCT以及數(shù)據(jù)量較大的循環(huán)運算都采用C2H完成了硬件加速,效果較為明顯。

Nios II軟核處理器
     Nios II是32位軟核處理器,具有較高的性能。本設(shè)計在Altera的Cyclone II上實現(xiàn)了處理器的配置,可以通過添加用戶自定義指令來增強(qiáng)系統(tǒng)設(shè)計性能,同時可以添加多個片內(nèi)存儲器來提高數(shù)據(jù)的處理能力。

串口通信
    本設(shè)計用到的掃描槍通過串口(UART)連接到開發(fā)平臺上,目的是對二維條形碼中包含語音特征的數(shù)據(jù)進(jìn)行讀取,通過Avalon總線將數(shù)據(jù)傳送到相應(yīng)的片外存儲器中等待處理。

Timer
    本設(shè)計利用SOPC Builder工具將兩個Timer掛到Avalon總線上。其中一個設(shè)置為在IDE中運行C程序時的系統(tǒng)時鐘,另外一個用作計時器。算法程序中設(shè)置了多個時間戳(Timestamp),相鄰兩個時間戳內(nèi)程序段的運行時間可以用這兩個時間戳的差值來表示。時間戳的設(shè)置對程序運行沒有影響。設(shè)置計時器的最終目的是:將完全的軟件實現(xiàn)與用C2H加速后的程序運行時間進(jìn)行比較。

語音采集和語音報告驗證結(jié)果
    系統(tǒng)中,語音采集和語音報告驗證結(jié)果部分均由Wolfson公司的WM8731L完成。WM8731L可以獨立于Nios II軟核處理器單獨工作,其控制模塊可按照I2C總線的時序編寫。WM8731L內(nèi)部含有A/D、D/A模塊,同時具備較高的采樣率和量化精度。本設(shè)計采用了8kHz的采樣率,16位的量化精度。

    在語音采集部分,由于A/D是串行數(shù)據(jù)輸出,因此編寫了串行到并行數(shù)據(jù)轉(zhuǎn)換以及寫SRAM控制的Verilog模塊。語音報告結(jié)果部分通過GPIO與CPU進(jìn)行數(shù)據(jù)、地址通信,將不同的語音按照不同的驗證結(jié)果播放出來,這些語音的數(shù)據(jù)已經(jīng)事先燒寫進(jìn)FLASH中。GPIO的控制可以通過Nios IDE來完成。類似地,播放語音部分由于從FLASH讀出的數(shù)據(jù)是并行的,因此編寫了并行到串行數(shù)據(jù)轉(zhuǎn)換的Verilog模塊。



圖2 系統(tǒng)硬件結(jié)構(gòu)


加速模塊
    首先,在Nios IDE下運行算法C語言程序,利用計時器找出程序運行的瓶頸環(huán)節(jié)。而后對瓶頸部分利用C2H工具進(jìn)行硬件加速,從而提高系統(tǒng)性能。這部分主要包括FFT運算加速和循環(huán)運算加速模塊。

軟件流程
    個人證件的驗證流程如圖3所示。驗證分為兩個基本過程,首先要讀取條碼中的數(shù)據(jù),即用戶登錄;然后采集用戶語音,即用戶身份輸入。經(jīng)過特征比對,給出驗證結(jié)果,由此可以說明用戶現(xiàn)場所持證件是否屬于其個人。

C2H硬件加速
    Nios II C2H加速器可以將ANSI C源程序代碼轉(zhuǎn)換成用戶自定義的硬件加速模塊。利用C2H工具,開發(fā)人員首先在Altera Nios II處理器中開發(fā)和調(diào)試C語言算法,而后將分析出的C程序瓶頸代碼轉(zhuǎn)換成硬件加速模塊。硬件加速模塊被掛到Avalon總線上,作為用戶外設(shè)來使用。由此實現(xiàn)了從軟件運行算法到硬件加速處理的轉(zhuǎn)換過程。需要注意的是,并不是所有的C代碼都可以轉(zhuǎn)換成硬件加速模塊。C2H編譯器的特點如下:
①支持大部分的ANSI C代碼和C語言結(jié)構(gòu),如指針、堆棧、結(jié)構(gòu)體、全局和局部變量、循環(huán)、函數(shù)調(diào)用等;
②C2H編譯器可以將C語言的語法成分映射為硬件結(jié)構(gòu),而且用戶可以控制這些硬件加速結(jié)構(gòu);
③由于IDE6.0整合了C2H工具,用戶無需學(xué)習(xí)新的開發(fā)環(huán)境;
④C2H可以利用SOPC Builder將加速好的硬件結(jié)構(gòu)自動連接到Avalon總線上,無需用戶手動處理;
⑤C2H可以產(chǎn)生硬件結(jié)構(gòu)、資源利用率等詳細(xì)報告。

    本設(shè)計中規(guī)定用戶采集語音的時長約為1s,內(nèi)容為“你好”。在這樣的條件下,利用計時器計算從預(yù)處理到給出識別結(jié)果的程序運行時間。系統(tǒng)時鐘頻率設(shè)置為50MHz。通過試驗,得出運行時間約為5s,這顯然不能滿足實際需求。對實驗結(jié)果進(jìn)行分析,發(fā)現(xiàn)程序運行耗時主要集中在預(yù)處理和特征提取這部分,將其稱為“前端”。經(jīng)過分析前端的代碼運行情況,設(shè)計師發(fā)現(xiàn)程序運行時間較長的主要原因是該部分包含了大量的矩陣運算和循環(huán)運算。下一步工作就是分析程序的運行瓶頸。經(jīng)過分析研究發(fā)現(xiàn),本設(shè)計算法中的瓶頸主要集中在加窗、FFT和DCT等部分,它們的耗時一般占到整個程序運行的60%以上。若將這些環(huán)節(jié)加速成功,性能將有較大提升。



圖3 驗證過程軟件流程圖


    圖4中顯示了在SOPC Builder中向Avalon總線加載C2H加速器和片內(nèi)RAM的情況。圖中顯示了兩個加速器:accelerator_ c2h_fft_fft和 accelerator_ c2h_fft_ham,分別對應(yīng)FFT和加窗(漢明窗)的硬件加速運算過程,SOPC Builder并沒有為這兩個模塊分配基地址。圖4中最下方的4個片內(nèi)RAM可以起到數(shù)據(jù)緩存的作用。SinRAM與CosRAM為FFT加速運算提供正弦和余弦的查找表數(shù)據(jù),dataRRAM與dataIRAM分別用于存儲FFT運算后生成數(shù)據(jù)的實部和虛部。


圖4 C2H加速器和添加的片內(nèi)RAM


    本設(shè)計中FFT采用256點的運算。軟件FFT與硬件加速FFT計算時間的比較如表1所示,其中V1、V2、V3是設(shè)計中同一用戶注冊時的3段語音(內(nèi)容相同)。通過表1可以看出,完全軟件計算時,FFT耗時大約為2s;利用C2H工具加速后,耗時僅約為0.01s,提速效果良好。而后再將算法程序中其它環(huán)節(jié)進(jìn)行加速,則設(shè)計的整體性能是可以滿足實際需求的。因此,C2H對運行在SOPC系統(tǒng)上軟件算法的加速處理是十分有效的。

結(jié)語
    本文闡述了一種基于FPGA平臺的應(yīng)用設(shè)計實例,不僅能充分體現(xiàn)SOPC設(shè)計理念,而且與生物特征技術(shù)有機(jī)結(jié)合,發(fā)揮了二者的優(yōu)勢,具有廣闊的應(yīng)用前景。另外,本設(shè)計采用了Altera的C2H加速工具對軟件算法進(jìn)行硬件加速,實驗結(jié)果表明利用這種方法進(jìn)行設(shè)計效果明顯。由于使用C2H工具對算法有一定的限制,因此某些情況下,用戶自定義指令和用戶外設(shè)仍然是不可或缺的設(shè)計方法。這幾種設(shè)計手段的有機(jī)結(jié)合是FPGA設(shè)計的主要方向。

參考文獻(xiàn)
1徐光輝,程動旭,黃如.基于FPGA的嵌入式開發(fā)與應(yīng)用.北京:電子工業(yè)出版社,2006
2夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程.北京:北京航空航天大學(xué)出版社,2003
3 EDA先鋒工作室.Altera FPGA/CPLD設(shè)計.北京:人民郵電出版社,2005
4 Nios II C2H Compiler User Guide
5 Quartus II Version 6.0 Handbook. Volume 5: Altera Embedded Peripherals
6 Quatieri, Thomas F. Discrete-time Speech Signal Processing: Principles and Practice.2004

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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