彭克勤 朱敏玲 北京信息科技大學 計算機學院
一款基于MSP430單片機指紋密碼鎖系統的設計
彭克勤 朱敏玲 北京信息科技大學 計算機學院
密碼鎖的形態有很多種,按照相關技術可分為分:按鍵式的、射頻式、還有指紋式等。本文選用低功耗的單片機MSP430F5419作主控機,采用指紋模塊ATK-AS608、LCD屏、按鍵、語音等硬件,嘗試設計一款指紋式密碼鎖。MSP430F5419通過串口對指紋模塊ATK-AS608數據讀取即錄入指紋,通過對MSP430F5419編程,實現指紋密碼鎖功能。本文主要介紹指紋模塊ATK-AS608基本特性,接口協議;分析MSP430F5419與指紋模塊ATK-AS608之間通信要求以及實現指紋密碼鎖系統的編程方法。
單片機MSP430F5419 指紋模塊ATK-AS608 串口通訊接口協議 密碼鎖
系統結構如圖1所示。指紋模塊通過串口協議與MSP430F5419相互通信,LCD屏采用OCMJ128x64帶字庫LCD顯示屏;語音采用ISD1720,通過SPI接口與MSP430F5419相互通信;按鍵采用HD7279,通過其特殊的SPI協議與MSP430F5419進行通信。

圖1 系統結構
1.2.1 MSP430F5419
MSP430f5419 系列單片機(MCU)是一個 16 位、采用了精簡指令集(RISC)結構的MCU;簡便的 27 條內核指令和大量的模擬指令;具有很多尋址方式如:源操作數尋址、目的操作數尋址等;片內數據存儲器以及大量的寄存器都可參加多種運算;還有高效的查表處理指令;有較高的處理速度,在 8MHz 晶體驅動下指令周期為 125 ns ;片上資源豐富,具有超低功耗的優點。
1.2.2 按鍵接口HD7279
按鍵接口選用的是HD7279。這是一片智能顯示驅動芯片,采用串行接口, 能同時接8位LED數碼管,同時可以連接8*8個矩陣鍵盤。
本設計中采用中文液晶顯示(LCD)模塊。該模塊采用新型控制器8133,它完全兼容原8130 控制器的指令系統,是原8130控制器的基礎上升級改進版,并增加了一些特殊的功能,老用戶可在原有硬件接口不改變的條件下,對軟件程序稍做修改就可實現以下特殊的功能:
(1)光標功能:寫入光標功能指令后,光標會在下一個輸入的字符或漢字的下一地址位顯示(不在最后顯示的字符或漢字下方)。可根據需要對光標閃爍效果和光標長度(8點或16點)進行設置。
(2)反白功能:寫入反白功能指令后,以后寫入的內容將出現反顯效果。
(3)漢字字模為 16*16點陣,字體改為15*15點陣,內置字庫增加為GB 2312國標一、二級簡體漢字字庫及前16區字符(16*16點陣)。
(4)顯示移動功能:寫入顯示移動功能指令后;整屏顯示移動的位置和速度可編程。
1.2.4 指紋模塊ATK-AS608介紹
(1)指紋模塊ATK-AS608性能介紹
ATK-AS608指紋識別模塊采用了國內著名指紋識別芯片公司杭州晟元芯片技術有限公司(Synochip)的AS608指紋識別芯片,是ALIENTEK推出的一款高性能的光學指紋識別模塊。由于芯片內置DSP運算單元并集成了指紋識別算法,因此ATK-AS608模塊能高效快速采集圖像并識別指紋特征。
制取模型時2組患者的舒適度比較差異有統計學意義(P<0.05)(見表1)。數字化方法組取模時所有患者舒適度評級均為A級和B級,傳統方法組有3例患者在取模過程中存在強烈不適感。2組瓷貼面隨訪期內脫落率比較:46例患者跟蹤隨訪時間6個月,在隨訪期內,2組患者均未出現瓷貼面脫落,2組瓷貼面脫落率的差異無統計學意義。
ATK-AS608模塊具有USB、串口兩種通訊接口標配,用戶不需研究復雜的圖像處理過程以及指紋識別算法,而只需通過對USB或串口按照提供通訊協議便可對模塊實施控制。本模塊可應用于指紋鎖、保險箱柜、考勤機、門禁系統等場合。
ATK-AS608模塊內設有二個512bytes大小的特征文件緩沖區與一個72K字節的圖像緩沖區,名字分別稱為:CharBuffer1,CharBuffer2和ImageBuffer。用戶可以通過指令讀寫任意一個緩沖區。CharBuffer1或CharBuffer2既可以用于存放普通特征文件也可以用于存放模板特征文件。為了加快速度,通過UART口上傳或下載圖像時,只用到像素字節的高4位,即將兩個像素合成一個字節傳送;通過USB口則是整8位像素。
指紋庫容量根據掛接的FLASH容量不同而改變,系統會自動判別。指紋模板按照序號存放,序號定義為:0—(N-1)(N為指紋庫容量)。用戶只能根據序號訪問指紋庫內容。
(2)通信協議分析
上位機與模塊之間通訊、MCU與模塊之間通訊,模塊指令和數據的發送或接收,都是按照模塊指令格式和數據格式打包;解析指令和接收數據包也按照對應的格式。
一、指令格式
模塊指令格式分為三種:命令格式(如表1所示)、數據格式(如表2所示)、結束包格式(如表3所示)。

