在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于嵌入式操作系統uClinux的虹膜圖像采集以及預處理

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-08-09 08:09 ? 次閱讀

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

1 Blackfin561中的DMA

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

2 PPI接口驅動的具體實現

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

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

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

基于嵌入式操作系統uClinux的虹膜圖像采集以及預處理

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

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

(3)設備驅動程序的file_operations結構。由于所使用的PPI接口只用來做數據采集,因此file_operation結構定義如下:

static struct file_operations ppi_fops = {

owner: THIS_MODULE,

read: ppi_read,

open: ppi_open,

release: ppi_release,

};

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

*pDMA1_0_Y_COUNT = 625; 二維DMA的外層循環計數寄存器,用于保存外層循環的數目。

*pDMA1_0_X_COUNT = 1728/4; 二維DMA的內層循環計數寄存器,用于保存內層循環的數目。

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

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

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

*pDMA1_0_START_ADDR = buf;

*pDMA1_0_CONFIG = 0x109B;

*pPPI0_CONTROL = 0x01C5;

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

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

3 圖像數據的預處理

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

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

BMP文件大體上分成如下4個部分,位圖文件頭+位圖信息頭+調色板+圖像數據。

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

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

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

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

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

4 結論

本文簡略概述了Blackfin561處理器的DMA相關寄存器,敘述了在uClinux下PPI接口的驅動程序實現過程及功能,對BMP文件格式進行了簡要介紹。所有代碼已經在BF561的嵌入式uClinux平臺上調試通過,符合設計要求。

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

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

基于嵌入式操作系統uClinux的虹膜圖像采集以及預處理


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5086

    文章

    19143

    瀏覽量

    306041
  • 計算機
    +關注

    關注

    19

    文章

    7515

    瀏覽量

    88176
  • 操作系統
    +關注

    關注

    37

    文章

    6846

    瀏覽量

    123419
收藏 人收藏

    評論

    相關推薦

    嵌入式虹膜圖像采集怎么實現?

    特性,使其成為各項生物識別技術中最突出的一項。本文論述了在基于Blackfin561的嵌入式操作系統uClinux虹膜圖像
    發表于 03-30 06:54

    嵌入式uClinux的內核結構和開發環境

    主要對uClinux的進行介紹,嵌入式uClinux操作系統主要有三個基本部分組成:引導程序、uClinux內核(由內存管理、進程管理和中斷
    發表于 07-08 15:36

    嵌入式Linux操作系統

    ARM+LINUX路線,主攻嵌入式Linux操作系統及其上應用軟件開發目標:(1)掌握主流嵌入式微處理器的結構與原理(初步定為arm9)(2)必須掌握一個嵌入式
    發表于 10-27 10:22

    什么是嵌入式操作系統? 

    、INTEGRITY、OSE、C ExecuTIve  什么是嵌入式操作系統 嵌入式操作系統是一種支持嵌入式
    發表于 10-28 07:35

    嵌入式Linux操作系統學習規劃

    嵌入式Linux操作系統學習規劃ARM+LINUX路線,主攻嵌入式Linux操作系統及其上應用軟件開發目標:(1) 掌握主流嵌入式微處理器的
    發表于 11-05 06:45

    基于Linux的嵌入式操作系統

    2.2 實時操作系統的評價指標三、基于Linux的嵌入式操作系統3.1 ARMLinux簡介3.2 uCLinux簡介四、嵌入式
    發表于 11-08 09:05

    深入uclinux嵌入式操作系統

    Why 嵌入式Linux?未來24個月嵌入式操作系統的應用調查(2000.9) 嵌入式Linux分類第一類是在利用Linux強大功能的前提下,使它盡可能的小,以滿足許多
    發表于 03-28 09:45 ?37次下載

    基于uCLinux嵌入式實時遠程數據采集系統

    提出一種基于嵌入式操作系統的可遠程監測的新型數據采集系統的設計方案. 本系統嵌入式
    發表于 04-24 10:45 ?22次下載

    嵌入式虹膜圖像采集預處理

    簡要介紹了Blackfin561的DMA功能和BMP文件的格式,敘述了在基于Blackfin561的嵌入式操作系統uClinux下并行外部接口(PPI)驅動程序的框架,以及驅動程序中各
    發表于 07-15 11:06 ?14次下載

    嵌入式操作系統uClinux和eCos的比較

    uClinux和eCos操作系統是兩種性能優良、源碼公開且被廣泛應用的免費嵌入式操作系統。本文通過對uclinux和eCos的對比,分析和總
    發表于 04-18 08:36 ?1717次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b><b class='flag-5'>uClinux</b>和eCos的比較

    嵌入式操作系統uCLinux詳解

    uClinux的進行介紹,嵌入式uClinux操作系統主要有三個基本部分組成:引導程序、uClinux內核(由內存管理、進程管理和中斷
    發表于 11-02 10:42 ?0次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b><b class='flag-5'>uCLinux</b>詳解

    嵌入式操作系統uClinux和eCos的比較

    1 兩種開源嵌入式操作系統介紹 uClinux是一種優秀的嵌入式Linux版本。uClinux是micro-Conrol-linux的縮寫。
    發表于 12-01 17:12 ?560次閱讀
     <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b><b class='flag-5'>uClinux</b>和eCos的比較

    嵌入式操作系統如何應用_嵌入式操作系統的組成

    本文首先介紹了入操作系統的特點,其次闡述了嵌入式操作系統的應用,最后介紹了嵌入式操作系統的組成
    發表于 09-01 16:36 ?3622次閱讀

    什么是嵌入式操作系統 常見的嵌入式系統有哪些

    、INTEGRITY、OSE、C ExecuTIve  什么是嵌入式操作系統 嵌入式操作系統是一種支持嵌入式
    發表于 10-21 09:36 ?27次下載
    什么是<b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b> 常見的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>有哪些

    嵌入式操作系統

    2.2 實時操作系統的評價指標三、基于Linux的嵌入式操作系統3.1 ARMLinux簡介3.2 uCLinux簡介四、嵌入式
    發表于 11-03 18:36 ?46次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>操作系統</b>
    主站蜘蛛池模板: 午夜黄色小视频| 琪琪午夜免费影院在线观看| 深夜网站在线| 天天爽天天爽| 福利片欧美| 欧美福利精品| 色视网站| 在线观看你懂得| 性夜影院爽黄a爽免费视频| 亚洲一区三区| 欧美三级网址| 亚洲一级毛片免费看| 精品成人毛片一区二区视| 最近2018中文字幕免费看2019| 亚洲a成人| 最好看最新的中文字幕1| 婷婷五月花| 欧美一级黄色影片| 欧美色欧美色| 国产一级aaa全黄毛片| 欧美日韩国产在线一区| 黄色毛片网| 亚洲精品在线视频| 九九热在线免费观看| 久色乳综合思思在线视频| 亚洲 另类色区 欧美日韩| 日一区二区三区| 香蕉视频黄色在线观看| 亚洲精品色一区色二区色三区| 91九色蝌蚪在线| 色站视频| 国产免费一区二区三区最新| 国产欧美久久久精品影院| 亚洲第一永久在线观看| 久久久久久久久国产| 中文字幕 亚洲一区| 亚洲成人7777| 久久久久999| 成人亚洲综合| 久久是精品| 免费在线不卡视频|