كيف تصنع لوحة مفاتيح - ماتريكس

تم النشر بواسطة : كومار الملقب بميشا تريبوس ؛ الترجمة الإنجليزية-الروسية : firerock
Original : blog.komar.be/how-to-make-a-keyboard-the-matrix

هذه هي أول مشاركة في سلسلة على لوحات المفاتيح ؛ آمل ألا يكون الأخير. أود أن ينتهي بي الأمر مع دورة تصنيع لوحة المفاتيح من الصفر. اليوم سأتحدث عن مصفوفات المدخلات والمخرجات الرقمية ولوحة المفاتيح. سلح نفسك بمعرفة المدرسة الأساسية في مجال الإلكترونيات - ودعنا نذهب.

لماذا مصفوفة؟


وكيف سنصنع المصفوفة؟ والأهم من ذلك - لماذا هو مطلوب على الإطلاق؟ حسنًا ، هذا يرجع أساسًا إلى القيود المادية للمتحكم الدقيق التي بنيت عليها لوحات المفاتيح. والحقيقة هي أنه مع زيادة عدد المخرجات للمتحكم الدقيق والدوائر المنطقية القابلة للبرمجة ، يزداد حجمها أيضًا ، مما يستتبع بدوره زيادة في استهلاك الطاقة والقدرات ، ولكن الأهم من ذلك الأسعار. ونتيجة لذلك ، يمكنك اختيار إما شريحة رخيصة ذات أداء صغير (يناسبك بشكل جيد) ، ولكن مع عدد قليل من المدخلات والمخرجات ، أو شريحة أكثر قوة ، ولكن أداءها يتجاوز متطلباتك بشكل كبير. ولكن هذه الشريحة القوية فقط لديها مخرجات كافية لتوصيل كل زر على لوحة المفاتيح.

على مدى عقود ، تطورت هذه الممارسة في مجال الإلكترونيات بمساعدة الحيل المختلفة لتوسيع قدرات الاتصال المدمجة للمعالجات ووحدات التحكم بشكل مصطنع. واحدة من هذه الطرق ، والتي تناسب تمامًا جهات الاتصال الميكانيكية (الأزرار) ، هي إنشاء مصفوفة. لفهم كيفية عملها ، يلزم بعض المعرفة الأساسية. قبل أن نواصل ، يرجى تحديث قانون أوم .

جزء من النظرية


لفهم كيفية عمل الإلكترونيات الرقمية ، تحتاج إلى تعلم مبدأين أساسيين. يقول

المبدأ الأول أن عملية الاتصال داخل الدائرة لا تتعلق بإرسال أو استقبال شيء هناك. لضمان التواصل بين الجهازين ، ما عليك سوى ربط نتائجهم ببعضهم البعض بمواد موصلة للكهرباء. بعد ذلك ، من المفترض أن حالة المادة (الجهد والتيار) عند كلا الطرفين ستكون هي نفسها. في الواقع ، بالطبع ، ليس الأمر كذلك ، ولكن بالنسبة للاتصالات البطيئة والموصلات القصيرة ، فإن افتراضنا يعمل بشكل جيد. اتضح أن إرسال واستقبال المعلومات هو في الواقع مشاركتها.

من جانب جهاز الإرسال ، يمكنك ببساطة تغيير الحالة الكهربائية للموصل (عن طريق حقن التيار المباشر فيه وتغيير إمكاناته) ، على أمل أن يتمكن جهاز الاستقبال من اكتشاف هذا التغيير وفهمه بشكل صحيح.

ويترتب على هذا المبدأ أيضًا أنه لا توجد علاقة بين اتجاه الاتصال واتجاه التيار الكهربائي. يفترض كثير من الناس العكس عن طريق الخطأ ، وهذا يمنعهم من فهم كيفية عمل الإلكترونيات.

إذا كنت تريد إرسال مستوى منطقي "0" ، فعادةً ما يتم تخفيض الجهد عند خرج جهاز الإرسال إلى 0 فولت ، ويتدفق التيار من جهاز الاستقبال إلى جهاز الإرسال حتى يتمكن جهاز الاستقبال من تحديد أن مستوى المنطق يتوافق مع "0". (في حين أن الاتجاه العكسي للتيار يعني أنه في مكان ما في الدائرة يوجد احتمال سلبي - وهذا ، كقاعدة عامة ، لا يحدث في الإلكترونيات الرقمية.) من ناحية أخرى ، لإرسال المستوى المنطقي "1" ، يتم تطبيق جهد يساوي جهد الإمداد ، وبما أن هذا هو في الغالب أعلى جهد في الدائرة ، فلن يبقى شيء آخر للتيار الكهربائي من التدفق من جهاز الإرسال إلى جهاز الاستقبال.

