อินเตอร์เฟส Keyboard PC ด้วย MCU
อินเตอร์เฟส Keyboard PC ด้วย MCU
แนะนำการนำ KeyBoard PC ไปประยุกต์ใช้งาน
การควบคุมการทำงานของระบบสมองกลฝังตัว ในงานลักษณะต่างๆ ที่มีฟังก์ชั่นการทำงานมากๆ จำเป็นอย่างยิ่งที่จะต้องใช้ Key ควบคุมต่างๆเข้ามาต่อกับระบบ หากมองในมุมของการออกแบบวงจรแล้ว จำนวนสายสัญญาณทีต่อเข้ากับตัวของ CPU ก็มีผลอย่างมากในการเลือกใช้ IC เบอร์ต่างๆ ยิ่งถ้าการต่อสวิตช์แบบเมตริกแล้ว ถึงแม้ว่าจะลดจำนวนสายที่ต่อลงได้มากกว่าการต่อแบบ บิตต่อบิต แต่ก็ยังถือว่ามากอยู่หากต้องการจำนวนสวิตช์ที่มากขึ้น ต่างกับเทคนิคการสร้างและส่งสัญญาณของ Keyboard PC ที่มีจำนวนปุ่มกดมากกว่าหลายเท่าแต่กลับใช้สายสัญญาณเพียงสองเส้น หรือในงานที่ต้องการส่งสัญญาณแบบที่ต้องใช้สายน้อยจริงๆ ก็สามารถตัดให้เหลือเพียงเส้นเดียวได้ ดังนั้นการที่จะศึกษาถึงเทคนิคการสร้างสัญญาณของ Keyboard PC ให้ละเอียดแล้วน่าที่จะเป็นการดีที่เราจะสามารถออกแบบงานควบคุมต่างๆได้ โดยควบคุมผ่าน Keyboard PC ที่ราคาไม่ถึงร้อยบาท แต่ได้ฟังก์ชั่นท์การทำงานที่มากขึ้น หรือจะนำไปประยุกต์ใช้งานอื่นๆ ได้อีกมากมาย
บทความนี้จะยกตัวอย่างการติดต่อกับ Keyboard PC โดยใช้การวัดสัญญาณจุดต่างๆ ที่จำเป็นมานำเสนอเพื่อที่จะได้นำไปประยุกต์ได้อย่างเข้าใจยิ่งขึ้น ก่อนอื่นมาดูกันก่อนว่า ขั้วต่อของ Keyboard PC มีที่ใช้งาน กันทั่วๆ ไปมีกี่แบบกันก่อน

ตามรูปจะเห็นได้ว่ามีสองแบบ ที่นิยมแบบแรก คือแบบ DIN หัวต่อแบบนี้จะใหญ่ใช้ในเครื่องคอมพิวเตอร์รุ่นเก่าๆ อีกแบบ คือแบบ PS2 แบบนี้ จะเห็นกันอย่างแพร่หลาย การส่งสัญญาณและลักษณะ ของสัญญาณที่ Keyboard สร้างขึ้นมีหลายแบบหลาย มาตราฐานมากๆ ผมจะขอแนะนำเฉพาะที่สามารถหามาทดลองเล่นกันได้ง่ายๆ แต่ว่าจะบอกถึงสัญญาณที่ Keyboard แบบต่างๆ ส่งออกมา ให้ตามตารางด้านล่างครับ
การทำงานของ Keyboard PC
ตัว Keyboard PC จะใช้ไฟเลี้ยง 5 Vdc และมีสายสัญญาณ สองเส้น เส้นแรกเป็น DATA อีกเส้นเป็น Clock การส่ง สัญญาณเป็นแบบ 11 Bit แต่ละปุ่มมีค่า ที่ส่งออกมาเรียกว่า Scancode โดยที่แต่ละปุ่มจะส่งค่า Scancode ออกมา ไม่เหมือนกันและไม่สนใจการกดปุ่มพิเศษต่างๆ ด้วย แต่จะส่งสัญญาณบ่งบอกว่าขณะนั้นๆ ปุ่มใดถูกกดและ ปุ่มใดถูกปล่อย ส่วนภาษาของ Keyboard ที่เราเห็นว่า สามารถพิมพ์ได้หลายภาษา ในส่วนนี้เป็นหน้าที่ของ Software ที่ติดตั้งในระบบปฏิบัติการและการ พิจารณาว่าปุ่มพิเศษ เช่นการกด Shift , Ctrl, Alt เป็นหน้าที่ของ BIOS ในเมนบอร์ด เครื่องคอมพิวเตอร์ จากที่กล่าวไปแล้วนั้นการจะนำสัญญาณของ Keyboard มาใช้งานได้จำเป็นจะต้องมี สายสัญญาณอย่างน้อย สามเส้น คือ GND, VCC, DATA ส่วน Clock จะใช้หรือไม่ก็ได้ การกดแป้นพิมพ์บางตำแหน่ง Keyboard เองไม่ได้ส่งสัญญาณมาเพียง Byte เดียว แต่อาจส่งมากกว่าสาม Byte เลย ดังนั้น การนำสัญญาณที่รับได้มาพิจารณาก็เป็นหน้าที่ของ แฟรมแวร์ที่ออกแบบ
|
หัวต่อแบบ DIN
|
หัวต่อแบบ PS2
|
![]() |
![]() |
|
ตัวอย่างสัญญาณ Keyboard
|
ตัวอย่างสัญญาณ Keyboard
|
![]() |
![]() |
|
ตัวอย่างสัญญาณ Keyboard
|
ตัวอย่างสัญญาณ Keyboard
|

