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