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

اَلمُدَخَلَاتُ وَالمُخرَجاتُ مُتَعَدِدَة اَلأغْرَاضِ أَوْ وَحَدَاتُ اَلإِدْخَالِ وَالإِخرَاجِ للأغْرَاضِ العَامَّةُ (بالإنجليزية: 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. وقد تتضمن حسب التطبيق واجهتها الأساسية للاتصال بالدوائر الخارجية أو قد تكون نوعًا واحدًا فقط من د/خـ يستخدم من بين عدة أنواع، مثل د/خـ للإشارة التناظرية، والعداد/المؤقت، والاتصال التسلسلي.
* واجهة ناقل موازية لـ 24 GPIOs (Intel 8255)
* "مهايئ واجهة متعدد الاستخدامات" ، يجمع بين 20 GPIOs مع واجهات أخرى للأغراض العامة (MOS Technology 6522)
* متحكم مع 29 GPIOs قابلة لإعادة التعيين (تقنية الرقاقة الدقيقة PIC24FJ256)

## وحدات د/خـ لوحِيَّة GPIOs

تَعرِض العديد من لوحات الدوائر وحدات GPIOs على الوحة لدوائر خارجية من خلال موصلات كهربائية متكاملة. يمكن الوصول عادة إلى كل وحدة من خلال دبوس اتصال مخصص.
* موجه شبكة بثلاثة GPIOs (Banana Pi R1)
* واجهة GPIO لأجهزة كمبيوتر Hewlett-Packard Series 80 (HP 82940A)
* واجهة إيثرنت لـ 48 GPIOs (Sensoray 2410)

## الاستخدام

تُستخدم 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 وحدات الإدخال والإخراج متعددة الأغراض التسلسلية
* الإدخال والإخراج الخاص

## مراجع

* ↑ White، المحرر (2016). Raspberry Pi - The Complete Manual (ط. 7th). بورنموث، إنجلترا، المملكة المتحدة: إيماجين بابليشينغ. ص. 36. ISBN:978-1785463709.
* ↑ "General Purpose Input/Output". Oracle Java ME Embedded Developer's Guide (ط. 8). أوراكل. 2014. مؤرشف من الأصل في 2023-03-06.
* ↑ "General Purpose Input/Output". Oracle Java ME Embedded Developer's Guide (ط. 8). أوراكل. 2014. مؤرشف من الأصل في 2023-03-06."General Purpose Input/Output". Oracle Java ME Embedded Developer's Guide (8 ed.). Oracle Corporation. 2014.