基于紅外模塊的單片機電子密碼鎖安全性論證
4.3 遙控模塊電路設計
當鍵盤(pán)有鍵按下時(shí),編碼芯片激活,發(fā)送相應紅外編碼信號。由遙控器發(fā)送的紅外信號,經(jīng)過(guò)紅外一體化接收頭接收、放大、解調之后,將信號送到單片機P3.2引腳。本文引用地址:http://dyxdggzs.com/article/171922.htm
5 遙控模塊軟件的安全性設計方案
(1)HS0038的解調。一體化紅外接收頭HS0038將接收到的紅外信號放大、解調才送給單片機的。接收頭接收到的是38 kHz的串行脈沖信號,經(jīng)過(guò)解調之后轉換成TTL電平。接收頭的解調可簡(jiǎn)單理解為:在輸入脈沖串時(shí)輸出低電平,否則輸出高電平。一體化紅外接收頭解調前后的信號對比如圖10所示,可見(jiàn)解調后信號與編碼信號反相。
當按鍵按下后,經(jīng)過(guò)HS0038解調輸出的一幀信號則如圖11所示。
(2)解碼。
7461產(chǎn)生的遙控編碼是連續的42位二進(jìn)制碼組,其中前26位為用戶(hù)識別碼,能區別不同的紅外遙控設備,防止不同機種遙控碼互相干擾。后16位為8位的操作碼和8位的操作反碼用于核對數據是否接收準確。
單片機解碼是根據一體化紅外接收頭的解調信號進(jìn)行的,從上面的分析可知:任意按鍵按下后,都有9 ms的低電平起始碼和4.5 ms的高電平結果碼作為引導信號,因此應該在引導碼之后才能進(jìn)行解碼。
如何識別“0”和“1”是解碼的關(guān)鍵。根據位定義:“0”、“1”均以0.56 ms的低電平作為起始,兩者區別在于高電平的寬度不同,即“0”高電平為0.56 ms,“1”高電平為1.68 ms,因此解碼時(shí)須根據高電平的寬度來(lái)區別“0”和“1”。若從0.56 ms低電平過(guò)后,開(kāi)始延時(shí),0.56 ms之后,檢測到的為低電平,則該位為“0”,反之則為“1”。為了保證解碼的可靠性,高電平檢測延時(shí)應該在0.56~1.12ms,否則如果該位為“0”,讀到的已是下一位的高電平,因此取(1.12+0.56)/2=0.84ms較可靠,一般取0.84ms即可。
評論