دائرة واجهة الإدخال والإخراج في الكمبيوتر I/O interface circuit

اقرأ في هذا المقال


دائرة واجهة الإدخال / الإخراج (I/O interface circuit)، هي وسيط بين جهاز الإدخال / الإخراج والنظام الذي يجب توصيل هذا الإدخال / الإخراج به، في واجهة الإدخال / الإخراج يكون أحد طرفي واجهة الإدخال / الإخراج متصل بناقل النظام والآخر متصل بجهاز الإدخال، في هذا المقال، سنناقش دائرة واجهة الإدخال / الإخراج بمزيد من التفصيل مع عملها بالكامل، سنناقش أيضًا نوعين مختلفين من تصميم دائرة الواجهة، أي الواجهة المتوازية (parallel interface) والواجهة التسلسلية (serial interface).

ما هي دائرة واجهة الإدخال / الإخراج I/O Interface Circuit

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

لذلك، نحتاج إلى وسيط لجعل الكمبيوتر يتواصل مع وحدات الإدخال / الإخراج، يشار إلى هذا الوسيط “بدائرة واجهة”، هنا يمكننا أن نرى بسهولة أنّ أحد طرفي دائرة الواجهة متصل بخط ناقل النظام، أي خط العنوان (address line) وخط البيانات (data line) وخط التحكم (control line)، يتم فك شفرة خط العنوان بواسطة دائرة الواجهة لتحديد ما إذا كان المعالج قد تناول جهاز الإدخال / الإخراج هذا أم لا، يتم فك شفرة خط التحكم لتحديد نوع العملية التي يطلبها المعالج، يتم استخدام خط البيانات لنقل البيانات بين الإدخال / الإخراج والمعالج.

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

ميزات دائرة واجهة الإدخال / الإخراج

ولكن قبل مناقشة المنافذ (ports)، دعونا نلقي نظرة موجزة على ميزات دائرة واجهة الإدخال / الإخراج:

  • تحتوي دائرة الواجهة على سجل بيانات (data register) يخزن البيانات مؤقتًا أثناء تبادل البيانات بين الإدخال / الإخراج والمعالج.
  • تحتوي دائرة الواجهة أيضًا على سجل الحالة (status register)، تشير البتات الموجودة في سجل الحالة إلى المعالج ما إذا كان جهاز الإدخال / الإخراج مضبوطًا للإرسال أم لا.
  • تحتوي دائرة الواجهة أيضًا على سجل التحكم (control register)، وتشير البتات الموجودة في سجل التحكم إلى نوع العملية “قراءة أو كتابة” (read or write) التي يطلبها المعالج لواجهة الإدخال / الإخراج.
  • تحتوي دائرة الواجهة أيضًا على دائرة لفك تشفير العنوان والتي تقوم بفك تشفير العنوان على خط العنوان لتحديد ما إذا كان المعالج يعالجها أم لا.
  • تقوم دائرة الواجهة أيضًا بتوليد إشارات التوقيت (timing signals) التي تزامن العملية بين المعالج وجهاز الإدخال / الإخراج.
  • دائرة الواجهة مسؤولة أيضًا عن تحويل التنسيق الضروري لتبادل البيانات بين المعالج وواجهة الإدخال / الإخراج.

المنفذ المتوازي والمنفذ التسلسلي لدائرة واجهة الإدخال / الإخراج

الآن، دعونا نتعرف على المنفذ المتوازي والمنفذ التسلسلي لدائرة واجهة الإدخال / الإخراج:

المنفذ المتوازي Parallel Port

لفهم دائرة الواجهة بمنفذ متوازي، سنأخذ مثال جهازي الإدخال / الإخراج، أولاً، سندرس جهاز إدخال، أي لوحة مفاتيح بها منفذ إدخال (8) بت، ثمّ جهاز إخراج، أي شاشة بها منفذ إخراج (8) بت، هنا يتم نقل بتات متعددة مرة واحدة.

منفذ الإدخال Input Port

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

يقوم المشفر بعد ذلك بإخراج بايت واحد من البيانات التي تقدم الحرف المشفر بواسطة المشفر إلى جانب بت واحد صالح، يغير هذا البت الصالح حالته من (0) إلى (1) عند الضغط على المفتاح، لذلك، عندما تكون البت الصالح هو (1)، يتم تحميل رمز (ASCII) للحرف المقابل في سجل (KBD_DATA) لدائرة واجهة الإدخال، الآن، عندما يتم تحميل البيانات في (KBD_DATA)، يتم تسجيل علامة حالة (KIN) الموجودة في سجل (KBD_STATUS) على (1)، ممّا يجعل المعالج يقرأ البيانات من (KBD_DATA).

