《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 嵌入式虹膜圖像采集及預處理
嵌入式虹膜圖像采集及預處理
摘要: 簡要介紹了Blackfin561的DMA功能和BMP文件的格式,敘述了在基于Blackfin561的嵌入式操作系統(tǒng)uClinux下并行外部接口(PPI)驅(qū)動程序的框架,以及驅(qū)動程序中各個函數(shù)的具體功能與實現(xiàn)方式。完成了虹膜圖像數(shù)據(jù)的采集,并對圖像數(shù)據(jù)進行了預處理,提取其中所有亮度信息,生成BMP圖像文件。同時指出了調(diào)試過程中常遇的問題以及解決方法。
Abstract:
Key words :

0 引言

隨著計算機和網(wǎng)絡技術的發(fā)展,信息安全顯示出前所未有的重要性,而身份識別作為保證信息安全的必要前提,也越來越受到重視。虹膜識別技術是基于眼睛虹膜的生物識別技術。虹膜的終生不變性以及信息提取的非接觸性等特性,使其成為各項生物識別技術中最突出的一項。本文論述了在基于Blackfin561的嵌入式操作系統(tǒng)uClinux的虹膜圖像采集以及預處理。為后期在嵌入式平臺上進行虹膜圖像運算提供了圖像來源。

1 Blackfin561中的DMA

Blackfin系列DSP產(chǎn)品是ADI公司的基于微信號體系結(jié)構(gòu)的DSP,適用于各種視頻、音頻、通信領域。ADSP-BF561有多個獨立的DMA控制器,能夠以最小的DSP內(nèi)核開銷完成數(shù)據(jù)自動傳輸。DMA傳輸可以發(fā)生在ADSP-BF561的內(nèi)部存儲器和任一有DMA能力的外設之間。此外,DMA傳輸也可以在任一有DMA能力的外設和已連接到外部存儲器接口的外部設備之間完成(包括SDRAM控制器、異步存儲器控制器)。有DMA傳輸能力的外設包括SPORT、SPI端口、UART和PPI端口。每個獨立的有DMA能力的外設至少有一個專用DMA通道。BF561內(nèi)部專門為適應視頻數(shù)據(jù)處理而增加了二維DMA。

2 PPI接口驅(qū)動的具體實現(xiàn)

uClinux是針對微控制領域而設計的Linux系統(tǒng),面向沒有MMU(Memory Management Unit)的硬件平臺。它是Linux的一個變種,一方面它繼承了Linux的大部分優(yōu)點,例如穩(wěn)定性,強大的網(wǎng)絡功能;另一方面其內(nèi)核相當精簡, 內(nèi)核體積小于512KB, 內(nèi)核加文件系統(tǒng)小于900KB。uClinux同標準Linux主要的區(qū)別在于兩者的內(nèi)存管理機制和進程調(diào)度管理機制,另外它采用了romfs文件系統(tǒng),并對Linux上的C語言庫glibc做了簡化。uClinux完全符合GNU/GPL公約,完全開放源代碼,因此在嵌入式領域得到廣泛應用。

為管理各種外圍硬件設備,uClinux系統(tǒng)對其采取面向?qū)ο蟮姆庋b機制。uClinux將所有的外圍設備看成是一類特殊文件,稱為“設備文件”,它抽象了對硬件的處理,用戶進程只需通過標準的系統(tǒng)調(diào)用如open(),read(),write(),close()而無需了解設備在硬件層上實現(xiàn)的細節(jié)即可實現(xiàn)對設備的訪問控制。驅(qū)動程序則負責這些系統(tǒng)調(diào)用的具體實現(xiàn)。

針對具體應用,在驅(qū)動程序中實現(xiàn)了模塊注冊注銷函數(shù),open,release接口函數(shù)和read接口函數(shù)(如圖1所示)。驅(qū)動程序采用了中斷方式,對PPI和DMA進行了配置,采用BF561提供的二維DMA功能。詳細介紹如下:

1.gif

(1)模塊初始化函數(shù)init_module()。該函數(shù)是每個內(nèi)核模塊加載的時候首先調(diào)用的一個默認函數(shù)。程序中使用了module_init()宏來顯式命名模塊的注冊函數(shù)為 ppi_init(),在該函數(shù)中完成了設備’ppi’的注冊,當模塊加載完畢之后,內(nèi)核即知曉該設備的存在。

(2)模塊卸載函數(shù)cleanup_module(),該函數(shù)與init_module()做相反的工作,在內(nèi)核中取消設備的登記。與模塊注冊類似,程序中使用module_exit()宏來顯式命名模塊的注銷函數(shù)為 ppi_exit()該函數(shù)在模塊卸載的時候自動調(diào)用。

