ARM7實現指紋考勤系統硬件設計
刷卡采集選用的是MTP-125K4模塊,并選擇ASCII方式以及固定的9600bps輸出RS232數據,感應距離為30cm,其輸出數據端口直接連接CPU的串口1接收端即可。輸出的數據格式為頭碼(02)+10ASCII數據+Checksum校驗碼+結束碼(03),事實上我們只需存儲10位數據信息中的4位卡號。具體電路如圖3所示。

電源管理
電源管理部分采用了1150mAh的LI電,通過DC-DC升壓至5V,再通過LDO給系統所需要的3.3V和2.5V電壓。其中DC-DC是LT1308A芯片,LDO采用AMS1117-3.3V和AMS1117-2.5V,可以為系統提供穩(wěn)定的電壓供給。
圖4是電源開關控制部分電路,功能為實現USB和電池供電的切換。當未插入USB時采用電池供電,而連接時系統采用USB供電。S9為總電源開關。具體的實現過程為:電池供電時,開關S9按下,TEST1點由高變低,Q0導通,NAND網絡為高,系統開始供電,此時程序運轉并給與SHDN引腳高電平信號,促使Q6導通,此時即使按鍵抬起TEST1點仍為低電平,維持Q0的導通。當插上USB后,按鍵的按下使得Q4導通,Q0此時截至,系統由電池供電切換為USB供電,其它道理相同。關機時按鍵按下,Power_DET網絡檢測電平由高變低,給予SHDN低電平,Q6截至,按鍵抬起后無論是Q0還是Q4均截至,系統斷電。

系統軟件設計
軟件部分除了CPU的底層初始化部分采用ARM匯編,其余全部用C語言編寫。
程序初始化后進入低功耗模式,等待各種具體操作。當有指紋采集時,就進入指紋數據采集和處理模塊,處理結束后,又重新退回低功耗等待模式,等待其他操作。同理,當有讀卡數據或者時鐘設置響應時,便進入相應的操作模塊進行處理。值得注意的是,系統有兩種關機方式。一種是通過手動關機,另一種則通過系統定時器定時到后自動關機。
圖像數據讀取
根據前面的分析,圖像數據的采集采用的是DMA方式的單步模式。初始化時,除了設置單步模式外,還需要將DMA讀取的源地址設為鎖存器上的片選地址,目的地址則是存儲數據的緩存地址;數據的大小設置為一幀數據的大小,這里為480×640字節(jié)。
在讀取數據過程中,系統首先檢測幀同步信號,以確定一幀的開始,然后等待傳感器發(fā)出的DMA請求(與非門輸出低電平)。當接收到請求后,便按DMA的方式傳輸數據,每接收一個字節(jié),相應的用于指示剩余字節(jié)數的寄存器的值便會減一,直至減到零,表示數據接收完畢。
讀卡
考慮到刷卡的隨機性,決定采用中斷的方式來讀取數據。即通常情況下,系統是在低功耗下等待;當有刷卡時,跳出低功耗并讀取數據。
整個讀取過程就是對串口通信的操作過程。當有數據進來時,串口模塊會產生一個中斷。因此在相應的中斷響應便可以讀取這一數據,直至數據完整讀取;所讀取的數據中有一個校驗和,可以幫助驗證數據的正確性。
結語
評論