وحدات الإدخال والإخراج متعددة الأغراض

اَلمُدَخَلَاتُ وَالمُخرَجاتُ مُتَعَدِدَة اَلأغْرَاضِ أَوْ وَحَدَاتُ اَلإِدْخَالِ وَالإِخرَاجِ للأغْرَاضِ العَامَّةُ (بالإنجليزية: general-purpose input/output، تختصرGPIO) هي منافذ لإشارات رقمية غير ملتزمة بدائرة متكاملة أو لوحة إلكترونية يمكن استخدامها كمدخلات أو مخرجات، أو كليهما، ويمكن للمستخدم التحكم فيهـا وقت التنفيذ.

ليس لوحدات GPIO غرض محدد مسبقًا ولا تُستخدم بشكل افتراضي. وإذا اِستُخْدِمت، فإن الغرض من GPIO وسلوكها حديد ذلك وتنفيذه بواسطة مصمم دوائر مستوى لغة التجميع الأعلى (higher assembly-level circuitry): مصمم لوحة الدائرة في حالة GPIOs للدائرة المتكاملة، أو مُدمج النظام في حالة GPIOs على مستوى اللوحة.

الدوائر المتكاملة GPIOs 
تُـنَـفَّذ GPIOs للدوائر المتكاملة (IC) بطرقٍ عدة. تتوفر بعض ICs كوظيفة أساسية على GPIOs بينما تُوجَد في البعض الآخر كـ "ملحق" مناسب لبعض الوظائف الأساسية الأخرى. النوع الأول يتضمن أمثلة ك معالج انتل Intel 8255، الذي يربط 24 وحدة (GPIO) مع ناقل اتصال موازٍ، ووحدات ICs مختلفة (GPIO expander ICs)تربط GPIOs مع ناقلات اتصال تسلسلي مثل I²C وSMBus . مثال على هذا الأخير هو Realtek ALC260 IC ، والذي يوفر ثمانية GPIOs إلى جانب وظيفته الرئيسية في ترميز الصوت.

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

وحدات د/خـ لوحِيَّة GPIOs 
تَعرِض العديد من لوحات الدوائر وحدات GPIOs على الوحة لدوائر خارجية من خلال موصلات كهربائية متكاملة. يمكن الوصول عادة إلى كل وحدة من خلال دبوس اتصال مخصص.

الاستخدام 
تُستخدم GPIOs في تطبيقات متعددة، تتقيد فقط بالمواصفات الكهربائية والزمنية (التوقيتية) لواجهة GPIO وقدرة البرنامج (software) على التفاعل مع GPIOs في التوقيت المناسب بشكل كافٍ.

التنفيذ 
تختلف واجهات GPIO بشكل كبير. في بعض الحالات تكون بسيطة - مجموعة دبابيس يمكن أن تعمل كمجموعة للإدخال أو للإخراج. في حالات أخرى يمكن إعداد كل دبوس لقبول قيم جهود منطقية مختلفة أو الحصول عليها، مع قوة محرك قابلة للتكوين configurable drive strengths وسحب لأعلى/لأسفل pull ups/downs. عادةً ما تقتصر جهود الإدخال والإخراج وليس دائمًا على جهد التغذية للجهاز مع وحدات GPIOs، وقد تتضرر بسبب الجهود العليا.

قد تُعرض حالة دبوس GPIO لمطور البرمجيات من خلال واحدة من عدة واجهات مختلفة، مثل منفذ memory-mapped I/O، أو من خلال تعليمات منفذ د/خـ مخصصة. بعض وحدات GPIOs تتضمن مدخلات بجهد سماحية 5V: حتى عندما يكون للجهاز جهد تغذية منخفض (2V مثلًا)، يمكن للجهاز قبول 5V دون ضرر.

منفذ GPIO هو مجموعة من دبابيس GPIO (غالبًا 8 دبابيس، وقد تكون أقل) مرتبة في مجموعة ويتم التحكم فيها كمجموعة.

قد تتضمن قدرات GPIO:

 يمكن تهيئة دبابيس GPIO للعمل كمدخل أو مخرج.
 يمكن تمكين/تعطيل دبابيس GPIO
 قيم الإدخال يمكن قراءتها (عادةً عالية أو منخفضة)
 قيم الإخراج يمكن كتابتها/يمكن قراءتها writable/readable
 يمكن استخدام قيم الإدخال غالبًا كـ مقاطعات IRQs (عادةً لأحداث التنبيه)

طالع أيضا 

 Programmed input/output
 SGPIO وحدات الإدخال والإخراج متعددة الأغراض التسلسلية
 الإدخال والإخراج الخاص

مراجع

روابط خارجية 

 GPIO framework for FreeBSD
 FreeBSD gpio(3) API manual
 FreeBSD gpioctl(8) manual
 FreeBSD gpio(4) manual
 ALSA Development List
 Linux Kernel Doc on GPIO
 LinuxTV GPIO Pins Info

دارات متكاملة
نواقل حاسوبية