(3)設備驅(qū)動程序的file_operations結(jié)構(gòu)。由于所使用的PPI接口只用來做數(shù)據(jù)采集,因此file_operation結(jié)構(gòu)定義如下:

static struct file_operations ppi_fops = {

owner:     THIS_MODULE,

read:        ppi_read,

open:       ppi_open,

release:    ppi_release,

};

(4)open,release接口函數(shù)。在這兩個函數(shù)中分別使用了MOD_INC_USE_COUNT和MOD_DEC_USE_COUNT宏,被操作系統(tǒng)內(nèi)核用來記錄當前訪問設備文件的進程數(shù)。由于要使用中斷方式,所以在open和release中要分別實現(xiàn)中斷的申請和釋放。設備驅(qū)動程序通過調(diào)用request_irq()函數(shù)申請中斷,將一個硬件處理函數(shù)掛到相應的處理隊列中,通過調(diào)用free_irq()函數(shù)釋放中斷。在open函數(shù)中初始化了PPI和DMA的部分相關寄存器。擇要描述如下:

*pDMA1_0_Y_COUNT = 625; 二維DMA的外層循環(huán)計數(shù)寄存器,用于保存外層循環(huán)的數(shù)目。

*pDMA1_0_X_COUNT = 1728/4; 二維DMA的內(nèi)層循環(huán)計數(shù)寄存器,用于保存內(nèi)層循環(huán)的數(shù)目。

*pDMA1_0_X_MODIFY= *pDMA1_0_Y_MODIFY = 4; 內(nèi)層外層循環(huán)地址增量寄存器。為有效利用DMA帶寬,設置了PPI使之能處理32位DMA,且數(shù)據(jù)緩沖區(qū)是連續(xù)的,此處兩個增量寄存器都被設置為4。

*pPPI0_FRAME = 625; 在PPI被設置成ITU-656輸入模式下,該寄存器用于保存每幀的數(shù)據(jù)線路數(shù)。

(5)read接口函數(shù)。在該函數(shù)中初始化PPI控制寄存器和DMA配置寄存器及DMA地址寄存器。

*pDMA1_0_START_ADDR = buf;

*pDMA1_0_CONFIG = 0x109B;

*pPPI0_CONTROL = 0x01C5;

設置好寄存器后,使進程進入睡眠隊列,等待DMA結(jié)束產(chǎn)生的中斷將其喚醒。

數(shù)據(jù)緩沖區(qū)在用戶區(qū)定義,因一幀數(shù)據(jù)大小確定,所以在用戶應用程序中定義的數(shù)據(jù)存儲區(qū)大小指定為625*1728B。通過調(diào)用函數(shù)時傳遞指針的方式通知數(shù)據(jù)緩沖區(qū)的位置。在該函數(shù)中不再使用copy_to_user()函數(shù),此方式節(jié)省了內(nèi)存空間,對于嵌入式應用來說意義重大。事實上每次DMA開始傳送的頭4個字節(jié)總是被忽略掉的,這4個字節(jié)是第一個活動視頻開始(EAV)代碼。即需要的一幀圖像數(shù)據(jù)比實際傳送的要少4個字節(jié),但是為了數(shù)據(jù)處理的方便,仍將數(shù)據(jù)緩存區(qū)定義為完整一幀圖像的大小,這樣數(shù)據(jù)緩存區(qū)的最后4個字節(jié)是下一幀圖像的EAV代碼。到此,虹膜圖像采集的驅(qū)動程序基本完成,可以看出,驅(qū)動程序與應用程序聯(lián)系緊密,這也反應了嵌入式系統(tǒng)的一個特點,面向應用,專用性極強。

3 圖像數(shù)據(jù)的預處理

在用戶程序中,定義二維數(shù)組buf[625][1728]作為圖像數(shù)據(jù)的數(shù)據(jù)緩沖區(qū),然后通過標準系統(tǒng)調(diào)用獲取一幀虹膜視頻圖像數(shù)據(jù)。虹膜視頻圖像數(shù)據(jù)是以ITU-656模式輸入的,一幀圖像分為奇場和偶場,且原始數(shù)據(jù)中還有顏色信息、消隱信息和控制字等,因此要獲得一幅虹膜圖像還需對原始數(shù)據(jù)進行預處理。提取原始數(shù)據(jù)中的所有亮度信息,并把兩個場的數(shù)據(jù)有規(guī)則的合并到一起,然后按照BMP的圖像數(shù)據(jù)存放順序重新排列,添加相應的文件頭生成灰度BMP圖像文件。

