Одноплатный микроконтроллер
Эта статья нуждается в дополнительных цитатах для проверки . ( июнь 2011 г. ) |
Одноплатный микроконтроллер — это микроконтроллер, построенный на одной печатной плате . Эта плата содержит все схемы, необходимые для полезной задачи управления: микропроцессор , схемы ввода-вывода , тактовый генератор , ОЗУ , хранимую память программ и все необходимые вспомогательные микросхемы . Цель состоит в том, чтобы плата сразу стала полезной для разработчика приложений, не требуя от него тратить время и усилия на разработку аппаратного обеспечения контроллера.
Поскольку одноплатные микроконтроллеры обычно недороги и требуют особенно низких капитальных затрат на разработку, они уже давно популярны в сфере образования. Они также являются популярным средством для разработчиков, позволяющим получить практический опыт работы с новым семейством процессоров .
Происхождение
[ редактировать ]Одноплатные микроконтроллеры появились в конце 1970-х годов, когда появление ранних микропроцессоров, таких как 6502 и Z80 , [1] сделало практичным создание всего контроллера на одной плате, а также позволило посвятить компьютер относительно незначительной задаче.
В марте 1976 года Intel анонсировала одноплатный компьютер, в котором были интегрированы все вспомогательные компоненты, необходимые для микропроцессора 8080 , а также 1 килобайт ОЗУ, 4 килобайта программируемого пользователем ПЗУ и 48 линий параллельного цифрового ввода-вывода с линейные драйверы. Плата также предлагала расширение через разъем шины, но ее можно было использовать без каркаса для карт расширения, когда приложения не требовали дополнительного оборудования. Разработка программного обеспечения для этой системы осуществлялась на базе Intellec MDS системы разработки микрокомпьютеров компании Intel; это обеспечивало поддержку ассемблера и PL/M , а также позволяло внутрисхемную эмуляцию для отладки. [2]
Процессоры той эпохи требовали наличия ряда вспомогательных микросхем вне процессора. ОЗУ и СППЗУ были отдельными, что часто требовало управления памятью или схемы обновления динамической памяти . Обработка ввода-вывода могла выполняться одним чипом, например 8255 , но часто требовалось еще несколько чипов.
Одноплатный микроконтроллер отличается от одноплатного компьютера тем, что в нем отсутствует универсальный пользовательский интерфейс и интерфейсы запоминающих устройств, которые есть у компьютера более общего назначения. По сравнению с платой разработки микропроцессора , плата микроконтроллера будет подчеркивать цифровые и аналоговые соединения управления с некоторой управляемой системой, тогда как плата разработки может иметь лишь несколько дискретных или аналоговых устройств ввода/вывода или вообще не иметь их. Плата разработки существует для демонстрации или обучения работе с каким-то конкретным семейством процессоров, и поэтому внутренняя реализация более важна, чем внешняя функция.
Внутренняя шина
[ редактировать ]Шина архитектуру ранних одноплатных устройств, таких как Z80 и 6502 , повсеместно имела фон Неймана . Доступ к памяти программ и данных осуществлялся через одну и ту же общую шину, хотя они хранились в принципиально разных типах памяти: ПЗУ для программ и ОЗУ для данных. Такая архитектура шины была необходима для экономии количества необходимых контактов из ограниченных 40, доступных для повсеместного двухлинейного пакета микросхем процессора.
Обычно доступ к внутренней шине предлагали через разъем расширения или, по крайней мере, оставляли место для припайки разъема. Это был недорогой вариант, предлагающий потенциал для расширения, даже если он использовался редко. Типичными расширениями являются устройства ввода-вывода или дополнительная память. Было необычно добавлять периферийные устройства, такие как ленточные или дисковые накопители или ЭЛТ-дисплей.
Позже, когда стали доступны однокристальные микроконтроллеры , такие как 8048 , шину больше не нужно было выставлять за пределы корпуса, поскольку вся необходимая память могла быть предоставлена внутри корпуса микросхемы. В этом поколении процессоров использовалась Гарвардская архитектура с отдельными шинами программ и данных, внутренними для чипа. Многие из этих процессоров использовали модифицированную Гарвардскую архитектуру , где был возможен некоторый доступ для записи в пространство данных программы, что позволяло осуществлять внутрисхемное программирование. Ни один из этих процессоров не требовал и не поддерживал Гарвардскую шину через одноплатный микроконтроллер. Когда они поддерживали шину для расширения периферийных устройств, выделенная шина ввода-вывода, такая как I²C , 1-Wire или различные последовательные шины использовалась .
Расширение внешней шины
[ редактировать ]Некоторые платы микроконтроллеров, использующие микропроцессор общего назначения, могут подводить адрес и шину данных процессора к разъему расширения, что позволяет добавлять дополнительную память или периферийные устройства. Это обеспечивает ресурсы, которых еще нет в одноплатной системе. Поскольку не каждая система требует расширения, разъем может быть дополнительным, с монтажным положением, предусмотренным для установки пользователем при желании.
Ввод и вывод
[ редактировать ]Системы микроконтроллера предоставляют несколько форм входных и выходных сигналов, что позволяет прикладному программному обеспечению управлять внешней «реальной» системой. Дискретный цифровой ввод-вывод обеспечивает один бит данных (включен или выключен). Аналоговые сигналы, представляющие непрерывный диапазон переменных, например температуру или давление, также могут быть входами и выходами микроконтроллеров.
Дискретные цифровые входы и выходы могут быть буферизованы от шины данных микропроцессора только с помощью адресной защелки или могут управляться специализированной ИС ввода-вывода, такой как Intel 8255 или Motorola 6821 адаптер параллельного ввода-вывода . Более поздние однокристальные микроконтроллеры имеют входные и выходные контакты. Эти входные/выходные цепи обычно не обеспечивают достаточный ток для прямого управления такими устройствами, как лампы или двигатели, поэтому твердотельные реле управляются цифровыми выходами микроконтроллера, а входы изолируются схемами преобразования уровня сигнала и защиты.
один или несколько аналоговых входов с аналоговым мультиплексором и общим аналого-цифровым преобразователем На некоторых платах микроконтроллеров имеется . Аналоговые выходы могут использовать цифро-аналоговый преобразователь или, на некоторых микроконтроллерах, могут управляться с помощью широтно-импульсной модуляции . Для дискретных входов могут потребоваться внешние схемы для масштабирования входов или обеспечения таких функций, как мостовое возбуждение или компенсация холодного спая .
Чтобы контролировать затраты на компоненты, многие платы были спроектированы с дополнительными схемами аппаратного интерфейса, но без установленных компонентов для этих схем, в результате чего плата оставалась пустой. Схема была добавлена в качестве опции при доставке или могла быть заполнена позже.
Обычно платы включают в себя «области прототипирования», области платы, расположенные в виде области паяемого макета с доступными шинами и шинами питания, но без определенной схемы. многократного использования Некоторые контроллеры, особенно предназначенные для обучения, также включают в себя съемную макетную плату , позволяющую легко создавать прототипы дополнительных схем ввода-вывода, которые можно изменить или удалить для последующих проектов.
Коммуникации и пользовательские интерфейсы
[ редактировать ]Коммуникационные интерфейсы различаются в зависимости от возраста микроконтроллерной системы. Ранние системы могли реализовать последовательный порт для обеспечения RS-232 или токового контура . Последовательный порт может использоваться прикладной программой или вместе с ПЗУ монитора для передачи программ в память микроконтроллера. Современные микроконтроллеры могут поддерживать USB , беспроводные сети ( Wi-Fi , Zigbee и другие) или обеспечивать соединение Ethernet. Кроме того, они могут поддерживать стек протоколов TCP/IP . Некоторые устройства имеют встроенное ПО для реализации веб-сервера, что позволяет разработчику приложений быстро создать инструмент или систему с поддержкой Интернета.
Программирование
[ редактировать ]Многие ранние системы не имели внутренних средств для программирования и для этой задачи полагались на отдельную «хостовую» систему. Это программирование обычно выполнялось на языке ассемблера , а иногда и на C или PL/M , а затем кросс-ассемблировалось или кросс-компилировалось на хосте. Некоторые одноплатные микроконтроллеры поддерживают систему языка BASIC, что позволяет разрабатывать программы на целевом оборудовании. Хостинговая разработка позволяет использовать всю память и периферийные устройства настольного компьютера, обеспечивая более мощную среду разработки.
Запись EPROM
[ редактировать ]Ранние микроконтроллеры использовали стираемую программируемую постоянную память (EPROM) для хранения прикладной программы. Объектный код хост-системы будет «записан» в EPROM с помощью программатора EPROM . [3] Затем эта EPROM была физически подключена к плате. Поскольку во время разработки программы EPROM много раз удаляли и заменяли, ZIF во избежание износа или повреждения обычно предусматривалось гнездо . Стирание EPROM с помощью УФ- ластика занимает значительное время, поэтому разработчик часто имел в обращении несколько EPROM одновременно.
Некоторые микроконтроллеры были доступны со встроенной СППЗУ. Их также можно было бы запрограммировать в отдельном записывающем устройстве, а затем вставить в разъем целевой системы.
Использование сокетов EPROM позволило обновлять прикладную программу на местах либо для исправления ошибок, либо для предоставления обновленных функций.
Клавиатурные мониторы
[ редактировать ]Когда одноплатный контроллер формировал всю среду разработки (обычно в сфере образования), плата также могла включать в себя простую шестнадцатеричную клавиатуру, светодиодный дисплей в стиле калькулятора и программу «монитора», постоянно установленную в ПЗУ. Этот монитор позволял машинного кода вводить программы непосредственно через клавиатуру и хранить их в оперативной памяти. Эти программы были написаны на машинном коде, а не на языке ассемблера, и перед вводом их часто собирали вручную на бумаге. Можно спорить о том, какой процесс был более трудоемким и подвержен ошибкам: сборка вручную или побайтовое кодирование.
Одноплатные микроконтроллеры этого типа с клавиатурой и калькулятором были очень похожи на некоторые бюджетные микрокомпьютеры того времени, такие как KIM-1 или I. Microprofessor [4] Некоторые из этих микропроцессорных «тренажёрных» систем до сих пор производятся и используются в качестве очень недорогого внедрения в микропроцессоры на уровне аппаратного программирования. [5]
Хостинговая разработка
[ редактировать ]Когда появились настольные персональные компьютеры, первоначально CP/M или Apple II , а затем IBM PC и совместимые компьютеры, произошел переход к размещенной разработке. Аппаратное обеспечение стало дешевле, а объем оперативной памяти увеличился настолько, что можно было загружать программу через последовательный порт и хранить ее в оперативной памяти. Такое значительное сокращение времени цикла тестирования новой версии программы привело к столь же значительному увеличению скорости разработки.
Эта программная память все еще была энергозависимой и могла быть потеряна в случае отключения питания. Флэш-память еще не была доступна по приемлемой цене. Поскольку завершенный проект контроллера обычно должен был быть энергонезависимым, последним шагом в проекте часто было его запись в EPROM.
Однокристальные микроконтроллеры
[ редактировать ]Однокристальные микроконтроллеры, такие как Intel 8748 , объединили многие функции предыдущих плат в едином корпусе микросхемы. Однокристальные микроконтроллеры объединяют память (как ОЗУ, так и ПЗУ) в корпусе и, следовательно, не требуют доступа к шине данных и адреса через контакты корпуса микросхемы. Эти контакты затем доступны для линий ввода-вывода. Эти изменения также уменьшают требуемую площадь печатной платы и упрощают конструкцию одноплатного микроконтроллера. Примеры однокристальных микроконтроллеров включают:
Память программ
[ редактировать ]Для производственного использования в качестве встроенных систем встроенное ПЗУ либо программировалось по маске на заводе-изготовителе микросхем, либо однократно программировалось (OTP) разработчиком как PROM . В PROM часто использовалась та же технология UV EPROM для чипа, но в более дешевом корпусе без прозрачного стирающего окна. Во время разработки программы все равно приходилось записывать EPROM. вся микросхема контроллера и, следовательно, разъемы ZIF В этом случае будет предоставлена .
С развитием доступной EEPROM и флэш-памяти стало практичным постоянно прикреплять контроллер к плате и загружать программный код с главного компьютера через последовательное соединение. Это называлось « внутрисхемным программированием ». Стирание старых программ осуществлялось либо путем их перезаписи новой загрузкой, либо массового стирания их электрическим способом (для EEPROM ). Последний метод был медленнее, но его можно было осуществить на месте.
Основная функция платы контроллера заключалась в том, чтобы нести схемы поддержки этого последовательного или, на более поздних платах, USB интерфейса . Для дополнительного удобства во время разработки многие платы также имели недорогие функции, такие как светодиодные мониторы линий ввода-вывода или переключатели сброса, установленные на плате.
Одноплатные микроконтроллеры сегодня
[ редактировать ]Теперь проектировать печатные платы для микроконтроллеров стало дешево и просто. Хост-системы для разработки также дешевы, особенно при использовании программного обеспечения с открытым исходным кодом . Языки программирования более высокого уровня абстрагируют детали аппаратного обеспечения, делая различия между конкретными процессорами менее очевидными для прикладного программиста. Перезаписываемая флэш-память заменила медленные циклы программирования, по крайней мере, во время разработки программ. Соответственно, почти все разработки сейчас основаны на кросс-компиляции с персональных компьютеров, и программы загружаются на плату контроллера через последовательный интерфейс, обычно предстающий хосту как USB-устройство.
Первоначальный рыночный спрос на упрощенную реализацию платы больше не актуален для микроконтроллеров. Одноплатные микроконтроллеры по-прежнему важны, но их акцент сместился на:
- Легкодоступные платформы, ориентированные на традиционно «непрограммистские» группы, такие как художники, дизайнеры, любители и другие лица, заинтересованные в создании интерактивных объектов или сред. [6] Некоторые типичные проекты 2011 года включали в себя: резервное управление сценическим освещением и спецэффектами DMX, управление несколькими камерами, автономные боевые роботы, управление проектами Bluetooth с компьютера или смартфона, [7] Светодиоды и мультиплексирование, дисплеи, звук, двигатели, механика и управление питанием. [8] Эти контроллеры могут быть встроены в проект физических вычислений . Популярным выбором для этой работы является Arduino , [9] Двенго [7] [10] или проводка . [11] [12]
- Платы для демонстрации технологий для инновационных процессоров или периферийных функций:
См. также
[ редактировать ]- Сравнение одноплатных микроконтроллеров
- Плата разработки микропроцессора
- Встроенная система
- Программируемый логический контроллер
- Ардуино
- Сделать комплект контроллера
- КИРКА
- БАЗОВАЯ марка
- Малиновый Пи
- Asus Тинкер Совет
- Тинкерфордж
Ссылки
[ редактировать ]- ^ Питер Григсон; Дэвид Харрис (август – октябрь 1983 г.). « Марвин — управляющий компьютер Z80». Электроника сегодня Интернэшнл .
- ^ Брошюра об одноплатном компьютере Intel SBC 80/10 , 1976 г.
- ^ Майк Бедфорд (август – сентябрь 1983 г.). «Универсальный программатор EPROM». Electronics Today International : 45–51, 37–39.
- ^ «КИМ 1» . Старый компьютер.com .
{{cite web}}
: Внешняя ссылка в
( помощь )|publisher=
- ^ «Система подготовки микропрофессоров» . Флайт Электроникс Интернэшнл. Архивировано из оригинала 9 мая 2008 года.
- ^ Домашняя страница Arduino
- ^ Jump up to: а б «Главная страница проекта» . Двенго .
{{cite web}}
: Внешняя ссылка в
( помощь )|publisher=
- ^ Arduino Форум пользователей
- ^ «Главная страница проекта» . Проект Ардуино .
{{cite web}}
: Внешняя ссылка в
( помощь )|publisher=
- ^ Тимоти Л. Уорнер. «Взлом Raspberry Pi» . 2013. п. 12.
- ^ платформы разработки Wiring на Wiring.org. Домашняя страница
- ^ «Электропроводка: Аппаратное обеспечение» . Проект электропроводки .
{{cite web}}
: Внешняя ссылка в
( помощь )|publisher=