المبدأ الثانييكمن في حقيقة أنه من المستحيل تحديد حالة الموصل دون تغيير هذه الحالة. لا يهم إذا كنت ستقوم بقياس الجهد أو التيار - على أي حال ، فمن الضروري أن تتدفق الإلكترونات عبر جهاز القياس الخاص بك. تدفق الإلكترونات - هذا هو التيار الكهربائي ، وبما أنه يتدفق ، فهذا يعني أنه في العقدة التي تتصل بها للقياس ، تغيرت التيارات والجهد بالفعل (انظر قوانين Kirchhoff ). ويترتب على ذلك أنه إذا كنت بحاجة إلى "نقل" المعلومات عن طريق تغيير حالة الإخراج المتصل كهربائيًا بمخرج آخر ، فأنت بحاجة إلى الحفاظ على هذه الحالة ، مما يعني أنه يجب عليك الامتثال لجميع المتطلبات التي يفرضها جهاز الاستقبال.

زر


الزر الميكانيكي (وفي هذا السياق لا ترتبط كلمة "ميكانيكي" بعبارة "لوحة المفاتيح الميكانيكية") هي مجرد زوج من جهات الاتصال المعدنية التي تربط طرفي الاتصال بالكهرباء عند التلامس. بالطبع ، هناك أنواع أخرى من المفاتيح الأكثر تعقيدًا من الناحية الهيكلية ولديها المزيد من المخرجات ، لكنها ليست مثيرة للاهتمام بالنسبة لنا لأنها لا تستخدم في لوحات المفاتيح.


زر الكرز MX. مصدر الصورة: ويكي المكتبي

حسنًا ، وكيف سنربط الزر بمدخل وحدة التحكم الدقيقة؟ بشكل أساسي ، يمكن أن يعمل أي إدخال بمستويين منطقيين محتملين: "0" و "1". من الممارسات الشائعة قبول الفولتية القريبة من 0 فولت كصفر منطقي ، والجهود القريبة من جهد الإمداد (عادة 5 فولت أو 3.3 فولت) كوحدة منطقية. لكن المشكلة هي أن الزر الميكانيكي وحده لا يستطيع التحكم في الجهد. يتحكم في التيار - أي ، إذا قمنا بتوصيل عقدين مع إمكانات كهربائية مختلفة من خلال الزر ، فإن التيار بين هذه العقد سيتدفق إذا وفقط عند الضغط على الزر.

ولكن إذا أضفنا مقاومًا ، فيمكننا بسهولة تحويل التيار إلى جهد.


زر المقاوم للسحب

نلقي نظرة على هذا الرسم التخطيطي. عندما لا يتم الضغط على الزر (يتم كسر الدائرة) ، لا يتدفق التيار من خلاله ، وبالتالي فإن الجهد عند العقدة "A" سيكون قريبًا من جهد الإمداد VCC (في الواقع ، أقل من VCC بقيمة انخفاض الجهد عبر المقاوم يساوي R • I). عند الضغط على الزر (الدائرة مغلقة) ، يتدفق التيار عبر المقاوم إلى الأرض. بالنظر إلى أن مقاومة الزر المغلق صغيرة جدًا (بترتيب مئات المليوم) ، فإن الجهد عند العقدة "A" سيكون قريبًا من "0".

في هذا التكوين ، يُطلق على المقاوم اسم pull-up لأنه "يسحب الجهد لأعلى" إلى مستوى VCC. وبدون الاتصال بمصدر الطاقة من خلال المقاوم ، لن يكون هناك أي جهد على الإطلاق في العقدة "A" (في هذه الحالة ، يُطلق على خرج الدائرة المصغرة "تعليق في الهواء" أو في حالة مقاومة عالية).

وتجدر الإشارة إلى أنه داخل معظم وحدات التحكم الدقيقة الحديثة توجد بالفعل مقاومات سحب يمكن توصيلها أو فصلها بسرعة باستخدام البرنامج. لذا ، فإن الطريقة الرئيسية لتوصيل الزر بوحدة التحكم الدقيقة هي كما يلي: أحد أطراف الزر هو إدخال وحدة التحكم الدقيقة ، والدبوس الآخر للزر على الأرض. في هذه الحالة ، إذا لم يتم الضغط على الزر ، فسيتم إرسال "1" إلى وحدة التحكم الدقيقة ، وإذا تم الضغط عليه ، فإن "0". ربما يتعارض هذا مع الحدس ، لكن طريقة الاتصال هذه هي الأكثر شيوعًا.