BMP文件是Windows保存圖像的一種通用位圖文件格式,自帶顏色信息,調(diào)色板管理非常容易,在數(shù)字圖像處理方面占有重要的地位。

BMP文件大體上分成如下4個部分,位圖文件頭+位圖信息頭+調(diào)色板+圖像數(shù)據(jù)。

(1)第一部分為位圖文件頭,長度固定,為l4個字節(jié)。

(2)第二部分為位圖信息頭,長度固定,為40個字節(jié)。

(3)第三部分為調(diào)色板。需要注意的是真彩色圖不需要調(diào)色板,它們的位圖信息頭后面直接是圖像數(shù)據(jù)。而其他位圖,包括本文所討論的8位位圖,都需要調(diào)色板。

(4)第四部分就是實際的圖像數(shù)據(jù)。

在實際調(diào)試過程中還要注意字節(jié)對齊問題。比如位圖文件頭長度固定為l4個字節(jié),但若不注意字節(jié)對齊,定義后的結(jié)構(gòu)體實際大小為16個字節(jié),因此定義位圖文件頭時用__attribute__((packed)),使該結(jié)構(gòu)體長度為14個字節(jié)。

4 結(jié)論

本文簡略概述了Blackfin561處理器的DMA相關寄存器,敘述了在uClinux下PPI接口的驅(qū)動程序?qū)崿F(xiàn)過程及功能,對BMP文件格式進行了簡要介紹。所有代碼已經(jīng)在BF561的嵌入式uClinux平臺上調(diào)試通過,符合設計要求。

本文作者創(chuàng)新點:完成了嵌入式系統(tǒng)上的虹膜圖像采集及預處理。在目前國內(nèi)虹膜識別產(chǎn)業(yè)仍處于起步階段的情況下,本文就虹膜識別技術的實用化做了重要研究,具有重要的實用價值。

下圖是實驗中拍到的兩幅圖片

2.gif

 

參考文獻

[1]楊瑞亞,肖璋嵌入式uClinux內(nèi)核啟動過程分析與設計[J].中文核心期刊《微計算機信息》(嵌入式與SOC )2005 年第21 卷第8-2 期32-33

[2]ADSP-BF561 Blackfin Hardware Preliminar.pdf [EB/OL]. /upload/eWebUpload/200705/20070510112235534.pdf

Analog Devices Ine.02/2005.

[3]陳峰.Blackfin系列DSP原理與系統(tǒng)設計[M].北京:電子工業(yè)出版社,2004. 61-72

