ВВЕДЕНИЕ
Пожалуй, именно выбор микроконтроллера является одним из самых важных решений, от которых зависит успех или провал задуманного проекта. При выборе микроконтроллера необходимо учесть и оценить большое количество факторов. За основу последовательности продуманных действий, приводящих к окончательному решению, может быть принят рассматриваемый в данной статье план. Объединив свои собственные знания и требования с информацией, представленной в данной статье, читатель должен оценить все в целом, чтобы принять правильное решение.
НАЗНАЧЕНИЕ
Основная цель выбрать наименее дорогой микроконтроллер (чтобы снизить общую стоимость системы), но в то же время удовлетворяющий спецификации системы, т.е. требованиям по производительности, надежности, условиям применения и т.д. Общая стоимость системы включает все: инженерные исследования и разработку, производство (комплектующие и труд), гарантийный ремонт, дальнейшее усовершенствование, обслуживание, совместимость, простоту в обращении и т.д.
ПРОЦЕСС ВЫБОРА
Приступая к выбору, разработчик должен вначале задаться вопросом: “Что должен делать микроконтроллер в моей системе?” Ответ на этот простой вопрос определяет требуемые для разрабатываемой системы характеристики микроконтроллера и, таким образом, является определяющим фактором в процессе выбора.
Второй шаг проведение поиска микроконтроллеров, которые удовлетворяют всем системным требованиям. Он обычно включает подбор литературы, технических описаний и технических журналов, а также консультации. В настоящее время стала вполне доступной информация о предлагаемых как традиционных, являющихся промышленным стандартом микроконтроллерах, так и новейших микроконтроллерах. Хорошо, если системным требованиям будет удовлетворять хорошо знакомый микроконтроллер, в противном случае должен быть проведен вторичный поиск, чтобы найти микроконтроллер, который наиболее полно удовлетворяет предъявляемые требования, имеет минимум внешних навесных компонентов и подходит по стоимости и габаритам. Ясно, что однокристальный микроконтроллер предпочтительней изза цены и надежности.
Последняя стадия выбора состоит из нескольких этапов, цель которых сузить список приемлемых микроконтроллеров до одного. Эти этапы включают в себя анализ цены, доступности, средств разработки, поддержки производителя, стабильности производства конкретных микроконтроллеров и наличия других производителей или поставщиков. Чтобы прийти к оптимальному решению, возможно, весь процесс придется повторить несколько раз.
КРИТЕРИИ ВЫБОРА
Основные критерии выбора микроконтроллера представлены ниже в порядке значимости. Каждый критерий детально объясняется в дальнейшем.
- Пригодность для прикладной системы. Может ли она быть сделана на однокристальном микроконтроллере или ее можно реализовать на основе какой либо специализированной микросхемы?
- Имеет ли микроконтроллер требуемое число контактов/портов ввода/ вывода, т.к. в случае их недостатка он не сможет выполнить работу, а в случае избытка цена будет слишком высокой?
- Имеет ли он все требуемые периферийные устройства, такие как последовательные порты ввода/вывода, RAM, ROM, A/D, D/A и т.д.?
- Имеет ли он другие периферийные устройства, которые не потребуются в системе?
- Обеспечивает ли ядро процессора необходимую производительность, т.е. вычислительную мощность, позволяющую обрабатывать системные запросы в течение всей жизни системы на выбранном прикладном языке? Слишком много расточительно, слишком мало не будет работать.
- Выделено ли в бюджете проекта достаточно средств, чтобы позволить себе использовать данный микроконтроллер. Для ответа на этот вопрос, обычно требуются расценки поставщика. Если данный микроконтроллер не приемлем для проекта, все остальные вопросы становятся несущественными, и вы должны начать поиски другого микроконтроллера.
- Доступность.
- Существует ли устройство в достаточных количествах?
- Производится ли оно сейчас?
- Что ожидается в будущем?
- Поддержка разработчика.
- Ассемблеры.
- Компиляторы.
- Средства отладки.
- Оценочный модуль (EVM).
- Внутрисхемные эмуляторы.
- Насадки для логических анализаторов.
- Отладочные мониторы.
- Отладчики программ в исходных текстах.
- Информационная поддержка
- Примеры применения.
- Сообщения об ошибках.
- Утилиты, в том числе “бесплатные” ассемблеры.
- Примеры исходных текстов.
- Поддержка применений у поставщика.
- Есть ли специальная группа, которая занимается только поддержкой применений?
- Есть ли инженеры, техники или продавцы?
- Насколько квалифицирован поддерживающий персонал, действительно ли он заинтересован в помощи вам при решении вашей проблемы?
- Существует ли телефонная и/ или FAXовая связь?
- Надежность фирмы производителя.
- Компетентность, подтвержденная разработками.
- Надежность производства, т.е. качество продукции.
- Время работы в этой области.
СИСТЕМНЫЕ ТРЕБОВАНИЯ
Проведение системного анализа вашего проекта позволит определить и требования к микроконтроллеру. Какие требуются периферийные устройства? Применяются ли битовые операции или только числовые? Сколько требуется манипуляций для обработки данных? Должна ли система управляться по прерываниям, по готовности или по командам человека? Каким количеством устройств (битов ввода/вывода) необходимо управлять? Какие устройства из числа многих возможных типов I/O устройств должны контролироваться управляться: терминалы, выключатели, реле, клавиши, сенсоры (температура, свет, напряжение и т.д.), звуковые устройства, визуальные индикаторы (LCDдисплеи, LED), аналогоцифровые (A/D), цифроаналоговые (D/A) преобразователи? Одно или несколько напряжений питания требуется для системы? Насколько отказоустойчив источник питания? Будет ли работать устройство при напряжении вашей сети питания? Должны ли напряжения удерживаться в узком фиксированном диапазоне изменений, или же система может работать при большой нестабильности? Какой рабочий ток? Изделие должно работать от сети или от батарей? Если от батарей, должны ли использоваться перезаряжаемые батареи и если это так, то каково время работы без перезарядки, и какое для нее требуется время? Существуют ли ограничения по размеру, весу, эстетическим параметрам, таким как форма и/или цвет? Существуют ли какиелибо специфические требования к условиям окружающей среды, таким как военные условия, температура, влажность, атмосфера (взрывоопасная, коррозийная и т.д.), давление/ высота? Пользовательское программное обеспечение должно базироваться на дисках или ROM? Изделие работает в реальном времени, и если да, собираетесь ли вы создать или приобрести ядро программ реального времени или, возможно, будет достаточно обычной широко используемой версии? Достаточно ли персонала и времени для развития вашего собственного ядра программ? Как будут оплачиваться авторские права и программное обеспечение? Для решения задач реального времени требуется большая исследовательская работа, чтобы удовлетворить их особым требованиям.
ОСНОВНЫЕ ОСОБЕННОСТИ МИКРОКОНТРОЛЛЕРА
Микроконтроллеры в целом можно разделить на группы 8, 16 и 32разрядных по размеру их арифметических и индексных регистров, хотя некоторые разработчики считают, что 8/16/32разрядную архитектуру определяет разрядность шины. Способен ли дешевый микроконтроллер удовлетворить требованиям системы или требуется дорогой 16 или 32разрядный? Может ли 8разрядная программная эмуляция особенностей 16/32разрядного микроконтроллера разрешить использование дешевого 8разрядного, жертвуя размером исполняемого кода и скоростью? Например, может ли 8разрядный микроконтроллер быть использован с программным макросом, чтобы эмулировать 16разрядный аккумулятор и операции индексирования? Выбор прикладного языка (высокого уровня вместо ассемблера) может сильно повлиять на производительность системы, которая затем может диктовать выбор 8/16/32разрядной архитектуры, но ограничение по цене может отвергнуть этот выбор.
Тактовая частота или, более точно, скорость шины определяет, сколько вычислений может быть выполнено за единицу времени. Некоторые микроконтроллеры, в основном ранних разработок имеют узкий диапазон допустимой тактовой частоты, в то время как другие могут работать вплоть до нулевой частоты. Иногда выбирается специфическая тактовая частота, чтобы сгенерировать другую тактовую частоту, требуемую в системе, например, для задания скоростей последовательной передачи. В основном, вычислительная мощность, потребляемая мощность и стоимость системы увеличиваются с повышением тактовой частоты. Цена системы при повышении частоты увеличивается изза стоимости не только микроконтроллера, но также и всех требующихся дополнительных микросхем, таких как RAM, ROM, PLD и контроллеры шины.
Рассмотрим технологию, с использованием которой изготовлен микропроцессор: Nканальную металлокиселполупроводник (NMOS), которая использовалась в микроконтроллерах ранних разработок, сравним с современной CMOS технологией с высоким уровнем интеграции (HCMOS). В отличие от ранних NMOSпроцессоров, в HCMOS уровни сигналов изменяются в диапазоне от 0 до уровня напряжения питания. В связи с этим обстоятельством предпочтение отдается HCMOS процессорам. Кроме того, HCMOS потребляют меньшую мощность и, следовательно, меньше нагреваются. Геометрические размеры элементов в HCMOS меньше, что позволяет иметь более плотные схемы и, таким образом, работать при более высоких скоростях. Более плотный дизайн также уменьшает стоимость отдельного микроконтроллера, т.к. на кремниевой пластине того же размера можно получить большее количество чипов. По этим причинам сегодня подавляющее большинство микроконтроллеров производятся с использованием HCMOSтехнологии.
ВОЗМОЖНОСТИ МИКРОКОНТРОЛЛЕРА
За счет достижения более высокого уровня интеграции и надежности при сохранении низкой цены, все микроконтроллеры оснащены встроенными дополнительными устройствами. Эти устройства под управлением микропроцессорного ядра микроконтроллера выполняют определенные функции. Встроенные устройства обладают повышенной надежностью, поскольку они не требуют никаких внешних электрических цепей. К наиболее известным встроенным устройствам относятся устройства памяти и порты ввода/вывода (I/O), таймеры, системные часы/генератор. Устройства памяти включают оперативную память (RAM), постоянные запоминающие устройства (ROM), перепрограммируемую ROM (EPROM), электрически перепрограммируемую ROM (EEPROM). Таймеры включают и часы реального времени, и таймеры прерываний. Следует принимать во внимание диапазон и разрешение таймера, так же как и другие подфункции, такие как функции сравнение и/или захвата входных линий при измерении длительности сигнала. Средства I/O включают последовательные порты связи, параллельные порты (I/O линии), аналогоцифровые преобразователи (A/D), цифроаналоговые преобразователи (D/A), драйверы жидкокристаллического дисплея (LCD) или драйверы вакуумного флуоресцентного дисплея (VFD).
Другими, реже используемыми, встроенными ресурсами являются внутренняя/внешняя шина, таймер слежения за нормальным функционированием системы сторожевая схема, система обнаружения отказов тактового генератора, возможность выбора конфигурации памяти и системный интеграционный модуль (SIM). SIM обычно заменяет внешнюю “склеивающую” логику, необходимую для организации взаимодействия микроконтроллера с внешними устройствами через заданные контакты микросхемы.
В большинство микроконтроллеров с внутрисхемными ресурсами включается блок конфигурационных регистров для управления этими ресурсами. Иногда сам этот блок может быть отражен в различные места карты памяти. Иногда имеется пользовательский и/или фабричный тестовый регистр, указывающий на то, какое значение производитель придает качеству. Наличие конфигурационных регистров приводит к проблеме случайного изменения желаемой конфигурации “блуждающим” кодом. Для предотвращения такой случайной возможности используется механизм “блокировки”, т.е. до того, как регистр конфигурации может быть изменен, биты в другом регистре должны быть изменены в определенной последовательности. Хотя регистры конфигурации могут сначала испугать своей сложностью, они крайне ценны поскольку обеспечивают высокую гибкость конфигурации при низкой стоимости, так что одному микроконтроллеру можно найти самые различные применения.