徐玉召 戴德偉 劉義 郭紅波
摘要:隨著社會發(fā)展與電子科學技術(shù)的不斷進步,人們對電子設備安全性的要求也越來也高,希望個人信息或個人設備信息能夠更加安全,應運而生的電子密碼鎖因此受到了很大的關(guān)注?;?1單片機的加密鎖使用RSA加密算法,其硬件系統(tǒng)內(nèi)置STC89C52芯片,利用藍牙設備接收信息和發(fā)送指令,由單片機完成處理信息和響應外部事件工作,從而實現(xiàn)電子鎖加密與解鎖等功能。
關(guān)鍵詞:電子密碼鎖;51單片機;藍牙
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)09-0212-03
目前,在國外RSA電子加密鎖技術(shù)運用已經(jīng)非常成熟,尤其在美國、德國等計算機技術(shù)發(fā)達國家,它的運用已經(jīng)相當普遍,美國已經(jīng)將這項技術(shù)運用到了公鑰加密標準和電子商業(yè)中。電子密碼鎖包括圖形鎖、密碼鎖、指紋鎖、人臉識別等,這些安全鎖使用不同的設鎖和解鎖的模式,大多運用電容、機器碼、熱感等開鎖原理,具有很高的安全性,對于網(wǎng)絡用戶的個人信息和財務等方面的安全提供了有力保障。但是,還是有少部分高智商的犯罪分子仍然無視他們的存在,究其主要原因還是因為這些加密技術(shù)在現(xiàn)有的破鎖技術(shù)下可強破性很高,如此的結(jié)果就使的他們無法達到對更高機密的保護要求。
當下,RSA電子密碼鎖開鎖解鎖模式和美國所運用的RSA密碼鎖解鎖開鎖模式基本相符,只是運用的主要硬件有所不同,電子密碼鎖所使用的STC89C52單片機內(nèi)部使用匯編語言處理信息,對代碼的要求較低,提升了電子密碼鎖廣泛應用的可行性。而在本設計思路中運用了RSA密鑰加密技術(shù),由于RSA加密技術(shù)在當下還屬于不可強破的加密技術(shù),從而增加了密碼鎖的不可強破性,提高了電子密碼鎖的安保性能,操作簡單、性價比更高。
1電子密碼鎖單片機系統(tǒng)設計
1.1單片機的內(nèi)部引腳原件功能和外部實現(xiàn)
單片機是一種集成電路芯片,采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)器等,還包括顯示驅(qū)動電路、發(fā)送數(shù)據(jù)的功能,具有接收信息、處理信息和做出外部響應的功能,以此來模擬密碼鎖。其內(nèi)部有四個八位并行I/O端口:記作P0、P1、P2和P3,每個端口都是準雙向口,包含一個鎖存器、一個輸出驅(qū)動器和一個輸入緩沖器。
P0口主要用于數(shù)碼管的顯示。P1口主要用于外部開鎖閉鎖和相對狀態(tài)的顯示,輸入輸出電路圖如圖1所示。P2端口的第1位(P2.1)接在繼電器的DIO端,在單片機內(nèi)控制高低電平,為P3口控制中斷提供指令。P3口主要是控制器,端口的第0位連接藍牙的TX端,是單片機串口的接收端,P3端口的第1位連接藍牙的RX端,是單片機串口的發(fā)送端。按鍵S4在內(nèi)部連接P3端口的第2位,為外部中斷0(低電位),按鍵S5在內(nèi)部連接P3端口的第3位,為部中斷1(高電位)。
P1口作為通用I/O口,被設計為電子密碼鎖的外部鎖頭的旋轉(zhuǎn)控制,對P1的操作可以采用字節(jié)操作,也可以采用位操作。復位以后,口鎖存器為“1”,對于作為輸入的口線,相應位的口鎖存器不能寫入“0”,在圖1中P1.0~P1.3作為輸出線,分別接,鎖身、鎖柄、開鎖狀態(tài)指示燈和閉鎖狀態(tài)指示燈,P1.4~P1.7作為輸入線,接四個開關(guān)S0~S3。圖1子程序采用字節(jié)操作指令將開關(guān)狀態(tài)送到P1.0~P1.3顯示,S1,S2閉合P1.0和P1.2分別處于開鎖和開鎖指示狀態(tài),S3,S4閉合P1.1和P1.3分別處于閉鎖和閉鎖指示狀態(tài),如果狀態(tài)指示燈不能與鎖頭鎖柄同步進行指示狀態(tài),說明電子加密鎖出現(xiàn)故障,需要維修。
1.2 單片機的功能
1)連接:和連接轉(zhuǎn)換模塊一樣,藍牙模塊的RX連接單片機的TX,藍牙模塊的TX連接單片機的RX,此處說明單片機的RX和TX引腳分別為P3.0 RXD(串行輸入口)和P3.1 TXD(串行輸出口),之后可相互記錄彼此的IP地址。在藍牙模塊和單片機進行連接的時候,還要注意保持兩者的晶振相同,一般在12MHZ左右,晶振大小可在某平臺購買的時候在詳細數(shù)據(jù)參數(shù)中查詢。
2)傳送數(shù)據(jù):數(shù)據(jù)傳送的匯編語言指令一共有28種,用到的助記符有如下8種:MOV、MOVC、XCH、XCHD、SWAP、PUSH、POP、MOVX,也可以使用C語言代碼中的UART_DMA_Enable傳送信息,電子加密鎖主要使用了UART_DMA_Enable調(diào)用dma(直接存儲器)的發(fā)送方式。傳送數(shù)據(jù)的類型可分為內(nèi)部RAM的數(shù)據(jù)傳輸指令和片外RAM的數(shù)據(jù)傳輸指令,片內(nèi)RAM的數(shù)據(jù)傳送指令可以分為立即型、直接型、寄存器型和寄存器間址型,立即型數(shù)據(jù)傳輸一般使用助記符MOV。而電子密碼鎖所使用的是片內(nèi)RAM的立即數(shù)據(jù)型傳送指令。
51單片機的串口,是個全雙工的串口,發(fā)送數(shù)據(jù)的同時,還可以接收數(shù)據(jù)。當串行發(fā)送完畢后,將在標志位TI置1,同樣,當收到了數(shù)據(jù)后,也會在RI置1。無論RI或TI出現(xiàn)了1,只要串口中斷處于開放狀態(tài),單片機都會進入串口中斷處理程序。在中斷程序中,要區(qū)分出來研究是發(fā)送引起的中斷,還是接收引起的中斷,然后分別進行處理。如果接收到1,則將P10置高電平,接收到0,P1.0置低電平。處于高電平時,開鎖狀態(tài),輸入輸出電路如圖1所示,以此來完成開鎖請求。
3)接收信息:接收信息,代碼使用程序存儲器ROM取數(shù)據(jù)指令,這種指令只有兩條,完成從程序存儲器ROM中讀入數(shù)據(jù),傳送至累加器。這兩條指令常用于查表操作,故又被稱之為查找指令,內(nèi)部主要依賴于P3.6/WR(外部數(shù)據(jù)存儲器寫選通)和P3.7/RD(外部數(shù)據(jù)存儲器讀選通)。串口接收程序基于串口中斷,單片機串口每次接收到一字節(jié)數(shù)據(jù)產(chǎn)生一次中斷,然后再讀取寄存器就可以得到串口所接收的數(shù)據(jù)。然而在實際應用當中,基本上不會有單字節(jié)接收的情況。一般都是基于一定串口通信協(xié)議的多字節(jié)通信。在422或者485通信中,還可能是一個主機(一般是計算機)帶多個從機(相應的有單片機的板卡)。這就要求單片機能夠在連續(xù)接收到的串口數(shù)據(jù)序列中識別出符合自己板卡對應的通信協(xié)議,來進行控制操作,不符合則不進行任何操作。簡而來說就是,單片機要在一串數(shù)據(jù)中找到符合一定規(guī)律的幾個字節(jié)的數(shù)據(jù),來達到匹配效果。
2藍牙模塊原理和功能
2.1 藍牙模塊的功能和作用
藍牙模塊是指集成藍牙功能的芯片基本電路集合,用于無線網(wǎng)絡通訊,大致可分為三大類型:數(shù)據(jù)傳輸模塊、遠程控制模塊和數(shù)據(jù)采集模塊。一般模塊具有半成品的屬性 ,是在芯片的基礎(chǔ)上進行加工,使后續(xù)應用更為方便。電子密碼鎖使用的是半成品藍牙模塊。電子密碼鎖藍牙模塊相當于開鎖裝置,是用來存儲RSA加密源碼和解秘源碼的模塊,同時具有與單片機進行藍牙方式連接、發(fā)送信息和接收信息的功能。
1)連接:使用的是HC-05型號的藍牙模塊,通過USB-TTL轉(zhuǎn)接器,在與單片機進行連接之前連接到電腦上,通過串口調(diào)試助手調(diào)試。進入命令調(diào)試模式,輸入AT指令,設置模塊的參數(shù)。設置藍牙的名稱,用指令AT+name=”xxx”\r\n設置藍牙模塊名字為xxx,方便后續(xù)查找。設置自動連接模式的串口波特率為9600,為了與藍牙模塊波特率進行匹配,用指令AT+uart=9600,0,0\r\n,設置波特率為9600,停止位1位,無校驗位。若藍牙模塊為手機時,可直接使用手機藍牙功能進行藍牙連接,在藍牙模塊的Java代碼內(nèi)進行波特率設置。
2)發(fā)送信息:配對完成后,設備之間已經(jīng)記錄了雙方的IP地址,通過點擊listView設備,觸發(fā)HandleMessage線程傳輸數(shù)據(jù),數(shù)據(jù)流以字節(jié)流的形式進行傳播。
3)接收數(shù)據(jù):通過觸發(fā)handerler.sendMessage自動接收數(shù)據(jù)流,以字節(jié)的方式接收之后再進行字符形式的轉(zhuǎn)換,達到獲取數(shù)據(jù)的目的。
2.2硬件功能流程
開始使用電子密碼鎖時,首先對藍牙模塊和單片機進行初始化,主要是執(zhí)行重啟操作即可,第二步在藍牙模塊上只需要按請求鍵請求請求重新生成密碼密鑰,可在,單片機接收并信息處理信息,做出生成密碼和保存密碼的指令,單片機顯示屏會提示密碼設置完成,第三步,利用藍牙模塊發(fā)出解鎖請求信息,在液晶顯示屏上顯示開鎖成功,開鎖狀態(tài)指示燈點亮,鎖頭旋轉(zhuǎn),達到解鎖的目的。解鎖開鎖的過程省去了手動輸入密碼是過程,在內(nèi)部使用函數(shù)直接調(diào)用接收信息端口。如圖2硬件功能實現(xiàn)流程圖所示。
3結(jié)語
電子加密鎖選擇51單片機,是因為它的指令簡單,外圍電路簡單,硬件設計方便,I/O口操作簡單,無方向寄存器,可用資源豐富,一般設計就可以滿足電子密碼鎖的需要,而且易學易懂,方便后期電子密碼鎖的維修工作。而藍牙模塊,價格便宜、容易購買,資料豐富容易獲得,程序編寫簡單,低功率,便于在停電的情況下使用小功率電池長期供電使用,而且使用藍牙通信,不受互聯(lián)網(wǎng)的限制,即便在沒有無線網(wǎng)的情況下也可以正常使用。所以基于51單片機模塊設計的電子密碼鎖將以其操作簡單、安全系數(shù)高和價格低廉等特點,被大眾所接受并得到廣泛的應用。
參考文獻:
[1] 鄧仲華,卓四清.手機應用程序開發(fā)[M].北京:科學出版社,2004:47-69.
[2] 趙德安.單片機原理與應用[M].機械工業(yè)出版社,2004:98-126.
[3] 徐萬明.基于單片機的多功能電子密碼鎖設計[J].信息通信,2018,184(4):119.
[4] 施亞杰,韓堅杰.基于AT89C51單片機的現(xiàn)代化電子密碼鎖探索[J].產(chǎn)業(yè)與科技論壇,2017,16(12):55-56.
[5] 徐劍琴,李克訥.AVR單片機的電子密碼鎖控制系統(tǒng)設計[J].裝備制造技術(shù),2017,2(15):63-70.
[6] 徐海華.基于STC15單片機和射頻模塊的電子密碼鎖設計[J].科技創(chuàng)新導報,2017(24):99-104.
[7] 麻銳敏.基于單片機的電子安全密碼鎖的設計初探[J].科技風,2018,8(14):59-91.
[8] 劉寺杰,郭翔宇. 基于單片機處理的電子密碼鎖設計[J].科教導刊,2018(8):49-50.
[9] 趙若靜.基于單片機的電子密碼鎖的設計[J].電子技術(shù)與軟件工程,2017(14):249.
[10] 嚴敏,黃皓.基于單片機的電子密碼鎖的設計與實現(xiàn)[J].佛山科學技術(shù)學院學報,2017,35(6):47-50.
【通聯(lián)編輯:唐一東】