Микроконтроллер
Микроконтроллер микроконтроллерный ( MC , UC или μC ) или блок ( MCU ) представляет собой небольшой компьютер на одной интегральной схеме . Микроконтроллер содержит один или несколько процессоров ( процессорных ядер ), а также память и программируемые периферийные устройства ввода/вывода . Программная память в виде NOR-флэш-памяти , OTP-ROM или сегнетоэлектрического ОЗУ также часто включается в состав чипа, а также небольшой объем ОЗУ . Микроконтроллеры предназначены для встроенных приложений, в отличие от микропроцессоров, используемых в персональных компьютерах или других приложениях общего назначения, состоящих из различных дискретных микросхем.
В современной терминологии микроконтроллер похож на систему на кристалле (SoC), но менее сложен. SoC может включать микроконтроллер в качестве одного из своих компонентов, но обычно интегрирует его с расширенными периферийными устройствами, такими как графический процессор (GPU), модуль Wi-Fi или один или несколько сопроцессоров .
Микроконтроллеры используются в автоматически управляемых продуктах и устройствах, таких как системы управления автомобильными двигателями, имплантируемые медицинские устройства, пульты дистанционного управления, офисные машины, бытовая техника, электроинструменты, игрушки и другие встроенные системы . За счет уменьшения размера и стоимости по сравнению с конструкцией, в которой используются отдельные микропроцессор , память и устройства ввода/вывода, микроконтроллеры делают цифровое управление большим количеством устройств и процессов практичным. Микроконтроллеры смешанных сигналов являются обычным явлением и включают в себя аналоговые компоненты, необходимые для управления нецифровыми электронными системами. В контексте Интернета вещей микроконтроллеры являются экономичным и популярным средством сбора данных , восприятия и управления физическим миром в качестве периферийных устройств .
Некоторые микроконтроллеры могут использовать четырехбитные слова и работать на частотах до 4 кГц для низкого энергопотребления (однозначные милливатт или микроватты). Обычно они имеют возможность сохранять функциональность во время ожидания такого события , как нажатие кнопки или другое прерывание ; энергопотребление во время сна (частота процессора и большинство периферийных устройств выключены) может составлять всего нановатты, что делает многие из них хорошо подходящими для длительного автономного использования. Другие микроконтроллеры могут выполнять критически важные функции, где им может потребоваться действовать как процессор цифровых сигналов (DSP) с более высокими тактовыми частотами и энергопотреблением.
История
[ редактировать ]Фон
[ редактировать ]Первые многокристальные микропроцессоры Four-Phase Systems AL1 в 1969 году и Garrett AiResearch MP944 в 1970 году были разработаны с использованием нескольких микросхем MOS LSI. Первым однокристальным микропроцессором был Intel 4004 , выпущенный на одном чипе MOS LSI в 1971 году. Он был разработан Федерико Фаггином с использованием его технологии MOS с кремниевым затвором совместно с Intel инженерами Марсианом Хоффом и Стэном Мазором , а также Busicom инженером Масатоши. Шима . [ 1 ] За ним последовали 4-битный Intel 4040 , 8-битный Intel 8008 и 8-битный Intel 8080 . Всем этим процессорам для реализации работающей системы требовалось несколько внешних микросхем, включая микросхемы памяти и периферийных интерфейсов. В результате общая стоимость системы составила несколько сотен долларов (1970-х годов), что сделало невозможной экономичную компьютеризацию мелкой бытовой техники.
В 1975 году MOS Technology представила микропроцессоры стоимостью менее 100 долларов — 6501 и 6502 . Их главной целью было снизить этот ценовой барьер, но эти микропроцессоры по-прежнему требовали внешней поддержки, памяти и периферийных микросхем, из-за чего общая стоимость системы оставалась на уровне сотен долларов.
Разработка
[ редактировать ]В одной из книг инженерам TI Гэри Буну и Майклу Кокрану приписывается успешное создание первого микроконтроллера в 1971 году. Результатом их работы стал TMS 1000 , который стал коммерчески доступен в 1974 году. Он сочетал в себе память только для чтения, память для чтения/записи, процессор и тактовая частота были на одном кристалле и были ориентированы на встраиваемые системы. [ 2 ]
В начале-середине 1970-х годов японские производители электроники начали производить микроконтроллеры для автомобилей, в том числе 4-битные микроконтроллеры для автомобильных развлечений , автоматических дворников, электронных замков и приборной панели, а также 8-битные микроконтроллеры для управления двигателем. [ 3 ]
Частично в ответ на существование одночипового TMS 1000, [ 4 ] Intel разработала компьютерную систему на базе чипа, оптимизированного для приложений управления, Intel 8048 , первые коммерческие компоненты которой поступили в продажу в 1977 году. [ 4 ] Он объединил ОЗУ и ПЗУ на одном чипе с микропроцессором. Среди многочисленных приложений этот чип в конечном итоге нашел свое применение в более чем миллиарде клавиатур ПК. В то время президент Intel Люк Дж. Валентер заявил, что микроконтроллер был одним из самых успешных продуктов в истории компании, и увеличил бюджет подразделения микроконтроллеров более чем на 25%.
Большинство микроконтроллеров того времени имели параллельные варианты. У одного была программная память EPROM с прозрачным кварцевым окном в крышке упаковки, позволяющим стирать ее под воздействием ультрафиолетового света. Эти стираемые чипы часто использовались для прототипирования. Другой вариант представлял собой либо ПЗУ, программируемое по маске, либо вариант ПРОМ , который можно было программировать только один раз. Для последнего иногда использовалось обозначение OTP , что означает «одноразовый программируемый». В микроконтроллере OTP PROM обычно была того же типа, что и EPROM, но корпус микросхемы не имел кварцевого окна; поскольку не было возможности подвергнуть EPROM воздействию ультрафиолета, его нельзя было стереть. Поскольку для стираемых версий требовались керамические корпуса с кварцевыми окнами, они были значительно дороже, чем версии OTP, которые можно было изготавливать в более дешевых непрозрачных пластиковых упаковках. Для стираемых вариантов вместо менее дорогого стекла требовался кварц из-за его прозрачности для ультрафиолетового света, для которого стекло в значительной степени непрозрачно, но основным отличием в стоимости была сама керамическая упаковка.
В 1993 году появление памяти EEPROM позволило микроконтроллерам (начиная с микрочипа PIC16C84 ) [ 5 ] быстро стираться электрическим способом без дорогостоящего пакета, как это требуется для EPROM , что позволяет как быстро создавать прототипы, так и внутрисистемное программирование . (Технология EEPROM была доступна и до этого времени, [ 6 ] но более ранняя версия EEPROM была более дорогой и менее долговечной, что делало ее непригодной для недорогих микроконтроллеров массового производства.) В том же году Atmel представила первый микроконтроллер, использующий флэш-память , особый тип EEPROM. [ 7 ] Другие компании быстро последовали этому примеру, выпустив оба типа памяти.
В настоящее время микроконтроллеры дешевы и легко доступны для любителей, а вокруг определенных процессоров существуют большие онлайн-сообщества.
Объем и стоимость
[ редактировать ]В 2002 году около 55% всех процессоров составляли 8-битные микроконтроллеры и микропроцессоры. проданных в мире [ 8 ]
В 1997 году было продано более двух миллиардов 8-битных микроконтроллеров. [ 9 ] По данным Semico, в 2006 году было продано более четырех миллиардов 8-битных микроконтроллеров. [ 10 ] Совсем недавно Semico заявила, что рынок микроконтроллеров вырос на 36,5% в 2010 году и на 12% в 2011 году. [ 11 ]
Типичный дом в развитой стране, скорее всего, будет иметь только четыре микропроцессора общего назначения, но около трех десятков микроконтроллеров. Типичный автомобиль среднего класса имеет около 30 микроконтроллеров. Их также можно найти во многих электрических устройствах, таких как стиральные машины, микроволновые печи и телефоны.
Исторически сложилось так, что 8-битный сегмент доминировал на рынке микроконтроллеров [..] 16-битные микроконтроллеры стали крупнейшей по объему категорией микроконтроллеров в 2011 году, впервые в этом году обогнав 8-битные устройства [..] IC Insights считает, что состав Рынок микроконтроллеров претерпит существенные изменения в ближайшие пять лет: 32-битные устройства будут постепенно захватывать все большую долю продаж и объемов продаж. Ожидается, что к 2017 году на 32-битные микроконтроллеры будет приходиться 55% продаж микроконтроллеров. 34% от общего числа, а 4-/8-битные конструкции, по прогнозам, составят 28% единиц, проданных в этом году. Ожидается, что рынок 32-битных микроконтроллеров будет быстро расти из-за растущего спроса на более высокий уровень точности во встроенных системах обработки данных и роста возможностей подключения через Интернет. [..] Ожидается, что в ближайшие несколько лет на сложные 32-битные микроконтроллеры будет приходиться более 25% вычислительной мощности транспортных средств.
— IC Insights, Рынок микроконтроллеров на пути перехода на 32-битные устройства и устройства на базе ARM [ 12 ]
Стоимость производства может составлять менее 0,10 доллара США за единицу.
Стоимость со временем резко упала: в 2018 году самые дешевые 8-битные микроконтроллеры можно было купить менее чем за 0,03 доллара США . [ 13 ] и некоторые 32-битные микроконтроллеры по цене около 1 доллара США за аналогичные количества.
В 2012 году, после глобального кризиса — худшего за всю историю годового падения продаж и восстановления, а также среднегодовой цены продаж, упавшей на 17% — самого большого снижения с 1980-х годов — средняя цена на микроконтроллер составила 0,88 доллара США ( 0,69 доллара США за 4 -/8-бит, 0,59 доллара США за 16-битную версию, 1,76 доллара США за 32-битную версию). [ 12 ]
В 2012 году мировые продажи 8-битных микроконтроллеров составили около 4 миллиардов долларов США , при этом 4-битных микроконтроллеров также были значительными. продажи [ 14 ]
В 2015 году 8-битные микроконтроллеры можно было купить за 0,311 доллара США (1000 штук). [ 15 ] 16-битная за 0,385 доллара США (1000 единиц), [ 16 ] и 32-битная версия за 0,378 доллара США (1000 единиц, но по цене 0,35 доллара США за 5000). [ 17 ]
В 2018 году 8-битные микроконтроллеры можно было купить за 0,03 доллара США . [ 13 ] 16-бит за 0,393 доллара США (1000 единиц, но по цене 0,563 доллара США за 100 или 0,349 доллара США за полную катушку из 2000), [ 18 ] и 32-битная версия за 0,503 доллара США (1000 единиц, но по цене 0,466 доллара США за 5000). [ 19 ]
В 2018 году все недорогие микроконтроллеры, указанные выше по сравнению с 2015 годом, были дороже (с учетом инфляции, рассчитанной между ценами на эти конкретные единицы в 2018 и 2015 годах): 8-битный микроконтроллер можно было купить за 0,319 доллара США (1000 единиц) или на 2,6% выше. , [ 15 ] 16-битный — за 0,464 доллара США (1000 единиц) или на 21% выше, [ 16 ] а 32-битный — за 0,503 доллара США (1000 единиц, но по цене 0,466 доллара США за 5000), или на 33% выше. [ 17 ]
Самый маленький компьютер
[ редактировать ]объявил о создании «самого маленького компьютера в мире» 21 июня 2018 года Мичиганский университет . Устройство представляет собой « 0,04 мм. 3 мощностью 16 нВт Беспроводная безбатарейная сенсорная система со встроенным процессором Cortex-M0+ и оптической связью для измерения температуры на клеточном уровне». Ее «размер составляет всего 0,3 мм в сторону, что ничтожно мало для рисового зернышка. [...] Помимо оперативной памяти и фотоэлектрических элементов , новые вычислительные устройства имеют процессоры, а также беспроводные передатчики и приемники . Поскольку они слишком малы для использования обычных радиоантенн, они принимают и передают данные в видимом свете. Базовая станция обеспечивает свет для питания и программирования, а также получает данные». [ 20 ] Устройство 1 ⁄ 10 -го размера компьютера IBM, ранее заявленного как мировой рекорд по размеру, установленного несколько месяцев назад в марте 2018 года, [ 21 ] что «меньше, чем крупинка соли», [ 22 ] имеет миллион транзисторов, его производство стоит менее 0,10 доллара США , и в сочетании с технологией блокчейна оно предназначено для логистики и «крипто-якорей» — для цифровых отпечатков пальцев . приложений [ 23 ]
Встроенный дизайн
[ редактировать ]Микроконтроллер можно рассматривать как автономную систему с процессором, памятью и периферийными устройствами и использовать как встроенную систему . [ 24 ] Большинство микроконтроллеров, используемых сегодня, встроены в другие машины, такие как автомобили, телефоны, бытовая техника и периферийные устройства для компьютерных систем.
Хотя некоторые встроенные системы очень сложны, многие из них имеют минимальные требования к памяти и длине программы, не имеют операционной системы и имеют низкую сложность программного обеспечения. Типичные устройства ввода и вывода включают переключатели, реле , соленоиды , светодиоды , небольшие или специальные жидкокристаллические дисплеи , радиочастотные устройства и датчики для таких данных, как температура, влажность, уровень освещенности и т. д. Встроенные системы обычно не имеют клавиатуры, экрана. , диски, принтеры или другие узнаваемые устройства ввода-вывода персонального компьютера и могут отсутствовать какие-либо устройства взаимодействия с человеком.
Прерывания
[ редактировать ]Микроконтроллеры должны обеспечивать реакцию в реальном времени (предсказуемую, хотя и не обязательно быструю) на события во встроенной системе, которой они управляют. При возникновении определенных событий система прерываний может сигнализировать процессору о необходимости приостановить обработку текущей последовательности команд и начать процедуру обслуживания прерываний (ISR или «обработчик прерываний»), которая выполнит любую необходимую обработку в зависимости от источника прерывания, прежде чем возвращение к исходной последовательности команд. Возможные источники прерываний зависят от устройства и часто включают в себя такие события, как переполнение внутреннего таймера, завершение аналого-цифрового преобразования, изменение логического уровня на входе, например, при нажатии кнопки, и данные, полученные по каналу связи. . Там, где энергопотребление важно, например, в аккумуляторных устройствах, прерывания также могут вывести микроконтроллер из состояния сна с низким энергопотреблением, когда процессор останавливается до тех пор, пока периферийное событие не потребует каких-либо действий.
Программы
[ редактировать ]Обычно программы микроконтроллера должны помещаться в доступную встроенную память, поскольку обеспечение системы внешней расширяемой памятью было бы дорогостоящим. Компиляторы и ассемблеры используются для преобразования кода на языке высокого уровня и ассемблера в компактный машинный код для хранения в памяти микроконтроллера. В зависимости от устройства память программ может быть постоянной, постоянной памятью , которая может быть запрограммирована только на заводе, или это может быть изменяемая флэш-память или стираемая постоянная память.
Производители часто выпускают специальные версии своих микроконтроллеров, чтобы помочь в разработке аппаратного и программного обеспечения целевой системы. Первоначально к ним относились версии EPROM , которые имеют «окно» в верхней части устройства, через которое память программ может быть стерта ультрафиолетовым светом и готова к перепрограммированию после программирования («прожига») и цикла тестирования. С 1998 года версии EPROM встречаются редко и были заменены EEPROM и флэш-памятью, которые проще в использовании (можно стереть электронным способом) и дешевле в производстве.
Могут быть доступны и другие версии, в которых доступ к ПЗУ осуществляется как к внешнему устройству, а не как к внутренней памяти, однако они становятся редкими из-за широкой доступности дешевых программаторов для микроконтроллеров.
Использование программируемых пользователем устройств на микроконтроллере может позволить обновлять встроенное ПО на месте или допускать поздние заводские версии продуктов, которые были собраны, но еще не отправлены. Программируемая память также сокращает время, необходимое для внедрения нового продукта.
Там, где требуются сотни тысяч идентичных устройств, использование деталей, запрограммированных во время производства, может быть экономичным. Эти « запрограммированные по маске » части имеют программу, заложенную в то же время, что и логика чипа.
Настраиваемый микроконтроллер включает в себя блок цифровой логики, который можно персонализировать для получения дополнительных возможностей обработки, а также периферийные устройства и интерфейсы , адаптированные к требованиям приложения. Одним из примеров является AT91CAP от Atmel .
Другие возможности микроконтроллера
[ редактировать ]Микроконтроллеры обычно содержат от нескольких до десятков контактов ввода/вывода общего назначения ( GPIO ). Выводы GPIO программно настраиваются либо на входное, либо на выходное состояние. Когда контакты GPIO настроены на входное состояние, они часто используются для считывания датчиков или внешних сигналов. Настроенные в выходное состояние контакты GPIO могут управлять внешними устройствами, такими как светодиоды или двигатели, часто косвенно, через внешнюю силовую электронику.
Многим встроенным системам необходимо считывать показания датчиков, вырабатывающих аналоговые сигналы. Именно для этого предназначен аналого-цифровой преобразователь (АЦП). Поскольку процессоры созданы для интерпретации и обработки цифровых данных, то есть единиц и нулей, они не могут ничего делать с аналоговыми сигналами, которые могут быть отправлены ему устройством. Таким образом, аналого-цифровой преобразователь используется для преобразования входящих данных в форму, которую может распознать процессор. Менее распространенной функцией некоторых микроконтроллеров является цифро-аналоговый преобразователь (ЦАП), который позволяет процессору выводить аналоговые сигналы или уровни напряжения.
Помимо преобразователей, многие встроенные микропроцессоры также включают в себя различные таймеры. Одним из наиболее распространенных типов таймеров является программируемый интервальный таймер (ПИТ). PIT может вести обратный отсчет от некоторого значения до нуля или до емкости регистра счета, переполняя его до нуля. Как только он достигает нуля, он отправляет процессору прерывание, указывая, что он закончил подсчет. Это полезно для таких устройств, как термостаты, которые периодически проверяют температуру вокруг себя, чтобы определить, нужно ли им включать/выключать кондиционер, включать/выключать обогреватель и т. д.
Специальный блок широтно-импульсной модуляции (ШИМ) позволяет ЦП управлять преобразователями мощности , резистивными нагрузками, двигателями и т. д., не используя много ресурсов ЦП в жестких циклах таймера .
Универсальный асинхронный блок приемо-передатчика (UART) позволяет принимать и передавать данные по последовательной линии с очень небольшой нагрузкой на ЦП. Выделенное встроенное оборудование также часто включает в себя возможности связи с другими устройствами (чипами) в цифровых форматах, таких как межинтегральная схема ( I²C ), последовательный периферийный интерфейс ( SPI ), универсальная последовательная шина ( USB ) и Ethernet . [ 25 ]
Высшая интеграция
[ редактировать ]Микроконтроллеры могут не реализовывать внешний адрес или шину данных, поскольку они объединяют ОЗУ и энергонезависимую память на том же кристалле, что и ЦП. Используя меньшее количество контактов, чип можно разместить в гораздо меньшем и более дешевом корпусе.
Интеграция памяти и других периферийных устройств на одном чипе и их тестирование как единое целое увеличивает стоимость этого чипа, но часто приводит к снижению чистой стоимости встроенной системы в целом. Даже если стоимость ЦП со встроенными периферийными устройствами немного превышает стоимость ЦП и внешних периферийных устройств, меньшее количество микросхем обычно позволяет использовать печатную плату меньшего размера и дешевле, а также снижает трудозатраты, необходимые для сборки и тестирования печатной платы. Помимо стремления к снижению уровня брака в готовой сборке.
Микроконтроллер представляет собой единую интегральную схему , обычно имеющую следующие функции:
- центральный процессор – от небольших и простых 4-битных процессоров до сложных 32-битных или 64-битных процессоров.
- энергозависимая память ( ОЗУ ) для хранения данных
- ПЗУ , EPROM , EEPROM или флэш-память для хранения программ и рабочих параметров.
- дискретные входные и выходные биты, позволяющие контролировать или определять логическое состояние отдельного вывода корпуса.
- последовательный ввод/вывод, например последовательные порты ( UART )
- другие последовательной связи интерфейсы , такие как I²C , последовательный периферийный интерфейс и сеть контроллеров для межсоединения системы.
- периферийные устройства, такие как таймеры , счетчики событий, генераторы ШИМ и сторожевые таймеры.
- тактовый генератор - часто генератор для кварцевого таймера, резонатора или RC-цепи.
- многие из них включают аналого-цифровые преобразователи, некоторые — цифро-аналоговые преобразователи.
- внутрисхемного программирования и внутрисхемной отладки поддержка
Такая интеграция радикально сокращает количество микросхем, а также объем проводов и места на печатной плате , которые потребуются для создания эквивалентных систем с использованием отдельных микросхем. Кроме того, в частности, на устройствах с малым количеством контактов каждый контакт может взаимодействовать с несколькими внутренними периферийными устройствами, при этом функция контакта выбирается программным обеспечением. Это позволяет использовать деталь в более широком спектре приложений, чем если бы контакты имели специальные функции.
Микроконтроллеры оказались очень популярными во встроенных системах с момента их появления в 1970-х годах.
Некоторые микроконтроллеры используют гарвардскую архитектуру : отдельные шины памяти для инструкций и данных, позволяющие осуществлять доступ одновременно. Если используется Гарвардская архитектура, размер командных слов для процессора может отличаться от длины внутренней памяти и регистров; например: 12-битные инструкции, используемые с 8-битными регистрами данных.
Решение о том, какое периферийное устройство интегрировать, часто бывает трудным. Поставщики микроконтроллеров часто жертвуют рабочими частотами и гибкостью конструкции системы требованиям своих клиентов по срокам выхода на рынок и общей более низкой стоимостью системы. Производителям приходится балансировать между необходимостью минимизировать размер чипа и дополнительными функциями.
Архитектуры микроконтроллеров сильно различаются. Некоторые конструкции включают ядра микропроцессора общего назначения с одной или несколькими функциями ПЗУ, ОЗУ или ввода-вывода, интегрированными в корпус. Другие конструкции специально созданы для приложений управления. Набор команд микроконтроллера обычно содержит множество инструкций, предназначенных для побитовых манипуляций (побитовых операций), чтобы сделать программы управления более компактными. [ 26 ] Например, процессору общего назначения может потребоваться несколько инструкций для проверки бита в регистре и перехода, если бит установлен, тогда как микроконтроллер может иметь одну инструкцию для выполнения этой обычно требуемой функции.
Исторически микроконтроллеры не имели математических сопроцессоров , поэтому арифметика с плавающей запятой выполнялась программным обеспечением. Однако некоторые недавние разработки включают в себя FPU и функции, оптимизированные для DSP. Примером может служить линия Microchip на базе PIC32 MIPS.
Среды программирования
[ редактировать ]Первоначально микроконтроллеры программировались только на языке ассемблера , но различные языки программирования высокого уровня , такие как C , Python и JavaScript широко используются теперь для микроконтроллеров и встроенных систем . [ 27 ] Компиляторы для языков общего назначения обычно имеют некоторые ограничения, а также улучшения для лучшей поддержки уникальных характеристик микроконтроллеров. Некоторые микроконтроллеры имеют среды, помогающие разрабатывать определенные типы приложений. Поставщики микроконтроллеров часто предоставляют бесплатные инструменты, облегчающие внедрение их оборудования.
Микроконтроллерам со специальным оборудованием могут потребоваться собственные нестандартные диалекты C, такие как SDCC для 8051 , которые не позволяют использовать стандартные инструменты (такие как библиотеки кода или инструменты статического анализа) даже для кода, не связанного с аппаратными функциями. Интерпретаторы также могут содержать нестандартные функции, такие как MicroPython , хотя его форк CircuitPython стремится переместить аппаратные зависимости в библиотеки и обеспечить соответствие языка большему стандарту CPython .
Для некоторых микроконтроллеров также доступна прошивка интерпретатора. Например, BASIC на раннем микроконтроллере Intel 8052 ; [ 28 ] BASIC и FORTH на Zilog Z8 [ 29 ] а также некоторые современные устройства. Обычно эти интерпретаторы поддерживают интерактивное программирование .
Симуляторы доступны для некоторых микроконтроллеров. Это позволяет разработчику проанализировать, каким должно быть поведение микроконтроллера и его программы, если бы они использовали реальную деталь. Симулятор покажет состояние внутреннего процессора, а также состояние выходов, а также позволит генерировать входные сигналы. Хотя, с одной стороны, большинство симуляторов не смогут моделировать большую часть другого оборудования в системе, они могут моделировать условия, которые в противном случае было бы трудно воспроизвести по желанию в физической реализации, и могут быть самым быстрым способом отладки и анализа. проблемы.
Последние микроконтроллеры часто имеют встроенную схему отладки , которая при доступе к внутрисхемному эмулятору (ICE) через JTAG позволяет отлаживать прошивку с помощью отладчика . ICE в реальном времени может позволять просматривать и/или манипулировать внутренними состояниями во время работы. Трассирующий ICE может записывать выполненную программу и состояния MCU до/после точки запуска.
Типы
[ редактировать ]По состоянию на 2008 год [update]Существует несколько десятков архитектур и производителей микроконтроллеров, в том числе:
- Базовые процессоры ARM (многих производителей)
- Ядра ARM Cortex-M специально предназначены для приложений микроконтроллеров.
- Технология микросхем Atmel AVR (8-бит), AVR32 (32-бит) и AT91SAM (32-бит)
- Cypress Semiconductor, Ядро M8C от используемое в их Cypress PSoC
- Freescale ColdFire (32-разрядная версия) и S08 (8-разрядная версия)
- Freescale 68HC11 (8-бит) и другие на базе семейства Motorola 6800.
- Intel 8051 , также выпускаемый компаниями NXP Semiconductors , Infineon и многими другими.
- Infineon : 8-битный XC800 , 16-битный XE166 , 32-битный XMC4000 (Cortex M4F на базе ARM), 32-битный TriCore и 32-битный Aurix Tricore Bit микроконтроллеры. [ 30 ]
- Максим Интегрированный MAX32600, MAX32620, MAX32625, MAX32630, MAX32650, MAX32640
- МИПС
- Технология микрочипа PIC , (8-битный PIC16, PIC18, 16-битный dsPIC33/PIC24), (32-битный PIC32)
- NXP Semiconductors LPC1000, LPC2000, LPC3000, LPC4000 (32-разрядная версия), LPC900, LPC700 (8-разрядная версия)
- Параллаксный пропеллер
- PowerPC ИСЭ
- Кролик 2000 (8-бит)
- Renesas Electronics : 16-битный микроконтроллер RL78 ; RX 32-битный микроконтроллер ; СуперХ ; V850 32-битный микроконтроллер ; Н8 ; R8C 16-битный микроконтроллер
- Silicon Laboratories Конвейерные 8-битные микроконтроллеры 8051 и 32-битные микроконтроллеры на базе ARM со смешанными сигналами.
- STMicroelectronics STM8 (8-бит), ST10 (16-бит), STM32 (32-бит), SPC5 (автомобильный 32-бит)
- Texas Instruments TI MSP430 (16-бит), MSP432 (32-бит), C2000 (32-бит)
- Toshiba TLCS-870 (8-бит/16-бит)
Существует множество других, некоторые из которых используются в очень узком диапазоне приложений или больше похожи на прикладные процессоры, чем на микроконтроллеры. Рынок микроконтроллеров чрезвычайно фрагментирован, на нем имеется множество поставщиков, технологий и рынков. Обратите внимание, что многие поставщики продают или уже продали несколько архитектур.
Задержка прерывания
[ редактировать ]В отличие от компьютеров общего назначения, микроконтроллеры, используемые во встроенных системах, часто стремятся оптимизировать задержку прерывания по сравнению с пропускной способностью команд. Проблемы включают в себя как уменьшение задержки, так и повышение ее предсказуемости (для поддержки управления в реальном времени).
Когда электронное устройство вызывает прерывание, во время переключения контекста необходимо сохранить промежуточные результаты (регистры), прежде чем сможет запуститься программное обеспечение, ответственное за обработку прерывания. Они также должны быть восстановлены после работы обработчика прерываний завершения больше . Если регистров процессора , процесс сохранения и восстановления может занять больше времени, что приведет к увеличению задержки. (Если ISR не требует использования некоторых регистров, он может просто оставить их в покое, а не сохранять и восстанавливать, поэтому в этом случае эти регистры не участвуют в задержке.) Способы уменьшения такой задержки контекста/восстановления включают наличие относительно мало регистров в их центральных процессорах (нежелательно, поскольку это существенно замедляет большую часть непрерывной обработки) или, по крайней мере, если аппаратное обеспечение не сохраняет их все (это не удается, если программному обеспечению затем необходимо компенсировать это, сохраняя остальное «вручную») . Другой метод предполагает использование кремниевых вентилей в «теневых регистрах»: один или несколько дублирующих регистров, используемых только программным обеспечением прерываний, возможно, поддерживающим выделенный стек.
Другие факторы, влияющие на задержку прерывания, включают:
- Циклы, необходимые для завершения текущей деятельности ЦП. Чтобы минимизировать эти затраты, микроконтроллеры, как правило, имеют короткие конвейеры (часто три инструкции или меньше), небольшие буферы записи и обеспечивают возможность продолжения или перезапуска более длинных инструкций. Принципы проектирования RISC гарантируют, что большинство инструкций выполняются одинаковое количество циклов, помогая избежать необходимости в большей части такой логики продолжения/перезапуска.
- Длина любой критической секции , которую необходимо прервать. Вход в критический раздел ограничивает одновременный доступ к структуре данных. Когда обработчик прерывания должен получить доступ к структуре данных, критическая секция должна заблокировать это прерывание. Соответственно, задержка прерывания увеличивается на время блокировки прерывания. Когда существуют жесткие внешние ограничения на задержку системы, разработчикам часто нужны инструменты для измерения задержек прерываний и отслеживания того, какие критические участки вызывают замедление.
- Один распространенный метод просто блокирует все прерывания на время критической секции. Это легко реализовать, но иногда критические разделы становятся неудобно длинными.
- Более сложный метод просто блокирует прерывания, которые могут вызвать доступ к этой структуре данных. Это часто основано на приоритетах прерываний, которые, как правило, плохо соответствуют соответствующим структурам данных системы. Соответственно, этот метод используется в основном в очень стесненных условиях.
- Процессоры могут иметь аппаратную поддержку некоторых критических разделов. Примеры включают поддержку атомарного доступа к битам или байтам в слове или других примитивов атомарного доступа, таких как примитивы эксклюзивного доступа LDREX/STREX, представленные в архитектуре ARMv6 .
- Прерывание вложения. Некоторые микроконтроллеры позволяют прерываниям с более высоким приоритетом прерывать прерывания с более низким приоритетом. Это позволяет программному обеспечению управлять задержкой, давая критичным ко времени прерываниям более высокий приоритет (и, следовательно, меньшую и более предсказуемую задержку), чем менее критичным.
- Скорость триггера. Когда прерывания происходят последовательно, микроконтроллеры могут избежать дополнительного цикла сохранения/восстановления контекста с помощью оптимизации хвостового вызова .
Микроконтроллеры более низкого уровня, как правило, поддерживают меньшее количество элементов управления задержкой прерывания, чем микроконтроллеры более высокого уровня.
Технология памяти
[ редактировать ]В микроконтроллерах обычно используются два разных типа памяти: энергонезависимая память для хранения встроенного ПО и память для чтения и записи для временных данных.
Данные
[ редактировать ]Начиная с самых ранних микроконтроллеров и до сегодняшнего дня, шеститранзисторная SRAM почти всегда используется в качестве рабочей памяти для чтения/записи, при этом в файле регистров используется еще несколько транзисторов на бит .
В дополнение к SRAM некоторые микроконтроллеры также имеют внутреннюю EEPROM и/или NVRAM для хранения данных; а те, у которых ее нет (например, BASIC Stamp ) или у которых недостаточно внутренней памяти, часто подключаются к внешней EEPROM или микросхеме флэш-памяти.
Некоторые микроконтроллеры, выпущенные начиная с 2003 года, имеют «самопрограммируемую» флэш-память. [ 7 ]
Прошивка
[ редактировать ]Самые ранние микроконтроллеры использовали ПЗУ маски для хранения прошивки . Более поздние микроконтроллеры (такие как ранние версии Freescale 68HC11 и ранние микроконтроллеры PIC ) имели память EPROM , в которой использовалось полупрозрачное окно для стирания с помощью ультрафиолетового света, в то время как серийные версии не имели такого окна, будучи OTP (одноразово программируемыми). . Обновления прошивки были эквивалентны замене самого микроконтроллера, поэтому многие продукты не подлежали обновлению.
Моторола MC68HC805 [ 6 ] был первым микроконтроллером, который использовал EEPROM для хранения прошивки. Микроконтроллеры EEPROM стали более популярными в 1993 году, когда Microchip представила PIC16C84. [ 5 ] и Atmel представила микроконтроллер с 8051 ядром , который первым использовал флэш-память NOR для хранения прошивки. [ 7 ] Почти все современные микроконтроллеры используют флэш-память, некоторые модели используют FRAM, а некоторые сверхнизкие детали по-прежнему используют OTP или Mask ROM.
См. также
[ редактировать ]- Микропроцессор
- Система на чипе
- Список распространенных микроконтроллеров
- Список микроконтроллеров Wi-Fi
- Список аппаратных проектов с открытым исходным кодом
- Микроботика
- Программируемый логический контроллер
- Одноплатный микроконтроллер
Ссылки
[ редактировать ]- ^ «1971: Микропроцессор объединяет функции ЦП в одном кристалле» . Кремниевый двигатель . Музей истории компьютеров . Проверено 22 июля 2019 г.
- ^ Аугартен, Стэн (1983). «Самый широко используемый компьютер на кристалле: TMS 1000» . Современное состояние: фотографическая история интегральной схемы . Нью-Хейвен и Нью-Йорк: Тикнор и Филдс. ISBN 978-0-89919-195-9 . Архивировано из оригинала 17 февраля 2010 г. Проверено 23 декабря 2009 г.
- ^ «Тенденции полупроводниковой промышленности» . Музей истории полупроводников Японии . Архивировано из оригинала 27 июня 2019 г. Проверено 27 июня 2019 г.
- ^ Jump up to: а б «Секция устной истории разработки и продвижения микроконтроллера Intel 8048» (PDF) . Музей компьютерной истории «Устная история», 2008 . п. 4 . Проверено 4 апреля 2016 г.
- ^ Jump up to: а б «Зал славы чипов: Микроконтроллер PIC 16C84» . IEEE. 30 июня 2017 г. Проверено 16 сентября 2018 г.
- ^ Jump up to: а б Моторола. Предварительная информация, 8-разрядные микрокомпьютеры MC68HC05B6, MC68HC05B4, MC68HC805B6, документ Motorola EADI0054RI . ООО «Моторола», 1988 г.
- ^ Jump up to: а б с Одд Йостейн Свендсли (2003). «Самопрограммируемые флэш-микроконтроллеры Atmel» (PDF) . Проверено 18 июня 2024 г.
- ^ Терли, Джим (2002). «Двухпроцентное решение» . Встроенный . Проверено 11 июля 2018 г.
- ^ Кантрелл, Том (1998). «Микрочип на марше» . Цепь подвала . Архивировано из оригинала 27 сентября 2007 г. Проверено 11 июля 2018 г.
- ^ «Семико Исследования» .
- ^ «Импульс приближает микроконтроллеры к 2011 году | Semico Research» . Semico.com . Проверено 11 июля 2018 г.
- ^ Jump up to: а б «Рынок микроконтроллеров на пути перехода на 32-битные устройства и устройства на базе ARM» . 25 апреля 2013 г.
Обычно требуется глобальная экономическая рецессия, чтобы расстроить разнообразный рынок микроконтроллеров, и именно это произошло в 2009 году, когда бизнес микроконтроллеров пережил худшее за всю историю годовое падение продаж на 22% до 11,1 миллиарда долларов.
- ^ Jump up to: а б «Действительно недорогие микроконтроллеры» . www.additude.se . Архивировано из оригинала 03 августа 2020 г. Проверено 16 января 2019 г.
- ^ Билл Джовино (7 июня 2013 г.). «Zilog покупает линейку микроконтроллеров у Samsung» .
- ^ Jump up to: а б "EFM8BB10F2G-A-QFN20 Silicon Labs | Mouser" .
- ^ Jump up to: а б «MSP430G2001IPW14R Texas Instruments | Mouser» .
- ^ Jump up to: а б "CY8C4013SXI-400 Cypress Semiconductor | Mouser" . Маузер Электроникс . Архивировано из оригинала 18 февраля 2015 г.
- ^ «MSP430FR2000IPW16R Texas Instruments | Mouser» .
- ^ "CY8C4013SXI-400 Cypress Semiconductor | Mouser" . Маузер Электроникс . Проверено 11 июля 2018 г.
- ^ Исследователи UM создают самый маленький в мире «компьютер» , Мичиганский университет , 21 июня 2018 г.
- ^ Мичиганский университет превзошел IBM с самым маленьким «компьютером» в мире , CNET , 22 июня 2018 г.
- ^ IBM борется с фальшивомонетчиками с помощью самого маленького в мире компьютера , CNET , 19 марта 2018 г.
- ^ IBM создала компьютер размером с крупицу соли. Вот для чего это нужно. , Фортуна , 19.03.2018
- ^ Хит, Стив (2003). Проектирование встраиваемых систем . Серия ЭДН для инженеров-конструкторов (2-е изд.). Ньюнес. стр. 11–12 . ISBN 9780750655460 .
- ^ Дэвид Харрис и Сара Харрис (2012). Цифровой дизайн и компьютерная архитектура, второе издание , с. 515. Морган Кауфманн. ISBN 0123944244 .
- ^ «Простой способ создать проект микроконтроллера» . 14 января 2009 г.
- ^ Маццеи, Даниэле; Монтелискиани, Габриэле; Бальди, Джакомо; Фантони, Гуальтьеро (2015). «Изменение парадигмы программирования для встраиваемых систем в области Интернета вещей». 2-й Всемирный форум IEEE по Интернету вещей (WF-IoT) , 2015 г. Интернет вещей (WF-IoT), 2-й Всемирный форум IEEE 2015 г. Милан: IEEE. стр. 239–244. дои : 10.1109/WF-IoT.2015.7389059 . ISBN 978-1-5090-0366-2 .
- ^ Ян Аксельсон (1994). «8052-Базовые микроконтроллеры» .
- ^ Эдвардс, Роберт (1987). Оптимизация микроконтроллера Zilog Z8 Forth для быстрого прототипирования (PDF) (Технический отчет). Мартин Мариетта. п. 3. Архивировано из оригинала (PDF) 24 января 2023 года.
- ^ www.infineon.com/mcu