IP Library Granted Patent US 10,303,263
Granted Patent B2
US 10,303,263 · App. 15/677,418 · Granted May 28, 2019

Auto swap order of finding key to generate scan codes

Inventor: Ke Ma (Yokohama, JP)
Assignee: LENOVO (SINGAPORE) PTE. LTD.
G06F3/0238G06F3/0227
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,303,263
App. No.
15/677,418
Granted
May 28, 2019
Kind
B2
Abstract

A keyboard system includes a keyboard matrix; and an embedded controller in communication with the keyboard matrix, wherein the embedded controller is configured to: determine whether, in a single scan cycle of the keyboard matrix, multiple keys have been pressed or only a single key has been pressed; if only a single key has been pressed, learn an order of pressed keys in a plurality of scan cycles; and if multiple keys have been pressed, generate an order of the pressed multiple keys based on the learned order of pressed keys.

Claims (46)

1. A keyboard system, comprising:

a keyboard matrix; and

an embedded controller in communication with the keyboard matrix, wherein the embedded controller is configured to:

determine whether, in a single scan cycle of the keyboard matrix, multiple keys have been pressed or only a single key has been pressed;

if only a single key has been pressed, learn an order of single pressed keys in a plurality of scan cycles; and

if multiple keys have been pressed, generate an order of the pressed multiple keys based on the learned order of single pressed keys.

2. The system of claim 1 , further comprising a platform controller hub in communication with the embedded controller.

3. The system of claim 1 , wherein the embedded controller includes a keyboard scan interface in communication with the keyboard matrix.

4. The system of claim 1 , wherein the embedded controller includes an 8042 emulated keyboard controller.

5. The system of claim 1 , wherein the embedded controller is further configured to:

create, for each single key pressed in the plurality of scan cycles, a respective array in a two-dimensional array.

6. The system of claim 5 , wherein each respective array is set to a numerical value.

7. The system of claim 1 , wherein the pressed multiple keys in the single scan cycle are among the single, pressed keys in the plurality of scan cycles.

8. An embedded controller in a keyboard system having a keyboard matrix, wherein the embedded controller is configured to:

for each of a plurality of scan cycles of the keyboard matrix, determine whether only a single key is pressed;

for each determined single key pressed, create a respective array in a two-dimensional array, wherein each respective array is created according to:

[Latest_key][1 . . . n];

[1 . . . n][Latest_key];

[Latest_key][Latest_key];

wherein Latest-Key is the single key pressed in a given scan cycle and n is a number of columns and a number of rows in the two-dimensional array;

for each of the plurality of scan cycles of the keyboard matrix, determine whether M number of multiple keys is pressed during one of the scan cycles;

for each key_m pressed of the multiple keys, calculate a sum of an array [key_m][1 . . . M] according to:

SUM key_ m=Σ i=1 n Array[key m ][ i ];

arrange all SUM key_m in a sum numerical order; and

send scan codes for each of the key_m pressed during the single scan code in a sending order according to the sum numerical order.

9. The controller of claim 8 , further configured to assign a numerical value of −1, 0, or 1 to each respective array of the determined single keys pressed.

10. The controller of claim 8 , wherein the number of columns is the same as the number of rows in the two-dimensional array.

11. The controller of claim 8 , wherein each key_m pressed is a determined single key pressed.

12. The controller of claim 8 , wherein the SUM key_m having the highest numerical value enables an associated scan code to be sent first.

13. The controller of claim 8 , wherein the SUM key_m having the lowest numerical value enables an associated scan code to be sent last.

14. A method of sending scan codes in a keyboard system having a keyboard matrix, comprising:

when only a single key is pressed during each of a plurality of scan cycles of the keyboard matrix, then for each single key pressed:

set a first array of [Latest_key][1 . . . n] to a first numerical value;

set a second array of [1 . . . n][Latest_key] to a second numerical value; and

set a third array of [Latest_key][Latest_key] to a third numerical value;

wherein the Latest_key is the single key pressed in a given scan cycle;

wherein n is a number of columns in a created array; and

when multiple keys are pressed in a single scan cycle, then for each key_m pressed, wherein M is a total number of key_m pressed:

calculate a sum of an array [key_m][1 . . . M];

arrange the sums of the arrays in a numerical descending order;

send scan codes for each key_m in the numerical descending order.

15. The method of claim 14 , wherein the first, second, and third numerical values are each different from one another.

16. The method of claim 15 , wherein the first numerical value is 0, the second numerical value is 1, and the third numerical value is −1.

17. The method of claim 14 , wherein the first, second, and third arrays are in a single two-dimensional array.

18. The method of claim 17 , wherein, in the two-dimensional array, a number of rows is equal to the number of columns.

19. The method of claim 14 , wherein each of the plurality of scan cycles occurs in a same order of drive lines.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: LENOVO PC INTERNATIONAL LIMITED
To: LENOVO SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 069870/0670 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2019
From: LENOVO (SINGAPORE) PTE LTD
To: LENOVO PC INTERNATIONAL LTD
Reel/Frame 051023/0972 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2017
From: MA, KE
To: LENOVO (SINGAPORE) PTE. LTD.
Reel/Frame 043296/0700 →
Continuity (1)
Related Publication 20190056795A1 · Feb 21, 2019