999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2010-06-13 11:33:04肖龍遠
微處理機 2010年3期
關(guān)鍵詞:嵌入式設(shè)置

李 順,肖龍遠

(中國工程物理研究院電子工程研究所,四川綿陽,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ù)應(yīng)用于嵌入式終端用戶身份認證過程,有效解決了智能卡方案中認證速度慢、密碼認證方法安全性低的問題。

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價格便宜,功耗低,又能滿足設(shè)計需要,所以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ù)包中包含著指紋模塊應(yīng)執(zhí)行的命令(如提取指紋、搜索指紋等)。主機發(fā)送的數(shù)據(jù)包必須嚴格按照l表1,表2格式封裝:

表1 指令包格式

表2 應(yīng)答包格式

4 系統(tǒng)組成

系統(tǒng)主要由AT91SAM9261芯片、指紋傳感器、指紋信息處理器、存儲芯片、電源模塊、顯示模塊以及相應(yīng)的接口電路組成。使用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)中若有些操作(如設(shè)置超級用戶密碼)出錯,將會影響以后的通信,這就需要通信過程中盡量避免出現(xiàn)收包出錯的現(xiàn)象。本文采取了良好的出錯處理機制,并利用select函數(shù)防止串口阻塞,提高了代碼的魯棒性和健壯性[2]。

5.1 串口操作

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

5.1.1 打開串口

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

5.1.2 設(shè)置串口屬性

串口的屬性定義在結(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,通過對它的復(fù)制可以設(shè)置波特率、字符大小、數(shù)據(jù)位、校驗位、停止位,流控協(xié)議等。輸入模式c_iflag成員控制端口接收端的字符輸入處理。c_cc包含了超時參數(shù)和控制字符的定義。

設(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è)置波特率:設(shè)置波特率有專門的函數(shù)cfsetispeed和cfsetospeed;

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

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

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

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

(8)處理要寫入的引用對象:由于串口在重新設(shè)置之后,要寫入的引用對象要重新處理,調(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ù)傳輸出錯導(dǎo)致讀不到數(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)設(shè)置超級用戶口令,用戶需要先驗證超級用戶口令才能進行其他操作,該口令默認為0;

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

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

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

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

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

軟件流程圖如圖2所示。

6 結(jié)束語

采用指紋識別技術(shù)對嵌入式終端用戶進行身份認證,詳細介紹了Linux中串口應(yīng)用的開發(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)絡(luò)管理[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.

猜你喜歡
嵌入式設(shè)置
中隊崗位該如何設(shè)置
少先隊活動(2021年4期)2021-07-23 01:46:22
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
7招教你手動設(shè)置參數(shù)
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發(fā)平臺
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
本刊欄目設(shè)置說明
中俄臨床醫(yī)學專業(yè)課程設(shè)置的比較與思考
艦船人員編制的設(shè)置與控制
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 国产啪在线91| 韩国v欧美v亚洲v日本v| 国产一区二区影院| 亚洲男人的天堂久久香蕉| 日韩精品免费一线在线观看| av午夜福利一片免费看| 九一九色国产| 99久久亚洲综合精品TS| 另类欧美日韩| 日韩国产一区二区三区无码| 国内精自视频品线一二区| 尤物成AV人片在线观看| 亚洲黄色成人| 2021国产精品自产拍在线观看| 综合色婷婷| 少妇高潮惨叫久久久久久| 最近最新中文字幕在线第一页| 国产aaaaa一级毛片| 婷婷色婷婷| 欧美 国产 人人视频| 国产成人永久免费视频| 高潮爽到爆的喷水女主播视频 | 中文一区二区视频| 欧美一级高清视频在线播放| av手机版在线播放| 2020久久国产综合精品swag| 国产精品视频观看裸模| 欧美国产日产一区二区| 波多野结衣爽到高潮漏水大喷| 一本大道视频精品人妻| 狠狠色狠狠综合久久| 日韩在线第三页| 国产视频a| 呦女亚洲一区精品| 丝袜美女被出水视频一区| 国产福利影院在线观看| 欧美精品黑人粗大| 99精品福利视频| 亚洲午夜福利精品无码| 一级毛片免费高清视频| 亚洲成a人在线播放www| 国产人成在线观看| 九色免费视频| 香蕉久人久人青草青草| 永久免费av网站可以直接看的| 干中文字幕| 在线无码九区| 欧美19综合中文字幕| 中文字幕伦视频| 综合成人国产| a毛片基地免费大全| 国模沟沟一区二区三区| 欧美a在线看| 91久久夜色精品国产网站| 午夜福利无码一区二区| 97精品久久久大香线焦| 亚洲成a人片在线观看88| 波多野结衣爽到高潮漏水大喷| 超清人妻系列无码专区| 国产福利在线观看精品| 欧美国产另类| 午夜福利亚洲精品| 国产福利在线免费观看| 91精品久久久无码中文字幕vr| 亚洲欧美成人综合| 亚洲国产成人精品一二区| av大片在线无码免费| 91精品国产91久久久久久三级| 亚洲综合极品香蕉久久网| 亚洲欧美日韩中文字幕在线一区| 欧美一区二区三区国产精品| 激情乱人伦| 婷婷午夜影院| 国产亚洲欧美在线人成aaaa| 国产一区在线观看无码| 久久人午夜亚洲精品无码区| 青青青亚洲精品国产| 亚洲午夜国产精品无卡| 久青草国产高清在线视频| 日韩欧美在线观看| 男人的天堂久久精品激情| 欧美日韩中文字幕在线|