Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Умирает от Intel 8742, 8-разрядного микроконтроллера , который включает в себя центральный процессор , работающий на 12 МГц, 128 байт из ОЗУ , 2048 байт из ППЗА и ввод / вывод в одном чипе
Два микроконтроллера ATmega

Микроконтроллер ( MCU для микроконтроллера блока ) представляет собой небольшой компьютер на одном металл-оксид-полупроводник (МОП) интегральной схемы (ИС). Микроконтроллер содержит один или несколько процессоров ( ядер процессора ), а также память и программируемые периферийные устройства ввода / вывода . Программная память в виде сегнетоэлектрической RAM , NOR flash или OTP ROM также часто включается в микросхему, как и небольшой объем RAM . Микроконтроллеры предназначены для встраиваемыхприложения, в отличие от микропроцессоров, используемых в персональных компьютерах или других приложениях общего назначения, состоящих из различных дискретных микросхем.

В современной терминологии микроконтроллер похож на систему на кристалле (SoC) , но менее сложен. SoC может включать микроконтроллер в качестве одного из своих компонентов, но обычно интегрирует его с продвинутыми периферийными устройствами, такими как графический процессор (GPU), модуль Wi-Fi или один или несколько сопроцессоров . [1]

Микроконтроллеры используются в автоматически управляемых продуктах и ​​устройствах, таких как системы управления автомобильными двигателями, имплантируемые медицинские устройства, пульты дистанционного управления, офисная техника, бытовая техника, электроинструменты, игрушки и другие встроенные системы . Уменьшая размер и стоимость по сравнению с конструкцией, в которой используется отдельный микропроцессор , память и устройства ввода / вывода, микроконтроллеры делают более экономичным цифровое управление еще большим количеством устройств и процессов. Распространены микроконтроллеры смешанного сигнала , объединяющие аналоговые компоненты, необходимые для управления нецифровыми электронными системами. В контексте Интернета вещей микроконтроллеры являются экономичным и популярным средством сбора данных., воспринимая и приводя в действие физический мир как крайние устройства .

Некоторые микроконтроллеры могут использовать четырехбитные слова и работать на частотах до 4 кГц для низкого энергопотребления (однозначные милливатты или микроватты). Как правило , они имеют возможность сохранить функциональность в то время как в ожидании для события , такие как нажатие кнопки или другое прерывание ; энергопотребление во время сна (частота процессора и большинство периферийных устройств отключены) может составлять всего нановатт, что делает многие из них хорошо подходящими для приложений с длительным сроком службы батарей. Другие микроконтроллеры могут выполнять критически важные для производительности роли, где им может потребоваться действовать больше как процессор цифровых сигналов (DSP) с более высокими тактовыми частотами и потребляемой мощностью.

История [ править ]

Фон [ править ]

Происхождение микропроцессора и микроконтроллера можно проследить до изобретения MOSFET ( полевого транзистора металл-оксид-полупроводник), также известного как MOS-транзистор. [2] Он был изобретен Мохамедом М. Аталлой и Давоном Кангом в Bell Labs в 1959 году и впервые продемонстрирован в 1960 году. [3] В том же году Аталла предложил концепцию МОП-интегральной схемы , которая представляла собой изготовленный чип интегральной схемы. от полевых МОП-транзисторов. [4] К 1964 году MOS-чипы достигли более высокой плотности транзисторов.и более низкие производственные затраты, чем биполярные чипы. Микросхемы МОП усложнялись со скоростью, предсказанной законом Мура , что привело к крупномасштабной интеграции (БИС) с сотнями транзисторов на одном кристалле МОП к концу 1960-х годов. Применение микросхем MOS LSI в вычислениях послужило основой для первых микропроцессоров, поскольку инженеры начали понимать, что полный компьютерный процессор может содержаться в одном кристалле MOS LSI. [2]

Первые многочиповые микропроцессоры, Four-Phase Systems AL1 в 1969 г. и Garrett AiResearch MP944 в 1970 г., были разработаны с использованием нескольких микросхем MOS LSI. Первым однокристальным микропроцессором был Intel 4004 , выпущенный на одном кристалле MOS LSI в 1971 году. Он был разработан Федерико Фаггин с использованием своей технологии MOS с кремниевым затвором вместе с инженерами Intel Марсианом Хоффом и Стэном Мазором и инженером Busicom Масатоши Шима . [5] За ним последовал 4-битный Intel 4040 , 8-битный Intel 8008 и 8-битный Intel 8080 . Все эти процессоры требовали нескольких внешних микросхем для реализации рабочей системы, включая микросхемы памяти и периферийного интерфейса. В результате общая стоимость системы составила несколько сотен долларов (1970-е годы), что сделало невозможным экономичное компьютеризацию небольших бытовых приборов. Компания MOS Technology представила микропроцессоры стоимостью менее 100 долларов, 6501 и 6502 , с главной целью решения этого экономического препятствия, но эти микропроцессоры по-прежнему требовали внешней поддержки, памяти и периферийных микросхем, что позволило снизить общую стоимость системы до сотен долларов.

