基于單片機的現場無電源電子密碼鎖設計
2 軟件系統設計
系統軟件由控制部分主程序、數據接收程序、電機驅動程序、手持部分主程序、數據發送程序組成。控制部分與手持部分傳送開門、關門信號和鑰匙密碼信號,其中鑰匙密碼信號用1l位二進制數,具有較好的安全性。
2.1 數據“0”,“1”傳送方法
采用異步FSK通訊方式,使用信號的不同頻率來區分“0”和“1”,如圖6所示。

當信號頻率為20 kHz時,代表傳輸為“O”;當信號頻率為10 kHz時,代表傳輸為“1”。當晶振為12 MHz時,機器周期大約為1μs。在接收部分,定時器/計數器1用來記錄機器周期的個數。當記錄的機器周期個數在30~70之間時,可以確定接收到的是“O”(O的標準個數為50個);當記錄的機器周期個數在80~120之間時,確定接收到的是“1”(1的標準個數為100個),其他情況按錯誤處理。
2.2 通信協議設計
在傳送的信息中,一部分是*、閉鎖控制命令信號,另一部分是鑰匙密碼信息。控制部分接收到鑰匙密碼信息,經驗證與本機的密碼一致后可以執行*、閉鎖操作。采用異步通信方式,定義協議格式為起始位、鑰匙密碼信息位、開/關位、校驗位。其中,起始位為1位;鑰匙密碼信息為11位;開/關位為1位;校驗位為4位。當起始位為“0時,表示一幀數據的開始,加上此后連續的16位為一幀數據。
鑰匙信息共有2048種組合,開/關位為“1”,代表*操作;開/關位為“0”,代表閉鎖操作;校驗位由11鑰匙信息位和1為開/關位共12位(由高到低4位為1組)經2次異或操作得到。
2.3 程序設計
手持部分主程序完成系統初始化、讀取按鍵,形成數幀,啟動發送等任務。使用定時中斷T1,完成數據的發送過程。當為數據“0”時,定時器初值為65 535-50=65 485=FFCO(H);當為數據“1”時,定時器初值為65535-100=FF9B(H),逐次發送各位,直到將一幀數據發送結束。手持部分主程序和T1中斷程序流程如圖7和圖8所示。

控制部分采用定時器T0和外部中斷O實現,初始化設置定時器為內部計數方式,計數初值為0。當手持部分信號到達控制部分時,單片機的外部中斷O產生中斷,在中斷程序中讀取計數器的計數值t。當30≤t≤70時,接收到的位為“0”;當80≤t≤120時,接收到的位為“1”。將接收的各位組合起來恢復發送的一幀數據,經檢驗處理正確無誤后進行*或閉鎖操作。
3 結語
電子鎖系統的數據線和電源線采用一線制連接,使用方便;鑰匙密碼以加密的方式寫入存儲器中,具有很高的安全性;不需要現場提供電源,解決了傳統電子鎖需要現場提供電源的問題。電子鎖系統已在勝利油田孤島采油廠、東辛采油廠注水井的安全保護和東營移動通信公司通信線路地井的防盜裝置上得到了應用,具有較好的實用推廣價值。
評論