<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入聲紋特征的個人證件識讀器

          嵌入聲紋特征的個人證件識讀器

          ——
          作者:沈陽 馮良 洪誠 時間:2007-03-27 來源:電子設計應用 收藏
          引言 

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

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

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

          系統(tǒng)結構

          本設計采用SOPC的可編程設計思想,以Cyclone II中實現的Nios II處理器為核心,系統(tǒng)架構如圖1所示。

          中心處理模

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

          系統(tǒng)結構框圖

            
          圖1 系統(tǒng)結構框圖

          本設計將SOPC設計與二維條形碼數據存儲相結合,不僅發(fā)揮了各自的特點,而且擴寬了應用領域。

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

          硬件的具體實現

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

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

          Nios II軟核處理器

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

          串口通信

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

          Timer

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

          語音采集和語音報告驗證結果

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

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

          系統(tǒng)硬件結構

            
          圖2 系統(tǒng)硬件結構

          加速模塊

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

            軟件流程

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

          C2H硬件加速

          Nios II C2H加速器可以將ANSI C源程序代碼轉換成用戶自定義的硬件加速模塊。利用C2H工具,開發(fā)人員首先在Altera Nios II處理器中開發(fā)和調試C語言算法,而后將分析出的C程序瓶頸代碼轉換成硬件加速模塊。硬件加速模塊被掛到Avalon總線上,作為用戶外設來使用。由此實現了從軟件運行算法到硬件加速處理的轉換過程。需要注意的是,并不是所有的C代碼都可以轉換成硬件加速模塊。C2H編譯器的特點如下:

          ①支持大部分的ANSI C代碼和C語言結構,如指針、堆棧、結構體、全

          局和局部變量、循環(huán)、函數調用等;

          ②C2H編譯器可以將C語言的語法成分映射為硬件結構,而且用戶可以控制這些硬件加 
          速結構;

          ③由于IDE6.0整合了C2H工具,用戶無需學習新的開發(fā)環(huán)境;

          ④C2H可以利用SOPC Builder將加速好的硬件結構自動連接到Avalon總線上,無需用戶手動處理;

          ⑤C2H可以產生硬件結構、資源利用率等詳細報告。

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

          驗證過程軟件流程圖

            
          圖3 驗證過程軟件流程圖

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

          C2H加速器和添加的片內RAM



          圖4 C2H加速器和添加的片內RAM

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

          結語

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



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();