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

正文內(nèi)容

畢業(yè)設計-基于arm嵌入式系統(tǒng)的指紋設計-資料下載頁

2024-12-02 17:25本頁面

【導讀】1.2本課題的意義和主要工作·····························································································05. 第二章基于ARM的指紋采集系統(tǒng)總體設計······································································06. 2.1嵌入式處理器概述·····································································&#

  

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