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

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


## وحدات د/خـ لوحِيَّة GPIOs
تَعرِض العديد من لوحات الدوائر وحدات GPIOs على الوحة لدوائر خارجية من خلال موصلات كهربائية متكاملة. يمكن الوصول عادة إلى كل وحدة من خلال دبوس اتصال مخصص.
ملف:BPI-R1-GPIO.jpg|موجه شبكة بثلاثة GPIOs (Banana Pi R1)
ملف:HP 82940A GPIO Interface interior.jpg|واجهة GPIO لأجهزة كمبيوتر Hewlett-Packard Series 80 (HP 82940A)
ملف:48 GPIO Ethernet interface.jpg|واجهة إيثرنت لـ 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 وحدات الإدخال والإخراج متعددة الأغراض التسلسلية
* الإدخال والإخراج الخاص

## مراجع
 


## روابط خارجية

* GPIO framework for FreeBSD
* [FreeBSD gpio(3) API manual](https://www.freebsd.org/cgi/man.cgi?gpio(3))
* [FreeBSD gpioctl(8) manual](https://www.freebsd.org/cgi/man.cgi?gpioctl(8))
* [FreeBSD gpio(4) manual](https://www.freebsd.org/cgi/man.cgi?gpio(4))
* ALSA Development List
* Linux Kernel Doc on GPIO
* LinuxTV GPIO Pins Info

تصنيف:دارات متكاملة
تصنيف:مساري الحاسوب