Микроконтроллер - Microcontroller

В умереть из Intel 8742, 8-битный микроконтроллер, который включает ЦПУ работает на 12 МГц, 128 байт из баран, 2048 байт из EPROM, и Ввод / вывод в том же чипе
Два микроконтроллера ATmega

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

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

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

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

История

Фон

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

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

Разработка

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

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

Частично в ответ на существование однокристального TMS 1000,[8] Intel разработала компьютерную систему на чипе, оптимизированном для приложений управления, Intel 8048, первые коммерческие части отгружены в 1977 году.[8] Он объединил баран и ПЗУ на одной микросхеме с микропроцессором. Среди множества приложений этот чип в конечном итоге нашел свое применение в более чем миллиардных клавиатурах ПК. В то время президент 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 нВт со встроенным Кортекс-М0 + процессор и оптическая связь для измерения температуры в клетках. Его размер составляет всего 0,3 мм в сторону, что меньше рисового зерна. [...] В дополнение к ОЗУ и фотогальваника, новые вычислительные устройства имеют процессоры и беспроводные передатчики и приемники. Поскольку они слишком малы, чтобы иметь обычные радиоантенны, они принимают и передают данные в видимом свете. Базовая станция обеспечивает свет для питания и программирования, и она принимает данные ».[25] Это устройство в 10 раз меньше размера компьютера IBM с мировым рекордом, о котором заявляла ранее, по сравнению с мартом 2018 года.[26] который «меньше крупинки соли»,[27] имеет миллион транзисторов, стоимость производства менее $ 0,10 и, вместе с блокчейн технология, предназначена для логистики и «крипто-якоря» -цифровой отпечаток пальца Приложения.[28]

Встроенный дизайн

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

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

Прерывания

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

Программы

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

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

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

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

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

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

Другие особенности микроконтроллера

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

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

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

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

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

Более высокая интеграция

Умереть 8-битного PIC12C508, полностью статический, EEPROM /EPROM /ПЗУ -основан CMOS микроконтроллер производства Технология микрочипов используя 1200 нанометр процесс

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

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

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

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

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

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

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

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

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

Среда программирования

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

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

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

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

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

Типы

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

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

Задержка прерывания

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

Когда электронное устройство вызывает прерывание, во время переключатель контекста промежуточные результаты (регистры) должны быть сохранены до запуска программного обеспечения, отвечающего за обработку прерывания. Их тоже нужно восстановить после этого обработчик прерывания закончен. Если есть еще регистры процессора, этот процесс сохранения и восстановления может занять больше времени, увеличивая задержку. (Если ISR не требует использования некоторых регистров, она может просто оставить их в покое, а не сохранять и восстанавливать их, так что в этом случае эти регистры не связаны с задержкой.) Способы уменьшения такой задержки контекста / восстановления включают в себя наличие относительно небольшое количество регистров в их центральных процессорах (нежелательно, потому что это существенно замедляет большую часть обработки без прерывания), или, по крайней мере, аппаратное обеспечение не сохраняет их все (это не удается, если программное обеспечение затем должно компенсировать, сохраняя остальные "вручную") . Другой метод включает использование кремниевых вентилей в «теневых регистрах»: один или несколько дублирующих регистров, используемых только программным обеспечением прерывания, возможно, с поддержкой выделенного стека.

Другие факторы, влияющие на задержку прерывания, включают:

  • Циклы, необходимые для выполнения текущих операций ЦП. Чтобы минимизировать эти затраты, микроконтроллеры, как правило, имеют короткие конвейеры (часто три инструкции или меньше), небольшие буферы записи и гарантируют, что более длинные инструкции можно продолжить или перезапустить. RISC Принципы проектирования гарантируют, что большинство инструкций занимают одинаковое количество циклов, помогая избежать большей части такой логики продолжения / перезапуска.
  • Длина любого критическая секция это нужно прервать. Вход в критический раздел ограничивает одновременный доступ к структуре данных. Когда к структуре данных должен получить доступ обработчик прерывания, критическая секция должна заблокировать это прерывание. Соответственно, задержка прерывания увеличивается на время, на которое прерывание блокируется. Когда существуют жесткие внешние ограничения на задержку системы, разработчикам часто требуются инструменты для измерения задержек прерываний и отслеживания того, какие критические разделы вызывают замедление.
    • Один общий метод просто блокирует все прерывания на время критического участка. Это легко реализовать, но иногда критические разделы становятся слишком длинными.
    • Более сложный метод просто блокирует прерывания, которые могут инициировать доступ к этой структуре данных. Это часто основано на приоритетах прерываний, которые, как правило, не соответствуют соответствующим структурам данных системы. Соответственно, этот метод используется в основном в очень стесненных условиях.
    • Процессоры могут иметь аппаратную поддержку некоторых критических секций. Примеры включают поддержку атомарного доступа к битам или байтам в слове или другие примитивы атомарного доступа, такие как LDREX / STREX примитивы исключительного доступа, представленные в ARMv6 архитектура.
  • Прервать вложение. Некоторые микроконтроллеры позволяют прерываниям с более высоким приоритетом прерывать прерывания с более низким приоритетом. Это позволяет программному обеспечению управлять задержкой, давая критичным по времени прерываниям более высокий приоритет (и, следовательно, более низкую и более предсказуемую задержку), чем менее критическим.
  • Скорость срабатывания. Когда прерывания возникают последовательно, микроконтроллеры могут избежать дополнительного цикла сохранения / восстановления контекста с помощью формы хвостовой зов оптимизация.

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

