هنگام کار کردن با انواع میکروکنترلر، میکروپروسسور و برخی آی سی های خاص، راه اندازی gpio یک مفهوم کاربردی است که باید با آن آشنا شوید. به خصوص راه اندازی gpio در stm32 از جمله مواردی است که در پروژه های الکترونیکی شما حائز اهمیت است. همپنین در راستای آشنایی با مفهوم gpio، درک عمکرد پین های ورودی و خروجی نیز یکی از بخش های اساسی کار با قطعات الکترونیکی است. در این مطلب قصد داریم تا به طور کامل با مفهوم GPIO ،IO و کاربردهای آنها آشنا شویم.
فهرست مطالب
GPIO چیست؟
GPIO مخفف General Purpose Input/Output به معنای ورودی/خروجی همه منظوره نوعی پین است که در آی سی ها یافت می شود و عملکرد خاصی ندارد؛ بنابراین هنگام خرید آی سی باید به نوع درگاه ورودی/خروجی آن دقت کنید. در حالی که اکثر پین ها دارای هدف اختصاصی هستند، مانند ارسال سیگنال به یک قطعه خاص، عملکرد یک پین GPIO قابل تنظیم است و می تواند توسط نرم افزار کنترل شود. gpio یک اینترفیس استاندارد است که برای اتصال میکروکنترلرها به سایر دستگاه های الکترونیکی استفاده می شود. به عنوان مثال، می توان آن را با سنسورها، دیودها، نمایشگرها و ماژول های System-on-Chip استفاده کرد.
همه چیپها دارای پینهای ورودی/خروجی همه منظوره نیستند، اما معمولاً روی تراشههای چند منظوره، مانند چیپهایی که در مدیریتهای توان و کارتهای صوتی/تصویری استفاده میشوند، یافت میشوند. آنها همچنین توسط مدارهای سیستم روی تراشه (SOC) استفاده می شوند که شامل یک پردازنده، حافظه و رابط های خارجی همگی روی یک تراشه هستند. این پینها به این تراشهها اجازه میدهند تا برای اهداف مختلف پیکربندی شوند و با چندین نوع کامپوننت کار کنند.
نحوه عملکرد GPIO به چه صورت است؟
GPIO را می توان در سه حالت استفاده کرد:
- ورودی
- خروجی
- رابط UART
یک پورت ورودی/خروجی همه منظوره سیگنال های دیجیتال ورودی و خروجی را کنترل می کند. به عنوان یک پورت ورودی، می توان از آن برای ارتباط سیگنال های ON/OFF دریافتی از سوییچ ها یا نوشته های دیجیتالی دریافتی از سنسورها به CPU استفاده کرد.
رایج ترین عملکردهای پین های GPIO عبارتند از:
- قابلیت تنظیم در نرم افزار برای ورودی یا خروجی بودن
- فعال یا غیرفعال شدن
- تنظیم مقدار یک خروجی دیجیتال
- خواندن مقدار یک خروجی دیجیتال
- ایجاد وقفه در هنگام تغییر مقدار ورودی
پینهای GPIO دیجیتال هستند، به این معنی که فقط سطوح بالا/پایین یا روشن/خاموش را پشتیبانی میکنند. آنها معمولا از ورودی یا خروجی آنالوگ با سطوح ولتاژ مجزا پشتیبانی نمی کنند. برخی از پینهای ورودی/خروجی همه منظوره ممکن است مستقیماً از پروتکلهای ارتباطی استاندارد مانند ارتباط سریال، SPI، I2C، PCM و PWM پشتیبانی کنند.
چه دستگاه هایی از GPIO استفاده می کنند؟
انواع مختلفی از دستگاه ها را می توان از طریق درگاه ورودی/خروجی همه منظوره مانند چراغ های نشانگر، آشکارسازهای حرکت، بازر ها و نشانگرها به یک فناوری ار اف ای دی اضافه کرد. در ادامه نمونه هایی از مواردی که یک برنامه می تواند از دستگاه GPIO بهره مند شود، آورده شده است.
-
GPIO در رزبری پای
یک دستگاه محبوب که از پینهای GPIO استفاده میکند، Raspberry Pi است، یک کامپیوتر تکبرد که برای علاقهمندان و اهداف آموزشی طراحی شده است و شامل یک ردیف پین ورودی/خروجی همه منظوره در امتداد لبه برد است که رابط بین رزبری پای و سایر اجزا را فراهم می کند. این پینها بهعنوان کلیدهایی عمل میکنند که وقتی روی HIGH تنظیم میشوند 3.3 ولت خروجی میدهند و وقتی روی LOW تنظیم میشوند، ولتاژی ندارند. می توانید یک دستگاه را به پین های خاص GPIO متصل کرده و آن را با یک برنامه نرم افزاری کنترل کنید. به عنوان مثال، می توانید یک LED را به یک GPIO و یک پین زمین را روی رزبری پای متصل کنید. اگر یک برنامه نرم افزاری به پین ورودی/خروجی همه منظوره دستور دهد که روشن شود، LED روشن می شود.
-
GPIO در پایتون
GPIO، یک ماژول پایتون برای کنترل رابط ورودی/خروجی همه منظوره در رزبری پای است که توسط بن کراستون توسعه یافته و تحت مجوز نرم افزار رایگان MIT منتشر شده است.
-
GPIO در آردوینو
تمام پردازندههایی که از آنها استفاده میکنید، یک برد رزبری پای و یک برد آردوینو، GPIO یا ورودی خروجی همه منظوره زیادی دارند که میتوانید با استفاده از آنها، مدارهای خود را طراحی کنید و میتوانید سنسورهای خود را از روی آنها بخوانید.
-
GPIO در میکروکنترلر
GPIO رابطی است که در اکثر میکروکنترلرهای مدرن (MCU) برای دسترسی آسان به خصوصیات داخلی دستگاه موجود است. شما می توانید پین ها را به عنوان ورودی برنامه ریزی کنید، جایی که داده ها از برخی منابع خارجی به سیستم وارد می شوند تا در زمان و مکان دلخواه دستکاری شوند.
کاربرد GPIO در STM32 چیست؟
STM32 یک خانواده متنوع از میکروکنترلرهای 32 بیتی است که امروزه در کاربردهای بسیار متنوعی از اسباببازیهای ساده تا حتی سیستمهای کنترل پیچیده مانند لوازم خانگی استفاده میشود. در نتیجه، توانایی توسعه برنامه های کاربردی در این پلتفرم یک مهارت ضروری است. پایه ورودی/خروجی همه منظوره GPIO در میکروکنترلر STM32 راه های زیادی را برای ارتباط با مدارهای خارجی در چارچوب برنامه ارائه می دهد. تمام پین های میکروکنترلر STM32 به عنوان یک GPIO عمل می کنند. با این حال، این پینها میتوانند تنها مجموعهای از عملیات از پیش تعریفشده را بسته به نحوه رجیستری میکروکنترلر برای ورودی/خروجی همه منظوره انجام دهند. این حالت های عملیات عبارتند از:
- ورودی دیجیتال
- خروجی دیجیتال
- ورودی/خروجی آنالوگ
برای کسب اطلاعات بیشتر می توانید به سایت www.st.com مراجعه کرده و دفترچه راهنمای مرجع STM32 و دیتاشیت موجود در سایت را مطالعه کنید.
I/O چیست؟
I/O مخفف”Input/Output” است و “آی-اُ” تلفظ می شود. کامپیوترها بر این ایده کلی بنا شده اند که هر ورودی منجر به خروجی می شود. به عنوان مثال، اگر یک برنامه پردازشگر کلمه مانند word را اجرا می کنید و یک جمله را روی صفحه کلید خود تایپ می کنید، متن روی صفحه ظاهر می شود. صفحه کلید، یک دستگاه ورودی و صفحه نمایش، یک دستگاه خروجی است. همچنین میتوانید متن را با استفاده از پرینتر، که دستگاه خروجی دیگری است، چاپ کنید.
درگاههای بیرونی کامپیوتر معمولاً بهعنوان «پورتهای ورودی/خروجی» شناخته میشوند، زیرا آنها دستگاههای ورودی و خروجی را به کامپیوتر متصل میکنند. توسعه دهندگان نرم افزار از اصطلاح I/O برای توصیف نحوه عملکرد یک برنامه، بسته به آنچه کاربر وارد می کند، استفاده می کنند.
محدوده ولتاژ I/O چیست؟
این محدوده ولتاژ یا جریان آنالوگ می تواند ورودی یا خروجی باشد. یک محدوده دوقطبی، برای مثال، از 10- تا 10+ ولت را پوشش می دهد، در حالی که محدوده تک قطبی تنها 0 تا 10+ ولت را پوشش می دهد.
بسته به کاربرد، GPIO های یک میکروکنترلر ممکن است رابط اصلی آن را با مدارهای خارجی تشکیل دهند یا ممکن است فقط یکی از انواع ورودی/خروجی(I/O) مورد استفاده در بین چندین مورد، مانند ورودی/خروجی سیگنال آنالوگ، شمارنده/تایمر، و ارتباط سری باشند.
انواع ورودی/خروجی (I/O)
سه نوع عملیات ورودی/خروجی وجود دارد:
-
ورودی حسی
- ورودی دیجیتال
- ورودی آنالوگ
-
خروجی کنترل
- خروجی دیجیتال مستقیم
- خروجی دیجیتال ماژولی
- خروجی آنالوگ
-
انتقال داده
- موازی
- سری
اکثر کاربران کامپیوتر با پین های GPIO مواجه نمی شوند و نیازی به نگرانی در مورد پیکربندی آنها ندارند. با این حال، اگر شما علاقه مند به انجام پروژه های الکترونیکی هستید و یا برنامه نویس کامپیوتر هستید، می تواند بری شما مفید باشد که بدانید چه تراشه ها یا چیپ هایی دارای پین های ورودی/خروجی همه منظوره هستند و چگونه از آنها استفاده کنید. در این مطلب تا حدودی با GPIO و I/O آشنا شدیم. در صورتی که هرگونه سوالی در رابطه با این مطلب داشتید، پرسش خود را در قسمت نظرات بیان کرده تا کارشناسان مربوطه در فروشگاه اینترنتی دیجی قطعه به شما پاسخ دهند.