Get Adobe Flash player

อินเตอร์เฟส 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