|
Scancode Table |
|||||
|
Key Num |
XT |
AT |
MF1 |
MF2 |
MF3 |
|
1 |
29 |
0E |
29 |
0E |
0E |
|
2 |
02 |
16 |
02 |
16 |
16 |
|
3 |
03 |
1E |
03 |
1E |
1E |
|
4 |
04 |
26 |
04 |
26 |
26 |
|
5 |
05 |
25 |
05 |
25 |
25 |
|
6 |
06 |
2E |
06 |
2E |
2E |
|
7 |
07 |
36 |
07 |
36 |
36 |
|
8 |
08 |
3D |
08 |
3D |
3D |
|
9 |
09 |
3E |
09 |
3E |
3E |
|
10 |
0A |
46 |
0A |
46 |
46 |
|
11 |
0B |
45 |
0B |
45 |
45 |
|
12 |
0C |
4E |
0C |
4E |
4E |
|
13 |
0D |
55 |
0D |
55 |
55 |
|
15 |
0E |
66 |
0E |
66 |
66 |
|
16 |
0F |
0D |
0F |
0D |
0D |
|
17 |
10 |
15 |
10 |
15 |
15 |
|
18 |
11 |
1D |
11 |
1D |
1D |
|
19 |
12 |
24 |
12 |
24 |
24 |
|
20 |
13 |
2D |
13 |
2D |
2D |
|
21 |
14 |
2C |
14 |
2C |
2C |
|
22 |
15 |
35 |
15 |
35 |
35 |
|
23 |
16 |
3C |
16 |
3C |
3C |
|
24 |
17 |
43 |
17 |
43 |
43 |
|
25 |
18 |
44 |
18 |
44 |
44 |
|
26 |
19 |
4D |
19 |
4D |
4D |
|
27 |
1A |
54 |
1A |
54 |
54 |
|
28 |
1B |
5B |
1B |
5B |
5B |
|
* 29 |
2B |
5D |
2B |
5D |
5C |
|
30 |
3A |
58 |
3A |
58 |
14 |
|
31 |
1E |
1C |
1E |
1C |
1C |
|
32 |
1F |
1B |
1F |
1B |
1B |
|
33 |
20 |
23 |
20 |
23 |
23 |
|
34 |
21 |
2B |
21 |
2B |
2B |
|
35 |
22 |
34 |
22 |
34 |
34 |
|
36 |
23 |
33 |
23 |
33 |
33 |
|
37 |
24 |
3B |
24 |
3B |
3B |
|
38 |
25 |
42 |
25 |
42 |
42 |
|
39 |
26 |
4B |
26 |
4B |
4B |
|
40 |
27 |
4C |
27 |
4C |
4C |
|
41 |
28 |
52 |
28 |
52 |
52 |
|
** 42 |
2B |
5D |
2B |
5D |
53 |
|
43 |
1C |
5A |
1C |
5A |
5A |
|
44 |
2A |
12 |
2A |
12 |
12 |
|
** 45 |
56 |
61 |
56 |
61 |
13 |
|
46 |
2C |
1A |
2C |
1A |
1A |
|
47 |
2D |
22 |
2D |
22 |
22 |
|
48 |
2E |
21 |
2E |
21 |
21 |
|
49 |
2F |
2A |
2F |
2A |
2A |
|
50 |
30 |
32 |
30 |
32 |
32 |
|
51 |
31 |
31 |
31 |
31 |
31 |
|
52 |
32 |
3A |
32 |
3A |
3A |
|
53 |
33 |
41 |
33 |
41 |
41 |
|
54 |
34 |
49 |
34 |
49 |
49 |
|
55 |
35 |
4A |
35 |
4A |
4A |
|
57 |
36 |
59 |
36 |
59 |
59 |
|
58 |
1D |
14 |
1D |
14 |
11 |
|
60 |
38 |
11 |
38 |
11 |
19 |
|
61 |
39 |
29 |
39 |
29 |
29 |
|
62 |
E038 |
E011 |
E038 |
E011 |
39 |
|
64 |
E01D |
E014 |
E01D |
E014 |
58 |
|
75 |
E052 |
E070 |
E052 |
E070 |
67 |
|
76 |
E053 |
E071 |
E053 |
E071 |
64 |
|
79 |
E04B |
E06B |
E04B |
E06B |
61 |
|
80 |
E047 |
E06C |
E047 |
E06C |
6E |
|
81 |
E04F |
E069 |
E04F |
E069 |
65 |
|
83 |
E048 |
E075 |
E048 |
E075 |
63 |
|
84 |
E050 |
E072 |
E050 |
E072 |
60 |
|
85 |
E049 |
E07D |
E049 |
E07D |
6F |
|
86 |
E051 |
E07A |
E051 |
E07A |
6D |
|
89 |
E04D |
E074 |
E04D |
E074 |
6A |
|
90 |
45 |
77 |
45 |
77 |
76 |
|
91 |
47 |
6C |
47 |
6C |
6C |
|
92 |
4B |
6B |
4B |
6B |
6B |
|
93 |
4F |
69 |
4F |
69 |
69 |
|
95 |
E035 |
E04A |
E035 |
E04A |
77 |
|
96 |
48 |
75 |
48 |
75 |
75 |
|
97 |
4C |
73 |
4C |
73 |
73 |
|
98 |
50 |
72 |
50 |
72 |
72 |
|
99 |
52 |
70 |
52 |
70 |
70 |
|
100 |
37 |
7C |
37 |
7C |
7E |
|
101 |
49 |
7D |
49 |
7D |
7D |
|
102 |
4D |
74 |
4D |
74 |
74 |
|
103 |
51 |
7A |
51 |
7A |
7A |
|
104 |
53 |
71 |
53 |
71 |
71 |
|
105 |
4A |
7B |
4A |
7B |
84 |
|
106 |
4E |
79 |
4E |
79 |
7C |
|
108 |
E01C |
E05A |
E01C |
E05A |
79 |
|
110 |
01 |
76 |
01 |
76 |
08 |
|
112 |
3B |
05 |
3B |
05 |
07 |
|
113 |
3C |
06 |
3C |
06 |
0F |
|
114 |
3D |
04 |
3D |
04 |
17 |
|
115 |
3E |
0C |
3E |
0C |
1F |
|
116 |
3F |
03 |
3F |
03 |
27 |
|
117 |
40 |
0B |
40 |
0B |
2F |
|
118 |
41 |
83 |
41 |
83 |
37 |
|
119 |
42 |
0A |
42 |
0A |
3F |
|
120 |
43 |
01 |
43 |
01 |
47 |
|
121 |
44 |
09 |
44 |
09 |
4F |
|
122 |
57 |
78 |
57 |
78 |
56 |
|
123 |
58 |
07 |
58 |
07 |
5E |
|
124 |
E02AE037 |
E012E07C |
E02AE037 |
E012E07C |
57 |
|
125 |
46 |
7E |
46 |
7E |
5F |
|
126 |
E11D45E1 9DC5 |
1477F014 F077 |
E11D45E1 9DC5 |
E11477E1 F014F077 |
62 |



