ARM7實(shí)現(xiàn)指紋考勤系統(tǒng)硬件設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
生物識(shí)別技術(shù)依靠其鑒別的唯一性和可靠性,經(jīng)過近十年的發(fā)展,應(yīng)用已經(jīng)越來越廣泛和成熟,目前指紋識(shí)別技術(shù)已趨向民用市場(chǎng)普及,指紋考勤機(jī)就是其主要的應(yīng)用之一。
引言
目前指紋識(shí)別技術(shù)已趨向民用市場(chǎng)普及,指紋考勤機(jī)就是其主要的應(yīng)用之一。筆者采用功能強(qiáng)大的S33C44B0X處理器設(shè)計(jì)了一款指紋考勤機(jī),在功能、接口、價(jià)格等方面都有著極大的優(yōu)勢(shì)。
所設(shè)計(jì)的考勤機(jī)具有指紋采集和刷卡采集兩大基本功能。指紋采集部分采用CMOS光學(xué)傳感器。刷卡采集相應(yīng)的射頻模塊,它可以通過串口的方式與CPU通信。考勤機(jī)和上位機(jī)的通訊則采用通用的模擬USB接口,有效地達(dá)到了即保證低成本又方便用戶使用的目的。另外還加入了USB充電,實(shí)時(shí)時(shí)鐘顯示,語音提示等眾多人性化功能。系統(tǒng)的框圖如圖1所示。
基于ARM7的指紋考勤系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)主CPU采用的是三星公司的S3C44B0X處理器,該處理器具有功能多、功耗低、運(yùn)算速度快、價(jià)格低廉等優(yōu)點(diǎn)。
硬件設(shè)計(jì)主要包括指紋采集、刷卡采集、和電源管理三個(gè)部分。
存儲(chǔ)器采用外接的方式,分別接了64M的HY57V641620HG的SDRAM和16M的39VF1601的flash。語音提示模塊采用的是總長為
21S錄音時(shí)間的AP8921A芯片。
上位機(jī)通訊通過CH341芯片進(jìn)行異步串口轉(zhuǎn)USB1.1接口,用戶對(duì)外可以按照正常的USB接口使用,省去了麻煩的串口。系統(tǒng)采用了MAX1508芯片通過USB接口給鋰電充電,平時(shí)采用電池供電,插上USB接口后即可通過USB接口給系統(tǒng)供電,并給鋰電充電。
按鍵總共有三個(gè),一個(gè)是系統(tǒng)的開關(guān)機(jī)按鍵,另外兩個(gè)分別是實(shí)時(shí)時(shí)鐘設(shè)的置按鍵和方向鍵。
指紋采集
指紋采集傳感器采用OV7620,并以I2C總線及DMA的數(shù)據(jù)傳輸方式實(shí)現(xiàn)與CPU的信息交互。圖2為指紋采集接口。
J1為采集頭的接口,主要有15個(gè)引腳,其中引腳8至引腳15為數(shù)據(jù)輸出接口,連接至鎖存器,最終接到數(shù)據(jù)總線上;引腳6、7為I2C總線,用于對(duì)傳感器寄存器進(jìn)行初始化設(shè)置;引腳3到引腳5分別為傳感器的時(shí)鐘信號(hào)、行同步信號(hào)和幀同步信號(hào)。幀同步信號(hào)直接連接至CPU的通用I/O端口GPF3上,行同步信號(hào)和時(shí)鐘信號(hào)通過與非門接至CPU的外部DMA請(qǐng)求輸入nXDREQ1。
當(dāng)nXDREQ1輸出由高電平變得低電平時(shí),傳感器便有數(shù)據(jù)輸出,并且數(shù)據(jù)能夠維持至下一個(gè)同樣的過程的到來。這正好符合44B0的外部DMA請(qǐng)求的單步模式的要求。于是自然就可以采用DMA的方式來讀取數(shù)據(jù)。最終的數(shù)據(jù)讀取是通過片選鎖存器來實(shí)現(xiàn)的。由于DMA的方式不干預(yù)CPU,因此也大大提高了讀取的速度。[!--empirenews.page--]刷卡采集
刷卡采集選用的是MTP-125K4模塊,并選擇ASCII方式以及固定的9600bps輸出RS232數(shù)據(jù),感應(yīng)距離為30cm,其輸出數(shù)據(jù)端口直接連接CPU的串口1接收端即可。輸出的數(shù)據(jù)格式為頭碼(02)+10ASCII數(shù)據(jù)+Checksum校驗(yàn)碼+結(jié)束碼(03),事實(shí)上我們只需存儲(chǔ)10位數(shù)據(jù)信息中的4位卡號(hào)。具體電路如圖3所示。
電源管理
電源管理部分采用了1150mAh的LI電,通過DC-DC升壓至5V,再通過LDO給系統(tǒng)所需要的3.3V和2.5V電壓。其中DC-DC是LT1308A芯片,LDO采用AMS1117-3.3V和AMS1117-2.5V,可以為系統(tǒng)提供穩(wěn)定的電壓供給。
圖4是電源開關(guān)控制部分電路,功能為實(shí)現(xiàn)USB和電池供電的切換。當(dāng)未插入U(xiǎn)SB時(shí)采用電池供電,而連接時(shí)系統(tǒng)采用USB供電。S9為總電源開關(guān)。具體的實(shí)現(xiàn)過程為:電池供電時(shí),開關(guān)S9按下,TEST1點(diǎn)由高變低,Q0導(dǎo)通,NAND網(wǎng)絡(luò)為高,系統(tǒng)開始供電,此時(shí)程序運(yùn)轉(zhuǎn)并給與SHDN引腳高電平信號(hào),促使Q6導(dǎo)通,此時(shí)即使按鍵抬起TEST1點(diǎn)仍為低電平,維持Q0的導(dǎo)通。當(dāng)插上USB后,按鍵的按下使得Q4導(dǎo)通,Q0此時(shí)截至,系統(tǒng)由電池供電切換為USB供電,其它道理相同。關(guān)機(jī)時(shí)按鍵按下,Power_DET網(wǎng)絡(luò)檢測(cè)電平由高變低,給予SHDN低電平,Q6截至,按鍵抬起后無論是Q0還是Q4均截至,系統(tǒng)斷電。
系統(tǒng)軟件設(shè)計(jì)
軟件部分除了CPU的底層初始化部分采用ARM匯編,其余全部用C語言編寫。
程序初始化后進(jìn)入低功耗模式,等待各種具體操作。當(dāng)有指紋采集時(shí),就進(jìn)入指紋數(shù)據(jù)采集和處理模塊,處理結(jié)束后,又重新退回低功耗等待模式,等待其他操作。同理,當(dāng)有讀卡數(shù)據(jù)或者時(shí)鐘設(shè)置響應(yīng)時(shí),便進(jìn)入相應(yīng)的操作模塊進(jìn)行處理。值得注意的是,系統(tǒng)有兩種關(guān)機(jī)方式。一種是通過手動(dòng)關(guān)機(jī),另一種則通過系統(tǒng)定時(shí)器定時(shí)到后自動(dòng)關(guān)機(jī)。
圖像數(shù)據(jù)讀取
根據(jù)前面的分析,圖像數(shù)據(jù)的采集采用的是DMA方式的單步模式。初始化時(shí),除了設(shè)置單步模式外,還需要將DMA讀取的源地址設(shè)為鎖存器上的片選地址,目的地址則是存儲(chǔ)數(shù)據(jù)的緩存地址;數(shù)據(jù)的大小設(shè)置為一幀數(shù)據(jù)的大小,這里為480×640字節(jié)。
在讀取數(shù)據(jù)過程中,系統(tǒng)首先檢測(cè)幀同步信號(hào),以確定一幀的開始,然后等待傳感器發(fā)出的DMA請(qǐng)求(與非門輸出低電平)。當(dāng)接收到請(qǐng)求后,便按DMA的方式傳輸數(shù)據(jù),每接收一個(gè)字節(jié),相應(yīng)的用于指示剩余字節(jié)數(shù)的寄存器的值便會(huì)減一,直至減到零,表示數(shù)據(jù)接收完畢。
讀卡
考慮到刷卡的隨機(jī)性,決定采用中斷的方式來讀取數(shù)據(jù)。即通常情況下,系統(tǒng)是在低功耗下等待;當(dāng)有刷卡時(shí),跳出低功耗并讀取數(shù)據(jù)。
整個(gè)讀取過程就是對(duì)串口通信的操作過程。當(dāng)有數(shù)據(jù)進(jìn)來時(shí),串口模塊會(huì)產(chǎn)生一個(gè)中斷。因此在相應(yīng)的中斷響應(yīng)便可以讀取這一數(shù)據(jù),直至數(shù)據(jù)完整讀取;所讀取的數(shù)據(jù)中有一個(gè)校驗(yàn)和,可以幫助驗(yàn)證數(shù)據(jù)的正確性。
結(jié)語
本本產(chǎn)品目前已經(jīng)研制出樣機(jī),經(jīng)調(diào)試檢測(cè)各項(xiàng)指標(biāo)合格,實(shí)現(xiàn)了上述各項(xiàng)功能,滿足了產(chǎn)品的設(shè)計(jì)指標(biāo)。