表1 命令格式

表2 數據包格式

表3 結束包格式
二、模塊應答格式
應答是將有關命令執行情況與結果上報給上位機或者MCU;應答包含有參數,并可跟后續數據包。上位機或者MCU只有在收到模塊的應答包后才能確認模塊收包情況與指令執行情況。模塊應答包中包含一個參數:確認碼。確認碼表示執行指令完畢的情況。模塊應答格式如表4所示。

表4 模塊應答格式
MSP430F5419 編譯環境為IAR for 430軟件,采用C語言編程。
按照功能來分,主要分為三部分:主程序,中斷程序,指紋模塊功能子程序等部分,每個功能是相互關聯的,又相互獨立,下面按功能要求來講述。
主程序流程圖如圖2:程序上電時,首先,時鐘及IO口初始化,串口初始化,語音初始化,指紋模塊初始化,,然后進入查詢按鍵,檢查按鍵功能進入相應的功能程序。

圖2 主程序流程圖

本次設計里一共有三個函數,分別是刪除指紋、錄指紋、刷指紋;每個函數都包含著很多相同的子功能函數,如獲取圖像命令PS_GetImage()、應答包處理功能JudgeStr()等,在此僅對press_FR()刷指紋函數實現進行介紹;其流程程圖如圖3所示。

圖3 刷指紋函數流程圖
函數代碼如下:

串口接收數據采用中斷的方式,當有數據來時,串口接收中斷信號,進入接收中斷,然后接收數據,按照指紋模塊提供的數據協議進行接收,其流程圖如圖4所示

圖4 串口接收指紋數據流程圖
中斷接收處理函數如下

本文由于篇幅的原因,很多細節沒有詳盡寫入。比如串口接收數據,文中只是簡單提到接收,其實這個也需要處理,在本次設計實現的程序里,開啟了一個1MS的定時器,時間到,即表示接收完畢,然后主程序開始處理接收到的數據;這是整個系統數據處理最重要的一塊。
[1]洪利,章揚,李世寶.MSP430單片機原理與應用實例詳解[M].北京:北京航空航天大學出版社,2010.7
[2]沈建華,楊艷琴,翟驍曙.MSP430系列16位超低功耗單片機原理與應用[M].北京:清華大學出版社,2004.11
[3]王桂榮,李憲芝.傳感器原理及應用[M].北京:中國電力出版社,2010.5
[4] Ramon Bardolet,Enrico Pigorsch.Sensors [M].Springer,2014.8
[5]ATK-AS608指紋識別模塊用戶手冊.pdf HTTP://www.openedv.com/thread-77992-1-1.html
[6]HD7279A串行接口8位LED數碼管及64鍵鍵盤智能控制芯片(第四版).PDF》HTTP://www.bitcode.com.cn
[7] B系列改進型中文液晶顯示模塊使用說明書.pdf HTTP://www.gptlcm.com
[8] ISD 1700系列數碼語音電路使用手冊(中文版).pdf HTTP://www.atvoc.com
彭克勤,女,碩士,副教授;朱敏玲,女,博士,副教授。