Развитие [ править ]

В одной книге инженеры TI Гэри Бун и Майкл Кокран приписывают успешное создание первого микроконтроллера в 1971 году. Результатом их работы стал TMS 1000 , который стал коммерчески доступным в 1974 году. Он сочетал в себе постоянную память, память для чтения / записи и процессор и часы на одном кристалле и предназначались для встраиваемых систем. [6]

В период с начала до середины 1970-х годов японские производители электроники начали производить микроконтроллеры для автомобилей, включая 4-битные микроконтроллеры для автомобильных развлечений , автоматические дворники, электронные замки и приборную панель, а также 8-битные микроконтроллеры для управления двигателем. [7]

Частично в ответ на существование однокристального TMS 1000 [8] Intel разработала компьютерную систему на микросхеме, оптимизированной для управляющих приложений, Intel 8048 , первые коммерческие части которой были отправлены в 1977 году. [8] Она объединила RAM и ROM. на одной микросхеме с микропроцессором. Среди множества приложений этот чип в конечном итоге нашел свое применение в более чем миллиардных клавиатурах ПК. В то время президент Intel Люк Валентер заявил, что микроконтроллер был одним из самых успешных продуктов в истории компании, и увеличил бюджет подразделения микроконтроллеров более чем на 25%.

Большинство микроконтроллеров в то время имели параллельные варианты. Один из них имел программную память EPROM с прозрачным кварцевым окном в крышке упаковки, чтобы его можно было стереть под воздействием ультрафиолетового света. Эти стираемые чипы часто использовались для создания прототипов. Другой вариант представлял собой ПЗУ с программированием по маске или ППЗУ.вариант, который можно было программировать только один раз. Для последних иногда использовалось обозначение OTP, что означает «одноразовый программируемый». В микроконтроллере OTP PROM обычно был того же типа, что и EPROM, но в корпусе микросхемы не было кварцевого окна; поскольку не было возможности подвергнуть EPROM воздействию ультрафиолетового света, его нельзя было стереть. Поскольку стираемые версии требовали керамических корпусов с кварцевыми окнами, они были значительно дороже, чем версии OTP, которые могли быть изготовлены в более дешевых непрозрачных пластиковых корпусах. Для стираемых вариантов требовался кварц вместо менее дорогого стекла из-за его прозрачности для ультрафиолетового света, для которого стекло в значительной степени непрозрачно, но основным отличием в стоимости был сам керамический корпус.

В 1993 году введение памяти EEPROM позволило микроконтроллерам (начиная с Microchip PIC16C84 ) [9] быстро электрически стирать без дорогостоящего пакета, необходимого для EPROM , что позволило как быстрое прототипирование, так и внутрисистемное программирование . (Технология EEPROM была доступна и раньше, [10] но более ранняя EEPROM была более дорогой и менее долговечной, что делало ее непригодной для недорогих микроконтроллеров массового производства.) В том же году Atmel представила первый микроконтроллер, использующий флэш-память. , специальный тип EEPROM. [11] Другие компании быстро последовали их примеру с обоими типами памяти.

В настоящее время микроконтроллеры дешевы и легко доступны для любителей, с большими онлайн-сообществами вокруг определенных процессоров.

Объем и стоимость [ править ]

В 2002 году около 55% всех проданных в мире процессоров составляли 8-разрядные микроконтроллеры и микропроцессоры. [12]

В 1997 году было продано более двух миллиардов 8-битных микроконтроллеров [13], и, по данным Semico, в 2006 году было продано более четырех миллиардов 8-битных микроконтроллеров. [14] Совсем недавно Semico заявила, что рынок микроконтроллеров вырос на 36,5% в 2010 году и 12% в 2011 году [15]

В типичном доме в развитой стране, вероятно, будет всего четыре микропроцессора общего назначения, но около трех десятков микроконтроллеров. Типичный автомобиль среднего класса имеет около 30 микроконтроллеров. Их также можно найти во многих электрических устройствах, таких как стиральные машины, микроволновые печи и телефоны.

