Кіріспе
Интегралды схемадағы пайдаланушы басқаратын цифрлық сигнал тірегі. Жалпы мақсаттағы кіріс/шығыс (GPIO) – интегралды схемадағы немесе электрондық схемадағы (мысалы, MCU/MPU) тақташадағы бекітілмеген цифрлық сигнал тірегі, оны кіріс немесе шығыс ретінде, немесе екеуінің де комбинациясы ретінде пайдалануға болады және бағдарламалық жасақтама арқылы басқарылады. GPIO-ның алдын ала анықталған мақсаты жоқ және ол әдепкі бойынша қолданылмайды. Егер қолданылса, GPIO-ның мақсаты мен әрекеті жоғары деңгейдегі схеманы құрастырушымен анықталады және іске асырылады: интегралды схема GPIO-сы үшін схема тақтасының дизайнымен, ал тақташа деңгейіндегі GPIO-сы үшін жүйелік интегратормен.
A general purpose input/output (GPIO) is an uncommitted digital signal pin on an integrated circuit or electronic circuit (e. g. MCUs/MPUs) board which may be used as an input or output, or both, and is controllable by software. GPIOs have no predefined purpose and are unused by default. If used, the purpose and behavior of a GPIO is defined and implemented by the designer of higher assembly level circuitry: the circuit board designer in the case of integrated circuit GPIOs, or system integrator in the case of board level GPIOs.
Интегралды схема GPIO
Интегралды схема (IC) GPIO-лары әртүрлі тәсілдермен іске асырылады. Кейбір интегралды схемалар GPIO-ны негізгі функция ретінде ұсынады, ал басқалары GPIO-ны басқа негізгі функцияға қолайлы "қосымша" ретінде қосады. Бұрынғылардың мысалы ретінде Intel 8255, 24 GPIO-ны параллель байланыс шинасына қосатын, және әртүрлі GPIO кеңейткіш IC-лер, GPIO-ны I²C және SMBus сияқты тізбекті байланыс шиналарына қосатын жатады. Соңғылардың мысалы – Realtek ALC260 IC, ол өзінің негізгі аудио кодек функциясымен қатар сегіз GPIO-ны да қамтамасыз етеді. Микроконтроллер IC-леріне әдетте GPIO кіреді. Қолданылуына байланысты, микроконтроллердің GPIO-лары сыртқы тізбелерге арналған негізгі интерфейсті құрауы мүмкін, немесе олар аналогтық сигнал I/O, сандар санағыш/таймер және тізбекті байланыс сияқты бірнеше I/O түрлерінің бірі ғана болуы мүмкін. Кейбір интегралды схемаларда, әсіресе микроконтроллерлерде, GPIO пині GPIO функциясынан басқа да функцияларды орындай алады. Мұндай жағдайларда, пинді GPIO ретінде жұмыс істеуі үшін (оның басқа функцияларына қатысты) конфигурациялау қажет, сондай-ақ GPIO-ның мінез-құлқысын да конфигурациялау қажет. Кейбір микроконтроллер құрылғылары (мысалы, Microchip dsPIC33 отбасы) GPIO-ларды құрылғы тіректеріне бағдарламалық түрде бейімдеуге мүмкіндік беретін ішкі сигнал бағыттау схемасын қамтиды. Field programmable gate arrays (FPGA) бұл мүмкіндікті GPIO пинінің картасын, инстанциясын және архитектурасын бағдарламалық түрде басқаруға мүмкіндік беру арқылы кеңейтеді.
Басқарма деңгейіндегі GPIO
Көптеген схемалық платалар интегралдық электрлік жалғаулар арқылы сыртқы схемаларға жапсарлы жалпы мақсаттағы кіріс-шығыс порттарын (GPIO) шығарады. Әдетте, әрбір мұндай GPIO арнайы жалғау тірегі арқылы қолжетімді болады. IC негізіндегі GPIO сияқты, кейбір платаларда GPIO платаның негізгі функциясын толықтыратын ыңғайлы, қосалқы ресурс ретінде ғана қолданылады, ал басқа платаларда GPIO платаның негізгі, басты функциясы болып табылады. Кейбір платалар, әдетте көп функциялы кіріс-шығыс платалары деп жіктеледі, екеуінің де комбинациясы болып табылады; мұндай платалар GPIO-ны басқа да жалпы мақсаттағы кіріс-шығыс түрлерімен бірге ұсынады. GPIO кіріктірілген контроллерлік платаларда және Arduino, BeagleBone және Raspberry Pi сияқты бір тақталы компьютерлерде де кездеседі. Плата деңгейіндегі GPIO көбінесе IC негізіндегі GPIO-да болмайтын мүмкіндіктерге ие болады. Мысалы, Шмидт триггерлік кірістер, жоғары ток шығару драйверлері, оптикалық оқшаулағыштар немесе олардың комбинациялары GPIO сигналдарын буферлеу және жақсарту үшін, сондай-ақ платаның схемасын қорғау үшін қолданылуы мүмкін. Сонымен қатар, кіріс сигналдарын тұрақтандыру, кіріс сигналының өзгеруін анықтау және импульс енін модуляциялау (PWM) шығысы сияқты жоғары деңгейдегі функциялар да іске асырылуы мүмкін.
Қолданылуы
GPIO-лар түрлі салаларда қолданылады, оларды тек GPIO интерфейсінің электрлік және уақыт талаптары, сондай-ақ бағдарламалық құралдың GPIO-лармен уақтылы өзара әрекеттесу қабілеті ғана шектейді. GPIO-ларда әдетте стандартты логикалық деңгейлер қолданылады және олар шығыс тікелей жүктемелерге жеткілікті ток бере алмайды. Тиісті жоғары ток шығару буфері (немесе механикалық немесе жартылай өткішгіш реле) болған жағдайда, GPIO шамдар, соленоидтар, жылытқыштар және моторларды (мысалы, желдеткіштер мен үрлегіштер) сияқты жоғары қуатты құрылғыларды басқару үшін қолданылуы мүмкін. Сол сияқты, кіріс буфері, реле немесе оптоизолятор жиі жарасымсыз сигналды (мысалы, жоғары кернеуді) GPIO қажетті логикалық деңгейге түрлендіру үшін қолданылады. Интегралды схемадағы GPIO-лар басқа схемаларды (оның ішінде басқа микросхемаларды) тақтада басқаруға немесе бақылауға кеңінен қолданылады. Бұған басқа схемалардың жұмысын қосу және өшіру, тақтадағы түймелердің және конфигурациялық жалғауыштардың күйін оқу, сондай-ақ жарықдиодты (LED) күй индикаторын басқару кіреді. Соңғы жағдайда, GPIO көбінесе аралық буферді қолданбай-ақ LED-ті тікелей қуаттауға жеткілікті шығыс тогын бере алады. Бірнеше GPIO-лар кейде байланыс интерфейсі ретінде біріктіріліп қолданылады. Мысалы, екі GPIO біріктірілген тізбек (I²C) сияқты тізбектік байланыс шинасын жүзеге асыру үшін, ал төрт GPIO тізбектік перифериялық интерфейс (SPI) шинасын жүзеге асыру үшін қолданылуы мүмкін; олар әдетте микросхемалармен және сенсорлар (мысалы, температура сенсорлары, қысым сенсорлары, үдеу сенсорлары) және мотор контроллерлері сияқты үйлесімді тізбектік интерфейстері бар басқа құрылғылармен тізбектік байланысты жеңілдету үшін қолданылады. Бұл әдіс ең жоғары шегінде толыққанды параллель шинаны жүзеге асыру үшін қолданылуы мүмкін, осылайша шинаға бағытталған микросхемалармен немесе схемалық тақталармен байланыс орнатуға мүмкіндік береді. GPIO негізінен цифрлық болғанымен, олар сызықтық процестерді басқару үшін жиі қолданылады. Мысалы, GPIO мотордың жылдамдығын, шамның жарық интенсивтілігін немесе температураны басқару үшін пайдаланылуы мүмкін. Әдетте, бұл PWM арқылы жасалады, онда GPIO шығыс сигналының қабаттасу циклі процесті басқару сигналының тиімді шамасын анықтайды. Мысалы, шамның жарық интенсивтілігін басқару кезінде шамның жарығын азайту үшін GPIO қабаттасу циклін төмендетуге болады. Кейбір сызықтық процестерге сызықтық басқару кернеуі қажет. Мұндай жағдайларда, PWM шығысы ретінде жұмыс істейтін GPIO-ны RC сүзгісіне қосуға болады, бұл қарапайым және төмен құнмен цифрлық-аналогтық түрлендіргіш құруға мүмкіндік береді.