"Skills, Knowledge, Abilities, and Experiences

are only useful....

If you are at the right place "

นาๆ (ไร้) สาระ

Keyboard Decoder

Keyboard Interface

วงจรอ่านค่ารหัสแป้นพิมพ์คอมพิวเตอร์ด้วย Micro-controller

เกือบ 20 ปีก่อนสมัยยังบ้าอยู่กับการเล่นและเขียนโปรแกรมบนไมโครคอนโทรลเลอร์ (MCS-51) เกิดมีไอเดียขึ้นมาว่าหลายๆ ครังที่เวลานึกอยากจะทำโปรเจคต์หรือโครงงานเกี่ยวกับงานควบคุมอะไรสักอย่าง เราต้องมานั่งเขียนโปรแกรมเพื่ออ่านค่าของสวิทช์ ซึ่งแต่ละครั้ง(โครงงาน) ก็มีจำนวนสวิทช์ที่ไม่เท่ากัน (ตอนทำโปรเจคต์สมัยเรียน ปวส. มักเจอปัญหากับการแก้ Bounce ของการ scan key)

เลยคิดไอเดียขึ้นมาว่าน่าจะดีกว่าหากเรานำคีย์บอร์ดของเครื่องคอมพิวเตอร์มาต่อโดยตรงกับไมโครคอนโทรลเลอร์ แล้วเขียนโปรแกรมเพื่ออ่านค่ารหัสของแต่ละคีย์ออกมาเป็น ASCII Code เพื่อให้การนำไปใช้งานได้หลากหลาย (เขียนโปรแกรมเป็นโมดูลหรือไลบรารี่ไว้ครั้งเดียวแล้วให้โปรแกรมหลักมาเรียกใช้งาน)

สมัยนั้นการจะหาข้อมูลจาก Internet ว่าจะต้องเชื่อมต่อขาสัญญาณของคีย์บอร์ดเข้ากับขาของไมโครคอนโทรลเลอร์ได้โดยตรง หรือต้องมีวงจร Interface มาคั่นกลางได้อย่างไรเป็นเรื่องที่ยากมาก สิ่งที่พอจะหาได้ตอนนั้นคือ Pin Configuration ของคียร์บอร์ดเท่านั้น ส่วนที่จะหาตัวอย่างที่มีคนทำจริงและลงไว้ใน Internet นั้นค่อนข้างหายาก (ผมหาไม่เจอ) แต่โชคดีที่ทำงานอยู่โรงงานอิเล็กทรอนิกส์ และมีเวลาและมีเครื่องมือดีๆ (เช่น Oscilloscope ที่มีความสามารถในการจับสัญญาณ Pulse และมี Function ในการใช้งานหลากหลาย) จึงทำให้ได้ทำการทดลองและเห็น Pattern ของจริงของสัญญาณไฟฟ้า (ขาสัญญาน C/K, Data) เมื่อมีการเชื่อมต่อระหว่างคีย์บอร์ดกับคอมพิวเตอร์ และเมื่อเข้าใจ Pattern ของมันจึงทำให้สามารถออกแบบวงจร Interface ได้

ทีแรกต้องการจะต่อขาสัญญาณของคียร์บอร์ดเข้ากับโมโครคอนโทรลเลอร์โดยตรง แต่เมื่อพิจารณาดูแล้วรู้สึกว่ามันจะยุ่งยากต่อการเขียนโปรแกรม เพราะเมื่อต้องคำนึงถึง (คำนวน) ค่า Cycle time ของขาสัญญาณ Data แล้วอาจจะทำให้ไม่ยืดหยุ่นต่อตัวโปรแกรมหลักหากมีความใหญ่โตมากขึ้น (ขึ้นอยู่กับจุดประสงค์ของโปรแกรมที่จะเขียน)

ดังนั้นจึงเปลี่ยนวิธีโดยการออกแบบวงจร Interface มาคั่นกลางเพื่อทำหน้าที่เป็น Shift Register (Serial In – Parallel Out) เปลี่ยนสัญญาณ Serial Data ให้เป็น Parallel Data แล้วส่งสัญญาณไป Interrupt CPU เพื่อให้มาอ่านค่าแล้วไปเก็บรอไว้ในหน่วยความจำ หรือ Register เพื่อนำไปประมวลผลอื่นๆ ต่อไป

วงจรที่ออกแบบ (ดังภาพ) ได้ทดลองต่อใช้งานจริงและเขียนโปรแกรมควบคุมการทำงาน และใช้งานได้เป็นอย่างดี แต่หากจะนำมาใช้กับโครงงานใหม่ๆ ในปัจจุบันคงไม่เหมาะสมแล้ว เพราะ Keyboard เครื่องคอมพิวเตอร์ในปัจจุบันได้เปลี่ยนการเชื่อมต่อไปเป็นแบบ USB เกือบหมดแล้ว ซึ่ง Protocol ของสัญญานคงไม่ได้เหมือนกับ Keyboard ที่เป็นแบบ PS/2 เหมือนสมัยก่อน

 

Related articles

- Chatchaval -

" A MAN OF FEW WORDS "

เรื่อยๆ มาเรียงๆ นกบินเฉียงไปทั้งหมู่ คนเดียวมาไร้คู่เหมือนพี่อยู่เพียงเอกา ร่ำๆ ใจรอนๆ อกสะท้อนอ่อนใจข้า ดวงใจใยหนีหน้า โถแก้วตามาหมางเมิน

" hoXBot "

My personal favorite
Sponsor

SAFE MASK

โรงงานผลิตหน้ากากอนามัยทางการแพทย์ และหน้ากากป้องกันฝุ่น
Clips

Get in Touch !