Исторически сложилось так, что сегмент 8-битных микроконтроллеров доминировал на рынке микроконтроллеров [..]. 16-битные микроконтроллеры стали крупнейшей категорией микроконтроллеров в 2011 году, впервые обогнав 8-битные устройства [..] IC Insights полагает, что состав Рынок микроконтроллеров претерпит существенные изменения в следующие пять лет: 32-разрядные устройства будут постепенно увеличивать долю продаж и объемов продаж. К 2017 году ожидается, что на 32-битные микроконтроллеры будет приходиться 55% продаж микроконтроллеров [..] Что касается объемов, то ожидается, что 32-битные микроконтроллеры будут составлять 38% поставок микроконтроллеров в 2017 году, а 16-битные устройства будут представлять По прогнозам, 34% от общего числа, а 4- / 8-разрядные конструкции составят 28% проданных единиц в этом году.Ожидается, что рынок 32-битных микроконтроллеров будет быстро расти из-за растущего спроса на более высокие уровни точности во встроенных системах обработки и роста количества подключений через Интернет. [..] Ожидается, что в ближайшие несколько лет сложные 32-битные микроконтроллеры будут составлять более 25% вычислительной мощности транспортных средств.

-  IC Insights, рынок MCU по пути миграции на 32-разрядные устройства и устройства на базе ARM [16]

Стоимость изготовления может быть менее $ 0,10 за единицу.

Стоимость со временем резко упала: самые дешевые 8-разрядные микроконтроллеры были доступны по цене менее 0,03 доллара США в 2018 году [17], а некоторые 32-разрядные микроконтроллеры - около 1 доллара США за аналогичные количества.

В 2012 году после глобального кризиса - наихудшего годового спада продаж и восстановления и средней продажной цены в годовом исчислении на 17% - самого большого снижения с 1980-х годов - средняя цена микроконтроллера составила 0,88 доллара США (0,69 доллара США за 4 шт.). / 8-битный, 0,59 доллара для 16-битного, 1,76 доллара для 32-битного). [16]

В 2012 году мировые продажи 8-битных микроконтроллеров составили около 4 миллиардов долларов, в то время как 4-битные микроконтроллеры также продемонстрировали значительные продажи. [18]

В 2015 году 8-битные микроконтроллеры можно было купить за 0,311 доллара (1000 единиц) [19], 16-битные за 0,385 доллара (1000 единиц), [20] и 32-битные за 0,378 доллара (1000 единиц, но по 0,35 доллара за 5000). [21]

В 2018 году 8-битные микроконтроллеры можно купить за 0,03 доллара [17], 16-битные - за 0,393 доллара (1000 единиц, но по 0,563 доллара за 100 или 0,349 доллара за полную катушку из 2000), [22] и 32-битные за 0,503 доллара (1000 штук). единиц, но по 0,466 доллара за 5000). [23] Более дешевый 32-битный микроконтроллер, в единицах по одному, можно купить за 0,891 доллара. [24]

В 2018 году указанные выше недорогие микроконтроллеры 2015 года будут все дороже (с учетом инфляции, рассчитанной в период с 2018 по 2015 год для этих конкретных единиц): 8-битный микроконтроллер можно купить за 0,319 доллара (1000 единиц) или на 2,6% выше, [19] 16-битный за 0,464 доллара (1000 единиц) или на 21% больше, [20] и 32-битный за 0,503 доллара (1000 единиц, но по 0,466 доллара за 5000) или на 33% больше. [21]

ПИК 18F8720 микроконтроллер в 80-выводном TQFP корпусе

Самый маленький компьютер [ править ]

21 июня 2018 года Мичиганский университет объявил «самым маленьким компьютером в мире» . Устройство представляет собой «беспроводную сенсорную систему без батареи размером 0,04 мм3 16 нВт со встроенным процессором Cortex-M0 + и оптической связью для измерения температуры сотовой связи». Его размер со стороны составляет всего 0,3 мм, что меньше рисовой крупинки. [...] В дополнение к ОЗУ и фотоэлектрическим элементам , новые вычислительные устройства имеют процессоры и беспроводные передатчики и приемники . Поскольку они слишком малы, чтобы иметь обычные радиоантенны, они принимают и передают данные в видимом свете. Базовая станция обеспечивает свет для питания и программирования, и она принимает данные ». [25]Это устройство в 10 раз меньше размера компьютера IBM, который ранее заявлял о мировом рекордном размере по сравнению с мартом 2018 года [26], что «меньше крупинки соли» [27], имеет миллион транзисторов, стоит меньше 0,10 доллара США на производство и, в сочетании с технологией блокчейн , предназначены для логистики и «крипто-якорей» - приложений для цифровых отпечатков пальцев . [28]