بمجرد أن يقرأ المعالج البيانات من (KBD_DATA)، يتم تعيين علامة (KIN) مرة أخرى على (0)، هنا يتم توصيل واجهة الإدخال بالمعالج باستخدام ناقل غير متزامن، لذا، فإنّ الطريقة التي ينبهون بها بعضهم البعض هي استخدام الخط الرئيسي الجاهز (master-ready line) وخط التابع الجاهز (slave ready line)، عندما يكون المعالج جاهزًا لقبول البيانات، فإنّه ينشط خطه الرئيسي الجاهز، وعندما تكون الواجهة جاهزة بالبيانات لنقلها إلى المعالج، فإنّه ينشط خطه الجاهز للتابع، يحتوي معالج وواجهة توصيل الناقل على خط تحكم آخر، أي (R / W) الذي تمّ ضبطه على واحد لعملية القراءة.

منفذ الإخراج Output Port

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

بمجرد أن يقوم المعالج بتحميل الحرف في (DISP_DATA)، تنتكس علامة (DOUT) إلى (0) وخط البيانات الجديد إلى (1)، الآن، عندما تستشعر الشاشة أنّ خط البيانات الجديد قد تمّ تنشيطه، فإنّه يحول الخط الجاهز إلى (0) ويقبل الحرف في سجل (DISP_DATA) لعرضه.

المنفذ التسلسلي Serial Port

مقابل المنفذ المتوازي، يقوم المنفذ التسلسلي بتوصيل المعالج بالأجهزة التي ترسل بت واحد فقط في كل مرة، هنا على جانب الجهاز، يتم نقل البيانات بنمط تسلسلي بت، وعلى جانب المعالج، يتم نقل البيانات في نمط بت متوازي، أصبح تحويل التنسيق من تسلسلي إلى متوازي، أي من جهاز إلى معالج، ومن متوازي إلى تسلسلي، أي من معالج إلى جهاز، ممكنًا بمساعدة سجلات التحول “سجل تحويل الإدخال (input shift register) وسجل إزاحة الإخراج (output shift register)”.

لفهم طريقة عمل الواجهة التسلسلية على جانب الجهاز، لاحظ التالي، يقبل سجل إزاحة الإدخال البت الواحد في كل مرة بطريقة تسلسلية بتات حتى يتلقى كل (8) بتات، عندما يتم استلام جميع البتات الثمانية بواسطة سجل إزاحة الإدخال، فإنّه يقوم بتحميل محتواه في (DATA IN Register)، بطريقة مماثلة، يتم نقل محتوى سجل (DATA OUT) بالتوازي مع سجل إزاحة الإخراج.

منفذ الواجهة التسلسلية المتصل بالمعالج عبر وظائف ناقل النظام بشكل مشابه للمنفذ المتوازي، تحتوي كتلة الحالة والتحكم على علامتي حالة (SIN وSOUT)، يتم تعيين علامة (SIN) على (1) عندما يقوم جهاز الإدخال / الإخراج بإدخال البيانات في سجل (DATA IN) من خلال سجل تحويل الإدخال ويتم مسح علامة (SIN) على (0) عندما يقرأ المعالج البيانات من سجل (DATA IN).

عندما تكون قيمة سجل (SOUT) هي (1)، فهذا يشير إلى المعالج أنّ سجل (DATA OUT) متاح لتلقي بيانات جديدة من المعالج، يكتب المعالج البيانات في سجل (DATA OUT) ويضبط علامة (SOUT) على (0) وعندما يقرأ سجل إزاحة الإخراج البيانات من سجل (DATA OUT) يعيد (SOUT) إلى (1)، هذا يجعل النقل مناسبًا بين الجهاز الذي يرسل ويستقبل بت واحد في كل مرة والمعالج الذي ينقل ويستقبل بتات متعددة في كل مرة.

لا تحتوي الواجهة التسلسلية على أي خط ساعة لنقل معلومات التوقيت، لذلك، يجب تضمين معلومات التوقيت مع البيانات المرسلة باستخدام مخطط التشفير، هناك طريقتان للقيام بذلك:

النقل التسلسلي غير المتزامن Asynchronous Serial Transmission

في الإرسال غير المتزامن، لا تتم مزامنة الساعة التي يستخدمها المرسل والمستقبل، لذلك، يتم تجميع البتات المراد إرسالها في مجموعة من (6) إلى (8) بتات لها بت بداية محددة وبت نهائية، بت البداية لها قيمة منطقية (0) وبت الإيقاف لها قيمة منطقية (1)، يتم التعرف على البيانات المستلمة في نهاية جهاز الاستقبال من خلال بت البداية والتوقف، هذه الطريقة مفيدة عندما يكون الإرسال بطيئًا.

النقل التسلسلي المتزامن Synchronous Serial Transmission

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


شارك المقالة: