專利名稱:智能安全鍵盤的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型涉及一種智能安全鍵盤,可應(yīng)用于銀行、金融系統(tǒng)、商場超市購物p0s機(jī)、樓宇門禁系統(tǒng)等需要通過鍵盤輸入密碼的場所。
背景技術(shù):
隨著金融系統(tǒng)的逐漸發(fā)展以及消費(fèi)刷卡系統(tǒng)的普及,現(xiàn)在人們進(jìn)行刷卡消費(fèi)的頻率越來越高。在人們進(jìn)行刷卡時(shí)通常需要通過pos機(jī)密碼鍵盤輸入銀行卡密碼。目前使用的鍵盤的鍵值都是固定的,即1鍵所對應(yīng)位置的值永 久為l,人們通過這樣的鍵盤輸入密碼時(shí),即使后方等候消費(fèi)者在距離一米的 安全線以外等候,仍然可以通過刷卡者輸入鍵盤時(shí)手按鍵的位置來大致判斷 出密碼的數(shù)字,導(dǎo)致密碼外泄,造成不安全隱患。 實(shí)用新型內(nèi)容本實(shí)用新型的目的在于克服現(xiàn)有密碼輸入鍵盤鍵值固定導(dǎo)致密碼容易泄 漏的缺陷,提供了一種智能安全鍵盤,使用該鍵盤輸入密碼時(shí),可以有效防 止密碼被他人偷窺。為了實(shí)現(xiàn)上述目的,本實(shí)用新型采取了如下技術(shù)方案。本按鍵主要包括有MCU1、鍵值顯示及鍵值輸入模塊3;其中,MCU與鍵值顯示及鍵值輸入模塊3相連,MCU通過軟件程序生成順 序隨機(jī)排列的0 9十個(gè)數(shù),并把該排序的數(shù)送至鍵值顯示及鍵值輸入模塊3 中的鍵值顯示模塊顯示;MCU1通過行掃描和列掃描判斷鍵值顯示及鍵值輸入 模塊3中鍵值輸入模塊的哪個(gè)鍵被按下;MCU還設(shè)置有用于與上位機(jī)2相連接的接口,通過該接口 MCU1將鍵值顯 示及鍵值輸入模塊3中鍵值輸入模塊鍵入的鍵值傳送給上位機(jī)。所述的鍵值顯示及鍵值輸入模塊3上設(shè)置有"refresh"鍵,該鍵與MCU 連接,"refresh"鍵的按下可控制MCU1生成順序隨即排列的0 9十個(gè)數(shù),并把該排序的數(shù)送至鍵值顯示模塊顯示。所述的鍵值顯示及鍵值輸入模塊3上設(shè)置有"enter"鍵,該按鍵通過鍵 盤按鍵與MCU連接模塊2與MCU1連接,待輸入的數(shù)值全部輸完時(shí),可以按下 該鍵,當(dāng)該鍵被按下時(shí),MCU1將開始生成順序隨即排列的0 9十個(gè)數(shù),并把 該排序的數(shù)送至按鍵鍵值顯示模塊3顯示。MCU設(shè)置有用于與上位機(jī)相連接的接口,通過該接口 MCIJ1將鍵值顯示及 按鍵輸入模塊3中鍵值輸入模塊鍵入的鍵值傳送給上位機(jī)。所述的鍵值顯示及按鍵輸入模塊3中的鍵值顯示模塊為液晶顯示器或LED 數(shù)碼管,主要是在按鍵上按隨機(jī)順序顯示0 9十個(gè)數(shù)。所述的鍵值顯示及鍵值輸入模塊(3)中鍵值輸入模塊為液晶觸摸屏或按 鍵輸入模塊,MCU通過行掃描和列掃描來判斷鍵值輸入模塊中的哪個(gè)按鍵被按 下,并可以把所按鍵的鍵值通過接口傳送給上位機(jī)。MCU可實(shí)現(xiàn)三個(gè)功能1)生成順序隨機(jī)排列的0 9十個(gè)數(shù);2)確認(rèn)鍵 值輸入模塊3中的被按鍵的位置和該鍵所顯示的數(shù)值;3)將傳送至MCU的按 下鍵的鍵值傳送至上位機(jī)。本實(shí)用新型輸入鍵上的數(shù)值是隨機(jī)改變的,在用該鍵輸入密碼時(shí),他人 不能通過手按鍵的位置來判斷所輸入的數(shù)值,具有一定的安全性。
圖1為本實(shí)用新型的智能安全鍵盤的結(jié)構(gòu)框圖; 圖2為本智能安全鍵盤的主要工作流程; 圖3為本智能安全鍵盤的電路原理圖。
具體實(shí)施方式
結(jié)合圖i 圖3詳細(xì)說明本實(shí)施例。本實(shí)施例主要包括有MCU、上位機(jī)、鍵值顯示及鍵值輸入模塊3。 MCU通 過軟件程序生成順序隨機(jī)排列的0 9十個(gè)數(shù),并把該排序的數(shù)送至鍵值顯示 模塊3顯示,由于鍵值不固定,鍵帽改用七段LED顯示器代替,直接將鍵盤鍵盤主要工作流程見圖2,鍵盤上電后,首先進(jìn)行初始化復(fù)位,并顯示原
始鍵值排列,如0 9順序排列。在鍵盤中設(shè)置一個(gè)功能鍵(Refresh),該鍵 的作用為刷新鍵值排序,每按一次功能鍵,鍵盤鍵值排序發(fā)生一次改變。同 時(shí),鍵值顯示及按鍵輸入模塊3上還設(shè)置有的確認(rèn)鍵(enter)和清除鍵 (clear),在按下確認(rèn)鍵時(shí)系統(tǒng)自動對鍵值進(jìn)行新的排序,并將確認(rèn)鍵之前 所按鍵的鍵值返回上位機(jī)。
本實(shí)施例中的MCU選用的是Atmel公司基于MSC-51內(nèi)核的AT89S52芯片。 通過對單片機(jī)進(jìn)行編程,單片機(jī)能自動生成隨機(jī)排序的0 9十個(gè)數(shù),單片機(jī) 將該隨機(jī)數(shù)送至LED顯示。隨機(jī)鍵值排序是按如下方法生成的
本實(shí)施例中借助C程序中srand()函數(shù)和rand()函數(shù)生成隨機(jī)鍵值排序。 這兩個(gè)函數(shù)配合可以生成指定數(shù)量、指定位數(shù)的隨機(jī)數(shù),但是該隨機(jī)數(shù)存在 重復(fù)的可能性。假設(shè)編程生成IO個(gè)一位的數(shù)組,可以符合要求,但是10個(gè) 一位數(shù)中可能出現(xiàn)兩次0或者n次其他的數(shù),不符合鍵盤鍵值的要求,因?yàn)?鍵盤的鍵值必須是0 9十個(gè)數(shù),不能重復(fù)。因此我們借助一維數(shù)組實(shí)現(xiàn)得到 10個(gè)不重復(fù)的一位數(shù)字的要求。
首先定義一個(gè)0 9的數(shù)組,假設(shè)為a[10]—0, 1, 2, 3, 4, 5, 6, 7, 8, 9},通過srand()函數(shù)和rancl()函數(shù)配合生成的隨機(jī)數(shù)為c,要產(chǎn)成的新的數(shù) 組為b[10]二(0h第一次獲得一個(gè)隨機(jī)數(shù)cl,我們將a[cl]賦給b[O],同時(shí) 將a[10]中cl位置后的數(shù)前移,直到第9位數(shù)字移到第8位。進(jìn)行十次循環(huán)。 在上述過程中,在將a數(shù)組中的數(shù)賦值給b數(shù)組時(shí)需要判斷獲得的隨機(jī)數(shù)是 否小于現(xiàn)在a數(shù)組已經(jīng)賦給b數(shù)組值的個(gè)數(shù),如現(xiàn)在b數(shù)組中已經(jīng)有5個(gè)值 被a數(shù)組賦過值,如果這時(shí)獲得的隨機(jī)數(shù)為8,大于5,繼續(xù)賦值將會導(dǎo)致新 的數(shù)組中出現(xiàn)一個(gè)重復(fù)數(shù)值,無法達(dá)到要求,因此需要重新獲得隨機(jī)數(shù),直 至隨機(jī)數(shù)小于等于5,方可繼續(xù)賦值。由于從a數(shù)組中選取數(shù)賦值的數(shù)字不固 定,因此具有一定的隨機(jī)性。本例中假設(shè)的數(shù)組a為0 9順序排列,亦可隨機(jī)不重復(fù)排列,這樣隨機(jī)性更高。
單片機(jī)將生成的隨機(jī)排序的十個(gè)數(shù)送至鍵盤鍵值顯示及按鍵輸入模塊3
顯示,鍵盤鍵值顯示及按鍵輸入模塊3可為液晶顯示器和LED數(shù)碼管。
本實(shí)施例中的鍵盤鍵值顯示選用的是LED數(shù)碼管。本實(shí)施例有10個(gè)LED 顯示器固定在鍵盤上,但各個(gè)LED所對應(yīng)的鍵值將不再是固定不變的,單片 機(jī)在接收到生成的鍵值排序指令后生成新的鍵值排序,并對應(yīng)到各個(gè)LED顯 不器。
LED的顯示采用靜態(tài)顯示方式。靜態(tài)顯示方式需要專門的接口電路,電路 中需要鎖存器??梢蕴峁﹩为?dú)鎖存的1/0接口電路有許多種,本鍵盤采用的 是常用的串并轉(zhuǎn)換移位寄存器74LS164。
鍵盤鍵值顯示模塊使用單片機(jī)的兩個(gè)端口 P3.0、 P3. 1,利用單片機(jī)本身 的串口來驅(qū)動鍵盤鍵值的顯示。配以10片串入并出移位寄存器74LS164。其 中74LS164的引腳Q0 Q7為8位并行輸出端;引腳A、 B為串行輸入端;引 腳CLK為時(shí)鐘脈沖輸入端,在CLK脈沖的上升沿作用下實(shí)現(xiàn)移位,在CLK二O、 清除端MR二1時(shí),74LS164保持原來的數(shù)據(jù)狀態(tài);MR=0時(shí),74LS164輸出清零。
10片7禮S164首尾相串,而時(shí)鐘端則接在一起,這樣,當(dāng)輸入8個(gè)脈沖 時(shí),從單片機(jī)輸出的數(shù)據(jù)就進(jìn)入到了第一片74LS164,而當(dāng)?shù)诙€(gè)8個(gè)脈沖到 來后,這個(gè)數(shù)據(jù)就進(jìn)入了第二個(gè)7禮S164,而新的數(shù)據(jù)則進(jìn)入了第一片 74LS164。這樣,當(dāng)?shù)?0個(gè)8個(gè)脈沖完成后,首次送出的數(shù)據(jù)就被送到了最 左邊即第一個(gè)74LS164中,其他數(shù)據(jù)一次出現(xiàn)在第一到第九片74LS164中。 最終實(shí)現(xiàn)將單片機(jī)生成的新的鍵值排序顯示在鍵盤按鍵的LED顯示器上,方 便密碼輸入者輸入數(shù)據(jù)。
鍵值顯示及鍵值輸入模塊4中的鍵值輸入模塊主要是實(shí)現(xiàn)按鍵的識別功 能,可以為觸摸屏或按鍵輸入模塊。
本實(shí)施例中選用的按鍵輸入模塊,就是判斷鍵盤中是否有鍵按下,若有 鍵按下則確定其所在的行列位置。本實(shí)施例中釆用的程序掃描法是一種常用的鍵識別方法,在這種方法中,只要CPU空閑,就調(diào)用鍵盤掃描程序,查詢 鍵盤并給預(yù)處理。采用查詢方法實(shí)現(xiàn)的鍵盤掃描程序的過程如下
A、 查詢是否有鍵按下
首先單片機(jī)向行掃描口 P1.4 P1.7輸出全為"0"掃描碼F0H,然后從列 檢測口 P1.0 PL3輸入列檢測信號,只要有一列信號不為"l",即P1 口不 為FOH,則表示有鍵按下。接著要查出按下鍵所在的行列位置。
B、 查詢按下鍵所在的行列位置
單片機(jī)將得到的信號取反,P1.0 P1.3中為l的位便是鍵所在的列。也 即確定鍵所在的行,需要進(jìn)行逐行掃描。單片機(jī)首先使P1.0接地,P1.1 P1.7為"l",即向P1 口發(fā)送掃描碼FEH,接著輸入列檢測信號,若為全"1", 表示不在第一行。接著使Pl.l接地,其余為"1",再讀入列信號。這樣逐 行發(fā)"O"掃描,直到找到按下鍵所在的行,將該行掃描碼取反保留。當(dāng)各行 都掃描以后仍沒有找到,則放棄掃描,認(rèn)為是鍵的誤動作。
C、 對得到的行號和列號譯碼,得到鍵值。 由于本系統(tǒng)采用不含接口轉(zhuǎn)換功能的MCU,所以需要單獨(dú)設(shè)計(jì)轉(zhuǎn)換模塊進(jìn)
行轉(zhuǎn)換,以便是單片機(jī)與上位機(jī)5之間進(jìn)行通訊,以便把鍵入的數(shù)值傳送給 上位機(jī)。本實(shí)施例采用CP2101 USB轉(zhuǎn)UART橋接器實(shí)現(xiàn)轉(zhuǎn)換功能。
CP2101是一種高度集成的USB轉(zhuǎn)UART橋接器提供一個(gè)使用最小化的元件 和PCB空間實(shí)現(xiàn)RS232轉(zhuǎn)USB的簡便的解決方案,該芯片包含一個(gè)USB 2. 0 全速功能控制器、USB收發(fā)器振蕩器和帶有全部的調(diào)制解調(diào)器控制信號的異步 串行數(shù)據(jù)總線(UART),全部功能集成在一個(gè)5咖X 5腿MLP-28封裝的IC中, 無需其他的外部USB元件,片內(nèi)EEPR0M可以用于由原始設(shè)備制造商自定義USB 供應(yīng)商代碼、產(chǎn)品代碼、產(chǎn)品描述文字、功率標(biāo)牌、版本號和器件序列號等 數(shù)據(jù)的存儲空間。
權(quán)利要求1. 智能安全鍵盤,其特征在于主要包括有MCU(1)、鍵值顯示及鍵值輸入模塊(3),其中,通過軟件程序生成順序隨機(jī)排列的0~9十個(gè)數(shù)的MCU(1)與用于顯示該排序的十個(gè)數(shù)的鍵值顯示及鍵值輸入模塊(3)相連;通過行掃描和列掃描判斷鍵值顯示及鍵值輸入模塊(3)中鍵值輸入模塊的哪個(gè)按鍵被按下的MCU(1)設(shè)置有用于與上位機(jī)相連接的接口,通過該接口MCU(1)將鍵值顯示及鍵值輸入模塊(3)中鍵值輸入模塊鍵入的鍵值傳送給上位機(jī)。
2、 根據(jù)權(quán)利要求1所述的智能安全鍵盤,其特征在于所述的鍵值顯示及鍵值輸入模塊(3)中的鍵值顯示模塊為液晶顯示器或LED數(shù)碼管。
3、 根據(jù)權(quán)利要求1所述的智能安全鍵盤,其特征在于所述的鍵值顯示及鍵 值輸入模塊(3)中鍵值輸入模塊為液晶觸摸屏或按鍵輸入模塊。
4、 根據(jù)權(quán)利要求1所述的智能安全鍵盤,其特征在于鍵值顯示及鍵值輸入模塊(3)上還設(shè)置有"refresh"鍵。
5、 根據(jù)權(quán)利要求1所述的智能安全鍵盤,其特征在于鍵值顯示及鍵值輸入 模塊(4)上還設(shè)置有"enter"鍵。
6、 根據(jù)權(quán)利要求1所述的智能安全鍵盤,其特征在于所述的MCU(1)用于與 上位機(jī)(2)相連接的接口為USB或UART或COM 口或串口。
專利摘要本實(shí)用新型涉及一種智能安全鍵盤,用于銀行、商場超市購物POS機(jī)等需要通過鍵盤輸入密碼的場所。包括有MCU、鍵值顯示及鍵只值輸入模塊(3)。MCU通過軟件程序生成順序隨機(jī)排列的0~9十個(gè)數(shù),并把該排序的數(shù)送至鍵值顯示及鍵值輸入模塊(3)中的鍵值顯示模塊顯示;MCU通過行掃描和列掃描判斷鍵值顯示及鍵值輸入模塊(3)中鍵值輸入模塊的哪個(gè)按鍵被按下;MCU(1)設(shè)置有用于與上位機(jī)相連接的接口,通過該接口MCU(1)將鍵值顯示及鍵值輸入模塊(3)中鍵值輸入模塊鍵入的鍵值傳送給上位機(jī)。本實(shí)用新型輸入鍵上的數(shù)值是隨機(jī)改變的,在用該鍵輸入密碼時(shí),他人不能通過手按鍵的位置來判斷所輸入的數(shù)值,具有一定的安全性。
文檔編號G07F7/00GK201111222SQ20072014952
公開日2008年9月3日 申請日期2007年6月8日 優(yōu)先權(quán)日2007年6月8日
發(fā)明者張萬榮, 甘軍寧, 賈寶敦, 魯俊杰 申請人:北京工業(yè)大學(xué)