Встроенный дизайн [ править ]

Микроконтроллер можно рассматривать как автономную систему с процессором, памятью и периферийными устройствами и использовать как встроенную систему . [29] Большинство микроконтроллеров, используемых сегодня, встроены в другое оборудование, такое как автомобили, телефоны, бытовые приборы и периферийные устройства для компьютерных систем.

Хотя некоторые встроенные системы очень сложны, многие из них имеют минимальные требования к памяти и длине программы, без операционной системы и с низкой сложностью программного обеспечения. Типичные устройства ввода и вывода включают переключатели, реле , соленоиды , светодиоды , небольшие или нестандартные жидкокристаллические дисплеи , радиочастотные устройства и датчики данных, таких как температура, влажность, уровень освещенности и т. Д. Встроенные системы обычно не имеют клавиатуры, экрана. , диски, принтеры или другие распознаваемые устройства ввода-вывода персонального компьютера и могут не иметь устройств взаимодействия с человеком любого типа.

Прерывания [ править ]

Микроконтроллеры должны в реальном времени (предсказуемо, но не обязательно быстро) реагировать на события во встроенной системе, которую они контролируют. Когда происходят определенные события, система прерываний может сигнализировать процессору о приостановке обработки текущей последовательности команд и начале процедуры обслуживания прерывания.(ISR, или «обработчик прерывания»), который будет выполнять любую необходимую обработку в зависимости от источника прерывания перед возвратом к исходной последовательности команд. Возможные источники прерывания зависят от устройства и часто включают в себя такие события, как переполнение внутреннего таймера, завершение аналого-цифрового преобразования, изменение логического уровня на входе, например, при нажатии кнопки, и данные, полученные по каналу связи. Там, где потребление энергии важно, как в аккумуляторных устройствах, прерывания могут также вывести микроконтроллер из состояния сна с низким энергопотреблением, когда процессор останавливается до тех пор, пока периферийное событие не потребует каких-либо действий.

Программы [ править ]

Обычно программы микроконтроллера должны умещаться в доступной внутренней памяти, поскольку было бы дорого обеспечить систему внешней расширяемой памятью. Компиляторы и ассемблеры используются для преобразования кодов как высокого уровня, так и ассемблера в компактный машинный код для хранения в памяти микроконтроллера. В зависимости от устройства, программная память может быть постоянной, доступной только для чтения, которая может быть запрограммирована только на заводе, или это может быть изменяемая на месте флэш - память или стираемая постоянная память.

Производители часто выпускают специальные версии своих микроконтроллеров, чтобы помочь при разработке аппаратного и программного обеспечения целевой системы. Первоначально они включали версии EPROM, которые имеют «окно» в верхней части устройства, через которое память программ может быть стерта ультрафиолетовым светом, готовые к перепрограммированию после программирования («прожига») и цикла тестирования. С 1998 года версии EPROM редки и были заменены EEPROM и flash, которые проще в использовании (можно стереть электронным способом) и дешевле в производстве.

Могут быть доступны другие версии, в которых доступ к ПЗУ осуществляется как к внешнему устройству, а не как к внутренней памяти, однако они становятся редкостью из-за широкой доступности дешевых программаторов микроконтроллеров.

Использование программируемых на месте устройств на микроконтроллере может позволить обновлять микропрограммное обеспечение на месте или допускать поздние заводские изменения продуктов, которые были собраны, но еще не отправлены. Программируемая память также сокращает время, необходимое для развертывания нового продукта.

Там, где требуются сотни тысяч идентичных устройств, использование деталей, запрограммированных во время производства, может быть экономичным. Эти " запрограммированные по маске " части имеют программу, заложенную таким же образом, как и логика микросхемы, в то же время.

Индивидуальный микроконтроллер включает в себя блок цифровой логики, который можно персонализировать для дополнительных возможностей обработки, периферийные устройства и интерфейсы , адаптированные к требованиям приложения. Одним из примеров является AT91CAP от Atmel .

Другие особенности микроконтроллера [ править ]

Микроконтроллеры обычно содержат от нескольких до десятков контактов ввода / вывода общего назначения (GPIO). Контакты GPIO программно конфигурируются либо для состояния ввода, либо для вывода. Когда контакты GPIO настроены на входное состояние, они часто используются для считывания датчиков или внешних сигналов. Настроенные на выходное состояние, выводы GPIO могут управлять внешними устройствами, такими как светодиоды или двигатели, часто косвенно, через внешнюю силовую электронику.

Многим встроенным системам необходимо считывать датчики, вырабатывающие аналоговые сигналы. Это предназначение аналого-цифрового преобразователя (АЦП). Поскольку процессоры созданы для интерпретации и обработки цифровых данных, то есть единиц и нулей, они не могут ничего делать с аналоговыми сигналами, которые могут быть посланы ему устройством. Таким образом, аналого-цифровой преобразователь используется для преобразования входящих данных в форму, которую может распознать процессор. Менее распространенной функцией некоторых микроконтроллеров является цифро-аналоговый преобразователь (ЦАП), который позволяет процессору выводить аналоговые сигналы или уровни напряжения.

Помимо преобразователей, многие встроенные микропроцессоры также включают в себя множество таймеров. Одним из наиболее распространенных типов таймеров является программируемый интервальный таймер (PIT). PIT может либо отсчитывать от некоторого значения до нуля, либо до емкости счетного регистра, переполняясь до нуля. Как только он достигает нуля, он отправляет прерывание процессору, показывая, что счет завершен. Это полезно для таких устройств, как термостаты, которые периодически проверяют температуру вокруг себя, чтобы узнать, нужно ли им включать кондиционер, обогреватель и т. Д.

Выделенный блок широтно-импульсной модуляции (ШИМ) позволяет ЦП управлять преобразователями мощности , резистивными нагрузками, двигателями и т. Д. Без использования большого количества ресурсов ЦП в жестких циклах таймера .

Универсальный / передатчик асинхронный приемопередатчик (УАПП) блок позволяет получить данные и передавать по последовательной линии с очень небольшим количеством нагрузки на CPU. Выделенное внутрикристальное оборудование также часто включает возможности для связи с другими устройствами (микросхемами) в цифровых форматах, таких как межинтегральная схема ( I²C ), последовательный периферийный интерфейс ( SPI ), универсальная последовательная шина ( USB ) и Ethernet . [30]

Высшая интеграция [ править ]

Die из PIC12C508 8-бит, полностью статические, ЭСППЗ / ПЗУ / ROM , основанное КМОП микроконтроллер производства Microchip Technology с использованием 1200 нанометрового процесса
Die из STM32F100C4T6B ARM Cortex-M 3 микроконтроллер с 16 килобайт флэш - памяти , 24  МГц центральный процессор (ЦП), управление двигателем и управление бытовой электроникой функции (ЦИК). Изготовлено STMicroelectronics .

Микроконтроллеры могут не реализовывать внешний адрес или шину данных, поскольку они объединяют ОЗУ и энергонезависимую память на том же чипе, что и ЦП. Используя меньшее количество контактов, микросхему можно поместить в гораздо меньший и более дешевый корпус.

Интеграция памяти и других периферийных устройств в один чип и их тестирование как единое целое увеличивает стоимость этого чипа, но часто приводит к снижению чистой стоимости встроенной системы в целом. Даже если стоимость ЦП со встроенными периферийными устройствами немного превышает стоимость ЦП и внешних периферийных устройств, меньшее количество микросхем обычно позволяет использовать меньшую и более дешевую печатную плату и сокращает трудозатраты, необходимые для сборки и тестирования печатной платы. в дополнение к стремлению снизить процент брака готовой сборки.

Микроконтроллер - это отдельная интегральная схема , обычно обладающая следующими характеристиками:

  • центральный процессор  - от небольших и простых 4-битных процессоров до сложных 32-битных или 64-битных процессоров
  • энергозависимая память ( RAM ) для хранения данных
  • ROM , EPROM , EEPROM или флэш-память для хранения программ и рабочих параметров
  • дискретные входные и выходные биты, позволяющие контролировать или обнаруживать логическое состояние отдельного вывода корпуса
  • последовательный ввод / вывод, например последовательные порты ( UART )
  • другие интерфейсы последовательной связи, такие как I²C , последовательный периферийный интерфейс и сеть контроллеров для системного взаимодействия
  • периферийные устройства, такие как таймеры , счетчики событий, генераторы ШИМ и сторожевой таймер
  • тактовый генератор  - часто генератор для кварцевого синхронизирующего кристалла, резонатора или RC-цепи
  • многие включают аналого-цифровые преобразователи, некоторые включают цифро-аналоговые преобразователи
  • внутрисхемное программирование и поддержка внутрисхемной отладки

Эта интеграция резко уменьшает количество микросхем, а также объем проводки и места на печатной плате , которые потребуются для создания эквивалентных систем с использованием отдельных микросхем. Кроме того, в частности, на устройствах с малым числом выводов каждый вывод может взаимодействовать с несколькими внутренними периферийными устройствами, при этом функция вывода выбирается программно. Это позволяет использовать деталь в более широком спектре приложений, чем если бы выводы имели специальные функции.