يرجى ملاحظة أنه إذا تركنا أحد دبابيس الزر معلقة في الهواء ، أي إذا لم نقم بتوصيله في أي مكان ، فلن يعمل هذا الزر على الإطلاق: إذا لم تضغط عليه ، فلن يؤثر على الحالة الكهربائية لخرج وحدة التحكم الدقيقة. سنستمر في استخدام هذه الخاصية عند تكوين المصفوفة.

مبدأ المصفوفة


المبدأ الأساسي لمصفوفة لوحة المفاتيح هو القدرة على توصيل أكثر من زر لمدخل واحد من وحدة التحكم الدقيقة.

باستخدام الترانزستورات أو مخرجات الميكروكونترول التي تم تكوينها بشكل صحيح ، يمكننا جعل الأزرار متصلة بالأرض واحدة في كل مرة ، بينما سيتم تعليق الباقي في الهواء. يتم دمج الاستنتاجات المتبقية لكل من الأزرار في عقدة واحدة وتوصيلها بالإدخالمتحكم. لقد قمت بخفض مقاومة السحب ، لأننا نعلم أنها موجودة بالفعل داخل وحدة التحكم الدقيقة ، في مرحلة الإدخال. نتناوب على "تشغيل" كل زر ، وربط رقم خرجه 1 بالأرض من خلال الإخراج المقابل لوحدة التحكم الدقيقة ، وبعد ذلك يمكننا قراءة حالة الزر عند الإدخال عن طريق إزالة الجهد من رقم خرجه 2. الأزرار الأخرى المتصلة بنفس المدخلات لا تؤثر على حالته ، لأن استنتاجاتهم الأولى معلقة حاليًا في الهواء. يوضح الرسم البياني التالي هذه الفكرة.


العديد من الأزرار ، إدخال واحد (العقدة "A")

"A" هو المدخل الوحيد لوحدة التحكم الدقيقة ، و "C1" .. "Cn" هي مخرجاتها. في أحد المخرجات ، يتم تعيين "0" منطقي ، أي داخل الدائرة المصغرة يتم توصيل جهة الاتصال هذه بطريقة ما بالأرض - وبالتالي ، سيتدفق التيار دائمًا إلى جهة الاتصال هذه (وفقًا للمبدأ الأساسي الأول). الآن ، عند الضغط على الزر المتصل بهذا الإخراج ، يتم من خلاله إدخال "A" على الفور "الضغط" على الأرض ، وسيتم تعيينه على "0". لن يؤدي الضغط على الأزرار الأخرى إلى تغيير أي شيء ، لأن مخرجاتها الأرضية غير متصلة في أي مكان في الوقت الحالي. عندما نحتاج إلى استجواب الزر التالي ، نقوم بإزالة "0" المنطقي من الإخراج الحالي وتعيين هذا المستوى إلى الإخراج التالي ، بحيث يتم تنشيط واحد فقط من مخرجات وحدة التحكم الدقيقة في أي وقت.

يسمى هذا التكوين (عندما يكون الإخراج متصلاً بالأرض أو معطلاً على الإطلاق) يسمى إخراج استنزاف مفتوح (تاريخياً ، مع جامع مفتوح (OK)). هنا قمت ببعض التبسيط - في الواقع ، لا يمكن فصل جهة اتصال تمامًا عن الدائرة ما لم يتم قطعها فعليًا عنها. ولكن بالنسبة إلى الإدخال / الإخراج الرقمي البسيط ، فإن هذا التبسيط مناسب تمامًا. توفر معظم وحدات التحكم الدقيقة القدرة على تكوين جهات اتصال الإخراج بشكل برمجي للعمل في وضع نظام التشغيل. ولكن ماذا لو لم يكن لدينا مثل هذه الفرصة؟ هناك تكوين آخر - وضع الدفع والسحب ؛ اليوم هذا الخيار هو واحد من الأكثر شعبية. يعمل هذا التكوين بشكل مختلف قليلاً. في حالة "0" ، لا يزال يتم دفع الإخراج إلى الأرض ، ولكن عند حدوث الحالة "1" ، يتم سحبه إلى جهد الإمداد VCC ،بحيث لا يتوقف الإخراج في الهواء ، والآن يمكن أن يصبح مصدرًا للتيار.

