Кіріспе
Бір интегралды схемадағы шағын компьютер. Микроконтроллер (MC, UC немесе μC) немесе микроконтроллерлік блок (MCU) – бір интегралды схемадағы шағын компьютер. Микроконтроллер бір немесе бірнеше процессорлық ядродан (процессорлық өзектен), жадтан және бағдарламаланатын кіріс/шығыс перифериялық құрылғыларынан тұрады. NOR флэш, OTP ROM немесе ферроэлектрлік RAM түріндегі бағдарламалық жад, сондай-ақ аз көлемде RAM жиі чипке енгізіледі. Микроконтроллерлер кіріктірілген қосымшалар үшін арналған, жеке компьютерлерде немесе басқа да жалпы мақсаттағы қолданбаларда қолданылатын микропроцессорлардан өзгеше, түрлі дискретті микросхемалардан құралады. Қазіргі терминологияда микроконтроллер чиптегі жүйеге (SoC) ұқсас, бірақ одан кем күрделі. SoC құрамына микроконтроллер кіруі мүмкін, бірақ көбінесе оны графикалық процессор (GPU), Wi-Fi модулі немесе бір немесе бірнеше копроцессорлар сияқты жетілдірілген перифериялық құрылғылармен біріктіреді. Микроконтроллерлер автоматты түрде басқарылатын өнімдер мен құрылғыларда қолданылады, мысалы, автомобиль қозғалтқыштарын басқару жүйелерінде, имплантацияланатын медициналық құрылғыларда, қашықтан басқару құралдарында, кеңсе машиналарында, тұрмыстық техникада, электр құралдарында, ойыншықтарда және басқа да кіріктірілген жүйелерде. Микроконтроллерлер бөлек микропроцессорды, жадты және кіріс/шығыс құрылғыларын пайдаланатын жобамен салыстырғанда өлшемін және құнын төмендету арқылы көптеген құрылғылар мен процестерді цифрлық басқаруды мүмкін етеді. Аралас сигналды микроконтроллерлер кең таралған, олар сандық емес электрондық жүйелерді басқару үшін қажетті аналогтық компоненттерді біріктіреді. Заттардың интернеті (IoT) тұрғысынан қарағанда, микроконтроллерлер деректерді жинаудың, физикалық әлемді сезудің және шеткі құрылғылар ретінде іске қосудың экономикалық және танымал құралы болып табылады. Кейбір микроконтроллерлер төрт биттік сөздерді қолданып, қуатты үнемдеу үшін 4 кГц жиілікте жұмыс істейді (бір сандық милливатт немесе микроватт). Олар көбінесе, түйме басылғанда немесе басқа да үзіліс болғанда функционалдылықты сақтап қалуға қабілетті; ұйықтаған кездегі қуат тұтыну (CPU сағаты және көптеген перифериялық құрылғылар өшірілгенде) тек нановаттты құрауы мүмкін, бұл оларды ұзақ қызмет ететін батареялық қолданбалар үшін өте қолайлы етеді. Басқа микроконтроллерлер өнімділік маңызды рөлдерді атқаруы мүмкін, онда олар жоғары сағаттық жылдамдықпен және қуат тұтынумен цифрлық сигналды процессор (DSP) сияқты жұмыс істеуі керек.
a [[wikt:micro
A microcontroller (MC, UC, or μC) or microcontroller unit (MCU) is a small computer on a single integrated circuit. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable input/output peripherals. Program memory in the form of NOR flash, OTP ROM or ferroelectric RAM is also often included on chip, as well as a small amount of RAM. Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications consisting of various discrete chips. In modern terminology, a microcontroller is similar to, but less sophisticated than, a system on a chip (SoC). A SoC may include a microcontroller as one of its components, but usually integrates it with advanced peripherals like a graphics processing unit (GPU), a Wi Fi module, or one or more coprocessors. Microcontrollers are used in automatically controlled products and devices, such as automobile engine control systems, implantable medical devices, remote controls, office machines, appliances, power tools, toys and other embedded systems. By reducing the size and cost compared to a design that uses a separate microprocessor, memory, and input/output devices, microcontrollers make digital control of more devices and processes practical. Mixed signal microcontrollers are common, integrating analog components needed to control non digital electronic systems. In the context of the internet of things, microcontrollers are an economical and popular means of data collection, sensing and actuating the physical world as edge devices. Some microcontrollers may use four bit words and operate at frequencies as low as 4 kHz for low power consumption (single digit milliwatts or microwatts). They generally have the ability to retain functionality while waiting for an event such as a button press or other interrupt; power consumption while sleeping (CPU clock and most peripherals off) may be just nanowatts, making many of them well suited for long lasting battery applications. Other microcontrollers may serve performance critical roles, where they may need to act more like a digital signal processor (DSP), with higher clock speeds and power consumption.
Даму
Бір кітапта TI инженерлері Гэри Бун мен Майкл Кокран 1971 жылы алғашқы микробасқарушыны сәтті жасағаны айтылады. Олардың жұмысының нәтижесі TMS 1000 болды, ол 1974 жылы саудаға түсті. Ол оқуға арналған жад, оқу/жазу жады, процессор және сағатты бір чипке біріктірді және кіріктірілген жүйелерге арналған еді. 1970-ші жылдардың басында және ортасында жапондық электроника өндірушілері автомобильдер үшін микроконтроллерлерді шығара бастады, соның ішінде 4 биттік MCU автомобильдегі ойын-сауық жүйелеріне, автоматты сүрткіштерге, электрондық құлыптарға және приборлық тақтаға, ал 8 биттік MCU қозғалтқышты басқаруға қолданылды. Бір чиптік TMS 1000-нің болуына жауап ретінде Intel 1977 жылы коммерциялық жеткізілімдерді бастаған, басқару қолданбалары үшін оңтайландырылған чиптегі компьютерлік жүйе – Intel 8048-ді әзірледі. Бұл EPROM үшін қажетті қымбат корпустан тыс, тез электрлік жоюға мүмкіндік берді, соның арқасында прототиптерді жылдам жасауға және жүйеде бағдарламалауға болады. (EEPROM технологиясы бұрыннан қолданыста болған, бірақ бұрынғы EEPROM қымбатқа түсіп, беріктігі төмен болғандықтан, төмен бағадағы, көптеп өндірілетін микробасқарушылар үшін қолайлы емес еді.) Сол жылы Atmel Flash жады – EEPROM-ның ерекше түрін қолданатын алғашқы микроконтроллерді ұсынды. Басқа компаниялар да екі жад түрін пайдаланды. Бүгінде микробасқарушылар арзан және хоббистер үшін қолжетімді, ал белгілі бір процессорлар бойынша үлкен онлайн қауымдастықтар құрылған.
Көлем және шығындар
2002 жылы әлемде сатылған барлық процессорлардың шамамен 55% -ы 8 биттік микробасқарушылар мен микропроцессорлар болды. 1997 жылы 8 биттік микробасқарушылардан екі миллиардтан астам сатылды, ал Semico мәліметтері бойынша, 2006 жылы 4 миллиардтан астам 8 биттік микробасқарушы сатылды. Соңғы кезде Semico компаниясы MCU нарығы 2010 жылы 36,5%, 2011 жылы 12% өсті деп мәлімдеді. Дамыған елдегі үй шаруашылығында жалпы мақсаттағы төрт микропроцессор ғана, бірақ шамамен үш ондаған микробасқарушы болады. Орташа деңгейдегі автомобильде шамамен 30 микробасқарушы бар. Олар сондай-ақ көптеген электр құралдарында, мысалы, кір жуғыш машиналарда, микротолқынды пештерде және телефондарда кездеседі. Бір данасын өндіруге келетін шығын төмен болуы мүмкін. Баға уақыт өте келе төмендеді, ең арзан 8 биттік микробасқарушылар 2018 жылы 0,03 доллардан кем бағамен сатылды, ал 32 биттік микробасқарушылар ұқсас көлемде қол жетімді болды. 2012 жылы жаһандық дағдарыстан кейін – ең нашар жылдық сатудың төмендеуі және одан кейінгі қалпына келу, сондай-ақ орташа сату бағасының жылдық 17% төмендеуі (1980-жылдардан бері ең үлкен төмендеу) – микробасқарушының орташа бағасы 4/8 бит, 16 бит, 32 бит құрады. 2015 жылы 8 биттік микробасқарушыларды (1000 дана) , 16 биттік (1000 дана) және 32 биттік (1000 дана, бірақ 5000 дана үшін ) сатып алуға болады. 2018 жылы 8 биттік микробасқарушыларды , ал 32 битті (1000 дана, бірақ 5000 дана үшін ) сатып алуға болады. 2018 жылы 2015 жылғы жоғарыда аталған арзан микробасқарушылар (осы нақты бірліктер үшін 2018 және 2015 жылдар арасындағы инфляция ескеріле отырып) қымбаттады: 8 биттік микробасқарушы (1000 дана) немесе 2,6% жоғары бағамен сатылды. Бұл құрылғы 2018 жылдың наурыз айында IBM компаниясының бұрын хабарлаған әлемдік рекордтық компьютерінің 1/10 бөлігіне тең, ол "тұздың бір түйіршесінен де кішкентай", миллион транзистордан тұрады, өндіруге арзанға түседі және блокчейн технологиясымен біріктіріліп, логистика және "крипто якорь" – цифрлық сақтандыру қолданбалары үшін қолданылады.
Енгізілген дизайн
Микроконтроллерді процессор, жад және перифериялық құрылғылары бар дербес жүйе деп қарастыруға болады және ол кіріктірілген жүйе ретінде қолданылуы мүмкін. Бүгінде қолданылатын микроконтроллерлердің көпшілігі автомобильдер, телефондар, тұрмыстық техника және компьютер жүйелерінің перифериялық құрылғылары сияқты басқа да машиналарға кіріктірілген. Кейбір кіріктірілген жүйелер өте күрделі болғанымен, көптеген жүйелердің жад және бағдарлама ұзындығы бойынша минималды талаптары бар, операциялық жүйесіз және бағдарламалық құралдарының күрделілігі төмен. Типтік кіріс және шығыс құрылғыларына қосқыштар, релелер, соленоидтар, светодиодтар, кішкентай немесе арнайы сұйық кристалды дисплейлер, радиожиілікті құрылғылар және температура, ылғал, жарық деңгейі сияқты деректерді алуға арналған сенсорлар жатады. Кіріктірілген жүйелерде әдетте жеке компьютердің пернетақтасы, экраны, дискілері, принтерлері немесе басқа да таныс I/O құрылғылары болмайды және адаммен өзара әрекеттесу құрылғыларының болуы қажет емес.
Тоқтатулар
Микроконтроллерлер басқаратын кіріктірілген жүйедегі оқиғаларға нақты уақыт (болжамды, бірақ міндетті түрде жылдам емес) жауап беруі тиіс. Белгілі бір оқиғалар орын алғанда, үзіліс жүйесі процессорға ағымдағы нұсқаулар тізбегін тоқтатуға және бастапқы нұсқаулар тізбегіне оралудан бұрын, үзіліс көзіне байланысты қажетті өңдеуді орындайтын үзіліс қызметтік бағдарламасын (ISR немесе "үзіліс басқарушысы") іске қосуға сигнал бере алады. Мүмкін болатын үзіліс көздері құрылғыға тәуелді және көбінесе ішкі таймердің асып кетуі, аналогты-цифрлық түрлендіруді аяқтау, кірістегі (мысалы, түйме басылғанда) логикалық деңгейдің өзгеруі және байланыс арнасынан алынған деректер сияқты оқиғаларды қамтиды. Энергияны үнемдеу маңызды болған жағдайларда, әсіресе аккумуляторлық құрылғыларда, үзілістер микроконтроллерді процессор перифериялық құрылғының оқиғасынан бірдеңе жасауды талап еткенше тоқтатылатын, төмен қуатты ұйқы режимінен оятуы мүмкін.
Бағдарламалар
Әдетте микробасқарушы бағдарламалары чиптегі қол жетімді жадқа сыйып келуі керек, себебі жүйені сыртқы, кеңейтілетін жадпен қамтамасыз ету өте қымбатқа түседі. Компиляторлар мен ассемблерлер жоғары деңгейдегі және ассемблерлік тілдердегі кодты микробасқарушының жадында сақтау үшін ықшам машиналық кодқа түрлендіреді. Құрылғыға байланысты, бағдарламалық жад тұрақты, тек оқуға арналған жад болуы мүмкін, ол тек зауытта бағдарламаланады, немесе өшірілетін тек оқуға арналған жад немесе жадтан өшірілетін жад болуы мүмкін. Өндірушілер көбінесе мақсатты жүйенің аппараттық және бағдарламалық құралдарын дамытуға көмектесу үшін микробасқарушыларының арнайы нұсқаларын жасайды. Алғашқыда бұларға EPROM нұсқалары кірді, олардың құрылғының үстіңгі жағында бағдарламалық жадты ультракүлгін сәуле арқылы өшіруге болатын «терезесі» бар, содан кейін бағдарламалау («жару») және сынақ циклынан кейін қайта бағдарламалауға дайын. 1998 жылдан бері EPROM нұсқалары сирек кездеседі және олар EEPROM және флэш жадтармен алмастырылды, оларды пайдалану оңай (электрондық түрде өшіруге болады) және өндіруге арзан. Кейде ROM ішкі жад ретінде емес, сыртқы құрылғы ретінде қолжетімді болатын нұсқалар да болуы мүмкін, бірақ олар арзан микробасқарушы бағдарламалаушылардың кеңінен қолжетімділігіне байланысты сирек кездеседі. Микробақылаушыдағы далалық бағдарламаланатын құрылғыларды пайдалану, бағдарламалық құралды дала жағдайында жаңартуға немесе құрастырылған, бірақ әлі жіберілмеген өнімдерге зауыттық түзетулер енгізуге мүмкіндік береді. Бағдарламаланатын жад жаңа өнімді енгізуге қажетті уақытты қысқартады. Егер жүз мыңдаған бірдей құрылғылар қажет болса, оларды өндіріс кезінде бағдарламаланған бөліктерді пайдалану экономикалық тиімді болуы мүмкін. Бұл «маскамен бағдарламаланған» бөліктерде бағдарлама чиптің логикасымен бірдей уақытта жазылады. Бірегей микробасқарушы қосымша өңдеу мүмкіндіктерін, жабдықтарды және қосымшаның талаптарына бейімделген интерфейстерді қамтитын цифрлық логика блогын қамтиды. Мысалы, Atmel компаниясының AT91CAP өнімі.
Микробақылаушының басқа ерекшеліктері
Микробақылаушылар әдетте бірнеше-ондаған жалпы мақсаттағы кіріс/шығыс тіректерінен (GPIO) тұрады. GPIO тірекшелері бағдарламалық тұрғыда кіріс немесе шығыс күйіне конфигурацияланады. GPIO тірекшелері кіріс күйіне конфигурацияланғанда, олар көбінесе сенсорларды немесе сыртқы сигналдарды оқу үшін қолданылады. Шығыс күйіне конфигурацияланған GPIO тірекшелері сыртқы қуат электроникасы арқылы LED немесе моторлар сияқты сыртқы құрылғыларды, көбінесе жанама түрде басқара алады. Көптеген кіріктірілген жүйелер аналогты сигналдарды шығаратын сенсорларды оқу қажеттігіне тап болады. Осы мақсатта аналогты-цифрлық түрлендіргіш (ADC) қолданылады. Процессорлар цифрлық деректерді, яғни 1-дер мен 0-дерді түсіндіруге және өңдеуге құрылғандықтан, құрылғы жіберген аналогты сигналдармен ештеңе жасай алмайды. Сондықтан аналогты-цифрлық түрлендіргіш кіріс деректерін процессор тани алатын форматқа түрлендіру үшін қолданылады. Кейбір микробақылаушыларда сирек кездесетін мүмкіндік – процессорға аналогты сигналдар немесе кернеу деңгейлерін шығаруға мүмкіндік беретін цифрлық-аналогты түрлендіргіш (DAC) болып табылады. Түрлендіргіштерден басқа, көптеген кіріктірілген микропроцессорлар түрлі таймерлерді де қамтиды. Таймерлердің ең көп таралған түрлерінің бірі – бағдарламаланатын интервалдық таймер (PIT). PIT белгілі бір мәннен нөлге дейін немесе санау тіркегінің сыйымдылығына дейін санауы мүмкін, содан кейін нөлге дейін асып кетеді. Ол нөлге жеткенде, процессорға есептеу аяқталғанын хабарлайтын үзіліс жібереді. Бұл термостаттар сияқты құрылғылар үшін пайдалы, олар кондиционерді қосу/өшіру, жылытқышты қосу/өшіру және т.б. қажеттігін анықтау үшін айналадағы температураны үнемі тексереді. Арнайы импульстық ендік модуляция (PWM) блогы CPU-ға қуат түрлендіргіштерін, кедергілік жүктемелерді, моторларды және т.б. тығыз таймерлік циклдерде көптеген CPU ресурстарын қолданбай-ақ басқаруға мүмкіндік береді. Универсалды асинхронды қабылдағыш/таратушы (UART) блогы деректерді сериялық желі арқылы CPU-ға минималды жүктемемен қабылдауға және беруге мүмкіндік береді. Чиптегі арнайы аппараттық құралдар көбінесе басқа құрылғылармен (чиптермен) цифрлық форматта, мысалы, Inter Integrated Circuit (I²C), Serial Peripheral Interface (SPI), Universal Serial Bus (USB) және Ethernet сияқты байланысқа қабілеттіліктерді қамтиды.
Бағдарламалау орталары
Микроконтроллерлер бастапқыда тек ассемблер тілінде бағдарламаланған, бірақ C, Python және JavaScript сияқты жоғары деңгейдегі бағдарламалау тілдері қазір микроконтроллерлер мен кіріктірілген жүйелерді мақсаттау үшін де кеңінен қолданылады. Жалпы мақсаттағы тілдерге арналған компиляторларда микроконтроллерлердің ерекше сипаттамаларын жақсырақ қолдау үшін кейбір шектеулер мен жақсартулар болады. Кейбір микроконтроллерлерде белгілі бір типтегі қосымшаларды әзірлеуге көмектесетін орталар бар. Микроконтроллерлерді өндірушілер өз құралдарын тегін пайдалануға ұсынады. Арнайы аппараттық құралдарды қолданатын микроконтроллерлерге 8051 үшін SDCC сияқты C тілінің стандартты емес диалектілері қажет болуы мүмкін, бұл тіпті аппараттық ерекшеліктерге қатысы жоқ код үшін де стандартты құралдарды (код кітапханалары немесе статикалық талдау құралдары сияқты) пайдалануға кедерес жасайды. Интерпретаторларда MicroPython сияқты стандартты емес мүмкіндіктер болуы мүмкін, бірақ CircuitPython түйінділігі аппараттық тәуелділіктерді кітапханаларға көшіріп, тілді CPython стандартына сәйкес етуге тырысады. Кейбір микроконтроллерлер үшін интерпретаторлық бағдарламалық құралдар да қол жетімді. Мысалы, ерте микроконтроллер Intel 8052 үшін BASIC; Zilog Z8 және кейбір қазіргі заманғы құрылғыларда BASIC және FORTH. Әдетте, бұл интерпретаторлар интерактивті бағдарламалауды қолдайды. Кейбір микроконтроллерлер үшін симуляторлар бар. Бұл әзірлеушіге микроконтроллер мен олардың бағдарламасының нақты бөлікті пайдаланғанда қалай жұмыс істеу керектігін талдауға мүмкіндік береді. Симулятор ішкі процессордың күйін, сондай-ақ шығыстарды көрсетеді және кіріс сигналдарын жасауға мүмкіндік береді. Бір жағынан, көптеген симуляторлар жүйедегі басқа аппараттық құралдарды модельдеу мүмкіндігінен шектеледі, бірақ олар физикалық іске асыруда қайта жасау қиын болатын жағдайларды модельдей алады және проблемаларды жөндеу мен талдаудың ең жылдам жолы болуы мүмкін. Жаңа микроконтроллерлер көбінесе чиптегі жөндеу схемаларымен біріктіріледі, олар JTAG арқылы схема эмуляторына (ICE) қол жеткізген кезде, жөндеушімен фирмалық бағдарламаны жөндеуге мүмкіндік береді. Нақты уақыт ICE ішкі күйлерді көруге және/немесе өңдеуге мүмкіндік береді. Трассировкалық ICE орындалған бағдарлама мен микроконтроллердің күйін триггерлік нүктеден бұрын/кейін жаза алады.
Жад технологиясы
Микроконтроллерлерде әдетте екі түрлі жад қолданылады: фирмалық бағдарламаны сақтауға арналған ұзақ мерзімді жад және уақытша деректерді сақтауға арналған оқу-жазу жады.
Деректер
Ең алғашқы микробасқарушылардан бастап бүгінгі күнге дейін алты транзисторлы SRAM оқу/жазу жұмыс жады ретінде дерлік әрқашан қолданылады, ал регистрлік файлда бір бит үшін бірнеше транзистор қолданылады. SRAM-нан басқа, кейбір микробасқарушыларда деректерді сақтау үшін ішкі EEPROM және/немесе NVRAM да болады; ал мұндай жадысы жоқ (мысалы, BASIC Stamp) немесе ішкі жады жеткіліксіз болған жағдайда, олар көбінесе сыртқы EEPROM немесе флэш-жад чипіне қосылады. 2003 жылдан бастап кейбір микробасқарушыларда "өздігінен бағдарламаланатын" флэш-жад пайда болды.
Қатты бағдарламалық жасақтама
Алғашқы микробасқарушылар тұрақтандыру бағдарламаларын сақтау үшін маскалық ROM-ды қолданды. Кейінірек микроконтроллерлер (мысалы, Freescale 68HC11 және PIC микроконтроллерлерінің алғашқы нұсқалары) EPROM жадына ие болды, ол ультракүлгін сәуле арқылы өшіруге мүмкіндік беретін мөлдір терезесімен жабдықталған, ал өндірістік нұсқаларында мұндай терезе болмады, олар OTP (бір рет бағдарламаланатын) болды. Тұрақтандыру бағдарламасын жаңарту микробасқарушыны ауыстырумен тең болды, сондықтан көптеген өнімдерді жаңарту мүмкін болмады. Motorola MC68HC805 - EEPROM-ды тұрақтандыру бағдарламасын сақтау үшін алғаш рет қолданған микробасқарушы. EEPROM микробасқарушылары 1993 жылы Microchip PIC16C84 және Atmel 8051 ядролық микробасқарушысын ұсынған кезде кеңінен танымал болды. Бұл NOR Flash жадын тұрақтандыру бағдарламасын сақтау үшін алғаш рет пайдаланды. Бүгінгі микробасқарушылардың басым көпшілігі флэш-жадыны пайдаланады, ал кейбір модельдер FRAM-ды қолданады, ал өте төмен бағалы компоненттердің бір бөлігі әлі де OTP немесе маскалық ROM-ды қолданады.