Микроконтроллеры оказались очень популярными во встроенных системах с момента их появления в 1970-х годах.

Некоторые микроконтроллеры используют гарвардскую архитектуру : отдельные шины памяти для инструкций и данных, позволяющие осуществлять доступ одновременно. Если используется гарвардская архитектура, командные слова для процессора могут иметь размер в битах, отличный от длины внутренней памяти и регистров; например: 12-битные инструкции, используемые с 8-битными регистрами данных.

Часто бывает трудно решить, какое периферийное устройство интегрировать. Поставщики микроконтроллеров часто жертвуют рабочими частотами и гибкостью системной конструкции в соответствии со сроками вывода на рынок со стороны своих клиентов и общей более низкой стоимостью системы. Производители должны найти баланс между минимизацией размера чипа и дополнительными функциями.

Архитектуры микроконтроллеров сильно различаются. Некоторые конструкции включают ядра микропроцессоров общего назначения с одной или несколькими функциями ПЗУ, ОЗУ или ввода-вывода, интегрированными в корпус. Другие конструкции специально созданы для приложений управления. Набор команд микроконтроллера обычно содержит множество инструкций, предназначенных для битовых манипуляций (побитовых операций), чтобы сделать управляющие программы более компактными. [31] Например, универсальному процессору может потребоваться несколько инструкций для проверки бита в регистре и перехода, если бит установлен, тогда как микроконтроллер может иметь одну инструкцию для обеспечения этой обычно необходимой функции.

Микроконтроллеры традиционно не имеют математического сопроцессора , поэтому арифметика с плавающей запятой выполняется программно. Однако некоторые недавние разработки действительно включают функции, оптимизированные для FPU и DSP. Примером может служить линия Microchip на базе PIC32 MIPS.

Среды программирования [ править ]

Первоначально микроконтроллеры были запрограммированы только на языке ассемблера , но сейчас также широко используются различные языки программирования высокого уровня , такие как C , Python и JavaScript , для целевых микроконтроллеров и встроенных систем . [32] Компиляторы для языков общего назначения обычно имеют некоторые ограничения, а также улучшения для лучшей поддержки уникальных характеристик микроконтроллеров. Некоторые микроконтроллеры имеют среды, помогающие разрабатывать определенные типы приложений. Поставщики микроконтроллеров часто предоставляют бесплатные инструменты, чтобы упростить внедрение их оборудования.

Для микроконтроллеров со специальным оборудованием могут потребоваться собственные нестандартные диалекты C, такие как SDCC для 8051 , которые не позволяют использовать стандартные инструменты (например, библиотеки кода или инструменты статического анализа) даже для кода, не связанного с аппаратными функциями. Интерпретаторы также могут содержать нестандартные функции, такие как MicroPython , хотя вилка CircuitPython стремилась переместить аппаратные зависимости в библиотеки и заставить язык придерживаться большего стандарта CPython .

Для некоторых микроконтроллеров также доступна прошивка интерпретатора. Например, BASIC на ранних микроконтроллерах Intel 8052 ; [33] BASIC и FORTH на Zilog Z8 [34], а также на некоторых современных устройствах. Обычно эти интерпретаторы поддерживают интерактивное программирование .

Для некоторых микроконтроллеров доступны симуляторы . Это позволяет разработчику анализировать, каким должно быть поведение микроконтроллера и его программы, если бы они использовали реальную часть. Тренажер покажет внутреннее состояние процессора , а также , что из выходов, а также позволяет входных сигналов , которые будут созданы. Хотя, с одной стороны, большинство симуляторов не могут имитировать много другого оборудования в системе, они могут выполнять условия, которые в противном случае может быть трудно воспроизвести по желанию в физической реализации, и могут быть самым быстрым способом отладки и анализа. проблемы.

Последние микроконтроллеры часто интегрируются со схемой отладки на кристалле, которая при доступе к внутрисхемному эмулятору (ICE) через JTAG позволяет отладить микропрограммное обеспечение с помощью отладчика . ICE в реальном времени может позволять просматривать и / или управлять внутренними состояниями во время работы. Трассирующий ICE может записывать выполненную программу и состояния MCU до / после точки запуска.

Типы [ править ]