ما التغييرات التي ستترتب على ذلك في تصميم المصفوفة؟ إذا لم نضغط على عدة أزرار في نفس الوقت ، فلن نضغط على أي منها. ولكن إذا أردنا ذلك ، فقم بإلقاء نظرة على الرسم وتخيل للحظة ما سيحدث بعد ذلك. من خلال النقر على الزرين ، نقوم بتوصيل المخرجين الأقل في حلقة مغلقة. إذا كان أحدهما في الحالة "0" والآخر في الحالة "1" ، فإن التيار الكهربائي سيتدفق من الخرج إلى "1" إلى الخرج المضبوط على "0". وبما أن هذا التيار لا يقتصر على أي شيء (لا توجد مقاومات) ، فلن تصبح الدائرة غير مستقرة فحسب ، بل يمكنها أيضًا الطيران خارج الرقاقة. حسنًا ، بالطبع ، من غير المحتمل أن يكون من الممكن عادةً التفكير في حالة منطقية.

مضيفا الصفوف


يمكنك اعتبار المثال السابق مصفوفة تتكون من صف واحد. الآن دعنا نزيدها بإضافة خطوط إضافية. في الواقع ، إذا تمكنا من تعليق صف كامل على إدخال واحد ، فلماذا لا يمكننا تعليق عمود كامل من الأزرار على إخراج واحد؟ صحيح ، هناك شرط أساسي - يجب توصيل كل زر في العمود بإدخال منفصل لوحدة التحكم الدقيقة.

إذا قمنا بترتيب الأزرار في شكل مصفوفة عادية ، فسيتم الوفاء بهذا الشرط تلقائيًا. ويوضح الشكل التالي كيف ستبدو مصفوفة الأزرار المكونة من n أعمدة وصفوف m ( لا تنتبه إلى الأشكال الخضراء بعد ).


مصفوفة لوحة مفاتيح بسيطة

قراءة هذه المصفوفة بسيطة للغاية. نقوم باستطلاع عمود واحد في كل مرة. يتم تحديد عمود القراءة عن طريق توصيل أحد المخرجات "C1" .. "Cn" بالأرض (تتم ترجمة الإخراج في وضع نظام التشغيل إلى "0"). الآن ، بالتناوب على الصفوف "R1" .. "Rm" ، يمكننا تحديد حالة كل زر في العمود المحدد. لا تؤثر الأزرار من الأعمدة الأخرى على أي شيء ، حتى إذا تم الضغط عليها ، لأنه في الوقت الحالي معلقة على الأرض في الهواء (أو كما يقولون في الإلكترونيات ، فهي في حالة Hi-Z).

بعد أن يتم استقصاء العمود بأكمله ، ننتقل إلى العمود التالي ، ونترك الناتج الحالي ودفع العمود التالي إلى الصفر. يعتبر مسح المصفوفة مكتملاً عندما يتم استطلاع جميع الأعمدة. إذا تم عمل كل شيء بسرعة كافية ، فلن تلاحظ أسرع آلة طباعة الفواصل الزمنية بين استطلاعات الأعمدة. حتى مع وحدة التحكم الدقيقة 16 ميجاهرتز ، يمكننا بسهولة مسح المصفوفة بأكملها ألف مرة في الثانية ، بينما حقق أسرع طابعة في الاختبار على hi-games.net سرعة 203 كلمة في الدقيقة (wpm) - أي أقل بقليل من 17 نقرة في الثانية.

عند تصميم لوحة مفاتيح باستخدام مصفوفة ، نقوم بتقليل عدد الدبابيس المطلوبة لتوصيل جميع المفاتيح. ولكن من أجل تقليل عدد الاستنتاجات إلى الحد الأدنى الممكن ، نحتاج إلى تكوين مصفوفة بحيث يكون عدد الأعمدة قريبًا قدر الإمكان من عدد الصفوف. في حالة مثالية ، إذا كان عدد الأزرار هو ، فإن أفضل ما يمكننا تحقيقه باستخدام المصفوفة هو 2nدبابيس متحكم مشغول. ومع ذلك ، اليوم ، عند تجميع المصفوفات ، نادرًا ما يسعى أي شخص إلى تقليل عدد الأرجل المعنية ، لأن المتحكمات الدقيقة الحديثة ، كقاعدة عامة ، لديها عدد كاف من الاستنتاجات المجانية. بالإضافة إلى ذلك ، يمكن أن يؤدي الحد الأقصى من التحسين في المصفوفة إلى إزعاج في وقت لاحق - ستكون أسلاك اللوحة أو توزيع الأسلاك في الجهاز النهائي أكثر تعقيدًا بشكل ملحوظ. لذلك ، يجدر الذهاب بالطريقة الأكثر ملاءمة: عند تجميع المصفوفة ، حاول اتباع الترتيب المادي للأزرار. في هذه الحالة ، بالنسبة للوحة مفاتيح الكمبيوتر القياسية ، ستحتوي المصفوفة الأبسط على 6 صفوف فقط وعدد معين من الأعمدة ، اعتمادًا على التخطيط المطلوب. بالطبع ، من وجهة نظر عدد الاستنتاجات المعنية ، ليس هذا الحل هو الأمثل ، ولكن في المستقبل ، على الأقل سيتم تبسيط الأسلاك.

