新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 一種新型SoPC自動指紋識別系統設計

        一種新型SoPC自動指紋識別系統設計

        作者: 時間:2011-01-03 來源:網絡 收藏

        目前,基于FPGA的系統主要有純硬件方式實現[1]和在以Nios II為CPU的軟核中實現[2-4]兩種方式。以純硬件方式實現雖然速度較快,但由于指紋處理算法比較復雜,實現困難,同時算法精度差,設計周期長;而以下載到FPGA的軟核Nios II為控制模塊,具有靈活的設計方式,并具備軟硬件在系統可編程的功能,較大程度上提高了系統速度,但是該方案中軟硬件處理交替進行,涉及到軟硬件之間頻繁的指紋數據傳輸,限制了系統的速度,同時增加了系統的復雜度。

        本文提出了一種基于的新型結構的設計方案。具有以下特點:

        (1)根據對算法的分析和優化,在軟、硬件結合的基礎上將軟件設計和硬件設計分開,把指紋識別系統中耗時較大的圖像預處理部分用硬件來實現,而耗時較少的特征提取、匹配和操作控制等部分則在NiosⅡ軟核中實現。從而使得系統結構明晰,處理性能得到提升。

        (2)用一塊SRAM作指紋處理中間數據的緩存。指紋圖像前期處理以硬件實現,中間數據緩存于SRAM中;指紋圖像后期處理軟件從SRAM中將所有數據讀入NiosⅡ的數據存儲器。這樣的存儲設計使得軟件處理和硬件處理之間不涉及大量的數據流傳輸,使軟硬件數據接口簡單,數據流的控制更加簡單易行,同時避免了頻繁的軟硬件數據傳輸帶來的時間消耗。

        (3)在軟硬件處理結合的基礎上使指紋處理時間大大降低,1.5 s內可以完成一幅指紋圖像的預處理,3 s內可以完成一幅指紋圖像的比對。

        1 設計思路

        1.1 指紋系統結構

        從整個指紋處理系統的角度來考慮,根據各算法處理特性仔細地劃分系統子模塊。通過對指紋處理算法的分析發現,指紋的預處理部分使用到多次數據循環運算,運算量較大而且單一,使用硬件實現明顯降低時間消耗,所以選擇對指紋的預處理部分實行整體硬件化;對于指紋匹配部分,運算量相對較少但算法復雜多樣,使用軟件算法相對比較簡單而且可以達到很高的精度,所以使用Nios II軟件算法來實現。選擇預處理部分整體硬件化,匹配部分整體軟件化的另外一個好處是軟硬件處理不需要進行頻繁的數據交換傳輸,節省時間的同時降低了系統的復雜度。

        如圖1所示,系統工作流程主要分為指紋硬件采集、指紋圖像硬件預處理和指紋軟件匹配。其中SRAM作為指紋數據的緩存設備,Flash做為指紋特征數據的存儲設備,對指紋數據的處理步驟按照箭頭所指示的方向進行。

        本文引用地址:http://www.104case.com/article/187665.htm


        1.2 NiosⅡ軟件功能

        Nios II作為主要控制模塊,通過Avalon總線協調指紋處理各個子模塊的運行。其中預處理硬件模塊由于處理中各算法步驟順序執行,所以以一個整體掛在Avalon總線上,方便模塊的控制。指紋圖像預處理后的特征提取匹配使用NiosⅡ軟件實現,指紋數據儲存于程序的數據存儲器中,按照軟件處理流程調用各個函數進行處理。為了方便觀察調試結果,在Avalon上掛有VGA和LCD顯示,每一步算法完成后調用VGA顯示查看處理結果,使用LCD提示處理步驟。

        1.3 硬件優化技術

        針對FPGA算術運算中的乘法、除法易出現的時序問題,對浮點數運算、開方算法、反正切算法等耗費大量資源的通用性問題,特別做了如下優化:

        (1)乘除法均采用Quartus自帶的IP核進行運算,IP核采用流水線結構,減少系統中時序不滿足情況的發生,提高系統的穩定性;

        (2)浮點數運算均通過擴大倍數后轉為定點數再進行運算,可以在降低運算復雜度的同時降低時間消耗;

        (3)開方算法采用不恢復余數開方算法實現,只涉及加減和移位,處理時間只有輸入位寬的1/2,可降低系統消耗,減少處理時間;

        (4)反正切運算采用CORDIC算法,采用狀態機結構,通過反復迭代實現,算法簡單。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 玛纳斯县| 玉山县| 永嘉县| 鸡泽县| 荔浦县| 中方县| 浦县| 曲阜市| 福鼎市| 鸡泽县| 佛学| 海口市| 太和县| 天津市| 荥阳市| 天气| 汉川市| 正定县| 胶南市| 清涧县| 固阳县| 德州市| 恩平市| 开远市| 西吉县| 陈巴尔虎旗| 吉木萨尔县| 安国市| 上虞市| 泰顺县| 新巴尔虎右旗| 郁南县| 工布江达县| 四子王旗| 昆山市| 游戏| 汶川县| 铜梁县| 齐齐哈尔市| 闸北区| 亚东县|