По состоянию на 2008 год существует несколько десятков архитектур и производителей микроконтроллеров, включая:

  • Основные процессоры ARM (многие производители)
    • Ядра ARM Cortex-M специально предназначены для приложений микроконтроллеров.
  • Технология Microchip Atmel AVR (8-бит), AVR32 (32-бит) и AT91SAM (32-бит)
  • Ядро Cypress Semiconductor M8C, используемое в их 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 [35]
  • Максим Интегрированный MAX32600, MAX32620, MAX32625, MAX32630, MAX32650, MAX32640
  • MIPS
  • Microchip Technology PIC , (8-битный PIC16, PIC18, 16-битный dsPIC33 / PIC24), (32-битный PIC32)
  • NXP Semiconductors LPC1000, LPC2000, LPC3000, LPC4000 (32-разрядный), LPC900, LPC700 (8-разрядный)
  • Параллакс пропеллер
  • PowerPC ISE
  • Кролик 2000 (8-бит)
  • Renesas Electronics : 16-битный MCU RL78 ; 32-битный MCU RX ; SuperH ; 32-битный микроконтроллер V850 ; H8 ; 16-битный микроконтроллер R8C
  • 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 для хранения данных; и даже те, у которых их нет (или их недостаточно), часто подключаются к внешнему последовательному чипу EEPROM (например, BASIC Stamp ) или внешнему последовательному чипу флэш-памяти.

Некоторые микроконтроллеры, начиная с 2003 г., имеют «самопрограммируемую» флэш-память. [11]

Прошивка [ править ]

Самые ранние микроконтроллеры использовали ПЗУ по маске для хранения прошивки. Более поздние микроконтроллеры (такие как ранние версии Freescale 68HC11 и ранние микроконтроллеры PIC ) имели память EPROM , в которой использовалось полупрозрачное окно, позволяющее стирать с помощью УФ-излучения, в то время как производственные версии не имели такого окна, будучи OTP (одноразово-программируемым) . Обновления прошивки были эквивалентны замене самого микроконтроллера, поэтому многие продукты нельзя было обновить.

Motorola MC68HC805 [10] был первым микроконтроллером, использующим EEPROM для хранения прошивки. Микроконтроллеры EEPROM стали более популярными в 1993 году, когда Microchip представила PIC16C84 [9], а Atmel представила микроконтроллер с ядром 8051, который первым использовал флэш-память NOR для хранения прошивки. [11] Сегодняшние микроконтроллеры почти исключительно используют флэш-память, в некоторых моделях используется FRAM, а в некоторых сверхдорогих компонентах все еще используется OTP или Mask-ROM.

См. Также [ править ]

  • Список распространенных микроконтроллеров
  • Список микроконтроллеров Wi-Fi
  • Список проектов оборудования с открытым исходным кодом
  • Микроботика
  • Программируемый логический контроллер
  • Одноплатный микроконтроллер