ولكن ماذا لو لم يكن لدينا مخرجات استنزاف مفتوحة؟


قد تسأل: ماذا يجب أن نفعل إذا لم يكن هناك حتى الآن وضع نظام التشغيل في وحدة التحكم الدقيقة المحددة؟ حسنًا ، لقد اكتشفنا بالفعل نوع المشاكل التي يمكن أن تحدث ، وأن سحب المخرجات إلى VCC (أي "توصيلها" بمصدر الطاقة) ليست فكرة جيدة. هناك طرق عديدة لحل هذه المشكلة. من بينها ليس هناك مخازن مؤقتة خاصة لمخرجات نظام التشغيل فحسب ، بل حتى سجلات التحول مع مخرجات نظام التشغيل - لتقليل عدد الأرجل المعنية. ولكن هناك تقنية أخرى شائعة جدًا ، والتي غالبًا ما تستخدم في تصميم لوحات مفاتيح الكمبيوتر (في الواقع ، كانت تستخدم على نطاق واسع في الأيام الخوالي).

تظهر مشكلة الأعمدة المتصلة بمخرجات الدفع والسحب في الوقت الذي يتم فيه الضغط على زرين على نفس الخط معًا ، وفي الوقت نفسه ، سيؤدي الضغط على الزر إلى استطلاع العمود الذي يوجد فيه أحد الأزرار.


مشكلة مخرجات الدفع والسحب

من المخرج ، الذي يتم سحبه إلى "1" (ولا يتعطل في حالة Hi-Z) ، يبدأ التيار في التدفق. يمر من خلال أقرب زر مغلق ، ثم من خلال الزر المغلق في العمود المستفسر ، وأخيرًا يتدفق مباشرة إلى الإخراج الناتج على "0". يمكن أن يؤدي ذلك إلى أي شيء - من استحالة القراءة الموثوقة لحالة لوحة المفاتيح إلى فشل وحدة التحكم الدقيقة نفسها.

ولكن نظرًا لأننا مضطرون للتعامل مع هذه المشكلة بطريقة أو بأخرى ، فيمكننا تطبيق خدعة كبيرة: تحويل ناتج الدفع والسحب إلى نوع من إخراج التصريف المفتوح. كثيرا ما صادفت هذا الحل في تصاميم لوحات المفاتيح القديمة. بالنظر إلى أن التيار يجب أن يتدفق فقط إلى المخرجات (المتصلة بالأعمدة) ، ولكن لا يتدفق منها أبدًا ، يمكننا تحديد اتجاه التيار باستخدام الثنائيات. الصمام الثنائي هو جهاز بسيط يسمح بتدفق التيار في اتجاه واحد فقط. في صورة الصمام الثنائي على الدائرة الكهربائية ، يرمز المثلث إلى السهم الذي يشير إلى هذا الاتجاه. إذا وضعنا صمامًا ثنائيًا بين كل ناتج من وحدة التحكم الدقيقة وموصل العمود المقابل للمصفوفة ، فسوف نحقق هدفنا - الآن يمكن أن يتدفق التيار فقط إلى المخرجات ، لأن هذه الموصلات تصل إلى كل زر من أعمدتها. اتضحأنه من المخرجات المعينة على "1" ، فإن التيار لن يتدفق في أي مكان ، ويحوله هذا تقريبًا إلى إخراج مفتوح. بالطبع ، لا يصل إلى نظام التشغيل الحقيقي ، لكنه يحل مشكلتنا من دائرة التيار المغلق في مصفوفة لوحة المفاتيح. عُد إلى الصورة قبل الأخيرة للمصفوفة ، لكن هذه المرةالنظر في الثنائيات الخضراء لفهم كيفية عمل هذه الحيلة.

بطبيعة الحال ، من المنطقي تقليل عدد الثنائيات. للقيام بذلك ، يمكنك تقليل عدد الأعمدة عن طريق زيادة عدد الصفوف. وإذا كانت النتيجة الناتجة لا تتناسب جيدًا مع التخطيط الفعلي للوحة المفاتيح ، فيمكنك "تدوير" المصفوفة 90 درجة (تبديل الصفوف مع الأعمدة). الاحتمالات لا حصر لها. ولكن في الوقت الحاضر ، ظهر عدد كبير من وحدات التحكم الدقيقة سهلة الاستخدام ومناسبة للهوايات ، لذلك اليوم لا يتم استخدام التقنية الموصوفة عمليًا في مشاريع لوحة المفاتيح المحلية. لحسن الحظ.