[4]JONATHAN CORBET,ALESSANDRO RUBINI,GREG KROAH-HARTMAN.《LINUX DEVICE DRIVERS》[M].東南大學出版社,2005.1-70,258-287

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久久国产成人精品| 欧美日韩午夜视频在线观看| 在线性视频日韩欧美| 亚洲激情欧美| 亚洲高清色综合| 欧美一级专区| 午夜精品久久久久久久99樱桃| 亚洲午夜三级在线| 亚洲视频在线观看一区| 在线视频精品一区| 一本一本a久久| 亚洲视频在线免费观看| 亚洲少妇最新在线视频| 亚洲美女中出| 亚洲毛片一区二区| 99国产精品国产精品毛片| 日韩视频一区二区在线观看| 99在线精品免费视频九九视| 日韩午夜在线视频| 在线亚洲一区二区| 亚洲男女自偷自拍图片另类| 亚洲欧美在线视频观看| 香蕉国产精品偷在线观看不卡| 新狼窝色av性久久久久久| 欧美一区二区视频在线观看2020| 欧美一区二区三区免费在线看| 久久av一区二区三区亚洲| 久久精品日产第一区二区| 亚洲高清在线| 亚洲精品视频在线观看免费| 一区二区三区欧美亚洲| 亚洲综合国产激情另类一区| 亚洲欧美日韩久久精品| 久久福利资源站| 久久亚洲精品网站| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产日韩精品久久| 国产午夜精品在线观看| 在线不卡欧美| 一本久久a久久精品亚洲| 亚洲女优在线| 久久精品噜噜噜成人av农村| 日韩亚洲精品电影| 亚洲综合欧美| 久久综合99re88久久爱| 欧美久久精品午夜青青大伊人| 欧美色播在线播放| 国产日韩专区| 亚洲精品视频在线播放| 午夜激情一区| 亚洲另类自拍| 欧美在线亚洲综合一区| 免费在线欧美视频| 欧美日韩一区在线视频| 国产偷久久久精品专区| 亚洲日本中文字幕| 亚洲在线视频网站| 亚洲人成久久| 欧美在线视频观看| 欧美精品一区二| 国产偷自视频区视频一区二区| 亚洲区欧美区| 欧美一区二区视频在线观看2020| 99re热这里只有精品免费视频| 欧美一区二区三区视频| 欧美国产精品人人做人人爱| 国产欧美一区二区在线观看| 亚洲国产婷婷香蕉久久久久久| 亚洲字幕在线观看| 日韩视频免费观看| 久久久久久久综合日本| 欧美三级小说| 1769国产精品| 亚洲欧洲av一区二区| 在线视频一区观看| 另类图片综合电影| 国产精品一二三四| 亚洲伦理自拍| 亚洲激情网站| 久久国产精品久久w女人spa| 欧美日韩午夜剧场| 1024亚洲| 欧美在线影院| 欧美在线看片| 欧美午夜精品理论片a级大开眼界| 精品动漫3d一区二区三区免费版 | 午夜亚洲福利| 欧美女主播在线| 好吊妞**欧美| 亚洲欧美精品在线| 亚洲一区二区成人在线观看| 欧美aⅴ一区二区三区视频| 国产亚洲欧美日韩在线一区 | 性娇小13――14欧美| 欧美日韩精品一区二区| 亚洲国产天堂久久综合网| 久久精品欧美| 久久久亚洲国产天美传媒修理工 | 99天天综合性| 裸体女人亚洲精品一区| 国产日韩欧美精品在线| 一区二区三区波多野结衣在线观看| 亚洲激情自拍| 免费久久99精品国产自| 国语自产偷拍精品视频偷| 午夜精品福利一区二区三区av| 亚洲专区在线视频| 欧美日韩视频在线一区二区 | 国产精品国产三级国产普通话三级| 亚洲精品国久久99热| 亚洲精品影院| 欧美a级一区二区| ●精品国产综合乱码久久久久| 久久经典综合| 久久免费观看视频| 国内揄拍国内精品久久| 欧美在线www| 久久久久久久一区二区| 国产综合香蕉五月婷在线| 久久国产精品72免费观看| 久久免费视频网站| 国内精品伊人久久久久av一坑| 欧美一区1区三区3区公司| 久久精品国产亚洲a| 国产三级欧美三级日产三级99| 午夜国产精品视频免费体验区| 欧美一区二区三区四区在线观看地址 | 欧美精品久久久久久| 亚洲精品免费在线观看| 一本色道久久| 欧美视频在线观看视频极品| 中日韩男男gay无套| 午夜精品电影| 国产女主播视频一区二区| 欧美一级播放| 免播放器亚洲一区| 亚洲人成在线播放| 亚洲午夜精品一区二区三区他趣| 国产精品成人av性教育| 亚洲综合成人婷婷小说| 久久久久国内| 亚洲二区视频在线| 99视频一区| 国产精品日韩一区二区三区| 午夜精品美女自拍福到在线| 久久视频在线免费观看| 亚洲激情成人在线| 亚洲图片自拍偷拍| 国产人久久人人人人爽| 亚洲国产1区| 欧美人交a欧美精品| 亚洲无毛电影| 久久久久久久综合| 亚洲精品日韩在线观看| 性欧美videos另类喷潮| 国产一区二区精品在线观看| 亚洲人成绝费网站色www| 欧美视频在线一区二区三区| 亚洲欧美激情四射在线日| 免费成人网www| 在线一区二区日韩| 久久免费国产精品| 亚洲精品视频在线播放| 欧美在线3区| 亚洲精品美女91| 欧美在线观看一区二区三区| 在线国产亚洲欧美| 亚洲欧美成aⅴ人在线观看| 狠狠色综合网站久久久久久久| 亚洲九九九在线观看| 国产精品―色哟哟| 亚洲黄色一区| 国产精品无码永久免费888| 亚洲国产91| 国产精品久久久久久久久久免费看 | 午夜精品视频在线| 欧美精品麻豆| 欧美一区二区三区免费视频| 欧美欧美在线| 久久精品99国产精品| 欧美喷水视频| 欧美在线影院在线视频| 欧美手机在线| 久久精品一二三区| 国产精品高清免费在线观看| 亚洲欧洲日本国产| 国产欧美精品xxxx另类| 日韩视频国产视频| 好吊色欧美一区二区三区视频| 国产精品99久久久久久白浆小说| 国内在线观看一区二区三区| 亚洲欧美日韩国产综合在线| 亚洲国产精品一区二区第一页 | 欧美国产日本高清在线| 午夜视频在线观看一区二区三区| 欧美精品激情| 亚洲国产成人不卡| 国产精品一区二区男女羞羞无遮挡| 亚洲精品美女在线| 国产一区高清视频|