專利名稱:一種矩陣鍵盤電路、掃描方法、裝置、處理器及手持終端的制作方法
技術領域:
本發明涉及移動通信設備領域,尤其涉及一種矩陣鍵盤電路、掃描方法、裝置、處理器及手持終端。
背景技術:
手持設備(包括無線移動終端)中鍵盤控制器基本上都已集成到主芯片上,鍵盤控制器的掃描信號復用主芯片IO 口。例如,傳統6x6矩陣鍵盤電路如圖1所示,處理器的IO端口分別用于發送列掃描信號Col和行掃描信號Row [,各個列掃描輸入信號Col [5. . . 0]分別通過各自對應的電阻R 上拉至電源VCC,行掃描信號Row [5. . . 0]和列掃描輸入信號Col [5. . . 0]在交叉處不直接連通,通過按鍵連接到列掃描輸入信號Col [5. . . 0]上;當有按鍵發生時,會產生中斷,然后處理器逐行掃描獲得按鍵碼,掃描流程如圖2所示。假如要支持36個按鍵,至少需要12根掃描信號,包括6根行掃描信號和6根列掃描信號。由于中、高端手持終端應用功能比較非富,所需IO資源多,而鍵盤掃描信號又占用了很多IO 口,往往造成IO端口不夠用的情況,影響了終端的性能。
發明內容
有鑒于此,本發明提供一種矩陣鍵盤電路、掃描方法、裝置、處理器及手持終端。其具體方案如下一種矩陣鍵盤電路,包括正相矩陣、反相矩陣和/或獨立矩陣,其中所述正相矩陣中,各個列掃描輸入信號分別通過各自對應的第一電阻上拉至電源,各個行掃描信號通過各自對應的第一按鍵連接到各個列掃描輸入信號,當正相矩陣中有按鍵按下時,連接該按鍵的所述列輸入掃描信號高低狀態與所述行輸出掃描信號高低狀態相同;所述反相矩陣中,所述各個行掃描信號通過各自對應的依次串聯的第二按鍵、第二電阻和三極管,與各個列掃描信號相連,當反相矩陣中有按鍵按下時,連接該按鍵的所述列輸入掃描信號高低狀態與所述行輸出掃描信號高低狀態相反;所述獨立矩陣中,所述各個列掃描信號通過各自對應的依次串聯的第三按鍵和第三電阻接地,當獨立矩陣中有按鍵按下時,連接該按鍵的列掃描信號輸入狀態為O。優選的,所述三極管為NPN管。一種矩陣鍵盤電路掃描方法,包括當有按鍵按下時,行掃描信號分別輸出全0和全1 ;分別讀取行掃描信號為全0時,所述列掃描信號的第一掃描結果和所述行掃描信號為全1時,所述列掃描信號的第二掃描結果;分析所述第一掃描結果和第二掃描結果,確定按鍵類型;依據所述確定的按鍵類型,執行相應的操作,以確定當前被按下的按鍵。
優選的,所述分析所述第一掃描結果和第二掃描結果,確定其按鍵類型的過程包括當所述第一掃描結果和第二掃描結果的值全為1時,確定所述按鍵類型為抖動;當所述第一掃描結果與所述第二掃描結果相同時,確定所述按鍵類型為獨立矩陣按鍵;當所述第一掃描結果不全為1,而所述第二掃描結果全為1時,確定所述按鍵類型為正相矩陣按鍵;當所述第一掃描結果全為1,而所述第二掃描結果不全為1時,確定所述按鍵類型為反相矩陣按鍵。優選的,所述依據所述確定的按鍵類型,執行相應的操作,以確定當前被按下的按鍵的過程包括當所述按鍵類型為獨立矩陣按鍵時,查找所述第一掃描結果中為0的比特位,確定所述比特位對應的按鍵為當前被按下的按鍵;當所述按鍵類型為正相矩陣按鍵時,各行掃描信號依次按照當前行輸出0,其他行輸出1的順序輸出掃描信號,掃描正相矩陣中的按鍵,以確定當前被按下的按鍵;當所述按鍵類型為反相矩陣按鍵時,各行掃描信號依次按照當前行輸出1,其他行輸出0的順序輸出掃描信號,掃描反相矩陣中的按鍵,以確定當前被按下的按鍵。優選的,行掃描信號分別輸入全0和全1的步驟前還包括等待預設時間;判斷當前是否有鍵按下,若是,則繼續執行,若否,則結束。一種矩陣鍵盤電路掃描裝置,包括掃描信號輸出單元,用于當有按鍵按下時,行掃描信號分別輸出全0和全1 ;掃描結果讀取單元,用于分別讀取行掃描信號為全0時,所述列掃描信號的第一掃描結果和所述行掃描信號為全1時,所述列掃描信號的第二掃描結果;分析確定單元,用于分析所述第一掃描結果和第二掃描結果,確定按鍵類型;按鍵確定單元,用于依據所述確定的按鍵類型,執行相應的操作,以確定當前被按下的按鍵。一種處理器,包括矩陣鍵盤掃描裝置,所述矩陣鍵盤掃描裝置用于,當所述矩陣鍵盤電路中有按鍵按下時,控制行掃描信號分別輸出全0和全1,分別讀取行掃描信號為全 0時,所述列掃描信號的第一掃描結果和所述行掃描信號為全1時,所述列掃描信號的第二掃描結果,分析所述第一掃描結果和第二掃描結果,確定按鍵類型,依據所述確定的按鍵類型,執行相應的操作,以確定當前被按下的按鍵。一種手持終端,包括上述矩陣鍵盤電路和與所述矩陣鍵盤電路相連的,上述的處理器。優選的,所述手持終端為手機或掌上電腦PDA。如上述方案所述,本發明實施例公開的矩陣鍵盤電路,包括正相矩陣、反相矩陣和 /或獨立矩陣,在不增加掃描信號的情況下,通過相同掃描信號在不同矩陣具有不同掃描結果的特征,對鍵盤進行掃描,可以大大提高按鍵掃描數量,解決了 IO端口不夠用的問題,提高了終端的性能。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1為現有矩陣鍵盤電路的結構示意圖;圖2為現有的按鍵掃描流程圖;圖3為本發明實施例公開的矩陣鍵盤電路的結構示意圖;圖4為本發明實施例公開的矩陣鍵盤電路掃描方法流程圖;圖5為本發明實施例公開的確定按鍵類型的方法流程圖;圖6為本發明實施例公開的確定當前被按下的按鍵的方法流程圖;圖7為本發明實施例公開的矩陣鍵盤掃描裝置的結構示意圖;圖8為本發明實施例公開的手持終端的結構示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。本發明實施例公開了一種矩陣鍵盤電路,其結構如圖3所示,包括正相矩陣31、 反相矩陣32和獨立矩陣33,其中本實施例中鍵盤控制器輸出的行掃描信號和列掃描信號的個數分別為m+1、n+1,各個行掃描信號對應的第一按鍵的個數為n+1,分別對應于n+1 個列掃描信號,正相矩陣中的第一按鍵的總個數為(m+1)*(n+1)個,第二按鍵的總個數為 (m+1)*(n+1)個,第三按鍵的總個數為n+1個。所述正相矩陣31中,各個列掃描輸入信號Col [n. . . 0]分別通過各自對應的第一電阻RlO Rln上拉至電源,各個行掃描信號Row[m. . . 0]通過各自對應的第一按鍵連接到各個列掃描輸入信號Col [n. . . 0],當正相矩陣31中有按鍵按下時,連接該按鍵的所述列輸入掃描信號高低狀態與所述行輸出掃描信號高低狀態相同。所述反相矩陣32中,所述各個行掃描信號Row[m. . . 0]通過各自對應的依次串聯的第二按鍵、第二電阻R20 R2n和NPN三極管Qn Q0,與各個列掃描信號Col [n. . . 0]相連,當反相矩陣中有按鍵按下時,連接該按鍵的所述列輸入掃描信號高低狀態與所述行輸出掃描信號高低狀態相反。所述獨立矩陣33中,所述各個列掃描信號Col[n. . . 0]通過各自對應的依次串聯的第三按鍵和第三電阻R30 R3n接地,當獨立矩陣中有按鍵按下時,連接該按鍵的列掃描信號輸入狀態為0。上述矩陣電路中,電阻RlO Rln阻值可相等,通常取47Kohm,電阻R20 R&1阻值可相等,通常取47Kohm,電阻R30 R3n阻值可相等,通常取4. 7Kohm。本實施例中,如果m、η都取4,即行掃描信號和列掃描信號的個數分別為4個,如果按照圖1中連接方式,其只可掃描4*4 = 16個按鍵。而按照圖3中所示連接方式,在不增加掃描信號的情況下,共可以掃描4*4+4*4+4 = 36個按鍵,由此可以看出,本發明實施例公開的矩陣鍵盤電路可以大大提高按鍵掃描數量,解決了 IO端口不夠用的問題,提高了終端的性能。本實施例并不限定鍵盤矩陣電路中需要同時包含反相矩陣和獨立矩陣,可以根據實際需要,任意選擇反相矩陣或獨立矩陣與正相矩陣配合使用,使得其可以根據實際情況擴大按鍵數量,方便靈活的適應多種情況的需求。假設采用正相矩陣與反相矩陣相配合,其可掃描的按鍵個數為4*4+4*4 = 32個,在不增加掃描信號的情況下,將按鍵掃描個數提高了一倍。假設采用正相矩陣與獨立矩陣相配合,其可掃描的按鍵個數為4*4+4 = 20個,在不增加掃描信號的情況下,掃描按鍵的個數提升了四個。上述實施例中的三極管同樣可以選用PNP,只是需要根據管子的類型,相應的調整具體的電路連接形式。本發明同時公開了一種矩陣鍵盤電路掃描方法,與上述鍵盤矩陣電路配合使用, 其流程如圖4所示,包括步驟S41、當有按鍵按下時,行掃描信號分別輸出全0和全1 ;步驟S42、分別讀取行掃描信號為全0時,所述列掃描信號的第一掃描結果和所述行掃描信號為全1時,所述列掃描信號的第二掃描結果;步驟S43、分析所述第一掃描結果和第二掃描結果,確定按鍵類型;如果當前的鍵盤矩陣電路中包含正相矩陣和反向矩陣,則按鍵類型包括正相矩陣按鍵和反相矩陣按鍵,如果包括獨立矩陣,則按鍵類型還包括獨立矩陣按鍵,以利用矩陣類型區分按鍵所在的區域。步驟S44、依據所述確定的按鍵類型,執行相應的操作,以確定當前被按下的按鍵。根據按鍵所在的不同區域,采用相應的方法,確定該區域中被按下的按鍵。上述步驟中,還可以包括,在流程開始之初,當判斷有鍵按下時,等待預設時間;然后判斷當前是否有鍵按下,若是,則繼續執行,若否,則結束。以實現通過延時的方式,消除由于按鍵抖動造成的誤判,提高判斷的準確性。本實施例中通過設定行掃描信號的輸出值,以獲得列掃描信號在不同的行掃描信號輸出值時對應的結果,進而通過結果判斷出按鍵類型,即,是哪一個矩陣中的按鍵被按下,然后根據該矩陣的特點,執行相應的操作以確定具體的按鍵。該方法簡單易行,可適應于上述鍵盤矩陣電路的多種實現形式。進一步的,上述步驟中,所述分析所述第一掃描結果和第二掃描結果,確定其按鍵類型的過程如圖5所示,包括步驟S51、判斷所述第一掃描結果與第二掃描結果是否相同,若是,則執行步驟 S52,若否,則執行步驟S53 ;步驟S52、確定所述按鍵類型為獨立矩陣按鍵,并結束;步驟S53、判斷所述第一掃描結果和第二掃描結果的值是否全為1,若是,則執行步驟S54,若否,則執行步驟S55 ;步驟S54、確定所述按鍵類型為抖動,并結束;步驟S55、判斷所述第一掃描結果是否不全為1,而所述第二掃描結果全為1,若是,則執行步驟S56,若否,則執行步驟S57 ;步驟S56、確定所述按鍵類型為正相矩陣按鍵,并結束;步驟S57、判斷所述第一掃描結果是否全為1,而所述第二掃描結果不全為1,若是,則執行步驟S58,若否,則執行步驟S59 ;步驟S58、確定所述按鍵類型為反相矩陣按鍵,并結束;步驟S59、確定所述按鍵為無效按鍵。本實施例中根據第一掃描結果與第二掃描結果的不同情況,分析出當前按鍵的按鍵類型,以通過其按鍵類型確定其所處的位置,便于后續采用不同的處理方法,判斷具體的被按下的按鍵。本實施例并不限定多個判別條件的先后順序,可以根據實際需要任意調整其順序。進一步的,依據所述確定的按鍵類型,執行相應的操作,以確定當前被按下的按鍵的流程如圖6所示,包括步驟S61、當所述按鍵類型為獨立矩陣按鍵時,查找所述第一掃描結果中為0的比特位,確定所述比特位對應的按鍵為當前被按下的按鍵;如果第一掃描結果為1101,則對應的獨立矩陣中與電阻R32對應的按鍵被按下。步驟S62、當所述按鍵類型為正相矩陣按鍵時,各行掃描信號依次按照當前行輸出 0,其他行輸出1的順序輸出掃描信號,掃描正相矩陣中的按鍵,以確定當前被按下的按鍵;其具體過程為=RowO輸出0,Row[3. . . 1]輸出1,掃描正相矩陣中的按鍵,看第一行中哪一個按鍵對應的列掃描信號輸入為0,如果沒有,則Rowl輸出0,其他行輸出1,掃描正相矩陣中的按鍵,看第二行中哪一個按鍵對應的列掃描信號為0,依次變換行掃描信號的輸出,直到檢測完全部四行的按鍵,找到被按下的鍵。步驟S63、當所述按鍵類型為反相矩陣按鍵時,各行掃描信號依次按照當前行輸出 1,其他行輸出0的順序輸出掃描信號,掃描反相矩陣中的按鍵,以確定當前被按下的按鍵。具體步驟與上述步驟S62相似,只是行掃描信號的輸出值做了相應調整,判斷被按下鍵的原則與其相反。通過上述步驟,確定出被按下的鍵,各個矩陣間判別規則相互獨立,避免發生誤判,提高了判別準確性。進一步的,本發明公開了一種矩陣鍵盤掃描裝置,以用于對上述鍵盤矩陣電路的信號進行處理,實現對各個按鍵的掃描和確定。其結構如圖7所示,包括掃描信號輸出單元71、掃描結果讀取單元72、分析確定單元73和按鍵確定單元74,其中掃描信號輸出單元71用于當有按鍵按下時,行掃描信號分別輸出全0和全1 ;掃描結果讀取單元72用于分別讀取行掃描信號為全0時,所述列掃描信號的第一掃描結果和所述行掃描信號為全1時,所述列掃描信號的第二掃描結果;分析確定單元73用于分析所述第一掃描結果和第二掃描結果,確定按鍵類型;按鍵確定單元74用于依據所述確定的按鍵類型,執行相應的操作,以確定當前被按下的按鍵。本矩陣鍵盤掃描裝置中各個單元的工作原理如下所述當有鍵按下時,掃描信號輸出單元控制行掃描信號依次輸出全0和全1,掃描結果讀取單元讀取當行掃描信號依次輸出全0時列掃描信號的第一掃描結果和行掃描信號輸出全1時,列掃描信號的第二掃描結果,將所述結果在分析確定單元內進行分析,確定不同的結果對應的按鍵類型,然后利用按鍵確定單元,確定出當前被按下的按鍵。其具體工作過程如上述方法實施例所述,在此不再贅述。同時,本發明公開了一種具有上述矩陣鍵盤掃描裝置的處理器,所述矩陣鍵盤掃描裝置用于,當所述矩陣鍵盤電路中有按鍵按下時,控制行掃描信號分別輸出全0和全1, 分別讀取行掃描信號為全0時,所述列掃描信號的第一掃描結果和所述行掃描信號為全1 時,所述列掃描信號的第二掃描結果,分析所述第一掃描結果和第二掃描結果,確定按鍵類型,依據所述確定的按鍵類型,執行相應的操作,以確定當前被按下的按鍵。進一步的,本發明還公開了一種手持終端,其結構如圖8所示,包括上述實施例所述的矩陣鍵盤電路81和與所述矩陣鍵盤電路相連的處理器82 ;所述處理器82用于,當所述矩陣鍵盤電路81中有按鍵按下時,控制行掃描信號分別輸出全0和全1,分別讀取行掃描信號為全0時,所述列掃描信號的第一掃描結果和所述行掃描信號為全1時,所述列掃描信號的第二掃描結果,分析所述第一掃描結果和第二掃描結果,確定按鍵類型,依據所述確定的按鍵類型,執行相應的操作,以確定當前被按下的按鍵。進一步的,本實施例中所述的手持終端為手機或掌上電腦PDA,或者任意一種具有矩陣鍵盤電路的終端設備。本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。專業人員還可以進一步意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。結合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執行的軟件模塊,或者二者的結合來實施。軟件模塊可以置于隨機存儲器(RAM)、內存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術領域內所公知的任意其它形式的存儲介質中。對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。 對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或范圍的情況下,在其它實施例中實現。因此,本發明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
權利要求
1.一種矩陣鍵盤電路,其特征在于,包括正相矩陣、反相矩陣和/或獨立矩陣,其中 所述正相矩陣中,各個列掃描輸入信號分別通過各自對應的第一電阻上拉至電源,各個行掃描信號通過各自對應的第一按鍵連接到各個列掃描輸入信號,當正相矩陣中有按鍵按下時,連接該按鍵的所述列輸入掃描信號高低狀態與所述行輸出掃描信號高低狀態相同;所述反相矩陣中,所述各個行掃描信號通過各自對應的依次串聯的第二按鍵、第二電阻和三極管,與各個列掃描信號相連,當反相矩陣中有按鍵按下時,連接該按鍵的所述列輸入掃描信號高低狀態與所述行輸出掃描信號高低狀態相反;所述獨立矩陣中,所述各個列掃描信號通過各自對應的依次串聯的第三按鍵和第三電阻接地,當獨立矩陣中有按鍵按下時,連接該按鍵的列掃描信號輸入狀態為0。
2.根據權利要求1所述的電路,其特征在于,所述三極管為NPN管。
3.一種矩陣鍵盤電路掃描方法,其特征在于,包括 當有按鍵按下時,行掃描信號分別輸出全0和全1 ;分別讀取行掃描信號為全0時,所述列掃描信號的第一掃描結果和所述行掃描信號為全1時,所述列掃描信號的第二掃描結果;分析所述第一掃描結果和第二掃描結果,確定按鍵類型;依據所述確定的按鍵類型,執行相應的操作,以確定當前被按下的按鍵。
4.根據權利要求3所述的方法,其特征在于,所述分析所述第一掃描結果和第二掃描結果,確定其按鍵類型的過程包括當所述第一掃描結果和第二掃描結果的值全為1時,確定所述按鍵類型為抖動; 當所述第一掃描結果與所述第二掃描結果相同時,確定所述按鍵類型為獨立矩陣按鍵;當所述第一掃描結果不全為1,而所述第二掃描結果全為1時,確定所述按鍵類型為正相矩陣按鍵;當所述第一掃描結果全為1,而所述第二掃描結果不全為1時,確定所述按鍵類型為反相矩陣按鍵。
5.根據權利要求4所述的方法,其特征在于,所述依據所述確定的按鍵類型,執行相應的操作,以確定當前被按下的按鍵的過程包括當所述按鍵類型為獨立矩陣按鍵時,查找所述第一掃描結果中為0的比特位,確定所述比特位對應的按鍵為當前被按下的按鍵;當所述按鍵類型為正相矩陣按鍵時,各行掃描信號依次按照當前行輸出0,其他行輸出 1的順序輸出掃描信號,掃描正相矩陣中的按鍵,以確定當前被按下的按鍵;當所述按鍵類型為反相矩陣按鍵時,各行掃描信號依次按照當前行輸出1,其他行輸出 0的順序輸出掃描信號,掃描反相矩陣中的按鍵,以確定當前被按下的按鍵。
6.根據權利要求3-5中任意一項所述的方法,其特征在于,行掃描信號分別輸入全0和全1的步驟前還包括等待預設時間;判斷當前是否有鍵按下,若是,則繼續執行,若否,則結束。
7.一種矩陣鍵盤電路掃描裝置,其特征在于,包括掃描信號輸出單元,用于當有按鍵按下時,行掃描信號分別輸出全0和全1 ; 掃描結果讀取單元,用于分別讀取行掃描信號為全0時,所述列掃描信號的第一掃描結果和所述行掃描信號為全1時,所述列掃描信號的第二掃描結果;分析確定單元,用于分析所述第一掃描結果和第二掃描結果,確定按鍵類型; 按鍵確定單元,用于依據所述確定的按鍵類型,執行相應的操作,以確定當前被按下的按鍵。
8.—種處理器,其特征在于,包括矩陣鍵盤掃描裝置,所述矩陣鍵盤掃描裝置用于, 當所述矩陣鍵盤電路中有按鍵按下時,控制行掃描信號分別輸出全0和全1,分別讀取行掃描信號為全0時,所述列掃描信號的第一掃描結果和所述行掃描信號為全1時,所述列掃描信號的第二掃描結果,分析所述第一掃描結果和第二掃描結果,確定按鍵類型,依據所述確定的按鍵類型,執行相應的操作,以確定當前被按下的按鍵。
9.一種手持終端,其特征在于,包括如權利要求1所述的矩陣鍵盤電路和與所述矩陣鍵盤電路相連的,如權利要求8所述的處理器。
10.根據權利要求9所述的手持終端,其特征在于,所述手持終端為手機或掌上電腦PDA。
全文摘要
本發明公開了一種矩陣鍵盤電路、掃描方法、裝置、處理器及手持終端,所述矩陣鍵盤電路包括正相矩陣、反相矩陣和/或獨立矩陣,本發明實施例公開的矩陣鍵盤電路,包括正相矩陣、反相矩陣和/或獨立矩陣,在不增加掃描信號的情況下,通過相同掃描信號在不同矩陣具有不同掃描結果的特征,對鍵盤進行掃描,可以大大提高按鍵掃描數量,解決了IO端口不夠用的問題,提高了終端的性能。
文檔編號G06F3/02GK102541267SQ20101062083
公開日2012年7月4日 申請日期2010年12月31日 優先權日2010年12月31日
發明者范團寶 申請人:聯芯科技有限公司