النقرات الوهمية (الظلال)


إذا كنت مهتمًا بالكلس ، فيجب أن تكون قد استوفيت هذا المصطلح بالفعل. لسوء الحظ ، في عالم لوحات المفاتيح يتم تفسيره غالبًا بشكل غير صحيح.

نحن على دراية بالفعل بالوضع عندما يمكن أن يتداخل الضغط المتزامن لعدة أزرار موجودة على نفس الخط مع القراءة العادية للمصفوفة. ويمكننا القول أن هذه المشكلة قد تم حلها من قبلنا. الآن دعونا نرى ما يحدث إذا قمت بالنقر فوق عدة أزرار موجودة في نفس الصف وفي نفس العمود في نفس الوقت.


مثال على الضغط الوهمي

في الشكل ، يتم الضغط على ثلاثة أزرار في نفس الوقت. اثنان منهم في العمود "C2" ، واثنان في الصف "Rm". هذا يعني أن أحد الأزرار التي تم الضغط عليها يشارك الصف مع الضغط على الزر الآخر ، والضغط على العمود مع الزر الثالث. في هذه الحالة يحدث الضغط الوهمي. تخيل أننا نستجوب حالياً العمود "C1" (أي أنه يتم الضغط عليه على الأرض - في الحالة "0"). يؤدي هذا الوتد المميز للأزرار المضغوطة إلى ما يلي: على الرغم من عدم الضغط على الزر الأيسر العلوي ، فإن الصف "R2" في الحالة "0" ، لأنه يتم الضغط عليه إلى الأرض بواسطة العمود "C1" (الموجود في "0") من خلال ضغط ثلاثة أزرار. ونتيجة لذلك ، يقرأ المتحكم بلوحة المفاتيح الزر الأيسر العلوي على أنه "مضغوط" ، بغض النظر عما إذا تم الضغط عليه بالفعل أم لا. تسمى الحالة الموصوفة بالضغط الوهمي ( الظلال ) ، لأن بعض مجموعات الأزرار المضغوطة في وقت واحد تتسبب في استجابات الوهمية للأزرار الأخرى (ضغطات الشبح) ، على الرغم من عدم الضغط على هذه الأزرار الأخرى جسديًا.

بالطبع ، هناك طرق لحماية المطبعين واللاعبين من الاستجابات الوهمية ، وتستخدم هذه الأساليب على نطاق واسع في لوحات مفاتيح الكمبيوتر الحديثة. يمكنك التقاط لحظة حدوث الضغط الوهمي وحظره. لا يستطيع الشخص العادي الضغط على مفتاحين أو تحريرهما في وقت واحد بدقة مثالية. لذلك ، بفحص المصفوفة بسرعة كافية ، يمكننا أن نفترض أنه بين مرورين من خلال المصفوفة لا يمكن لأكثر من زر واحد تغيير حالتها. في هذه الحالة ، تقبل وحدة التحكم الضغطات المفردة وتراقب حدوث المواقف عند الضغط على زرين أو أكثر بين تمرير المصفوفة. بالنظر إلى أن مسح المصفوفة يحدث بسرعة لا يُحتمل حدوثها بشكل منتظم مثل هذه المواقف ، يمكننا أن نستنتج أن أحد الأزرار التي تم الضغط عليها للتو هو الوهمية.لذلك ، يجب على وحدة التحكم تجاهل كل هذه النقرات. بالإضافة إلى ذلك ، من الآمن عدم إبلاغ الكمبيوتر على الفور بتغييرات حالة لوحة المفاتيح - في البداية من المنطقي الانتظار حتى تختفي جميع هذه العمليات.

هناك نهج آخر. يمكنك تحديد الموقف عند تشغيل الزر "الثالث" ، وحظر كل من هذه الصحافة وجميع الضغطات اللاحقة. لا تحرر القفل حتى تختفي استجابة الوهمية ويصبح الوضع طبيعيًا مرة أخرى. لتطبيق هذا النهج ، يجب أن يتذكر البرنامج الأزرار التي يتم الضغط عليها حاليًا (وعادة ما يتذكرها بهذه الطريقة) من أجل رفض عمليات الأزرار اللاحقة ، في الصفوف والأعمدة التي تم تسجيل النقرات المتزامنة عليها بالفعل. إذا قمت بكتابة البرنامج بحكمة ، فسيتم حظر الاستجابات الإشكالية فقط ، وسيتم قبول جميع الردود اللاحقة كالمعتاد - باستثناء تلك التي تنتهك القواعد مرة أخرى. بمجرد أن ترفض وحدة التحكم الضغط على كل زر يحتوي بالفعل على عمليات متزامنة في صفه وعموده ، يتبين أنه اعتمادًا على حالة بعض الأزرار ،لا يجوز تسجيل الآخرين على الإطلاق. هذه الحالة معروفة باسمالحجب ( التشويش ). أي الأزرار التي تمنع التشغيل المتزامن للأزرار الأخرى ، اتضح ، جزء "حظر" من لوحة المفاتيح.

