stringtranslate.com

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

Кристалл Intel 8742, 8-битного микроконтроллера, включающего в себя центральный процессор, работающий на частоте 12 МГц, 128 байт оперативной памяти , 2048 байт EPROM и ввод-вывод на одном чипе.
Два микроконтроллера ATmega

Микроконтроллер ( 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] Она объединила RAM и ROM на одном чипе с микропроцессором. Среди многочисленных приложений этот чип в конечном итоге нашел свое место в более чем миллиарде клавиатур ПК. В то время президент Intel, Люк Дж. Валентер, заявил, что микроконтроллер был одним из самых успешных продуктов в истории компании, и он увеличил бюджет подразделения микроконтроллеров более чем на 25%.

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

В 1993 году внедрение памяти EEPROM позволило микроконтроллерам (начиная с Microchip 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% продаж микроконтроллеров [..] С точки зрения объемов продаж ожидается, что 32-битные микроконтроллеры составят 38% поставок микроконтроллеров в 2017 году, в то время как 16-битные устройства составят 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]

Микроконтроллер PIC 18F8720 в 80- контактном корпусе TQFP

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

21 июня 2018 года Мичиганский университет объявил о создании «самого маленького компьютера в мире» . Устройство представляет собой «0,04  мм 3 Беспроводная и безбатарейная сенсорная система мощностью 16  нВт со встроенным процессором Cortex-M0+ и оптической связью для измерения температуры в ячейках. Она «измеряет только0,3 мм в сторону — по сравнению с рисовым зернышком — карликовые. [...] В дополнение к оперативной памяти и фотоэлектрическим элементам новые вычислительные устройства имеют процессоры и беспроводные передатчики и приемники . Поскольку они слишком малы, чтобы иметь обычные радиоантенны, они принимают и передают данные с помощью видимого света. Базовая станция обеспечивает свет для питания и программирования, и она получает данные». [20] Устройство составляет 110 размера ранее заявленного рекордного по размеру компьютера IBM, созданного несколько месяцев назад в марте 2018 года, [21] который «меньше крупинки соли», [22] имеет миллион транзисторов, стоит менее 0,10 доллара на производство и, в сочетании с технологией блокчейн , предназначено для логистики и «криптоякорей» — приложений с цифровыми отпечатками пальцев . [23]

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

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

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

Прерывания

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

Программы

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

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

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

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

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

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

Другие функции микроконтроллера

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

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

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

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

Универсальный асинхронный блок приемника/передатчика (UART) позволяет получать и передавать данные по последовательной линии с очень небольшой нагрузкой на ЦП. Выделенное аппаратное обеспечение на кристалле также часто включает возможности для связи с другими устройствами (чипами) в цифровых форматах, таких как Inter-Integrated Circuit ( I²C ), Serial Peripheral Interface ( SPI ), Universal Serial Bus ( USB ) и Ethernet . [25]

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

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

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

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

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

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

Микроконтроллеры оказались очень популярными во встраиваемых системах с момента их появления в 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 год насчитывалось несколько десятков архитектур микроконтроллеров и поставщиков, в том числе:

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

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

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

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

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

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

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

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

Данные

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

Помимо SRAM, некоторые микроконтроллеры также имеют внутреннюю EEPROM и/или NVRAM для хранения данных; а те, у которых ее нет (например, BASIC Stamp ) или у которых внутренней памяти недостаточно, часто подключаются к внешней микросхеме EEPROM или флэш-памяти.

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

Прошивка

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

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

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

