亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Linux的身份認證系統(tǒng)設計與實現(xiàn)

        2010-06-13 11:33:04肖龍遠
        微處理機 2010年3期
        關(guān)鍵詞:智能卡指紋識別串口

        李 順,肖龍遠

        (中國工程物理研究院電子工程研究所,四川綿陽,621900)

        1 引言

        采用“用戶名+密碼”的原始模式進行身份認證已不再安全,為此提出了很多新的身份認證技術(shù),如智能卡技術(shù)、生物識別技術(shù)。目前的智能卡已經(jīng)可以采用DES算法及基于RSA的PKI體系進行認證,也可以存儲和操作基于X.509的CA數(shù)字證書,但由于智能卡本身的硬件限制,使得進行RSA運算顯得非常緩慢,雖然有些智能卡附有協(xié)處理器加快了數(shù)學運算,但增加了成本開銷。生物特征識別技術(shù)是利用人體生物特征來進行身份驗證的一種解決方案。指紋識別技術(shù)是眾多生物識別技術(shù)中最為實用和最為成熟的技術(shù)之一,指紋識別技術(shù)同智能卡,密碼等身份識別手段相比,具有不可替代、不可假冒、不易丟失等優(yōu)點[1]。本文將指紋識別技術(shù)應用于嵌入式終端用戶身份認證過程,有效解決了智能卡方案中認證速度慢、密碼認證方法安全性低的問題。

        2 AT91SAM9261控制芯片

        AT91SAM9261是Atmel公司推出的基于ARM9的32位處理器。在工作頻率為180MHz的情況下,其運算速度為200MIPS。其內(nèi)部支持LCD控制器、串行通信口(包括USB從機模塊、UART、SPI以及I2C)和多媒體通信口,還提供一個用于調(diào)試的JTAG接口。功耗方面,AT91SAM9261待機電流僅為2.5μA,工作頻率為 500Hz時,電流消耗為 400μA。而且AT91SAM9261價格便宜,功耗低,又能滿足設計需要,所以AT91SAM9261非常適合用于嵌入式終端的開發(fā)。

        3 指紋模塊

        3.1 模塊介紹

        采用艾菲爾公司的指紋模塊EFM-250,EFM-250是通用型指紋識別模塊,能完成指紋采集、指紋登記、指紋1:N和1:1比對等與指紋有關(guān)的操作。它由高速信號處理器DSP、射頻原理真皮指紋傳感器(滑動式)、高性能指紋比對算法等軟硬件組成。EFM-250具有體積特別小,比對速度更快,指紋容量更大等特點。

        3.2 通信協(xié)議

        指紋模塊與開發(fā)板的接口是采用標準串行口進行通信(USART),開發(fā)板通過串口向模塊發(fā)送數(shù)據(jù)包,數(shù)據(jù)包中包含著指紋模塊應執(zhí)行的命令(如提取指紋、搜索指紋等)。主機發(fā)送的數(shù)據(jù)包必須嚴格按照l表1,表2格式封裝:

        表1 指令包格式

        表2 應答包格式

        4 系統(tǒng)組成

        系統(tǒng)主要由AT91SAM9261芯片、指紋傳感器、指紋信息處理器、存儲芯片、電源模塊、顯示模塊以及相應的接口電路組成。使用16位的高性能SDRAM加快了數(shù)據(jù)的讀取速度,使用16M nand flash存儲嵌入式Linux操作系統(tǒng)。

        圖1 系統(tǒng)硬件構(gòu)成

        5 軟件開發(fā)

        軟件開發(fā)主要是基于嵌入式Linux操作系統(tǒng)串口的讀寫操作以及根據(jù)通信協(xié)議開發(fā)板與指紋模塊進行通信。由于身份認證系統(tǒng)中若有些操作(如設置超級用戶密碼)出錯,將會影響以后的通信,這就需要通信過程中盡量避免出現(xiàn)收包出錯的現(xiàn)象。本文采取了良好的出錯處理機制,并利用select函數(shù)防止串口阻塞,提高了代碼的魯棒性和健壯性[2]。

        5.1 串口操作

        串行口是計算機的一種常用接口,具有連接線少,通訊簡單,得到廣泛使用。Linux中,串口COM1和COM2分別對應操作系統(tǒng)的/dev/ttyS0,/dev/ttyS1兩個設備文件。Linux對設備的訪問是通過設備文件的訪問來進行的,對串口的讀寫就相當于對文件的讀寫[5]。

        5.1.1 打開串口

        fd=open(“/dev/ttyS1”,O_RDWR);//設置成可讀可寫,默認阻塞模式

        5.1.2 設置串口屬性

        串口的屬性定義在結(jié)構(gòu)體struct termios中。為在程序中使用該結(jié)構(gòu)體,需要包含文件<termios.h>,該結(jié)構(gòu)體定義如下:

        struct termios

        {

        tcflag_t c_iflag;/*輸入選項標志*/

        tcflag_t c_oflag;/*輸出選項標志*/

        tcflag_t c_cflag;/*控制選項標志*/

        tcflag_t c_lflag;/*本地選項標志*/

        cc_t c_line;/*line discipline*/

        cc_t c_cc[NCCS];/* control characters*/

        speed_t c_ispeed;/* input speed*/

        speed_t c_ospeed;/* output speed*/

        };

        在這個結(jié)構(gòu)中最為重要的是c_cflag,通過對它的復制可以設置波特率、字符大小、數(shù)據(jù)位、校驗位、停止位,流控協(xié)議等。輸入模式c_iflag成員控制端口接收端的字符輸入處理。c_cc包含了超時參數(shù)和控制字符的定義。

        設置串口流程:

        (1)保存原先的串口配置:這里可以使用函數(shù)tcgetattr(fd,&oldtio),這個函數(shù)得到與fd指向?qū)ο蟮南嚓P(guān)參數(shù),并將它們保存于oldtio引用的termios結(jié)構(gòu)中;

        (2)激活選項CLOCAL和CREAD:CLOCAL和CREAD分別用于本地連接和接收使能,通過位掩碼的方式激活這兩個選項;

        (3)設置波特率:設置波特率有專門的函數(shù)cfsetispeed和cfsetospeed;

        (4)設置字符大小:首先去除數(shù)據(jù)位中的位掩碼,再重新按要求設置;

        (5)設置奇偶校驗位:這時需要用到兩個termios中的成員:c_cflag和c_iflag。首先要激活c_cflag中的校驗位使能標志PARENB和是否要進行校驗,同時還要激活c_iflag中的奇偶校驗使能;

        (6)設置停止位:設置停止位是通過激活c_cflag中的CSTOPB而實現(xiàn)的,若停止位為1,則清除CSTOPB,若停止位為2,則激活CSTOPB;

        (7)設置最少字符和等待時間:分別通過設置c_cc[VMIN]和 c_cc[VTIME]來完成

        (8)處理要寫入的引用對象:由于串口在重新設置之后,要寫入的引用對象要重新處理,調(diào)用函數(shù)tcflush(fd,TCIOFLUSH);

        (9)激活配置:在完成全部串口配置之后,利用函數(shù)tcsetattr激活配置;

        5.1.3 串口讀寫

        可用標準的文件讀寫函數(shù):

        ssize_t read(int fd,const void*buf,size_t count);//如果調(diào)用成功則返回讀出的字節(jié)數(shù)

        ssize_t write(int fd,const void*buf,size_t count);//如果調(diào)用成功則返回寫入的字節(jié)數(shù)

        在對串口進行讀的時候,如果因為數(shù)據(jù)傳輸出錯導致讀不到數(shù)據(jù),此時read會阻塞,這時候程序?qū)罊C,解決這個問題的方法是使用select函數(shù)實現(xiàn)串口的非阻塞讀寫:

        struct timeval tv;//定義select阻塞的時間

        fd_set readfd;//定義文件描述符集合

        tv.tv_sec=maxwaittime/1000;//SECOND

        tv.tv_usec=maxwaittime%1000*1000;//USECOND

        FD_SET(fd,&readfd);

        rc=select(fd+1,&readfd,NULL,NULL,&tv);

        為了便于與指紋模塊通信,定義了結(jié)構(gòu)package_struct,直接通過package_read和package_send函數(shù)來實現(xiàn)對串口的發(fā)包、收包、解包的工作,兩個函數(shù)定義如下:

        int SendPackage(package_struct package_send);

        int ReceivePackage(package_struct*package_receive,unsigned short package_len);

        5.2 軟件流程

        身份認證系統(tǒng)實現(xiàn)的功能有:

        (1)設置超級用戶口令,用戶需要先驗證超級用戶口令才能進行其他操作,該口令默認為0;

        (2)自動登記新指紋,自動搜索指紋庫中的空位,提取指紋特征,進行存儲;

        (3)自動識別指紋,提取指紋特征,搜索指紋庫,搜索到返回指紋的ID號及指紋匹配分數(shù);

        (4)清空指紋庫,清空指紋庫中所有的指紋特征;

        (5)刪除某個或多個指紋,刪除指紋庫中指定ID號開始的N個指紋特征;

        (6)手動登記,手動識別,,這兩個功能需要多次發(fā)送指令包和接收解析包。手動登記需要用戶指定指紋特征的存儲位置,操作較繁瑣,圖1中沒有給出兩者的實現(xiàn)流程;

        軟件流程圖如圖2所示。

        6 結(jié)束語

        采用指紋識別技術(shù)對嵌入式終端用戶進行身份認證,詳細介紹了Linux中串口應用的開發(fā),根據(jù)efm250的通信協(xié)議利用串口與指紋模塊進行交互,在基于AT91SAM9261的開發(fā)板上實現(xiàn)了身份認證系統(tǒng)的各種功能。經(jīng)過測試,該系統(tǒng)認證速度快、可靠性高。

        圖2 軟件流程圖

        [1]柴曉光,岑寶熾.民用指紋識別技術(shù)[M].北京:人民郵電出版社,2004.

        [2]冉林倉.Red Hat Linux 9編程開發(fā)與網(wǎng)絡管理[M].北京:電子工業(yè)出版社,2006.

        [3]Greg Hankins.Linux Serial HOWTO v1.11[DB/OL].http://www.chinalinuxpub.com/.

        [4]馬忠梅.ARM&Linux嵌入式教程[M].北京:北京航空航天大學出版社,2004.

        [5]Kurt Wall.GNU/Linux編程指南(第二版)[M].張輝,譯.北京:清華大學出版社,2006.

        [6]Sweet MR.Serial Programming Guide for POSIX Operating Systems[M].O’Reily& Associations,2002.

        猜你喜歡
        智能卡指紋識別串口
        淺談AB PLC串口跟RFID傳感器的通訊應用
        東方磁卡李曉東:進擊的智能卡研發(fā)巨子
        時代人物(2019年27期)2019-10-23 06:11:58
        基于單片機指紋識別電子寄存柜設計
        電子制作(2018年11期)2018-08-04 03:25:46
        基于STC89 單片機的非接觸智能卡讀寫機設計
        電子制作(2017年17期)2017-12-18 06:40:36
        指紋識別技術(shù)綜述
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        臨沂機頂盒智能卡升級方案介紹
        基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
        地礦測繪(2015年3期)2015-12-22 06:27:26
        基于大容量指紋識別的實時身份認證系統(tǒng)
        基于線陣CCD的指紋識別實驗
        物理實驗(2015年10期)2015-02-28 17:36:53
        日韩不卡一区二区三区色图| 国产高清无码在线| 久久久亚洲精品蜜桃臀| 亚州中文字幕乱码中文字幕| 日韩午夜理论免费tv影院| 欧美a级情欲片在线观看免费| 91精彩视频在线观看| 魔鬼身材极品女神在线| 白浆国产精品一区二区| 亚洲午夜福利在线视频| 99热最新在线观看| 小草手机视频在线观看| 国产美女主播视频一二三区| 国产乱子伦农村叉叉叉| 日本精品网| 中文亚洲一区二区三区| 无套内内射视频网站| a亚洲va欧美va国产综合| 国产人成无码视频在线1000| 亚洲色图偷拍自拍在线| 美女网站免费福利视频| 五月天激情综合网| 一本色道久久88综合亚洲精品| 国产成人自拍高清在线| 性一交一乱一伦一色一情孩交| 久久精品亚洲精品毛片| 国产护士一区二区三区| 中文字幕日韩精品一区二区三区| 国产成人综合久久精品推| 久久一二三四区中文字幕| 水蜜桃在线观看一区二区| 亚洲精华国产精华液的福利| 亚洲中字幕永久在线观看| 免费国产一区二区视频| 日韩毛片无码永久免费看| 国内精品人妻无码久久久影院94| 亚洲国产成人久久精品美女av| 免费无码又爽又刺激网站直播| 亚洲av乱码中文一区二区三区 | 亚洲成AV人久久| 精品国产自在现线看久久|