من وجهة نظر المستخدم ، من الممكن الضغط في نفس الوقت على جميع الأزرار من عمود واحد (بدون الضغط على الأزرار من عمود آخر) ، ولكن في نفس الوقت الضغط على جميع الأزرار من صف واحد فقط إذا لم يكن لكل من الأزرار أكثر من عملية واحدة في العمود. وينطبق الشيء نفسه على الضغط على الأزرار من عمود واحد - يتم تسجيل المشغلات الإضافية فقط إذا كانت الأزرار في صفوف "غير مشغولة".

غالبًا ما يخلط الناس بين " التحفيز الوهمي " و " حظر التحفيز " (" الظلال " و "التشويش ") ، وهو لغز بالنسبة لي شخصيا - في رأيي ، هذه المصطلحات بديهية للغاية.

في لوحات المفاتيح التي تستخدم هذه المصفوفات كما درسنا للتو ، لا يمكن تجنب الاستجابات الوهمية ولا الحظر. نظرًا لأن الاستجابات الوهمية في العمل اليومي غير مقبولة ، لمكافحتها ، يستخدم جميع مصنعي لوحات المفاتيح ذات القبة المطاطية تقريبًا حيلًا مختلفة ، ويبدأ الحظر. السؤال: كيف يتم تكوين مصفوفة بطريقة تجعل حدوث الحظر نادرًا ما يكون ممكنًا ولا يحدث بسبب تركيبات لوحة المفاتيح الشائعة؟ في الواقع ، هذا موضوع جيد للكتاب كله ؛ هذا هو السبب في أن مصفوفات لوحات مفاتيح السلع الاستهلاكية مربكة للغاية وتحجب دائمًا المزاج الجيد (مثل التورية).

الثنائيات لجميع الأزرار - حل الكاردينال


إذا نظرت مرة أخرى إلى الصورة حول النقرات الوهمية ، يمكنك ملاحظة أن الزر الأيمن السفلي هو الملام.
لكن هذا الزر هو الوحيد الذي يتدفق من خلاله التيار في هذه الحالة "لأعلى". لذا ، إذا كنا لا نريد أن تمنعنا التيارات "الصاعدة" الحالية من قراءة المصفوفة بشكل طبيعي ، فلنقم بإدخال الثنائيات بحيث يمكن للتيار أن يتدفق عبر الأعمدة بدقة من الأعلى إلى الأسفل ، ويتدفق إلى مخرجات وحدة التحكم الدقيقة.

لسوء الحظ ، لا يمكن الحفظ هنا - يجب عليك وضع صمام ثنائي على كل زر. إذا تحدثنا عن القطبية ، فيجب أن تكون قد اكتشفت أنه في هذه الحالة بالذات ، يجب أن تمر الثنائيات الحالية "من الأعلى إلى الأسفل" ، أي أن الكاثودات ("رؤوس الأسهم") يجب أن تنظر في مخرجات وحدة التحكم الدقيقة (الأعمدة) ، بينما يجب أن تكون الأنودات توجه إلى المدخلات (الخطوط).


مصفوفة الملخص

لا يهم أي جانب من الزر يوجد الصمام الثنائي ؛ الشيء الرئيسي هو مراقبة القطبية الصحيحة. فقط تذكر أنه في هذه الحالة ، سيتدفق التيار دائمًا من المدخلات إلى المخرجات. بالمناسبة ، إذا تم سحب المدخلات إلى الطاقة ، وكانت المخرجات في وضع نظام التشغيل ، فسيحدث ذلك دائمًا.

مع هذا النهج ، اتضح أن التيار سوف يتدفق دائمًا "لأسفل" ، وهذا يلغي مظهر حلقات التيار المغلق عند الضغط على عدة أزرار في وقت واحد. بالإضافة إلى ذلك ، هذا التصميم هو الوحيد الذي يمكنه تزويد لوحة المفاتيح بكامل NKRO. بالإضافة إلى ذلك ، من الجدير بالذكر (على الرغم من أن هذا يبدو واضحًا) أن مشكلة مخرجات وحدة التحكم الدقيقة التي لا تحتوي على وضع نظام التشغيل يتم الآن حلها تلقائيًا. يتم تثبيت الثنائيات بالتسلسل مع كل زر لحفظ المخرجات من دائرة ليس أسوأ من الخيار الذي تم النظر فيه سابقًا ، حيث كان من المفترض وضع صمام ثنائي على كل عمود.

