Выбор микроконтроллера
Перевод
ТОО "Торнадо Модульные Системы",
Россия,
Новосибирск, 1995
- Введение
- Назначение
- Процесс выбора
- Критерии выбора
- Системные требования
- Основные особенности микроконтроллера
- Возможности микроконтроллера
- Набор команд микроконтроллера
- Прерывания микроконтроллера
- Характеристика вашей компании
- Характеристика поставщика
- Ххарактеристика производителя
- Потдержка производителя
- Литературная потдержка
- Заканчивая выбор
- Работа команды
- Заключение
ВВЕДЕНИЕ
Пожалуй, именно выбор микроконтроллера является одним из самых важных решений, от которых зависит успех или провал задуманного проекта. При выборе микроконтроллера необходимо учесть и оценить большое количество факторов. За основу последовательности продуманных действий, приводящих к окончательному решению, может быть принят рассматриваемый в данной статье план. Объединив свои собственные знания и требования с информацией, представленной в данной статье, читатель должен оценить все в целом, чтобы принять правильное решение.
НАЗНАЧЕНИЕ
Основная цель выбрать наименее дорогой микроконтроллер (чтобы снизить общую стоимость системы), но в то же время удовлетворяющий спецификации системы, т.е. требованиям по производительности, надежности, условиям применения и т.д. Общая стоимость системы включает все: инженерные исследования и разработку, производство (комплектующие и труд), гарантийный ремонт, дальнейшее усовершенствование, обслуживание, совместимость, простоту в обращении и т.д.
ПРОЦЕСС ВЫБОРА
Приступая к выбору, разработчик должен вначале задаться
вопросом: "Что должен делать микроконтроллер в моей системе?" Ответ на этот
простой вопрос определяет требуемые для разрабатываемой системы характеристики
микроконтроллера и, таким образом, является определяющим фактором в процессе
выбора.
Второй шаг проведение поиска микроконтроллеров, которые
удовлетворяют всем системным требованиям. Он обычно включает подбор литературы,
технических описаний и технических журналов, а также консультации. В настоящее
время стала вполне доступной информация о предлагаемых как традиционных,
являющихся промышленным стандартом микроконтроллерах, так и новейших
микроконтроллерах. Хорошо, если системным требованиям будет удовлетворять хорошо
знакомый микроконтроллер, в противном случае должен быть проведен вторичный
поиск, чтобы найти микроконтроллер, который наиболее полно удовлетворяет
предъявляемые требования, имеет минимум внешних навесных компонентов и подходит
по стоимости и габаритам. Ясно, что однокристальный микроконтроллер
предпочтительней изза цены и надежности.
Последняя стадия выбора состоит
из нескольких этапов, цель которых сузить список приемлемых микроконтроллеров до
одного. Эти этапы включают в себя анализ цены, доступности, средств разработки,
поддержки производителя, стабильности производства конкретных микроконтроллеров
и наличия других производителей или поставщиков. Чтобы прийти к оптимальному
решению, возможно, весь процесс придется повторить несколько раз.
КРИТЕРИИ ВЫБОРА
Основные критерии выбора микроконтроллера представлены ниже в порядке значимости. Каждый критерий детально объясняется в дальнейшем.
- Пригодность для прикладной системы. Может ли она быть сделана на
однокристальном микроконтроллере или ее можно реализовать на основе какой либо
специализированной микросхемы?
- Имеет ли микроконтроллер требуемое число контактов/портов ввода/ вывода, т.к. в случае их недостатка он не сможет выполнить работу, а в случае избытка цена будет слишком высокой?
- Имеет ли он все требуемые периферийные устройства, такие как последовательные порты ввода/вывода, 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 обычно заменяет внешнюю "склеивающую" логику,
необходимую для организации взаимодействия микроконтроллера с внешними
устройствами через заданные контакты микросхемы.
В большинство
микроконтроллеров с внутрисхемными ресурсами включается блок конфигурационных
регистров для управления этими ресурсами. Иногда сам этот блок может быть
отражен в различные места карты памяти. Иногда имеется пользовательский и/или
фабричный тестовый регистр, указывающий на то, какое значение производитель
придает качеству. Наличие конфигурационных регистров приводит к проблеме
случайного изменения желаемой конфигурации "блуждающим" кодом. Для
предотвращения такой случайной возможности используется механизм "блокировки",
т.е. до того, как регистр конфигурации может быть изменен, биты в другом
регистре должны быть изменены в определенной последовательности. Хотя регистры
конфигурации могут сначала испугать своей сложностью, они крайне ценны поскольку
обеспечивают высокую гибкость конфигурации при низкой стоимости, так что одному
микроконтроллеру можно найти самые различные применения.
НАБОР КОМАНД МИКРОКОНТРОЛЛЕРА
Необходимо внимательно изучить набор команд и регистров
каждого микроконтроллера, так как они играют важнейшую роль в определении
возможностей системы в целом. Изучили ли ваши программисты индексные режимы
адресации в связи с предполагаемыми нуждами вашей системы? Есть ли какиелибо
специальные команды, которые будут использоваться в вашей системе, такие как
умножение, деление и табличное интерполирование? Есть ли какиелибо режимы
энергосбережения для экономии батарейного питания, такие как стоповый, стоповый
с низким потреблением мощности и/или с ожиданием? Есть ли какиелибо команды
битовых манипуляций (установка бита, очистка бита, тест бита, изменение бита,
команды перехода по установленному/очищенному биту), облегчающие применение
микроконтроллера, или команды манипуляции с битовыми полями?
Будьте
осторожны с замечательными командами, которые совершают много действий в одной
команде. Реальным критерием производительности является количество тактовых
циклов, требуемое для выполнения задачи, а не количество исполненных команд. Для
справедливого сравнения лучше закодировать одинаковую программу и сравнить
полное число выполненных тактовых циклов и использованных байтов. Есть ли в
карте операционных кодов нереализованные инструкции и что получится, если они
случайно выполнятся? Обработает ли система подобную ситуацию корректно
обработчиком "исключительных" событий или это приведет к выходу системы из
строя?
ПРЕРЫВАНИЯ МИКРОКОНТРОЛЛЕРА
Проверка структуры прерываний необходима всегда, когда создается система реального времени. Сколько линий или уровней прерывания имеется и сколько их требуется для вашей системы? Имеется ли маска уровней прерывания? Когда уровень прерывания подтвержден, есть ли индивидуальные векторы для программыобработчика прерывания, или должны опрашиваться все возможные источники прерывания, чтобы определить источник? В критических по скорости применениях, таких как управление принтером, критерием выбора подходящего микроконтроллера может быть время реакции на прерывание, т.е. время от начала прерывания (в худшем случае, фазированного относительно тактового генератора микроконтроллера) до выполнения первой команды соответствующего обработчика прерывания.
ХАРАКТЕРИСТИКА ВАШЕЙ КОМПАНИИ
Критически проанализируйте имущественное состояние вашей компании. Располагает ли ваша компания достаточными средствами для обучения персонала тонкостям производства систем на основе микроконтроллеров и использования средств их разработки? Обладает ли уже ваша компания достаточными средствами разработки, или же вы будете покупать или арендовать их? Если рассматривается новый микроконтроллер, существуют ли доступные средства разработки, такие как компиляторы языка высокого уровня, ассемблеры/компоновщики, прототипные модули и отладчики/эмуляторы? Достаточно ли легко расширяются имеющиеся у вас средства разработки для новых микроконтроллеров? Нужно ли нанимать и обучать дополнительный персонал для этого проекта? Можете ли вы привлечь эксперта для обучения остальных членов вашей команды? Позволяет ли вам бюджет наем дополнительного постоянного штата и/или работников по контракту? Удовлетворена ли ваша компания микроконтроллерами, имеющимися в настоящее времяна рынке, а также обслуживанием?
ХАРАКТЕРИСТИКА ПОСТАВЩИКА
Третий шаг в сокращении списка технически приемлемых микроконтроллеров проверка производителей и поставщиков микроконтроллеров, т.е. компаний, с которыми вы планируете вступить в длительные отношения на взаимовыгодной основе. Поставщик может быть производителем микроконтроллеров, или он может быть дилером, который является полномочным представителем нескольких производителей. Наилучшим образом удовлетворит ваши запросы поставщик с более широким ассортиментом продуктов и репутацией высокого качества, надежности, обслуживания и своевременной поставки при справедливой цене. Кроме того, чем больше продуктов вы покупаете у одного поставщика, тем большие преимущества вы получаете в отношении цены, услуг и поддержки. Всегда имейте в виду, что, хотя долларовый объем вашей покупки может казаться вам высоким, это всегда относительная величина к общему объему продаж поставщика. Поставщики, которые снабжают не только микроконтроллерами, но и памятью (RAM, ROM), дискретными устройствами (транзисторами, диодами и т.д.), стандартными цифровыми логическими устройствами (7400, 74HC00 и т.д.), специальными микросхемами, заказными приборами (CSIC), специализированными микросхемами (ASIC) и программируемыми логическими устройствами (PLD), смогут лучше удовлетворить ваши растущие запросы. Имеет ли производитель и/или поставщик какиелибо награды за качество, надежность, сервис и/ или поставку? Не следует слишком доверять самоприсуждаемым наградам.
ХАРАКТЕРИСТИКА ПРОИЗВОДИТЕЛЯ
Другими критериями в выборе производителя/поставщика микроконтроллера являются стабильность, его монопольное положение, сведения из литературы и поддержка. Стабильность может быть надежно проверена путем установления стажа работы производителя в этой области и его достижений. Отдел снабжения и кредитный отдел вашей компании могут помочь вам в этих вопросах. Монопольное положение поставщика, к сожалению, обычно норма, т.к. большинство производителей микроконтроллеров редко пересекаются в производстве с другими производителями. Если производитель имеет хорошие показатели в снабжении, доставке и цене, то его монопольное положение не должно являться препятствием.
ПОДДЕРЖКА ПРОИЗВОДИТЕЛЯ
Прямая поддерка производителя включает маркетинг/продажи и прикладную инженерную поддержку. Когда вы звоните, обращаясь за помощью, можете ли вы прямо связаться с тем, кто вам нужен, или вам приходится играть в "глухой телефон"? Передаются ли звонки немедленно? Есть ли номер факса? Сколько доступно телефонных линий? Телефонные линии всегда заняты? Есть ли у них система коммутации или секретарь передает ваши сообщения ответственному за поддержку? В какие часы работает персонал поддержки? Имеют ли они другие обязанности кроме поддержки? Каков количественный состав обслуживающего персонала? С готовностью ли ему поможет заводской персонал, а именно, специалисты по готовой продукции, по производству, по качеству, электронщики, программисты? Дружат ли заводские инженеры с персоналом поддержки? Знающий ли персонал поддержки, имеет ли нужные навыки, и выполняют ли они своевременно то, что обещали, например, решить вашу проблему или выслать вам чтонибудь? Приходит ли это обычной почтой, платите ли вы за быструю доставку? Есть ли у производителя электронная доска объявлений (BBS) или страничка в Internet, на которых можно получить такую информацию, как прикладные программы, новости о продуктах, свежие программы, исходные тексты, сообщения об ошибках, электронную почту, конференции? Какие поддерживаются скорости передачи? Сколько телефонных линий доступно? Какие часы работы? Нужна ли вам особая марка компьютера и/или модема для доступа? Есть ли системный оператор (sysop)?
ЛИТЕРАТУРНАЯ ПОДДЕРЖКА
Литература охватывает широкий набор печатных материалов, которые могут помочь вам сделать правильный выбор. Она включает выпуски производителя, такие как технические описания и рекомендации по применению, также издания, доступные в местном книжном магазине и/или библиотеке. Издания из местного магазина и/или библиотеки не только указывают на популярность производителя/микроконтроллера, но и предлагают беспристрастные мнения, если они высказаны независимыми от производителя авторами.
ЗАКАНЧИВАЯ ВЫБОР
Для окончательного шага в процессе выбора постройте таблицу, содержащую рассматриваемые микроконтроллеры в одной графе, а их важные характеристики в другой. Затем приложите бланки технических описаний производителей, чтобы получить справедливое наглядное сравнение. Некоторые производители имеют предварительно сделанные сравнительные описания их микроконтроллеров, которые упростят вашу задачу, но проверьте по техническим описаниям, все ли новейшие продукты представлены. Среди возможных характеристик цена (на ожидаемый объем продукции, включая предсказание будущей цены, т.е. уменьшится ли цена, если вы вольетесь в производство?), RAM, ROM, EPROM, EEPROM, таймер(ы), A/D, D/A, последовательные порты, параллельные порты, скорость шины (минимальная/максимальная), специальные команды (умножение, деление и т.д.), число доступных прерываний, время отклика прерывания (время от начала прерывания до выполнения первой команды, управляемой прерыванием), размер корпуса/тип (керамический DIP или LCC, пластиковый 0.3" DIP или 0.6" DIP, сжатый DIP (расстояние между контактами .071"), PLCC, PQFP, EIAJQFP, SOIC; некоторые из них используют технологию поверхностного монтажа), требования по питанию и другие детали, важные для устройства вашей системы.
Если после всего этого у вас в списке все еще больше одного микроконтроллера, рассмотрите возможности расширения системы и стоимость. Какое расширения, по вашему мнению, может понадобиться в будущих версиях этого продукта? И наконец, рассмотрите цену, т.к. если два микроконтроллера стоят одинаково, но один предлагает немного больше возможностей, которые не требуются сегодня, но сделали бы будущие расширения доступными без добавочных затрат, выбирайте этот микроконтроллер.
РАБОТА КОМАНДЫ
Как лидер проекта вы можете делать всю исследовательскую работу один, или же можете начать привлекать вашу команду, ставя перед ее членами исследовательские задачи, такие как оценка программистами набора команд каждого рассматриваемого микроконтроллера. Вовлекая свою команду в процесс выбора на ранних этапах, вы не только создадите дух команды, но и получите индивидуальные обязательства по отношению к проекту через активное участие в нем. Этот подход, без сомнения, приводит к некоторым конфликтам, т.к. каждый имеет свое собственное мнение, но ваша задача как лидера проекта быть посредником. Выслушав все мнения, выбираете все же вы. Как в политических выборах, как только появляется победитель в предварительных выборах, все члены партии готовы к полной поддержке лидера, так и команда проекта должна поддерживать решения лидера для достижения успеха в выполнении проекта.
ЗАКЛЮЧЕНИЕ
Окончательный выбор подходящего микроконтроллера для вашего
проекта нелегкое решение. Микроконтроллеры стали более сложными устройствами с
тех пор, как были добавлены внутрисхемные ресурсы. И с тех пор, как процесс
движется в сторону все большей внутрисхемной интеграции внешних ресурсов для
понижения стоимости системы, решение становится все более сложным. Данная статья
не навязывает разработчику какойлибо выбор, ее цель указать все возможные
критерии выбора, которые должны быть приняты во внимание в процессе принятия
решения.
Created/Updated: 25.05.2018