freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm嵌入式系統(tǒng)的指紋設(shè)計碩士學(xué)位論文-資料下載頁

2025-07-02 10:45本頁面

【導(dǎo)讀】究所取得的研究成果。除了文中特別加以標注引用的內(nèi)容外,本論文。不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。究做出重要貢獻的個人和集體,均已在文中以明確方式標明。全意識到本聲明的法律后果由本人承擔。本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國家有關(guān)部門或機構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學(xué)可以將本學(xué)位。印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。涉密論文按學(xué)校規(guī)定處理。1.2本課題的意義和主要工作·····························································································05. 第二章基于ARM的指紋采集系統(tǒng)總體設(shè)計······································································06

  

【正文】 AM 電路原理圖 CPLD 模塊的設(shè)計 CPLD 作為 CPU 的協(xié)處理器,代替 CPU 處理了很多任務(wù),不僅減輕了 CPU 的負擔,而且使系統(tǒng)更加可靠穩(wěn)定,也更具有靈活性和可擴展性。 系統(tǒng)中多數(shù)外圍器件與 ARM 的握手信號都是通過可編程邏輯器件來完成的,按照其所實現(xiàn)的功能, CPLD 在系統(tǒng)中主要有以下幾點 : (1)產(chǎn)生各個芯片的片選信號。 (2)產(chǎn)生各個芯片的讀寫信號。 (3)控制各個芯片的中斷信號。 33 CPLD 內(nèi)部電路的設(shè)計和實現(xiàn)方法 一個完整的 CPLD 的設(shè)計流程包括程序設(shè)計與輸入、設(shè)計驗證和設(shè)計實現(xiàn)三個部分,其完整的設(shè)計流程如下 : (1)文本編輯 :根據(jù)工程師設(shè)計的方法,可用任何文本編輯器,也可以用專用的 HDL 編輯環(huán)境,本系統(tǒng)使用 QuartusII 編輯環(huán)境進行編輯。通常 VHDL 文件保存為 .vhd 文件, Verilog 文件保存為 .V 文件 。 (2)功能仿真 :將文件調(diào)入 HDL 仿真軟件 ( QuartusII)進行功能仿真,檢查邏輯功能是否正確 (也叫前仿真,對簡單的設(shè)計可以跳過這一步,只在布線完成以后,進行時序仿真 )。 (3)邏輯綜合 :文件調(diào)入邏輯綜合軟件 (QuartusII)進行綜合,即把語言綜合成最簡單的布爾表達式和信號的連接關(guān)系。邏輯綜合軟件會生成 .edf 的 EDA 工業(yè)標準文件 。 (4)布局布線 :將 .edf 文件調(diào)入 PLD 廠家提供的軟件中進行布線,即把設(shè)計好的邏輯安放到 PLD/FPGA 內(nèi) 。 (5)時序仿真 :需要利用在布局布線中獲得的精確參數(shù),用仿真軟件驗證電路的時序 (也叫后仿真 )。 (6)編程下載 :確認仿真無誤后,將文件下載到芯片中。 目前進行大型工程設(shè)計時,最常用的 HDL 設(shè)計語言是 VHDL 和Verilog HDL。它們的共同特點是 :利于由頂向下設(shè)計,利于模塊的劃分和復(fù)用,可移植性好,通用性好,設(shè)計不因芯片不同而變化,更利于向 ASIC 的移植。 本系統(tǒng)的設(shè)計采用的是 VHDL (VHSIC hardware description 34 language)硬件描述語言。 VHDL 語言的最大特點是描述能力極強,可覆蓋邏輯設(shè)計的諸多領(lǐng)域和層次,并支持眾多的硬件模型。其主要特點有 : (1)設(shè)計技術(shù)齊全,方法靈活,支持廣泛 。 (2)系統(tǒng)硬件描述能力強 。 (3) VHDL 語言可以與工藝無關(guān)地進行編程 。 (4) VHDL 語言標準、規(guī)范,易于共享和重用。 EPM240 接口電路設(shè)計 EPM240 電路原理圖如圖 所示。 35 圖 EPM240 電路原理圖 系統(tǒng)中 CPLD 程序的設(shè)計相對簡單,但它所實現(xiàn)的功能卻決定了整個系統(tǒng)能否正常的工作。為此,在 CPLD 的硬件設(shè)計上采用了如下規(guī)則 : (1) EPM240 具有多電壓接口,也就是說,它可以與不同電源電壓的系統(tǒng)接口。 EPM240 有兩組 Vcc 引腳 :一組用于內(nèi)部電路和輸入緩沖器 (Vccint)。另一組用于 I/O 輸出緩沖器 (Vccio )。 Vccint 引腳始終接 電平,根據(jù)輸出的需要,可以把 Vccio 引腳連接到 或 電源。在系統(tǒng)的設(shè)計上,為了匹配 ARM 與其外圍器件的電平,將 36 Vccio 連接到 上。盡管當 Vccio 電平低于 工作時會增加微小的延時,但卻保證了它和所有器件的電平一致,避免了系統(tǒng)出現(xiàn)混合電壓的情況,從而提高了系統(tǒng)的穩(wěn)定性。 (2)雖然 EPM240 在設(shè)計上已采取措施使它對外界噪聲敏感度最小,但和所有 CMOS 器件一樣,它對電源電壓的起伏和輸入線上的起伏都很敏感,為使這些起伏效應(yīng)減至最低,系統(tǒng)中通過加寬 GND及 VCC 的走線寬度和使用去禍電容來減少系統(tǒng)的噪聲,大幅度地提升了系統(tǒng)的可靠性。 (3)設(shè)計中不用的專用輸入引腳和 I/O 引腳在報告文件中被標作GND 和 Reserved。所有沒有使用的 I/O 引腳其實是有內(nèi)部信號驅(qū)動的,所以保留的 I/O 引腳應(yīng)當不連接。如果試圖將保留的 I/O 引腳連接在 VCC 或 GND 上,就會產(chǎn)生沖突,從而損壞器件的輸出驅(qū)動器。 (4)EPM240 有四個專用的輸入引腳,分別是腳12(INPUT/GCLRn) 、腳 14(INPUT/OE2/GCLK2) 、腳 62 (INPUTJGCLKl)、腳 64 (INPUT/OE1)。當系統(tǒng)中不使用這四個引腳時,要將它們接地,防止這些管腳處于 “浮動 ”狀態(tài),以提高系統(tǒng)的穩(wěn)定性。本系統(tǒng)中是由 62 腳來接入一個 3MHz 的時鐘晶振。 綜上所述,在本系統(tǒng)中, CPLD 是連接外圍芯片和 ARM 的橋梁,雖然其外部電路和邏輯控制程序比較簡單,但是作用卻非常巨大。 37 USB 與上位機通訊接口電路設(shè)計 一般來說,傳統(tǒng)的通訊可以分為通用串行和并行兩種方式,通用串口的速度比較慢,影響指紋數(shù)據(jù)的上傳速度 。并口硬件和軟件實現(xiàn)起來較復(fù)雜。鑒于近年來興起的 USB 通訊模式,以及其越來越便利的開發(fā)和使用,所以本系統(tǒng)使用了 USB 技術(shù)來和上位機進行數(shù)據(jù)通訊。 接口電路設(shè)計 CH375 是一個 USB 總線的通用接口芯片,支持 USBHOST 主機方式和 USBDEVICE/SLAVE 設(shè)備方式。在本地端, CH375 具有 8 位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機 /ARM/MCU/MPU 等控制器的系統(tǒng)總線上。在 USB 主機方式下,CH375 還提供了串行通訊方式,通過串行輸入、串行輸出和中斷輸出與單片機 /ARM/MCU/MPU 等相連接。 CH375 的 USB 設(shè)備方式內(nèi)置了 USB 通訊中的底層協(xié)議,具有省事的內(nèi)置固件模式和靈活的外置固件模式。在內(nèi)置固件模式下,CH375 自動處理默認端點 0 的所有事務(wù),本地端單片機只要負責數(shù)據(jù)交換,所以單片 機程序非常簡潔。在外置固件模式下,由外部單片機根據(jù)需要自行處理各種 USB 請求,從而可以實現(xiàn)符合各種 USB 類規(guī)范的設(shè)備。 CH375 的 USB 主機方式支持常用的 USB 全速設(shè)備,外部單片機可以通過 CH375 按照相應(yīng)的 USB 協(xié)議與 USB 設(shè)備通訊。 CH375 還 38 內(nèi)置了處理 MassStorage。海量存儲設(shè)備的專用通訊協(xié)議的固件,外部單片機可以直接以扇區(qū)為基本單位讀寫常用的 USB存儲設(shè)備 (包括USB 硬盤 /USB 閃存盤 /U 盤 )。 端點 0 是默認端點,支持上傳和下傳,上傳和下傳緩沖區(qū)各是 8個字節(jié) 。 端點 1 包括上傳端點和下傳端點,上傳和下傳緩沖區(qū)各是 8 個字節(jié),上傳端點的端點號是 81H,下傳端點的端點號是 01H。 端點 2 包括上傳端點和下傳端點,上傳和下傳緩沖區(qū)各是 64 個字節(jié),上傳端點的端點號是 82H,下傳端點的端點號是 02H。 通過被動并行接口, CH375 芯片可以很方便地掛接到 ARM 系統(tǒng)總線上并且可以與多個外圍器件共存。 CH375 電路原理圖如圖 所示。 圖 CH375 電路原理圖 39 第四章 系統(tǒng)軟件設(shè)計 當系統(tǒng)的硬件設(shè)計完畢,并測試系統(tǒng)在硬件上沒有問題之后,就應(yīng)該考慮如何完成應(yīng)用軟件的開發(fā)。主程序流程圖如圖 所示。 否 是 否 是 系統(tǒng)上電 系統(tǒng)初始化 包括外圍芯片的初始化 傳感器檢測是否有手指? 指紋采集 質(zhì)量合格? 采樣電路、 A/D 轉(zhuǎn)換 指紋數(shù)據(jù)上傳 FLASH 等待上傳至PC 顯示不及格警報 40 圖 主程序流程圖 本設(shè)計中有三大軟件系統(tǒng),即為 ARM, CPLD 邏輯控制程序、 USB 和上位機的通訊程序。 S3C44B0X 提供兩種編程語言,匯編語言和C/C++。一般的功能的代碼兩種語言都可以使用 。但對于運算量較大的預(yù)處理算法,必須用匯編來完成。 USB 的固件編程方面因為 CH375的強大功能可以省去很大 ARM 的軟件開銷。 在系統(tǒng)初始化完成后,對手指是否在指紋傳感器上進行檢測,若有手指則進行一次指紋采集及相應(yīng)的處理,然后等待下一次指紋數(shù)據(jù)的采集。 系統(tǒng)軟件概述 軟件實現(xiàn)包括三大部分,一是指紋采集控制部分,二是 CPLD 時序邏輯控制部分,最后是指紋數(shù)據(jù)上傳部分。 目標板上電后就對整個采集系統(tǒng)進行初始化操作,包括 ARM 系統(tǒng)的初始化和目標板上外設(shè)的初始化,對他們進行參數(shù)配置。初始化完成后就開始檢測指紋傳感器上是否有手指,如果有則進行指紋圖像的采集,采集完成后就對這枚指紋圖像進行預(yù)處理工作。在預(yù)處理的前端對采集進來的這枚指紋圖像進行質(zhì)量評估,以判斷是否需要繼續(xù)進行指紋圖像的預(yù)處理工作,若這枚指紋采集的質(zhì)量比較好則繼續(xù)剩下的預(yù)處理和預(yù)處理后的數(shù)據(jù)上傳 。如果采集圖像的質(zhì)量很差,則沒傳感器等待手指 41 必要進行指紋圖像的預(yù)處理了,因為繼續(xù)處理會影響最終指紋識別的正確性,作廢這枚指紋數(shù)據(jù),要求重新采集一枚指紋數(shù)據(jù)。 指紋圖像的采集是在中斷程序中 開始的,當指紋傳感器上沒有手指時系統(tǒng)將進入省電模式下,通過指紋傳感器 MBF200 的手指自動檢測中斷來喚醒系統(tǒng),并進行一次指紋圖像的采集、預(yù)處理和數(shù)據(jù)上傳。完成后就進入省電模式下,等待下一次的手指中斷采集。 ARM 中的主程序很簡潔,因為主要的操作都在中斷里完成,手指檢測由指紋傳感器 MBF200 的自動手指檢測中斷來完成,當檢測到有手指后就開始了對這枚指紋的處理工作 。而指紋數(shù)據(jù)的上傳則是在CH375 的中斷程序里進行的。主程序如下所示 : void Initialization( void) { mDelaymS(100)。 // Delay 100 mS CloseIntterrupt() //關(guān)中斷,進行關(guān)鍵設(shè)置時不許打擾 MBF200Initialization()。 // FPS200 Sensor initialization CH375Initialization()。 // CH375 Initialization TiemrOInitialization()。 // Tiemr0 initialization OpenIntterrupt() //開中斷 //Variable initialization FingerStart=0。 LED_ OUTes INACT()。 42 } void main( void) { Initialization()。 while( 1) { LED_OUT_INACT()。 mDelaymS(1000)。 LED_OUT_ACT()。 mDelaymS(1000)。 FingerPrintProcess()。 } } 系統(tǒng)初始化 S3C44B0X Boot loader 的設(shè)計 (1) Boot Loader 的概念及設(shè)計 Boot Loader 是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序。通過這段小程序,初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準備好正確的環(huán)境。即是我們說所的引導(dǎo)加載程序。 在嵌入式系統(tǒng)中,通常沒有像 PC 機 BIOS 那樣的固件程序,因 43 此整個系統(tǒng)的加載啟動任務(wù)就完全由 Boot Loader 來完成。對于我們的實驗開發(fā)板,由于 flash 接的是微處理器 Bank0 的片選信號。映射的地址為 0x00000000 。 而 實 驗 系統(tǒng) 在上 電 或復(fù) 位時 從地 址0x00000000 處開始執(zhí)行,所以 在這個地址處安排系統(tǒng)的 Boot Loader程序。由于 Boot Loader 與硬件結(jié)合非常緊密,所以對于不同結(jié)構(gòu)的CPU 其 Boot Loader 程序都是不同的。 (2) Boot Loader 功能設(shè)計 Boot Loader 需完成功能如下 : (1) ARM 各寄存器、堆棧、 SDRAM 的初始化 。 (2)串口、 I/O 口、網(wǎng)口等外圍設(shè)備的初始化 。 (3)時鐘頻率的初始化 。 (4) FLASH 與 SDRAM 間數(shù)據(jù)的搬運 。 Boot Loader 的總體設(shè)計 在編寫 Boot Loader 程序之前,我們必須明白這段程序的任務(wù)是什么,要做些什么樣的工作。而由于 Boot Loader 的實現(xiàn)依賴于 CPU的體系結(jié)構(gòu),針對不同的 CPU 需要編寫不同的代碼,如果全部用匯編來寫那么代碼將不能移植到其它結(jié)構(gòu)不同的 CPU 上。因此我們將Boot Loader 設(shè)計為 stage1 和 stage2 兩大部分。依賴于 CPU 體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,都放在 stage1 中,并且都用匯編語言來實現(xiàn),以達到短小精悍的目的。 而 stage2 則用 C 語言來實現(xiàn),這樣在后續(xù)的實驗開發(fā)中可以不 44 斷對功能進行擴展和加強,而且代 碼會具有更好的可讀性和可移植性。 Boot Loader 的 stage1 完成的功能可多可少,但是必須包括以下步驟 : (1)硬件設(shè)備初始化。 (2)設(shè)置堆棧。 (3)為加載 Boot Loader 的 stage2 準備 RAM 空間。 (4)拷貝 Boot Loader 的 stage2 到 RAM 空間中。 (5)跳轉(zhuǎn)到 stage2 的 C 入口點。 Boot Loader 的 stage2 必須包括以下基本的步驟 : (1)初始化本階段要使用到的硬件設(shè)備。 (2)下載內(nèi)核及根文件系統(tǒng)的映像文件到系統(tǒng)存儲器 (3)將 kernel 映像和根文件系統(tǒng) 映像從 flash 上讀到 RAM 空間中。 (4)加載內(nèi)核映像和根文件系統(tǒng)映像。 (5)調(diào)用內(nèi)核。 任何一個系統(tǒng)啟動的最初任務(wù)都是硬件初始化。我們自己的 Boot Loader 也不例外,其主要目的是為后面的應(yīng)用程序的執(zhí)行準備好一些基本的硬件環(huán)境。它包括以下步驟 : (1)設(shè)置 CPU 的速度和時鐘頻率。代碼段如下 : [PLLONSTART] ldr r0, =PLLCON ; temporary setting of PLL ldr r1, =((M_DIVl2)+(P_DIV4)+S_DIV) ; Fin=10MHz, Fout=40MHz 45 str r1, [r0] Ldr r0, =CLKCON ldr rl, =0x7ff8 ; All unit block CLK enable str r1, [r0] (2)設(shè)置存儲相關(guān)寄存器的程序 。 主要設(shè)置 SDRAM, flash ROM 存儲器連接和工作時序的程序,以及片選定義的程序。 (3)設(shè)置缺省中斷處理函數(shù) 。 (4)數(shù)據(jù)段拷貝到 RAM 中,將 ZI 數(shù)據(jù)段清零,跳入 C 語言的 main函數(shù)執(zhí)行。 MBF200 初始化 對傳感器 MBF200 進行初始化包括以下幾個初始化內(nèi)容 : (1)對控制寄存器 A (CTRLA)的初始化 。 MBF200Write( MBF200_CTRLA, 0x00 )。 (2)設(shè)置傳感器門限值 。 MBF200Write( MBF200_THR, MBF200_THR_VALUE )。 (3)設(shè)置傳感器控制寄存器 B (CTRLB)。 MBF200Write( MBF200_CTRLB, MBF200_CTRLB_VALUE )。 (4)調(diào)整傳感器放電參數(shù)和增益 。 MBF 200Write(MBF 200_DCR,MBF 200_DCR_VALUE )。 MBF 200Write(MBF 200_PGC,MBF 200_PGC_VALUE )。 46 (5)清除所有中斷 。 MBF200Write(MBF200_ISR, 0x03 )。 (6)最后,打開傳感器指紋檢測中斷,一旦有手指放下將開 始進行數(shù)據(jù)采集。 USB 初始化 首先對 CH375 芯片進行檢測,測試其是否正常工作,如果正常則會將寫入的測試數(shù)據(jù)取反后輸出,若不正常就需對其執(zhí)行硬件復(fù)位。當 CH375 正常工作后對其進行設(shè)備方式的配置,這里為了簡化 USB固件的編程,所示設(shè)置其為內(nèi)置固件的模式。為 USB 設(shè)備的枚舉操作簡化了很多繁瑣的步驟 !源代碼如下: void CH375Initialization( void) { unsigned char i, k。 unsigned char Datum。 //測試 CH375 是否正常工作 For(k=100。 k!=0。 k) { xWriteCH375Cmd(CMD_CHECK_EXIST)。 //測試 CH375是否正常工作 i=0x55。 xWriteCH375Data(i)。 //寫入測試數(shù)據(jù) i=0xAA。 47 Datum=xReadCH375Data()。 //返回數(shù)據(jù)應(yīng)該是測試數(shù)據(jù)取反 Datumamp。=0xFF。 // if(i!=Datum) // CH375 不正常 { for(i=5。i!=0。i)xWriteCH375Cmd(CMD_RESET_ALL)。 //多次重復(fù)發(fā)命令,執(zhí)行硬件復(fù)位 mDelaymS(50)。 //延時 50mS } else break。 } if(k= =0)mStopIfError(USB_ ERROR)。 //如果錯誤則停止運行并顯示錯誤狀態(tài) xW
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1