Ссылки [ править ]

  1. ^ Миттал, Спарш. «Обзор оптимизированной реализации моделей глубокого обучения на платформе NVIDIA Jetson» . Журнал системной архитектуры . ISSN  1383-7621 .
  2. ^ a b Ширрифф, Кен (30 августа 2016 г.). «Удивительная история первых микропроцессоров» . IEEE Spectrum . Институт инженеров по электротехнике и радиоэлектронике . 53 (9): 48–54. DOI : 10.1109 / MSPEC.2016.7551353 . S2CID 32003640 . Дата обращения 13 октября 2019 . 
  3. ^ "1960: Металлооксидный полупроводниковый (МОП) транзистор продемонстрирован" . Кремниевый двигатель: хронология развития полупроводников в компьютерах . Музей истории компьютеров . Проверено 31 августа 2019 года .
  4. ^ Московиц, Сэнфорд Л. (2016). Передовые инновации в материалах: управление глобальными технологиями в 21 веке . Джон Вили и сыновья . С. 165–167. ISBN 9780470508923.
  5. ^ «1971: микропроцессор объединяет функцию процессора на одном чипе» . Кремниевый двигатель . Музей истории компьютеров . Проверено 22 июля 2019 .
  6. ^ Augarten, Stan (1983). Самый широко используемый компьютер на чипе: TMS 1000 . Состояние искусства: фотографическая история интегральной схемы . Нью-Хейвен и Нью-Йорк: Тикнор и Филдс. ISBN 978-0-89919-195-9. Проверено 23 декабря 2009 .
  7. ^ «Тенденции в полупроводниковой промышленности» . Японский музей истории полупроводников . Архивировано из оригинала на 2019-06-27 . Проверено 27 июня 2019 .
  8. ^ a b «Панель устной истории по разработке и продвижению микроконтроллера Intel 8048» (PDF) . Музей истории компьютеров Устная история, 2008 . п. 4 . Проверено 4 апреля 2016 .
  9. ^ a b «Зал славы чипов: микроконтроллер Microchip Technology PIC 16C84» . IEEE. 2017-06-30 . Проверено 16 сентября 2018 года .
  10. ^ a b Motorola. Дополнительная информация, 8-битные микрокомпьютеры MC68HC05B6, MC68HC05B4, MC68HC805B6, документ Motorola EADI0054RI . Motorola Ltd., 1988 г.
  11. ^ a b c "Самопрограммирующиеся микроконтроллеры Flash Atmel" (PDF) . 2012-01-24 . Проверено 25 октября 2008 . от Odd Jostein Svendsli 2003
  12. ^ Терли, Джим (2002). «Двухпроцентное решение» . Встроенный . Проверено 11 июля 2018 .
  13. Перейти ↑ Cantrell, Tom (1998). «Микрочип на марше» . Схема погреба . Архивировано из оригинала на 2007-09-27 . Проверено 11 июля 2018 .
  14. ^ "Semico Research" .
  15. ^ "Momentum переносит MCU в 2011 | Semico Research" . semico.com . Проверено 11 июля 2018 .
  16. ^ a b «Рынок MCU на пути миграции на 32-разрядные устройства и устройства на базе ARM» . 25 апреля 2013 г. Обычно требуется глобальная экономическая рецессия, чтобы расстроить разнообразный рынок микроконтроллеров, и это именно то, что произошло в 2009 году, когда бизнес микроконтроллеров пострадал от худшего за всю историю годового спада продаж на 22% до 11,1 млрд долларов.
  17. ^ a b «Действительно недорогие микроконтроллеры» . www.additude.se . Проверено 16 января 2019 .
  18. ^ Билл Джовино. «Зилог покупает линейку микроконтроллеров у Samsung» . 2013.
  19. ^ a b "EFM8BB10F2G-A-QFN20 Silicon Labs | Mouser" .
  20. ^ a b "MSP430G2001IPW14R Texas Instruments | Mouser" .
  21. ^ a b "CY8C4013SXI-400 Cypress Semiconductor | Mouser" . Mouser Electronics . Архивировано из оригинала на 2015-02-18.
  22. ^ "MSP430FR2000IPW16R Texas Instruments | Mouser" .
  23. ^ "CY8C4013SXI-400 Cypress Semiconductor | Mouser" . Mouser Electronics . Проверено 11 июля 2018 .
  24. ^ https://eu.mouser.com/ProductDetail/Silicon-Labs/EFM32ZG108F8-QFN24?qs=sGAEpiMZZMuI9neUTtPr75mJ%2fJmU8iJshd%2f59xMDhYo%3d
  25. ^ Исследователи UM создают самый маленький в мире «компьютер», Мичиганский университет , 2018-06-21
  26. ^ Мичиганский университет превосходит IBM с самым маленьким в мире «компьютером», CNET , 2018-06-22
  27. ^ IBM борется с фальшивомонетчиками с помощью самого маленького компьютера в мире , CNET , 2018-03-19
  28. ^ IBM построила компьютер размером с крупицу соли. Вот для чего это нужно. , Фортуна , 2018-03-19
  29. ^ Хит, Стив (2003). Проектирование встроенных систем . Серия ЭДН для инженеров-конструкторов (2-е изд.). Newnes. стр.  11 -12. ISBN 9780750655460.
  30. ^ Дэвид Харрис и Сара Харрис (2012). Цифровой дизайн и компьютерная архитектура, второе издание , стр. 515. Морган Кауфманн. ISBN 0123944244 . 
  31. ^ Простой способ создания проекта микроконтроллера
  32. ^ Маццеи, Даниэле; Монтелисиани, Габриэле; Бальди, Джакомо; Фантони, Гуальтьеро (2015). Изменение парадигмы программирования для встраиваемых в домене IoT . Интернет вещей (WF-IoT), 2-й Всемирный форум IEEE 2015 г. Милан: IEEE. С. 239–244. DOI : 10.1109 / WF-IoT.2015.7389059 .
  33. ^ "8052-Basic микроконтроллеры" Ян Аксельсон 1994
  34. ^ Эдвардс, Роберт (1987). «Оптимизация микроконтроллера Zilog Z8 Forth для быстрого прототипирования» (PDF) . Мартин Мариетта: 3 . Проверено 9 декабря 2012 года . Cite journal requires |journal= (help)
  35. ^ www.infineon.com/mcu

Внешние ссылки [ править ]

  • Микроконтроллер в Curlie