TWI312955B - Method and apparatus for high performance key detection with key debounce - Google Patents
Method and apparatus for high performance key detection with key debounce Download PDFInfo
- Publication number
- TWI312955B TWI312955B TW094132972A TW94132972A TWI312955B TW I312955 B TWI312955 B TW I312955B TW 094132972 A TW094132972 A TW 094132972A TW 94132972 A TW94132972 A TW 94132972A TW I312955 B TWI312955 B TW I312955B
- Authority
- TW
- Taiwan
- Prior art keywords
- button
- key
- user
- debounce
- activated
- Prior art date
Links
- 238000001514 detection method Methods 0.000 title claims description 32
- 238000000034 method Methods 0.000 title claims description 30
- 238000012360 testing method Methods 0.000 claims description 24
- 239000011159 matrix material Substances 0.000 claims description 18
- 238000010586 diagram Methods 0.000 claims description 13
- 230000004913 activation Effects 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 238000012937 correction Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims description 2
- 238000003825 pressing Methods 0.000 claims description 2
- 239000013078 crystal Substances 0.000 claims 2
- 239000000463 material Substances 0.000 claims 2
- 238000010408 sweeping Methods 0.000 claims 2
- HGUFODBRKLSHSI-UHFFFAOYSA-N 2,3,7,8-tetrachloro-dibenzo-p-dioxin Chemical compound O1C2=CC(Cl)=C(Cl)C=C2OC2=C1C=C(Cl)C(Cl)=C2 HGUFODBRKLSHSI-UHFFFAOYSA-N 0.000 claims 1
- 206010011469 Crying Diseases 0.000 claims 1
- 208000010201 Exanthema Diseases 0.000 claims 1
- 230000009471 action Effects 0.000 claims 1
- 230000003796 beauty Effects 0.000 claims 1
- 235000013361 beverage Nutrition 0.000 claims 1
- 239000003990 capacitor Substances 0.000 claims 1
- 230000003247 decreasing effect Effects 0.000 claims 1
- 201000005884 exanthem Diseases 0.000 claims 1
- 238000007689 inspection Methods 0.000 claims 1
- 230000009191 jumping Effects 0.000 claims 1
- 235000012054 meals Nutrition 0.000 claims 1
- 239000000700 radioactive tracer Substances 0.000 claims 1
- 206010037844 rash Diseases 0.000 claims 1
- 230000009466 transformation Effects 0.000 claims 1
- 230000003442 weekly effect Effects 0.000 claims 1
- 230000007704 transition Effects 0.000 description 4
- 241000699666 Mus <mouse, genus> Species 0.000 description 3
- 230000000873 masking effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 208000001613 Gambling Diseases 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 208000027418 Wounds and injury Diseases 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 208000014674 injury Diseases 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M11/00—Coding in connection with keyboards or like devices, i.e. coding of the position of operated keys
- H03M11/20—Dynamic coding, i.e. by key scanning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/023—Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
Description
1312955 九、發明說明: 【發明所屬之技術領域】 本發明涉及電子電路’更具體地涉及一種高性能按鍵去反跳 校正方法和系統。 【先前技術】 含有機械按鍵的用戶輸入設備經常遇到由於按鍵去反跳引起的錯 誤。按鍵去反跳通常由按鍵的機械反跳引起,它會在按鍵信號中産生 干擾這樣下去可能導致按鍵的錯誤檢測。例如,只按下一次的按鍵 •可能會產生按鍵去反跳,這可能導致鍵盤控制器以爲相同的鍵按了兩 ••人°另-種情況就是’按鍵妓跳可能導致鍵盤控繼以爲該鍵根本 沒有按下。 按鍵去反跳;^正电路A夠阻止鍵盤巾按下的按鍵反跳時出現的不 希望有的兩次輸人(或者缺少輸人)。但是,傳_按鍵錢跳系統是 在固件中細,紅咖⑽蝴齡觸。卿統相對 比較慢’並対議勸峨娜】。❹卜,· 依賴於處理器的指令周期,其時限無法統1不可酬。… 因此’賊P縣於硬體的高性能的按鍵去反跳校正方法和系 【發明内容】 ㈣按驗術梅系統。 個實施例巾,本剌提供了— 方法’所述方法包括:檢測按鍵啟動;在用戶鍵檢測 内測試所述按鍵啟動;若右 疋義數里的蚪鐘周期 右在用戶可定義數量的時鐘周期内所述按鍵啟 1312955 “若摘戶可定絲量_鐘周_所述按鍵啟毅有效的,存儲 能識別已啟動按鍵的按鍵索引至—緩衝界中. 在用戶可定義數量的硬體按鍵掃抬 . 卿顯π峨顧獅已啟動按 鍵啟動是有效 若在用戶可定義數量的硬體按鍵掃描周_所述按 的’建立一按鍵啟動事件。 優選地,所述方法進一步包括: Φ 檢測按鍵釋放; :鍵釋放; 在用戶可定義數量的時鐘周期内測試所述按 若在用戶可定義數量的時鐘周期 啟 戶刻議爾糊用 '鍵釋放是有效 右在用戶可疋義數量的硬體按鍵婦描周期内所 的,建立一按鍵釋放事件。 -體按鍵掃描周期增加一 優選地’所述方法進一步包括:對每個硬 |>個用戶可定義時間延遲。 優選地’所述時鐘周期與系統時鐘周期有關。 縱 優選地’所述按鍵啟動是鍵盤上按下的按鍵、滑 杆的移動以及感應事件中的一個或者多個。 以、多動 優4地’所述用於挪試按鍵啟動的用戶可定 描周期與用於按鍵釋放的用 :的硬體按鍵掃 優選地,所述用於測試按鍵啟動的用户可更定版^^周期相同。 描周期與繼鍵釋放崎可繼钱硬體麵===掃 1312955 建立按鍵釋放事件的裝置。 優選地’所述系統進-步包括對每個硬_鍵掃描周期增加一個 用戶可定義時鐘延遲的裝置。 優選地,所述時鐘周期與系統時鐘周期有關。 【實施方式】 -個實施例中’本發明提供了—_於硬體實現的開關去反跳電 路校正按鍵麵反跳的方法和健。所耻反職路提供了有效的功 #率/性能設計,甚至適用於無線輸入設備。一個實施例中,所述按鍵去 反跳分爲兩個操作:微去反跳(micr〇_deb〇unce)和大規模去反跳 (macro-debounce)。微去反跳是按鍵按下事件中的一個初級濾波機 制。該操作將按鍵下按過程中可能發生的短期事件濾除。一旦按鍵啟 動被檢測,在隨後的幾個周期中,基於寄存器中的一個確定值,該按 鍵啟動被再次職。-旦符合微去反跳條件,按驗態被移到按鍵缓 衝器中,以便進行大規模去反跳操作。大規模去反跳在(用戶可定義 鲁的)多個硬體按鍵掃描周期内檢查按鍵是否滿足去反跳的要求。 雖然本說明利用鍵盤和滑鼠作爲輸入設備,但下面描述的實施例 並不限於鍵盤和滑鼠。包括有機械按鍵的其他輸入設備,比如頭戴式 耳機、遊戲控制器、麥克風、感測器等,都屬於本發明的範圍。本申 "月中’術語“按鍵,,一般用做由用戶啟動的輸入設備。例如,如果是 滑鼠或者遊戲控制器的話’按鍵啟動則是滑鼠或者操縱杆的移動。如 果爲頭戴式耳機、麥克風或者感測器,按鍵啟動則是聲音或者感應到 的事件。 1312955 並提供給輸入/輸出單元施(圖3中所示),以使系統轉換到如上所 述的“忙,,模式。-個實施例中,開關轉換檢測電路1126包括有一個 硬體開關去反跳電路,用於校正按鍵的機械反跳。該去反跳電路提供 了有效的轉/性驗計,甚至咖於無雜入設備。 鍵盤掃描電路的操作可以參照圖4的時序圖來進行理解。參照圖 所有行和歹,m初始狀態的分析從“就緒(ready),,參考線開始。 ..Z 低狀怨。從“準傷,,參考點開始,—C爲高(有效)’ 所有的列都被三態驅動器1116 的電阻1112拉爲高。 純’而所有的行都被圖3中所示 若開關(按鍵)#9被按下,職“高,,變爲“低” 轉換被用作觸發信號以鎖存(在 ' ENB Cr…絲… 存儲)所有列的值。這-轉換還促使 驅動因Γ 低。由於ENB—C爲“低,,,所有的列不再被 駆動,因此,R〇變回“冥” J卜订饭 乘積⑽)常數使__^和電阻1112的電阻電容 #9還仍處於按下狀態,列C2 ‘ 換被稍微延遲。由於開關 轉換被用作觸發信號以鎖存:。列2從低’到“高”的 “低”變爲“高,,,列C2從‘‘」列的值被鎖存後,應-c從 在“低,,狀態,因爲ΕΝΒ^Γ〜變爲“低”。所有其他的列仍保持 目則舄高(有效)。 在圖4所示的實施例中, 鎖存行值⑽轉挪H;:的鎖存列值(C2)和一個低的 _),因此,沒必要 ,子仃唯一地確定—個按鍵開關(開 對其他的行和列的“掃描,,。因而在整個周 1312955 期中掃描信號一直保持“低”。列/行控制邏輯1114結合驅動器邏輯 1115産生控制上述的狀態轉換所需的所有信號。 此外,開關轉換檢測電路1126可根據接收自行解碼器1120和/ 或列解碼器1122的輸出信號,爲輸入/輸出單元(圖中沒有示出)即 時生成-個“輸入/輸出有效,,信號,指出一個開關被啟動。在本實施 J中所述的輸入/輪入有效”信號由開關轉換檢測電路脳直接 根據對因開關_被啟動而導致的如從“高,,到“低”轉換的 _即時生成。 ^貫_巾,硬_關去反跳電路校正按_機械反跳 種途徑來實現去反跳的性能, (make-masking) ^ 去反跳方法㈣糊。 如I合。圖5描述的是上述各種 圖5中的符號定義如下: TDB=去反跳間隔 > TFPM:第—按鍵按下開始的時間 膨最後按鍵按下開始的時間 麵=第一按鍵釋放中止的時間 謂=最後按轉放中止的時間 如圖所示,採用中止遮罩 (磁e) ”被檢剛),即馬二如果按下某個按鍵(即“開始 跳導致短期間内開關是打開的(二‘個有效的按鍵按下。如果機械反 跳演算法將繼續報告該開闕在应(break),,的情況),去反 "相等的期間内仍然是關閉的,從 1312955 以下將介紹中止遮罩方法中各元件的寄存器轉換語言(RTL)描 述。本領域的一般技術人員很容易理解並實現用於開始遮罩方法和混 合方法的寄存器轉換語言描述。 注釋:
+ * Logical OR
* = Logical AND SSM[l:〇l » Scan State Machine RTC[2:OJ * Row terminal count - control register CTC【4:0J » Column teminal count - eontroL-register MK5fVnP;〇】* Nth Modifier Ke.y Value
50 = Idle State 51 Scan State ’S2 » De-Ghost State S3 » St〇.re-to~Buffer Stat« SEFF * Scan Enable Flip-Flop KI Key Index Counter
16 .1312955 1} 3-bit Row Counter {RC)i to count 8 column inputs Sync Re^et: { (BSM ^ SO} + {RC = RT'CJ)
Increment: {SSH ^ SI) 2) 5-bit Column Counter (CC)x to count 19 row outputs
Sync R^set; {ssh ^ SO) increment; (RC®RTC) 3) 8-bit nRow Hitw register (RH): to record row-hits as columns are scanned
For each Kth bit:
Sync Reseti (SSM SO) - □nnecesaary/ as each bit: is set/cleared as column is scanned.
Load: {RC : bit>>
inputs: mm^sum 4) BHait ^Single一register (SH) : to record hits in columns with only 1 key down For each Wth bit:
Sync Reset; (SSM « SO)
Load; (RC = 0} _ not苷 1 cycle pipe-lining - SH takts RH one cycle later Inputs; SHiN]+RH[»J 5) 8-bit ^Multi-Hitw register (NH>: to record hits in columns with 2 or mote keys down For each Hth bit:
Sync Resets iSSH ** sfl)
Load: (RC - 0} - note 1 cycle pipe-lining - MH takes RH one cycle later Inputs; MfUN]+R靡J 63 8-bit k^y-index counter (KI): increiti^nted at each key-scan, for usage code lookup
Sync Reset; (SSM^SO)
Increments (SSH^Sl) 7} Scanning State Machine (SSMj; Async Resets POR input <ne3it stat^); 50 if SBFF^O + {SSM«S3 * RM?^0)
51 If SSM^SO^SIF^I 52 if SSM«Sl^iCC^CTC)^(RC-RTC) 17 1312955 S3 if SS«=S2 6-byte buffer ..For each single-byte key buffer, KB [NJ:
Sync Reset: {SSM « SO) (Reset to all l’s>
Loadi (NewKeyi=KBt!3] * NewKey |= HDKYCNli for all N (Store NewKey to beginning of buffer if not already in buffer!
Inputs; KB[N-1] for KB{N] where N > 0; NewKey value for KBfOJ
For each debounce count value, DBC¥tNJ j
Load: (NewKey!-KB[N] * NewKey !» MDKY[N]) for all N OR 8) Scan-clock enable flip-flop - 1-bit to enable low-power oscillator A^ync Set: Logical OR of puiae detects on each Make signal fxcm each peripheral
Async Reset: POR + (AND of all -BUSY signals from peripherals)
Sync Reset: 9) KSOj Key scan outputs KSItN] * 1 if SSM=S0 +
KSIj^E[則讎 $SM=S〇 * N!-RC 一個實施例中,本發明採用用於微去反跳按鍵檢測的各種綜合方 鲁法的硬體貫現。也就是說,本發明的微去反跳方法對按鍵壓下(在預 疋的時鐘周期數内)和按鍵釋放(在預定的時鐘周期數内)事件均能 檢测。一旦微去反跳操作檢測到某個按鍵被按下,就對該按鍵執行大 規模去反跳,以確定該按鍵是否應識別爲被啟動的按鍵。 因此,本發明的按鍵去反跳操作被分爲兩步:微去反跳操作和大 規模去反跳操作。微去反跳按鍵檢測是對基於硬體織時鐘的按鍵按 下(如向下)事件做的基於硬體的初級據波,用於遽除比如在電子快 逮轉換_事件中出現的短期事件。—旦檢測到按鍵按下,在隨後 1312955 u—debounce [ 1:0 ]寄存器中定義的值對按 的幾個時鐘周期中,根據在 鍵按下再次進行測試。 圖6A是微去反跳步驟的時序示意圖。如圖所示,當按鍵a在時刻 t,按下時’-個系統時鐘(SCK)周期後將檢測到按鍵的啟動, lUebounce寄存器編程爲具有值丨,也就是在時刻t。類似地,如果 __debauriee 編程設置值爲2 ’兩個系統時鐘周期“)後,將 檢測到按鍵的啟動。相反地,#在_ tu釋放按鍵八,—個(完整的) 系統時鐘周峨’也奴域u—deb_Ge絲⑽赌置值爲1,在 時刻t3 ’檢_按鍵的釋放。可選擇地,如果(触魏6寄存器編 程設置值爲2,_系統時鐘周期後,在時刻t4檢測到按鍵的釋放。 -個實施例中’根據系統的要求,可使用兩個u—debQ_寄存器,具 有不同的值分別用於按鍵按下和釋放時的微去反跳操作。 一個實施例中,u_(lebounce寄存器被定義爲: -〇 -> check key down [& Up) f〇E 1 cycle, * 1 -> check key dow« (& up) fOJ: 2 cycle. 2 -> checJc Jcey down is up) f〇r 3 cycie » 3 -> ch_ key d_ cy^··
tt_debounce[l:〇) .u_debounce [1 ϊ 〇】 u_debouncefli〇j udebounce ί1;〇 j 一旦滿足微去反跳的條件,按鍵狀態被存入按鍵去反跳緩衝器, 以便進行絲硬體的大顯去反麟作。大賊去反跳操作在多個(用 戶可疋義的)硬體按鍵掃綱細檢查按鍵衫滿足去反跳的要求。 因此,大賴去反麟作是紐硬H魏掃描職的,破體按鍵婦 描周期又是基於系統周期的。 一個實施例中,硬體按鍵掃描周期被定義爲: 19 1312955
Time f〇E scanning all 8x2〇) keys + Time duraU〇n 〇f the scancFcle_timer[ll:〇j + (# 〇f key pressed * u debounce+l)/sck 知也所有按鍵(例如8x20 )的時間+ SCanCyC 1 e—t imer [ 1 1 : ]的 持續時間+ (按下鍵的號#xu_debounce +1 ) /SOK。 對尚性能鍵盤來說,要求高速的按鍵檢測,掃描周期計時器 (scancycle—timer)可以設置爲〇,這樣的話去反跳時間間隔定義如 下:
修 u_debounce*total # of keys/128K 只有被檢_ “按下”的按鍵才會在進行u—deb_ee&測試。這 樣,如果在該周期内按鍵被按下,則硬體按鍵掃描周期將更長一此。 例如,對-個8x20的矩陣來說,u—deb〇unce=2,择描周期計時器, 硬體去反跳時間間隔將爲(8*20+3) /SCK = 127ms,基於以上等式, SCK 頻率爲 128KHz。 _ 在某些情況下,根據按鍵開關機械反跳的特性,單個的按鍵按下 事件會被誤認❹健鍵按下事件。掃描職計喃祕隔開硬體掃 描活動,以便上述的錯誤情況將盡可能少發生。操作中,爲了更有效 地檢測按鍵按下事件,掃描翻計時料被編程鱗每個硬體掃描周 期增加一個額外的(用戶可編程的)延時。 圖6B疋具有或者不具有掃描周期計時器的大規模去反 測的時序示意圖。如圖所示,若掃描周期計時器=(),三個硬體按鍵掃 描周期OnaD—debounce=3)後,大規模去反跳按鍵按下被檢測。大規模 20 1312955 螫 去反跳按鍵彈起(釋放)也在三個硬體按鍵掃描周期(maU_deb〇unce=3) 後被檢測。maD—debounce和maU—debounce的值可以不同。如果掃描 周期計時器=Δΐ,則在每個硬體按鍵掃描周期的末端都加上一個延時 △ t。 圖7是根據本發明一個實施例的去反跳緩衝器的示意圖。已滿足 微去反跳按下條件的按鍵狀態存儲在(比如13χ1〇)去反跳緩衝器中, 以便進一步檢測大規模去反跳。如圖所示,去反跳緩衝器的每條記錄 鲁都包括一個8位元的按鍵索引、一個4位元的加/減大規模去反跳計數 器(macr〇-debounce_cntr)和一個用於指示存儲在特定按鍵索引欄位 内的按鍵上是否在執行彈起和按下去反跳操作的資料位元。 一個實施例中,去反跳緩衝器的每個記錄定義如下: bit 12· 0 key in down detection;J Γ* key in up detection; bit 11 8. key macro-debounce counter; an up/down counter; bit 7-0: key index. 鲁 無論是否有按鍵按下’在每個按鍵矩陣掃描期間,最好都對 u_debounce緩衝器進行去反跳條件檢查。 圖8是根據本發明一個實施例的按鍵事件緩衝器的示意圖。如圖 所示’按鍵索引“A”有兩個記錄。當按鍵“a”的大規模去反跳按鍵 按下事件被檢測時’存儲在按鍵事件緩衝器内的按鍵索引在UP/DN欄 位爲。然後檢測該按鍵的“高”轉換,即按鍵釋放檢測。當滿足 按鍵釋放的微去反跳檢測條件後’執行微去反跳檢測以檢測按鍵“八” 的釋放。一旦滿足按鍵釋放的大規模去反跳檢測後,按鍵索引再次存 21 1312955 入按鍵事件緩衝器中,UP/DN欄位值爲“Γ。 一個實施例中,在逐排硬體掃描周期中,當按鍵不能通過大規模 去反跳條件時,大規模去反跳計數器重定爲“0”。例如,如果 maD一debounce[3:0] = 3,檢測到的按鍵操作爲按下、按下、彈起、按 下、按下、按下’則maD一debounce計數器中的值爲:1,2,〇,卜2, 3。在计數到3時,按鍵值被複製到按鍵事件緩衝器。 一個實施例中,按鍵事件緩衝器的每個記錄定義如下: bit 8: set to 〇 f〇r the key down indication;1 f〇r key up indication; bit 7-0: key index 下面的實施娜制按鍵去反跳操作是如何進行的。當有按鍵按 下時’録行微纽職作。驗纽雜舰微,將對按鍵進行 由按鍵按下大規模去反跳寄存器⑽一触㈣⑽別)所定義的大規 模去反跳條制試。域在“maD—debQunGe”個__體掃描周期 ,内檢測到-個按鍵’則其將被移人(例如12χ9)按鍵事件緩衝器中, 以便輸入认備固件(運行在如圖2所示的周邊設備2G2的處理器中) 進行訪問。如果被啟動’還會對顧件産生硬體中斷。 執行按鍵彈起的微妓萄作時,-旦檢_按鍵被按下,去反 跳緩衝㈣第12位將設置爲絲去反跳緩_巾的按鱗傷好進 大規模去反跳按鍵彈起檢测。該位還將去反跳計數器(如圖 轉換爲降值計數的模式。—個_中,u_debQ_ _ = 鍵彈起事件的檢測。無論何時,只要去反跳緩衝器按 ▲ 22 1312955 “u—deb_e”個_周_彈起,去反跳計數輯數減丨。一 施例中’可雜轉起事件檢測朗獨的u—触。_值。 執行按鍵彈起大規模去反跳操作時,該按鍵必須在 “malUeb。·”個連續的硬體掃描周期内彈起,才會認爲該按 釋放。釋放後的按鍵複製到按鍵事件緩衝器中,第8位設置 表示一個彈起事件。 ’’、、 來 -個實施例中,本發明的系統包括以下用戶可編程的寄存器 鲁於微去反跳和大規模去反跳操作中: u_debounce[l:0] maD_debounce[3:0] maU_debounce[3:0] scancyc1e_t i mer[11:〇] 一個實施射’按鍵事件緩衝11被映_存儲空間中。 本領_—般肋人員可知,對本發_上述或者其他實施方案 ♦進仃衫種改變都沒有超出本發_範1本伽並補限於上述公 開的具體實施例或者方案,其覆蓋了由本發明權利要求所確定的範圍 内的任何替換、修改或改進。 【圖式簡單說明】 圖1是-台個人電腦和一個輸入設備組成的系統的示意圖; 圖2是根據本發明-個實施例的鍵盤矩陣的結構方框示意圖; 圖3是根據本發明-個實施例與按鍵矩陣掃描電路相連的鍵盤開 關矩陣的示意圖; 23
Claims (1)
1312955 十、申請專利範園: 卜一種帶按鍵纽跳功能的按鍵檢測方法,所述方法包括·· 檢測按鍵啟動; 在用戶可定紐量的時鐘周期内測試所述按鍵啟動; 若在:戶可㈣㈣_鐘崎述按鍵啟較有朗,存儲能識 別已啟動按鍵的按鍵索引至一緩衝器中; =戶可福數里的硬體按鍵尉·納職 .若在用戶可定義數量的 ㈤匕啟動域, 建立-按鍵啟動事件純局期内所述接鍵敬動是有效的, 2、如申料鄕_韻频贿檢财法 步包括: /、宁,所述方法進~ 檢測按鍵釋放; ==量的時鐘周期内測試所述按鍵心 β疋義數量的時鐘觸崎述按鍵啟動 放是有效的, 3、 如申請專利範圍第】項所述的按鍵檢測方法 步包括:對每個硬體按鍵掃描周期增加-個用戶’所述方法進— 4、 如申請專利範圍篦 戶可定義時間延遲。 判乾圍第1項所述的按鍵檢測方法避 與系統時鐘周期有關。 中,所述時鐘周期 )如申4專利範_項所述的按鍵檢測 其中,所述按鍵啟動 25 1312955 檢測按鍵啟動的裝置; 如戶可定義㈣㈣鐘周期内測試所述按鍵啟動的f置· 在用戶可定義數量的時鐘周_所述按鍵啟動爲有效時,在用戶可定 義數量細___試峨驗編的裝置; 二我義f的硬體按鍵掃描周_所述按鍵啟動爲有效時建立 按鍵啟動事件的裝置。 10、如申請專利範園第9項 進一步包括: 明饱/職鍵的系統,其中,所述系統 檢測按鍵釋放的裝置; 在用戶可定義數量的時鐘周期 /田Μ内㈣所述按鍵釋放的裝置; °疋s的時鐘勒崎频觀動m時 義數量的硬體按鍵掃描周 '、'、、 戶可定 在用户可找數量細_鍵^^4所賴賴賴裝置; 按鍵釋放料的⑽職鍵槪騎效時建立
27 1312955 〜—〜一. 〜.一〜一-------------- 、 動是有效的,存 戶可定義數量的硬體按鍵掃描周_測試被 納’在用 -個實施财,本翻提供了 ―種帶麵妓跳功 系統,所述祕包括:用於檢測按鍵啟_電路.鍵檢測 第-計數器和時鐘,用於在第—用戶可 二h路連接的 述按鍵啟動;按鍵去反跳缓衝¥ s、遍周期内夠試所 00用於在第—用戶可定盖如θ _ _繼賴杨_峨__==_ =十數器,用於在第-用戶可定義數量的硬體按鍵掃 7,弟 識別的已啟動按鍵;按鍵事件緩衝器』内娜試被 描周期内所述按鍵啟動爲有效時存儲按鍵啟=:用戶可定義硬體掃 -個實施例中’本發明提供了—種檢測按 括.檢測按鍵啟動的裝置;在用 、'彳述系統包 按鍵啟動的打.在用ml義數置的時鐘周期内测試所述 效時,的時鐘周期内所述按鍵啟動爲有 有效時建細雜崎描顺__鍵啟動爲 思立彳文鍵啟動事件的裝置。 根據本發明的一個方面,提供了— 測方法,所妓法包括: 喊鍵去反跳魏的按鍵檢 檢測按鍵啟動; 戶可疋義數量的時鐘周期内測試所述按鍵啟動; 6 1312955 - 好8\月一 f緣正替換頁 根據本剌的-财面,提供功 測系統,所述系統包括: 用於檢測按鍵啟動的電路; 與所述電路連接的第—計數器和時鐘,驗在第—用戶 量的時鐘周期内測試所述按鍵啟動; 载敫 按鍵去反跳緩衝器,用於在第—用戶 述按鍵啟動爲有效時存儲識別已啟動按鍵用的按鍵索引了里周期内所 測試=:啟:=i,義數一鍵掃一内 按鍵事件緩衝器,藤在第—如可定義硬 鍵啟動爲有效時存餘鍵啟轉件。 ’柳所述按 優選地,所述電路檢測按鍵釋放;所述第 定義數量的時鐘周期内測試所述按轉放°。。在弟二用戶可 時鐘周期内所述按鍵啟動爲有效時,所述第〜用戶可定義數量的 義數量的硬體按鍵掃描周期内測試所述按鍵^勤在第二用戶可定 數量的硬體按鍵掃描周期内所述按鍵釋放= 衝器存儲按鍵釋放事件。 ’、」時,所述按鍵事件緩 優選地,所述系統進一步包括加入每 戶可定義時間延遲。 域按鍵掃插周期内的用 優選地’所述時鐘周期與系統時鐘周 優選地,所述按鍵啟動是鍵盤上按下的_。 杆的移動以及感應事件中的—個或者多個^鍵、滑鼠的移動、操縱 0 8 I312955 1年)ι β释正替換1 A,所述用於測試餐轰論襄兩^用 硬體按鍵掃插周期鱼 戶了疋義數量的 /、用於按鍵釋放的第一和第二用戶可+ 體按鍵掃描周期相同。 疋義數量的硬 "地’所述用於測試按鍵啟動的第-和第二用戶 更體按鍵掃描周期鱼用 可疋義數量的 體按鍵掃描周期不同。 疋義數置的硬 優選地,所述第—計數器是加/減計數器。 優選地’所述第二計數器是加/減計數器。 根據本發彳_ ’提供了—機 包括: W糸統,所述系统 檢測按鍵啟動的裝置; 在用戶可嫩蝴物綱_她 在用戶可定義數量的時鐘周期内所述按鍵啟動、置, 可定義數量的棚按鍵掃插周期内測試已測試的啟動贿^在用戶 在用戶可定聽量的硬體翻建__ 羞置, 建立按鍵啟動事件的裝置。 饮鍵啟動舄有效時 優選地,所述系統進—步包括· 檢測按鍵釋放的裝置; 在用戶可定義數量的時鐘周发 在用戶可定義數量的時鐘周期P試戶猶按鍵釋放的裝置; 可定義數量的硬體按鍵掃描周勘内'彳述知鍵啟動爲有效時,在用戶 在用戶可定義數量的硬_::,按鍵釋放縣置; 咕周期内所述按鍵釋放爲有效時 1312955 /J 口殄 9-4 止$、換頁 主機106和輸入 圖1是根據本發明一個實藏:¾¾個人臺 兒細U^L) 土俄·和輸入 設備(例如鍵盤108)組·系、_示雜,其包財無線或者有線 (或者二者都有)介面和檢測裝置。 圖2是根據本發明一個實施例與一個騎設備(如積體電路 配合的鍵盤矩陣2〇3的結構示意圖。如圖2所示,周邊設備搬爲鍵 盤矩陣203服務,提供來自鍵盤的輸入。周邊設備2〇2和晶振細、 EEPROM 208及天線216相連。指示器2〇5包括有數位、大寫字母和滾 動光,顯示在鍵盤上。周邊設備㈣括—個處理器,通過鍵盤矩= 2 0 3檢測和控制按鍵。 圖3是與按鍵矩陣掃描電路3〇2相連的鍵盤開關矩陣工⑽的示意 圖。鍵盤開關矩陣⑽包含多個列測和多個行i⑽。在圖3中; 示的具體實施射,多_測包含GG—G5六列,多個行⑽包含 R0-R3四打。爲簡便起見,圖3的實施例中僅顯示了實___ 很小一部分。本領域的—般技術人員可知,行和列的數目可根據罝體 的應用而增加或者減少。 象/、體 當用戶按下相應的按鍵時,多個開關_連接對應的行和列。在 本魏例中,當_ 111()按下時,翻_連接㈣和列⑶。雖 然沒有爲每個開關給出標示數位,應該可以理解圖3中總共有Μ個開 1 1110連接彼此相乂的行和列。爲了便於討論,將圖3中所示的 個開關U1G表示爲開關1、開關2......和開關24。當某-特定行内對 的開關王4打開時’該行被與碰相連的電阻 “含”" _爲按鍵矩陣掃插電_中的行_⑽提供;;這二 1312955 月R疹正替換頁 -_________ _、 將在下面進行詳細的論述 按鍵矩陣掃描電路302包括列/行控制邏輯1114和驅動邏輯 115産生適s的彳s號以控制相應列和行的狀態。驅動邏輯ins包含 二個三態驅動器1116和一個缓衝器1118。列/行控制邏輯山4産生 合適的高,,和“低”信號,並將這些信號提供給三態驅動器ni6 的輸场列/行控制邏輯能産生合適的“使能”信號改變特定行或列 的狀恶’以控制控制邏輯1115中的三態驅動器1116的操作。 ^如’如果三_器的輸人爲“高”,産生的使能信號致 =二恶驅動器⑽輸出“高”信號,以驅動列或者行爲“高”。相反 使^^㈣咖1116的錢爲“低”,_使能信號致 號,爲所U讀可爲全局使能信 驅動益,例如聰—c。該使能信號還可以 動― 例如_—幻,或者爲特定的列啓動三態驅動哭^動二·_器’ 按鍵矩陣掃描電路3〇2還包含行解碼“ 2〇 m』3。 對從鍵盤開_陣〗⑽情觸行和_ M解碼⑼22, 自行解碼器U2G和列解碼器⑽輪出信號進行解碼。來 1124,以生成資料 、碼輸出信號提供給掃描邏輯 生成貝枓4指不不_關(按鍵)u 按鍵矩陣掃描電路302還包括—個門關 、恶 來自,嶋和_議檢㈣路⑽,接收 ⑽與如下所述掃描各行和掃描邏輯盼_轉換檢測電路 闕轉換檢測電路⑽生成— 通⑽接。此外,開 成輪入/輪財效⑽Actlve),,信號, 12 1312955 —— ___________ ,二“ kiJ-f修正替換頁 ^遮罩”中止。然後,的 1TOT;剛量通的計時器 (如叶數H)都齡定。雜方法難於㈣微控㈣的重定線中的 電阻-電容方法,其中的TDB相當於電阻電容乘積時間常數。 域方料,在盡可能早__按__麵報告,報告的按 鍵關閉總時長爲(TLRB-TFPM) +TDB。 始料方法…如果有驗被按下,直顺_期大於 择的一直持續的“開始,,,才被註冊爲有效的按鍵按下。因此’持 、、=間内的任何小於通的“開始,,期間都被遮罩。按鍵釋放時,第 —中止導致該按鍵被報告爲被釋放,任何後續的小於遍的“開始” 都將被遮罩。讀方法巾,報告的按鍵關總時 ,小於TDB的“開始,,期間被完全遮罩。 TLPM) 採用混合方法時,開始遮罩方法用於檢測鍵按下的開始。一旦檢 測到按鍵確實被按下,將使用中止遮罩方 r 术確疋按鍵疋否被釋放。 知_下檢測和按鍵釋放檢測時將使用不同的通。這種方左 盡可能早_關告練_,賊 搬),+则,小於_的‘‘開始”_被完+ :般來既,中止料方法_簡化了去反购_的實現 是否按下雜了 Μ 叫―k衝按鍵按下’爲隨後測定按鍵 疋否知下祕了足夠的時間。此外,雖然中 要求對按鍵進行緩衝和做時間# 、 ' ^方法 文_示&己,直到按鍵被按下足夠長的咩鬥 才進入_麵·嶋蝴娜 都能夠及時地檢測重像。 $㈣末知, 15 1312955 .! t'., bmL 圖4疋根據本發明—個實施例的鍵盤掃描電路的時序示音圖; « 5 t (break-masking) ^ , s lng)法和混合方法的時序示意圖; 圖 圖6A疋根據本發明一個實施例的微去反跳操作的時序示意圖; 圖6B疋根據本發明一個實施例的微去反跳按鍵檢測的時序:音 1
圖7是根據本發明一個實施例的去反跳缓衝器的示意圖; 圖8是根據本發明一個實施例的按鍵事件缓衝器的示意圖 【主要元件符號說明】 個人電腦(PC)主機 106 鍵盤 積體電路 指示器 202鍵盤矩陣 205 晶振 EEPROM 208天線
按鍵矩陣掃描電路 302鍵盤開關矩陣 行 1106列 開關 1110電阻 列/行控制邏輯 二恶驅動器 行解碼器 知描邏輯 1114驅動邏輯 1116緩衝器 Π 20列解碼器 1124開關轉換檢測電路 108 203 206 216 1102 1108 1112 1115 1118 1122 1126
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US61365804P | 2004-09-28 | 2004-09-28 | |
US11/087,524 US7230548B2 (en) | 2004-09-28 | 2005-03-23 | Method and apparatus for high performance key detection with key debounce |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200636542A TW200636542A (en) | 2006-10-16 |
TWI312955B true TWI312955B (en) | 2009-08-01 |
Family
ID=34936356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW094132972A TWI312955B (en) | 2004-09-28 | 2005-09-23 | Method and apparatus for high performance key detection with key debounce |
Country Status (4)
Country | Link |
---|---|
US (3) | US7230548B2 (zh) |
EP (1) | EP1643349A3 (zh) |
CN (1) | CN1770637B (zh) |
TW (1) | TWI312955B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI746567B (zh) * | 2016-06-28 | 2021-11-21 | 新加坡商雷蛇(亞太)私人有限公司 | 周邊裝置、控制周邊裝置之方法及電腦可讀媒體 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7230548B2 (en) * | 2004-09-28 | 2007-06-12 | Broadcom Corporation | Method and apparatus for high performance key detection with key debounce |
JP4406622B2 (ja) * | 2005-07-29 | 2010-02-03 | アルプス電気株式会社 | 入力装置 |
JP4143632B2 (ja) * | 2005-09-09 | 2008-09-03 | Necソフト株式会社 | 組込みシステムおよびプログラム、並びに、キー割込み制御方法 |
US7446676B2 (en) * | 2005-12-28 | 2008-11-04 | Broadcom Corporation | Self-scan programmable keypad interface |
GB0614259D0 (en) * | 2006-07-18 | 2006-08-30 | Global Silicon Ltd | A debouncing circuit |
CN100592637C (zh) * | 2006-10-13 | 2010-02-24 | 鸿富锦精密工业(深圳)有限公司 | 键盘扫描电路及方法 |
US7809867B2 (en) * | 2007-11-14 | 2010-10-05 | Fluke Corporation | Keypad de-bouncing apparatus and method |
TW200925934A (en) * | 2007-12-06 | 2009-06-16 | Avision Inc | Key status detecting circuit |
EP2120338A1 (en) * | 2008-05-15 | 2009-11-18 | Thomson Licensing | Key press detecting circuit |
TW201007526A (en) * | 2008-08-13 | 2010-02-16 | Elan Microelectronics Corp | Signal processing method of multi-fingers touch apparatus having invisible physical button structure |
US20100064061A1 (en) * | 2008-09-05 | 2010-03-11 | Apple Inc. | Providing substantially immediate action in response to input event |
US9456272B2 (en) | 2012-03-30 | 2016-09-27 | Fairchild Semiconductor Corporation | Button-press detection and filtering |
DE102015226315A1 (de) * | 2015-12-21 | 2017-06-22 | Cherry Gmbh | Vorrichtung und Verfahren zur Erkennung einer Schalterbetätigung |
CN111263927B (zh) * | 2017-10-20 | 2024-01-23 | 雷蛇(亚太)私人有限公司 | 用户输入设备及用于在用户输入设备中识别用户输入的方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3886543A (en) * | 1973-11-29 | 1975-05-27 | Teletype Corp | Debounce logic for keyboard |
US3973256A (en) * | 1975-07-14 | 1976-08-03 | Compucorp | Key detection system interconnecting keyboard and data processing system |
US4022098A (en) * | 1975-10-06 | 1977-05-10 | Ralph Deutsch | Keyboard switch detect and assignor |
US4100606A (en) * | 1977-02-09 | 1978-07-11 | Texas Instruments Incorporated | Key debounce system for electronic calculator or microprocessor |
US4621319A (en) * | 1982-09-27 | 1986-11-04 | Intel Corporation | Personal development system |
US4581603A (en) * | 1983-03-11 | 1986-04-08 | The Maxi-Switch Company | Switch matrix key closure validation device and method |
JPS60258627A (ja) * | 1984-06-04 | 1985-12-20 | Omron Tateisi Electronics Co | マイクロコンピユ−タ装置 |
JPS6224315A (ja) * | 1985-07-24 | 1987-02-02 | Nec Corp | キ−ボ−ド |
CN1310397A (zh) * | 2000-02-24 | 2001-08-29 | 英业达股份有限公司 | 计算机键盘检测方法 |
US7230548B2 (en) | 2004-09-28 | 2007-06-12 | Broadcom Corporation | Method and apparatus for high performance key detection with key debounce |
-
2005
- 2005-03-23 US US11/087,524 patent/US7230548B2/en active Active
- 2005-05-10 EP EP05010164A patent/EP1643349A3/en not_active Withdrawn
- 2005-09-23 TW TW094132972A patent/TWI312955B/zh not_active IP Right Cessation
- 2005-09-27 CN CN200510108923.XA patent/CN1770637B/zh not_active Expired - Fee Related
-
2007
- 2007-05-15 US US11/803,735 patent/US7522070B2/en active Active
-
2009
- 2009-03-31 US US12/415,752 patent/US8031088B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI746567B (zh) * | 2016-06-28 | 2021-11-21 | 新加坡商雷蛇(亞太)私人有限公司 | 周邊裝置、控制周邊裝置之方法及電腦可讀媒體 |
Also Published As
Publication number | Publication date |
---|---|
CN1770637A (zh) | 2006-05-10 |
US20090267809A1 (en) | 2009-10-29 |
TW200636542A (en) | 2006-10-16 |
US20060068771A1 (en) | 2006-03-30 |
US7522070B2 (en) | 2009-04-21 |
CN1770637B (zh) | 2010-05-05 |
US7230548B2 (en) | 2007-06-12 |
US8031088B2 (en) | 2011-10-04 |
US20070216543A1 (en) | 2007-09-20 |
EP1643349A2 (en) | 2006-04-05 |
EP1643349A3 (en) | 2010-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI312955B (en) | Method and apparatus for high performance key detection with key debounce | |
CN103797442B (zh) | 通过触敏显示屏使用压力差 | |
CN102763057B (zh) | 输入设备、方法和程序 | |
US20110055697A1 (en) | Alphanumeric keypad for touch-screen devices | |
CN109313528A (zh) | 加速滚动 | |
CN107185241B (zh) | 基于互联网的麻将游戏操作提醒方法及装置 | |
TW200919264A (en) | Wireless handheld device able to accept text input and methods for inputting text on a wireless handheld device | |
JP2000262747A5 (zh) | ||
CN106951175B (zh) | 一种键盘输入的控制方法及移动终端 | |
CN101859223A (zh) | 信息处理设备、通知方法和程序 | |
JP2001212369A (ja) | タイプ練習機能を有するアミューズメントシステム、タイプ練習システムおよびコンピュータ読み取り可能な記憶媒体 | |
CN106527753A (zh) | 一种智能电视的字符输入方法 | |
TW201126391A (en) | Touch device and driving method of touch panel thereof | |
TW201229877A (en) | Method for preventing touch keyboard from being mis-touched and electrical apparatus with touch keyboard | |
CN100555886C (zh) | 一种便携终端及其运行方法 | |
EP1745348A1 (en) | Data input method and apparatus | |
WO2006111481A3 (fr) | Dispositif d'affichage tactile et montre electronique a reglage d'heure manuel | |
CN114360686B (zh) | 融合游戏的康复训练计算机装置、运行方法及存储介质 | |
TW200712868A (en) | Information processing apparatus, self-diagnosis method, and program | |
JPS60193678A (ja) | 電子機器 | |
CN106528116A (zh) | 一种提醒方法及装置 | |
US9459776B1 (en) | Device for use in studies involving multiple subjects to record observation data in an output file | |
JP2004021560A (ja) | パスワード表示制御方法およびその装置 | |
TWI670630B (zh) | 主動輸入元件操作方法及對應輸入元件、輸入配置及電腦程式產品 | |
TWI511021B (zh) | 虛擬鍵盤的操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |