物聯傳媒 旗下網站
登錄 注冊
RFID世界網 >  技術文章  >  制造  >  正文

基于SOPC的指紋識別模塊設計

作者:王秀麗
來源:中國一卡通網
日期:2011-12-06 08:37:34
摘要:本文設計的指紋識別模塊是以FPGA的Nios II處理器為核心的SOPC設計,該設計使系統變得更加小巧、靈活,同時也實現了指紋芯片的前端設計。

  引言 

  未來的系統發展趨勢是實現可編程片上系統(SOPC),將CPU、接口電路都融合到一塊芯片當中。我們采用 Altera公司的 Cyclone系列器件中的 EP1C6Q240C8型號FPGA,它內部可嵌入 Nios II軟核,通過用 VHDL語言設計指紋讀取接口 UART加上模塊需要的 IP核,使用 Quartus II軟件中的SOPC Builder在 FPGA內部構建 Nios II系統,再通過管腳配置,與外圍電路相連,在Nios II IDE環境中實現外圍器件程序設計和指紋識別算法設計。構建一個以 Nios II為處理核心的 SOPC系統,使系統變得更加小巧、靈活。同時也實現了指紋芯片的前端設計,這也是這個課題的研究目的之一,再通過ASIC集成設計電路技術做成超大規模集成電路—指紋識別芯片。這樣擴大了指紋技術的適用范圍和應用市場領域,例如指紋汽車鎖、指紋槍械、指紋掌上電腦、手機等嵌入式應用的廣闊領域。 

  模塊整體硬件設計 

  指紋識別模塊的硬件設計采用 SOPC的設計思路[1],在FPGA內部實現指紋讀取 UART接口、FLASH存儲器接口、SDRAM控制器、PIO控制的鍵盤和 LCD顯示接口。這個充分利用 FPGA的 IP核優勢,利用 SOPCBuilder將這些接口、控制器和 PIO集成到 FPGA內部。各部分之間是通過 Avalon總線相連,形成以 Nios II處理器為核心的 SOPC系統,再通過 TCL腳本語言進行管腳配置,把 FPGA內部的輸入輸出信號配置到 FPGA的 IO管腳上,實現與外圍器件指紋傳感器、SDRAM存儲器芯片、FLASH存儲器芯片、鍵盤和 LCD顯示連接。使用FPGA內部的Nios II 處理器進行控制,保證模塊功能得以實現。整個識別模塊的硬件框圖如圖1。 

  整個模塊各個器件的功能是:FLASH專用配置芯片的作用是存儲程序,每次上電時,為整個系統配置程序。因為FPGA是基于RAM結構的,所以在每次掉電時,程序會丟失。指紋讀取接口 UART是要連接指紋傳感器,進行指紋圖像的正確讀取。FLASH存儲器用來保存指紋模板數據,保證指紋模板掉電后數據不丟失。SDRAM存儲器為輸入指紋數據的隨機存儲和正在匹配的指紋模板數據的存儲。PIO控制,就是直接用FPGA管腳控制鍵盤和LCD顯示。模塊中有1個4×4的按鍵,功能:錄入指紋健、刪除指紋健、確認健、復位健、刪除輸入字符健、關機健、 0~9字符健。LCD顯示匹配結果和各個功能的完成情況。中央控制和處理單元 NiosII處理器主要負責整個系統的協調工作、對外圍器件的操作和指紋算法的處理。

 圖1 

  Altera的Cyclone EP1C6Q240C8型號FPGA,它的LE數目是5980,內部有 2個PLL,能內嵌 3種類型的 Nios II 處理器。且和別的 FPGA相比,能滿足模塊功能并且價格相對比較低廉。故設計中選用這款芯片。 

  利用 SOPC Builder構建 Nios II硬件系統 

  利用 SOPC Builder 組件在加入整個系統正常運行必須的標準性 Nios II 處理器和 RAM 存儲器(onchip_memory)。這是整個指紋識別模塊的核心處理單元。標準性的 NiosII 處理器占用 FPGA1200LE 資源,做到了性能和面積之間平衡,而且在性能上也能滿足本系統設計要求,也為以后添加或修改功能做好準備。RAM 存儲器選擇的數據寬度是32bits,存儲容量4K byte。用來存儲程序中數據和數據緩存。 

  為了使 Nios II 軟核與外部存儲器之間進行通信,必須在Avalon 總線和連接外部存儲器的總線之間加入 Avalon 三態總線橋[2]。可從添加 SOPC Builder 組件菜單中直接添加,如圖 2 所示:  

 圖2 Analon 三態總線橋 

   利用 SOPC Builder 最大的優勢就是利用豐富的 IP 核資源。在 SOPC Builder 圖形界面中添加 SDRAM 控制器 IP 核、FLASH 存儲器接口 IP 核、P IOIP 核。SDRAM 控制器數據總線采用 16 位,Banks 選擇 4 個,FLASH 存儲器接口采用地址總線20,數據總線是16,按鍵選擇 16 個PIO,液晶的控制端口選擇 3 個PIO,數據端口選擇 8 個PIO,這些數據的選擇根據選擇的外圍器件而定。利用 IP 核即節省了開發時間又增加了系統的穩定性。 

  SOPC Builder 有自定義邏輯功能。把設計的指紋讀取接口UART,通過組件編譯器,創建 UART 組件[3],在 Avalon Components 下的 User Logic 中找到UART,把這個 UART 組件加到 SOPC 系統中。在 SOPC Builder 中添加的 Nios II 處理器、存儲器、各種接口都是通過 Avalon 總線連接到一起的,在 Nios II 處理器協調下使各模塊互相協調工作。Avalon 總線總線提供一個通道,使數據可以在各個模塊之間高速的流動。對于總線競爭的問題,借助于 Avalon 總線所支持的主從外設訪問方式可以得到有效的解決。本設計中,將通道中數據的流動分成主動和被動兩個響應方式。在主動響應方式下,數據的流動由由各部件主動提出,在被動響應方式下,各部件只能響應其他部件的請求。SOPC Builder 通過 Auto-Assign Base Addresses 讓系統自動分配基地址。通過 Auto-Assign IRQs 讓系統自動分配中斷。指紋識別模塊的硬件整體配置圖如圖 3 所示。

  圖3 指紋識別模塊的硬件整體配置圖

    當在 SOPC Builder 中配置硬件完成后,運行Generate, 生成Nios II 系統。設計的FPGA 內部的PLL 系統時鐘電路。當在處理指紋算法時,利用 FPGA 內部PLL(鎖相環)的作用, 使處理速度加快。為了提高 SDRAM 存儲器的存儲速度,也需要提高系統時鐘。利用 Quartus II 中的宏功能模塊設計 PLL 內部接口如圖4, clk 為 PLL 的輸入時鐘25MHz。Ratio 為倍頻 / 分頻系數,C0 是 Nios II 的時鐘輸入,倍頻系數為2,所以Nios II 的時鐘輸入是50MHz,C1 是SDRAM 時鐘輸入,倍頻系數是4,所以 SDRAM 的時鐘輸入頻率是100MHz。  

 圖4 利用宏模塊設計的 PLL 內部接口 

   整個 SOPC 設計之后的 FPGA 內部 Nios II 系統如圖5 所示,采用 TCL 腳本對 FPGA 進行管腳分配,下面是一段SDRAM 的 TCL 腳本 [4] 程序。實現與外部器件的連接。  

 

 圖 5 FPGA 內部的 Nios II 系統圖

  結論 

  使用基于Nios II 處理器的SOPC 解決方案可大大縮短開發時間,拓展系統開發的靈活性,SOPC 已經成為現實。隨著Nios II 核嵌入式處理器性能的不斷提升以及其開發工具和 IP 核庫的的不斷完善,其用途將更加廣泛。相信在不遠的將來, 電子產品設計工程師將能夠充分體會到 Nios II 處理器系統給他們設計帶來的便捷。而且為我們自主研發指紋識別芯片提供了一種方法。 

  參考文獻 

  [1] 王建校,危建國.SOPC 設計基礎與實踐.西安 : 西安電子科技大學出版社,2006,(4):48-49 
  [2] 熊建.基于 SOPC 的 ICE 調試器設計與實現技術研究[D].電子科技大學碩士論文,2005.3:40 
  [3] 李或,于宏毅.簡化 UART 功能的 FPGA 實現.現代電子技術, 2004.4:65 
  [4] 吳繼華,王誠.Altera FPGA/CPLD 設計 ( 高級篇 ). 北京 : 人民郵電出版社,2005,(7): 252-253