Технология памяти

В микроконтроллерах обычно используются два разных типа памяти: энергонезависимая память для хранения микропрограмм и память чтения-записи для временных данных.

Данные

От самых ранних микроконтроллеров до сегодняшнего дня шеститранзисторная SRAM почти всегда используется в качестве рабочей памяти для чтения / записи, а в памяти используется еще несколько транзисторов на бит. зарегистрировать файл.

В дополнение к SRAM некоторые микроконтроллеры также имеют внутреннюю EEPROM для хранения данных; и даже те, у которых их нет (или их недостаточно), часто подключаются к внешнему последовательному чипу EEPROM (например, БАЗОВЫЙ штамп ) или микросхему внешней последовательной флэш-памяти.

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

Прошивка

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

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

Смотрите также

Рекомендации

  1. ^ Миттал, Спарш. «Обзор оптимизированной реализации моделей глубокого обучения на платформе NVIDIA Jetson». Журнал системной архитектуры. ISSN  1383-7621.
  2. ^ а б Ширрифф, Кен (30 августа 2016 г.). «Удивительная история первых микропроцессоров». IEEE Spectrum. Институт инженеров по электротехнике и электронике. 53 (9): 48–54. Дои: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. ^ Аугартен, Стэн (1983). Самый широко используемый компьютер на чипе: TMS 1000. Состояние дел: фотографическая история интегральной схемы. Нью-Хейвен и Нью-Йорк: Тикнор и Филдс. ISBN  978-0-89919-195-9. Получено 2009-12-23.
  7. ^ «Тенденции в полупроводниковой промышленности». Японский музей истории полупроводников. Архивировано из оригинал на 2019-06-27. Получено 2019-06-27.
  8. ^ а б «Панель устной истории по разработке и продвижению микроконтроллера Intel 8048» (PDF). Музей истории компьютеров Устная история, 2008 г.. п. 4. Получено 2016-04-04.
  9. ^ а б "Зал славы микросхем: микроконтроллер Microchip Technology PIC 16C84". IEEE. 2017-06-30. Получено 16 сентября, 2018.
  10. ^ а б Motorola. Дополнительная информация, 8-разрядные микрокомпьютеры MC68HC05B6, MC68HC05B4, MC68HC805B6, документ Motorola EADI0054RI. Motorola Ltd., 1988 г.
  11. ^ а б c "Самопрограммируемые флэш-микроконтроллеры Atmel" (PDF). 2012-01-24. Получено 2008-10-25. от Odd Jostein Svendsli 2003
  12. ^ Терли, Джим (2002). «Двухпроцентное решение». Встроенный. Получено 2018-07-11.
  13. ^ Кантрелл, Том (1998). «Микрочип на марше». Цепной погреб. Архивировано из оригинал на 2007-09-27. Получено 2018-07-11.
  14. ^ "Semico Research".
  15. ^ "Momentum переносит MCU в 2011 | Semico Research". semico.com. Получено 2018-07-11.
  16. ^ а б «Рынок MCU на пути перехода на 32-разрядные устройства и устройства на базе ARM». 25 апреля 2013 г. Обычно требуется глобальная экономическая рецессия, чтобы расстроить разнообразный рынок микроконтроллеров, и это именно то, что произошло в 2009 году, когда бизнес микроконтроллеров перенес самый худший годовой спад продаж на 22% до 11,1 млрд долларов.
  17. ^ а б «Действительно недорогие микроконтроллеры». www.additude.se. Получено 2019-01-16.
  18. ^ Билл Джовино.«Zilog покупает линейку микроконтроллеров у Samsung».2013.
  19. ^ а б "EFM8BB10F2G-A-QFN20 Silicon Labs | Mouser".
  20. ^ а б "MSP430G2001IPW14R Texas Instruments | Mouser".
  21. ^ а б "CY8C4013SXI-400 Cypress Semiconductor | Mouser". Mouser Electronics. Архивировано из оригинал на 18.02.2015.
  22. ^ "MSP430FR2000IPW16R Texas Instruments | Mouser".
  23. ^ "CY8C4013SXI-400 Cypress Semiconductor | Mouser". Mouser Electronics. Получено 2018-07-11.
  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. Дои:10.1109 / WF-IoT.2015.7389059.
  33. ^ «Микроконтроллеры 8052-Basic» Ян Аксельсон, 1994
  34. ^ Эдвардс, Роберт (1987). «Оптимизация микроконтроллера Zilog Z8 Forth для быстрого прототипирования» (PDF). Мартин Мариетта: 3. Получено 9 декабря 2012. Цитировать журнал требует | журнал = (помощь)
  35. ^ www.infineon.com/mcu

внешняя ссылка