專利名稱:一種采用擴展i/o方式的手機全鍵盤的制作方法
技術(shù)領(lǐng)域:
本實用發(fā)明涉及電子設(shè)備技術(shù)領(lǐng)域,尤其涉及一種通過擴展I/O增加行與列,通過I2C通信協(xié)議、中斷、掃描算法及映射關(guān)系等實現(xiàn)長按,短按及重復(fù)按鍵的手機全鍵盤。
背景技術(shù):
隨著移動通信的不斷發(fā)展,新功能的設(shè)計已成為手機廠商提高自身市場競爭力的強有力手段,同時手機操作的便捷性日漸成為衡量手機的重要指標(biāo)。近期,一種帶有全鍵盤功能的手機受到了廣大用戶的青睞。全鍵盤的最早應(yīng)用是加拿大RIM公司設(shè)計的黑莓手機。全鍵盤又稱全功能鍵盤,其按鍵分布與PC機鍵盤基本相同,主要包括沈個英文字母、數(shù)字鍵、方向控制鍵、回車鍵、Ctrl、Alt及符號鍵等,完全可以實現(xiàn)PC機鍵盤的功能,方便用戶快速的輸入操作。因此目前越來越多的手機廠商將全鍵盤作為設(shè)計理念,推出了很多帶有全鍵盤的手機產(chǎn)品。而這些產(chǎn)品的價格一般較高,因為其主 cpu芯片一般為中高檔才能滿足全鍵盤矩陣的行和列的需求,以MTK平臺為例,MTK6235及其以上才支持全鍵盤功能。而對于低端的,如MTK6223D,mtk6225等GPIO 口極其有限,無法滿足低端市場的全鍵盤功能需求。針對低端市場,目前市面上設(shè)計主要采用兩種方案一種采用ADC模擬I/O 口滿足 CPU芯片的行列接口的不足,但這種方法比較耗電;一種采用外接全鍵盤控制器,這樣成本較高。
發(fā)明內(nèi)容
針對已有技術(shù)存在的不足,本發(fā)明的目的在于解決上述問題,并消除上述缺點,在低端平臺上,如MTK6223D上,采用低成本的多功能I/O擴展IC,如SN7325,滿足全鍵盤矩陣的行和列的需求,通過I2C通信協(xié)議,中斷,掃描算法,定時器等實現(xiàn)長按,短按,重復(fù)按鍵等的全鍵盤。本發(fā)明的發(fā)明目的是通過如下技術(shù)方案實現(xiàn)的一種采用擴展I/O方式的手機全鍵盤,包括按鍵中斷的處理,全鍵盤的硬件鍵位與虛擬鍵值的映射,按鍵彈起的檢測與處理,長按鍵、短按鍵、重復(fù)按鍵的處理,所述的手機的基帶芯片如MTK6223D通過I2C通信協(xié)議與I/O擴展芯片SN7325進行通信,獲取鍵值;通過映射關(guān)系使鍵值與硬件的行列矩陣值一一對應(yīng);通過定時器控制長按,短按及重復(fù)按鍵寸。按鍵是采用外部中斷的方式觸發(fā)的,其優(yōu)先級很高,中斷到來時會打斷所有任務(wù)的運行。如果在中斷中有太多操作就會影響任務(wù)的正常運行,如在播放器中播放音樂時, 按鍵則會產(chǎn)生咔咔暫停聲。為避免此類問題,在按鍵中斷服務(wù)函數(shù)中,只需產(chǎn)生一個按鍵事件傳給任務(wù),然后在任務(wù)中檢測到該事件后再進行鍵值的讀取與處理。按下鍵時,SN7325的中斷腳EINTl的電平由高變低。為防止機械的抖動即按鍵未按到按下的臨界區(qū)產(chǎn)生的電平不穩(wěn)定現(xiàn)象,可以通過軟件或硬件去除抖動,硬件去抖需增加去抖電路的設(shè)計,提高了成本,因此本方案采用軟件防抖即當(dāng)有低電平出現(xiàn)時延時10到 200ms。未有按鍵時,所有的列即SN7325的PP均置為低電平,所有的行即OD置為高電平, 按鍵設(shè)在行列交叉點上,按下鍵時,則對應(yīng)的行被列拉為低電平,按鍵彈起時,則為高電平。本方案擴展按鍵有51個,因此需要7*8的矩陣即對應(yīng)SN7325的PPO PP6與 ODO 0D7。CPU通過I2C讀取SN7325寄存器的值,首先從PPO即0列開始,依次掃描DDO DD7即行,掃描行的輸入并讀取其電平值,而SN7325對于彈起的鍵,其值均為高電平無法區(qū)分。采用j (行)*7+i (列)即從第0行開始標(biāo)識為0 6,第1行則為7 13,依次則第7 行標(biāo)志為49 55,可實現(xiàn)硬件行列矩陣與軟件虛擬鍵值表的映射關(guān)系。為了方便檢測按鍵按下與彈起的狀態(tài),進行如下的轉(zhuǎn)換將對應(yīng)的51個鍵分別對應(yīng)51個二進制位,0 31位保存在變量a中,初始鍵值a0置為Oxffffffff ;32 51位保存在變量b中,初始鍵值bO置為Oxffffffff。假如掃描PPl列時0D3行有輸入,則表示j*7+i即標(biāo)志位22為低電平其余位為高電平,鍵值a為Oxffbfffff,該鍵彈起時相應(yīng)的標(biāo)志位為高電平鍵值為Oxffffffff ; 假如PP2列0D5行有輸入則j*7+i-32即標(biāo)志位5為低電平其余位為高電平即鍵值b為 Oxffffffef,該鍵彈起時相應(yīng)的位為高電平,鍵值為Oxffffffff,因此區(qū)分不同的鍵彈起只需與按下的鍵的標(biāo)識位的電平值進行比較即可。當(dāng)鍵按下時讀取鍵值,會取當(dāng)前鍵值與初始鍵值相對應(yīng)的標(biāo)志位的電平值進行比較,若不同則判斷該標(biāo)識位是否輸出為低電平,若為低電平則表示鍵按下;若為高電平則表示鍵彈起,再將當(dāng)前鍵值賦給初始值,并將按鍵相關(guān)信息,如按下或彈起的狀態(tài),虛擬的按鍵值壓入到buffer空間,然后發(fā)送按鍵消息處理的命令給UEM層。UEM層接收到該命令后, 通過特定的接口讀取buffer中的按鍵事件的相關(guān)信息,直至讀取完畢,UEM層才能再響應(yīng)下一個命令。如果按鍵事件超過2S則認為是長按鍵,當(dāng)鍵按下時,在task中會啟動一個長按鍵的定時器,當(dāng)2S后就會超時上報長按鍵的相關(guān)消息,同時開啟一個重復(fù)按鍵的定時器,IS 認為是一個重復(fù)按鍵事件,IS時間到會上報一個重復(fù)按鍵事件給UEM層進行處理。當(dāng)檢測到按鍵彈起時,會關(guān)掉相應(yīng)的定時器。本發(fā)明有如下的有益效果電路簡單,成本低廉,在擴展電路不使用時會進入省電模式,并且靈活的處理了按鍵中斷對正在運行的任務(wù)的影響,通過簡單的映射關(guān)系實現(xiàn)了硬件行列矩陣與軟件虛擬鍵值的對應(yīng),采用巧妙的轉(zhuǎn)換關(guān)系實現(xiàn)了按鍵彈起時的檢測與處理。
圖1是本發(fā)明手機全鍵盤面板示意圖;圖2是本發(fā)明手機全鍵盤接口的示意圖;圖3是本發(fā)明手機全鍵盤矩陣的硬件鍵位示意圖;圖4是本發(fā)明手機的全鍵盤硬件鍵位與虛擬鍵值映射關(guān)系示意圖。
具體實施例方式下面結(jié)合附圖和實施例對本發(fā)明是如何實現(xiàn)的圖2示出了 mtli6223D與多功能I/O擴展芯片SN7325連接實現(xiàn)7*8全鍵盤矩陣的簡單示意圖,按鍵處于行與列交叉處,當(dāng)鍵按下時,行OD的電平由列PP決定。圖1示出了全鍵盤面板的定義,此外還有三個側(cè)鍵分別用來調(diào)節(jié)音量大小和實現(xiàn) camera 5 會巨。圖3示出了本發(fā)明全鍵盤矩陣的硬件鍵位示意圖。當(dāng)鍵按下時,映射關(guān)系對應(yīng)輸出值為j (行)*7+i (列),同時可以在task按鍵的處理中讀出其行和列的值。若按圖3中全鍵盤面板最上面左邊的鍵時,鍵值輸出為47,則該鍵位值標(biāo)示為S47,對應(yīng)的行為R0W6, 列為C0L5。這樣依次將所有的鍵分別按下,得到對應(yīng)的鍵位值,行和列的值。圖4示出了手機的全鍵盤硬件鍵位與虛擬鍵值映射關(guān)系,其中位0 51的位置存放的均為虛擬鍵值和對應(yīng)的硬件鍵位標(biāo)號。硬件鍵位與虛擬鍵值的對應(yīng)過程如下根據(jù)圖3手機全鍵盤面板定義可知最上面右邊的鍵用做右軟鍵功能,右軟鍵的虛擬鍵值定義為 DEV_SK_R,因此R0W5和C0L5中對應(yīng)的虛擬鍵值是DEV_SK_R,即鍵位S40對應(yīng)虛擬鍵值DEV_ SK_R。根據(jù)圖3鍵盤面板的定義與鍵位的行列值,可以將虛擬鍵值與硬件鍵位一一對應(yīng)起來。UEM層會將虛擬鍵值傳給應(yīng)用層,應(yīng)用層調(diào)用相應(yīng)的函數(shù),實現(xiàn)圖3全鍵盤面板的按鍵功能。以上的實施例描述了一種低端機的全鍵盤,將這種低成本的全鍵盤功能置于低端機中,使低端機的輸入變得更加快速,靈活,方便,增強了低端機的市場競爭力。下面從用戶使用的角度說明本發(fā)明的效果(1)在播放器中播放MP3時或播放FM時,進行按鍵操作不會對其執(zhí)行的任務(wù)造成干擾。(2)可以進行長按,短按,組合按鍵及重復(fù)按鍵等的操作,都可以實現(xiàn)。上述實施例是提供給本領(lǐng)域普通技術(shù)人員來實現(xiàn)或使用的,本領(lǐng)域普通技術(shù)人員可在不脫離本發(fā)明的發(fā)明思想的情況下,對上述實施例做出種種修改或變化,因而本發(fā)明的保護范圍并不被上述實施例所限,而應(yīng)該是符合權(quán)利要求書提到的創(chuàng)新性特征的最大范圍。
權(quán)利要求
1.一種采用擴展I/O方式的手機全鍵盤,包括按鍵中斷的處理,全鍵盤的硬件鍵位與虛擬鍵值的映射,按鍵彈起的檢測與處理,長按鍵、短按鍵、重復(fù)按鍵的處理,其特征在于 所述的在按鍵中斷中只做set事件的動作,按鍵的處理通過task來完成,避免了按鍵中斷對其他正在運行的task造成干擾。
2.根據(jù)權(quán)利要求1所述的一種采用擴展I/O方式的手機全鍵盤,其特征在于所述的按鍵時,通過制定的j (行)*7+i (列)即從第0行開始標(biāo)識為0 6,第1行則為7 13, 依次則第7行標(biāo)志為49 55映射關(guān)系輸出對應(yīng)的行、列及硬件鍵位值,根據(jù)手機全鍵盤面板的定義將虛擬鍵值與硬件鍵位一一對應(yīng)。
3.根據(jù)權(quán)利要求1所述的一種采用擴展I/O方式的手機全鍵盤,其特征在于所述的由于擴展I/O芯片SN7325對于彈起的按鍵不能區(qū)分其鍵位,因此將51個按鍵分布映射到 51個二進制位,0 31位保存在變量a中,初始鍵值a0置為Oxffffffff ;32 51位保存在變量b中,初始鍵值b0置為Oxffffffff,假如掃描PPl列時0D3行有輸入,則表示j*7+i 即標(biāo)志位22為低電平其余位為高電平,鍵值a為Oxffbfffff,該鍵彈起時相應(yīng)的標(biāo)志位為高電平鍵值為Oxffffffff ;假如PP2列0D5行有輸入則j*7+i-32即標(biāo)志位5為低電平其余位為高電平即鍵值b為Oxffffffef,該鍵彈起時相應(yīng)的位為高電平,鍵值為Oxffffffff, 因此,區(qū)分不同的鍵彈起只需與按下的鍵的標(biāo)識位的電平值進行比較。
4.根據(jù)權(quán)利要求1所述的一種采用擴展I/O方式的手機全鍵盤,其特征在于所述的遵守鍵按下與彈起一一對應(yīng)的原則,進行上次按鍵值與本次按鍵值標(biāo)識位的比較進行按鍵消息的傳送,對于長按鍵和重復(fù)按鍵則通過定時器來區(qū)分,并上傳不同的按鍵消息給UEM 層處理。
全文摘要
本發(fā)明公開了一種采用擴展I/O方式的手機全鍵盤,所述的手機的CPU通過I2C,中斷與SN7325實現(xiàn)通信,讀取鍵值,通過中斷的處理避免了按鍵時對正在運行的任務(wù)造成影響,通過簡單的映射關(guān)系實現(xiàn)硬件鍵位與虛擬鍵值的對應(yīng),通過掃描算法,鍵值的轉(zhuǎn)換,定時器實現(xiàn)長按,短按,重復(fù)按鍵的功能。本發(fā)明具有實現(xiàn)簡單,省電,成本低廉,操作方便靈活,增強了低端機的市場競爭力。
文檔編號H04M1/23GK102299985SQ20101021186
公開日2011年12月28日 申請日期2010年6月25日 優(yōu)先權(quán)日2010年6月25日
發(fā)明者李會艷 申請人:上海三旗通信科技有限公司