電機驅動電路
機械驅動部分用小型的直流電動機來進行驅動。由于單片機的驅動能力極其有限,所以需要對單片機的輸出進行驅動放大。這里采用BA6289邏輯控制芯片。它可以接收TTL 邏輯電平,用于驅動感性負載。它根據對門鎖的不同操作進行邏輯控制,驅動電機的正反轉,推動門鎖上的鎖舌進出。電機正轉,鎖舌退,實現開門動作;電機反轉,鎖舌進,實現關門動作。電機正反轉控制電路的原理圖如圖3所示。
系統(tǒng)加密設計
單片機系統(tǒng)一般都采用MCU+EPROM模式。通常EPROM都是透明的,雖然有許多的MCU都帶有加密位,但現在已大多能破解。為了保護自行開發(fā)的指紋識別門鎖算法,系統(tǒng)加密是個關鍵。常用的單片機加密技術有硬件加密和軟件加密兩種。軟件加密不能防止別人復制,只能增加解剖分析的難度,安全性不足。
現在很多的MCU都帶有加密位,其中在單片機中運用得最成功的加密方法是總線燒毀法。即把單片機數據總線的特定I/O永久性地破壞,解密者即使擦除了加密位,也無法讀出片內程序的正確代碼。此外還有破壞EA引腳的方法。這種方法用來加密小程序比較成功,但由于總線已被破壞,因而不能再使用總線來擴展接口芯片和存儲器,同時,片內存儲器也不再具有重復編程特性。
系統(tǒng)軟件設計
該指紋識別門鎖系統(tǒng)是完全自主開發(fā)的具有獨立知識產權的軟件,其完整的系統(tǒng)管理協(xié)議增強了軟件的強壯性和可移植性,完整的指紋識別命令集使其可以自動進行指紋的注冊、識別以及指紋數據的輸出。系統(tǒng)軟件總程序包括監(jiān)測控制部分和通訊部分。監(jiān)測控制部分包括了門鎖控制軟件諸如開關門、應急密碼開門、指紋錄入、指紋刪除等程序,以及指紋識別管理、電源管理、定時器中斷管理、看門狗、外部指令處理和I2C總線存儲器等程序。通訊部分主要包括通訊協(xié)議和驅動程序,其中通訊協(xié)議包括數據接收、數據發(fā)送、校驗、數據包處理等程序;設備驅動包括寄存器配置和系統(tǒng)狀態(tài)控制等程序。
|
表1 指紋鎖的性能指標
系統(tǒng)初始化
嵌入式指紋鎖系統(tǒng)在啟動或復位之后,需要對系統(tǒng)硬件和軟件運行環(huán)境進行初始化,這些工作由啟動程序完成,啟動程序通常采用匯編語言編寫。寫好啟動程序是設計好嵌入式程序的關鍵,系統(tǒng)啟動程序所執(zhí)行的操作與具體的目標系統(tǒng)和開發(fā)系統(tǒng)相關,流程如圖4所示。
指紋識別軟件的協(xié)議命令集
系統(tǒng)管理協(xié)議包括功能部件更新下載、設備復位、部件錯誤處理、檢測注冊的用戶數量、檢測存儲器信息、檢測安全級、設置安全級、檢測每個用戶注冊的指紋數、設置每個用戶錄入的指紋數以及設置波特率等。指紋識別命令集包括自動ID注冊用戶、給定ID注冊用戶、刪除給定ID用戶、匹配刪除用戶、刪除所有用戶、給定 ID用戶識別、自動ID用戶識別、提取特征信息、特征信息匹配、從模塊獲取特征信息以及在模塊中存儲特征信息等。下面給出該軟件指紋識別協(xié)議命令集中自動用戶注冊部分的設計說明。
自動用戶注冊是指系統(tǒng)使用自動選擇的ID號注冊用戶,如下:
STI_USER_REGISTR ATION:開始注冊
0x1b - 0x5e - 0x50 - Start ID NumberH- Start ID NumberL
STI_USER_REGISTRATION _SUCCESS:注冊成功
0x1b - 0x5e - 0x51 - Start ID NumberH- Start ID NumberL
其中Start ID NumberH/ Start ID NumberL為注冊開始時的ID值
STI_USER_REGISTR ATION_ERROR:注冊失敗
0x1b - 0x5e - 0x52 - 0x00- ID Number
單片機與指紋模塊的通訊協(xié)議
系統(tǒng)中的工作核心是指紋模塊,它幾乎包含了對指紋處理的所有操作。指紋識別模塊通過RS232串口與使用者接口,使用者通過此接口來命令模塊完成諸如指紋采集、指紋比對等一系列操作。單片機與指紋模塊的通訊為半雙工異步通訊,RS232接口缺省的波特率為9600bps。
單片機與指紋模塊的通訊,對命令、數據、結果的接收和發(fā)送都采用幀的形式進行,通訊格式內容包括包標識、地址碼保留字、包長度、包內容和校驗和。
由于通過串口通訊,在數據接收的開始有時會丟失一兩個字節(jié),所以在接收數據包時可能因為接收字節(jié)不完全而使程序陷入死循環(huán)。這里采用在規(guī)定時間內如果沒有接收到數據則強行退出接收程序,而后重新接收數據的方法,由于指紋模塊與單片機的工作頻率非??欤静粫绊懺撓到y(tǒng)的工作。
同樣,單片機和模塊通過一串消息幀來傳遞命令,在程序編寫時利用數組來存儲Receive[Max]從模塊接收到的數據,如圖5所示。單片機通過串口向模塊發(fā)送命令而后又等待接收命令時,經常丟失或有誤一兩個字節(jié),這樣導致數組Receive [Max]中數據會丟失一兩個字節(jié)。參考指紋模塊的通訊協(xié)議可知,消息幀中的大部分數據都相同,只有一兩個不同的關鍵字且在數據幀的中間部分。所以,根據模塊動作的幾種可能情況在接收數據的數組Receive[Max]中搜索對應的一兩個關鍵字,這樣就可以正確判斷模塊的動作。
系統(tǒng)測試
根據門鎖的安全性能指標設計測試方案,系統(tǒng)測試主要從以下幾個方面進行:
1) 用不同質量的指紋:用大約500人次的不同指紋進行開鎖、注冊等測試;
2) 同一指紋在不同條件下:諸如干濕、破損、壓力溫度不同、位置角度不同、油污情況下進行開鎖試驗;
3) 不間斷的工作方式:長時間的疲勞測試、頻繁的開鎖、關鎖,測試系統(tǒng)的穩(wěn)定性;
4) 人為制造緊急狀況:電源不足情況下、惡性開鎖、開鎖后忘記關門、普通用戶手指不能開門、取消非法用戶權限等。
指紋鎖的核心部分測試后的各項性能指標如表1所示。
結語
經過大量的測試工作,本門鎖系統(tǒng)的性能狀態(tài)良好,滿足安全性和易用性的指標要求。門鎖系統(tǒng)從功能上具有授權錄入指紋、按ID號或按級刪除指紋、記錄最近的 10次開門記錄,可錄入150枚指紋。本系統(tǒng)采用了嵌入式的體系結構,以及精度高、反應快、功耗低、體積小的外圍器件,配合成熟的指紋識別算法和完善的功能設計,以及應急開門方案、加密設計和低功耗設計。本嵌入式指紋鎖的誤識率為0.001%~0.01%,拒識率為0.1%~1%,處理速度低于0.3s,完全滿足指紋識別產品的要求。由本系統(tǒng)為核心制作的小樣本嵌入式指紋鎖已于2005年末供應海外市場。
電子發(fā)燒友App









評論