انقلاب


نعم ، أعلم أن النص طويل جدًا بالفعل. لكنني ما زلت أضيف هذا الفصل الأخير ، لأنه في رأيي ، لولا المقالة لن تكتمل. لذا ، فإن التمرير هو قدرة لوحة المفاتيح على أخذ عدة نقرات في نفس الوقت.

xKRO


KRO هو التمديد الرئيسي ( التمديد الرئيسي )، وعادة ما يحق هذا الاختصار من قبل بعض الأرقام. على سبيل المثال ، 2KRO يعني التمرير على مفتاحين. تحتوي لوحة المفاتيح على تمرير مفتاح x إذا وفقط إذا كانت قادرة على تسجيل ضغطات المفاتيح x المتزامنة ، علاوة على ذلك ، بغض النظر عن الأزرار والتسلسل الذي تم استخدامه. تحتوي معظم لوحات مفاتيح القبة المطاطية الحديثة على 2KRO. ومع ذلك ، لا يتبع ذلك أن العدد المسموح به من ضغطات المفاتيح على لوحات المفاتيح هذه سيقتصر دائمًا على x . في الواقع ، هذا يعني أن دعم X-Click مضمون تمامًا.

اعتمادًا على تصميم المصفوفة ونوع وحدة التحكم ، يمكن أن تعمل لوحتي مفاتيح 2KRO من جهات تصنيع مختلفة بشكل مختلف تمامًا. يمكن للمرء دائمًا قبول نقرتين متزامنتين فقط ، ويمكن للآخر استيعاب المزيد بسهولة. يبدو أن لوحة المفاتيح الأخيرة تم الإعلان عنها بواسطة 2KRO لأن بعض تركيبات المفاتيح (على الأرجح غير مرجحة) ستظل تتسبب في منع الضغط على الأزرار الأخرى. وبما أن هذا يعني أنه عند العمل مع لوحة المفاتيح هذه ، لن تعمل مجموعات معينة من ثلاثة مفاتيح وأكثر ، أعلنت الشركة أنها 2KRO.

Nkro


يعني المصطلح NKRO تمرير مفتاح N ، ويستخدم لتعيين لوحات المفاتيح التي تدعم ، على الرغم من كل شيء ، أي مجموعة من المفاتيح المضغوطة في وقت واحد. ولكن ضع في اعتبارك أن مصفوفات NKRO ولوحات مفاتيح NKRO هما اختلافان كبيران. على سبيل المثال ، إذا كان التنفيذ النهائي للمصفوفة ، الذي فحصناه في المقالة ، يدعم NKRO (مع الأخذ في الاعتبار البرامج الثابتة المكتوبة بشكل صحيح) ، فعندئذٍ لا يتبع ذلك أن لوحة المفاتيح التي تستخدم هذه المصفوفة ستدعم أيضًا NKRO. قد يكون هذا بسبب القيود التي تفرضها منافذ الاتصال التي تتصل بها لوحة المفاتيح ؛ سبب آخر يمكن أن يكون تقلبات الشركات المصنعة ، التي تدخر دائمًا هنا وهناك. سأحاول شرح مشكلة NKRO عند الاتصال بـ PS / 2 و USB في الأجزاء التالية.

الملخص


بالطبع ، ظهرت الورقة بشكل جيد ، لكن المفهوم ليس بهذه البساطة - خاصة بالنسبة للقارئ ، الذي ليس مهندسًا إلكترونيًا. آمل أن أتمكن من شرح كل شيء. على هذا النحو ، حاولت الكتابة بأكبر قدر ممكن من الوضوح. لذلك ، بالنسبة للبعض ، قد تبدو المقالة مملة إلى حد ما. حسنًا ، إذا كنت تتعثر في الإلكترونيات ، فمن المرجح ألا تكون قد قرأتها على الإطلاق ؛) على
أي حال ، يرجى إعلامي إذا كانت المقالة مفيدة لك وما إذا كان الأمر يستحق كتابة تكملة. إذا كان الأمر كذلك ، فسوف أجلس في "المسلسل" التالي.

Michał Trybus
2 سبتمبر 2013

Source: https://habr.com/ru/post/ar394585/


All Articles