Ссылки

  1. ^ "1971: Microprocessor Integrates CPU Function into a Single Chip". Кремниевый двигатель . Музей компьютерной истории . Получено 22 июля 2019 г.
  2. ^ Аугартен, Стэн (1983). "Самый широко используемый компьютер на чипе: TMS 1000". Состояние искусства: фотографическая история интегральной схемы . Нью-Хейвен и Нью-Йорк: Ticknor & Fields. ISBN 978-0-89919-195-9. Архивировано из оригинала 2010-02-17 . Получено 2009-12-23 .
  3. ^ "Тенденции в полупроводниковой промышленности". Музей истории полупроводников Японии . Архивировано из оригинала 2019-06-27 . Получено 2019-06-27 .
  4. ^ ab "Устная историческая панель по разработке и продвижению микроконтроллера Intel 8048" (PDF) . Устная история Музея компьютерной истории, 2008 . стр. 4 . Получено 2016-04-04 .
  5. ^ ab "Зал славы чипов: микроконтроллер PIC 16C84 от Microchip Technology". IEEE. 2017-06-30 . Получено 16 сентября 2018 г.
  6. ^ ab Motorola. Предварительная информация, 8-разрядные микрокомпьютеры MC68HC05B6, MC68HC05B4, MC68HC805B6, Документ Motorola EADI0054RI . Motorola Ltd., 1988.
  7. ^ abc Одд Йостейн Свендсли (2003). «Самопрограммируемые флэш-микроконтроллеры Atmel» (PDF) . Проверено 18 июня 2024 г.
  8. ^ Терли, Джим (2002). «Двухпроцентное решение». Встроено . Получено 2018-07-11 .
  9. ^ Кантрелл, Том (1998). «Микрочип на марше». Circuit Cellar . Архивировано из оригинала 2007-09-27 . Получено 2018-07-11 .
  10. ^ «Исследования Semico».
  11. ^ "Momentum Carries MCUs Into 2011 | Semico Research". semico.com . Получено 11 июля 2018 г.
  12. ^ ab "Рынок микроконтроллеров переходит на 32-битные устройства и устройства на базе ARM". 25 апреля 2013 г. Обычно для того, чтобы нарушить разнообразие рынка микроконтроллеров, требуется глобальная экономическая рецессия, и именно это произошло в 2009 г., когда бизнес микроконтроллеров пережил самый большой спад годовых продаж на 22% до 11,1 млрд долларов.
  13. ^ ab "The really low cost MCUs". www.additude.se . Архивировано из оригинала 2020-08-03 . Получено 2019-01-16 .
  14. Билл Джовино (7 июня 2013 г.). «Zilog покупает линейки микроконтроллеров у Samsung».
  15. ^ ab "EFM8BB10F2G-A-QFN20 Silicon Labs | Mouser".
  16. ^ ab "MSP430G2001IPW14R Texas Instruments | Mouser".
  17. ^ ab "CY8C4013SXI-400 Cypress Semiconductor | Mouser". Mouser Electronics . Архивировано из оригинала 2015-02-18.
  18. ^ "MSP430FR2000IPW16R Texas Instruments | Mouser".
  19. ^ "CY8C4013SXI-400 Cypress Semiconductor | Mouser". Mouser Electronics . Получено 2018-07-11 .
  20. ^ Исследователи Мичиганского университета создали самый маленький в мире «компьютер», Мичиганский университет , 2018-06-21
  21. ^ Мичиганский университет превзошел IBM, создав самый маленький в мире «компьютер», CNET , 2018-06-22
  22. ^ IBM борется с подделками с помощью самого маленького компьютера в мире, CNET , 2018-03-19
  23. ^ IBM построила компьютер размером с крупинку соли. Вот для чего он нужен., Fortune , 2018-03-19
  24. ^ Хит, Стив (2003). Проектирование встроенных систем . Серия EDN для инженеров-конструкторов (2-е изд.). Newnes. С. 11–12. ISBN 9780750655460.
  25. ^ Дэвид Харрис и Сара Харрис (2012). Цифровое проектирование и архитектура компьютеров, второе издание , стр. 515. Морган Кауфманн. ISBN 0123944244
  26. ^ "Простой способ построить проект микроконтроллера". 14 января 2009 г.
  27. ^ Mazzei, Daniele; Montelisciani, Gabriele; Baldi, Giacomo; Fantoni, Gualtiero (2015). «Изменение парадигмы программирования для встроенных систем в области IoT». 2015 IEEE 2-й всемирный форум по Интернету вещей (WF-IoT) . Интернет вещей (WF-IoT), 2015 IEEE 2-й всемирный форум по. Милан: IEEE. стр. 239–244. doi :10.1109/WF-IoT.2015.7389059. ISBN 978-1-5090-0366-2.
  28. ^ Ян Аксельсон (1994). «8052-Basic Microcontrollers».
  29. ^ Эдвардс, Роберт (1987). Оптимизация микроконтроллера Zilog Z8 Forth для быстрого прототипирования (PDF) (технический отчет). Мартин Мариетта. стр. 3. Архивировано из оригинала (PDF) 24 января 2023 г.
  30. ^ www.infineon.com/mcu

Внешние ссылки