Шапка

15.10.1 Сколько стоят инструменты?

Производители микроконтроллеров и сторонние фирмы обеспечивают быстрый старт. Их предложения включают облегченные комплекты разработчика в ценовом диапазоне $50...200, в состав которых входят небольшая плата с микроконтроллером и какой-то обвязкой ( светодиоды, кнопки, разъёмы ), программирующий адаптер и набор программного обеспечения для компиляции, загрузки и отладки 60 .

Компилятор из комплекта разработчика часто бывает свободной, но ограниченной по времени или возможностям, версией коммерческой программы. Например, отладочные комплекты фирмы Silicon Labs поставляются с ограниченной по размеру кода версией компилятора Keil. Все возможности полной версии присутствуют, но максимальный размер исполняемого кода составляет 4kB и отсутствует библиотека вычислений с плавающей запятой. Полный компилятор стоит около $2.5k ( учебные заведения имеют существенную скидку ). Аналогично, компилятор Raisonance software ( §15.3 ) можно свободно скачать с сайта, но он также ограничен 4kB кода. Полная версия сравнима по стоимости с Keil. Ещё одним поставщиком высококачественного программного обеспечения является IAR Systems. Среди прочих фирма выпускает компиляторы для i8051, ARM, AVR, Coldfire, MAXQ, PIC, H8 и MSP430. Компиляторы выпускают также Green Hills Software, HI-TECH Software, Lauter-back и Rowley Associates.

Сообщество программного обеспечения с открытым кодом портировало компилятор GNU Си/C++ на большую часть операционных систем. В качестве целевых микроконтроллеров выступают многие из упомянутых здесь семейств и в частности AVR и ARM. GNU компилятор и программирующий адаптер - самый дешёвый путь для написания неограниченных по возможностям и размеру кода программ для µC на языке Си. Другой приятной тенденцией является увеличивающаяся поддержка программных средств разработки производителями полупроводников. Ранее фирмы рассматривали программное обеспечение в лучшем случае как обузу, пытаясь спихнуть его на сторонние организации. Похоже, ситуация начала меняться. Например, Atmel интегрировала компилятор GNU в своё ПО под Windows. Написанная IBM среда Eclipse обладает возможностью расширения функционала за счёт подключения сторонних модулей и постепенно набирает популярность. Можно назвать два примера: расширение для процессора NIOS ( Altera ), написанное компанией µC Micrium и инструменты для ARM с открытым кодом.

Программирующие адаптеры в общем случае жёстко привязаны к конкретному семейству микроконтроллеров. Они обычно не дороги, поэтому данное ограничение серьёзных проблем не создаёт. В отдельных случаях аппаратура позволяет использовать более одного протокола. Например, AVR Dragon подключается к управляющей машине по USB и позволяет загружать программу по SPI, JTAG, в параллельном режиме, в высоковольтном последовательном и, вдобавок, поддерживает режим внутрисхемной отладки. Более простой AVR ISP позволяет только загружать код по SPI. Программирующие адаптеры разрабатываются также третьими фирмами и любителями. Многие из них можно найти в публикациях сетевых журналов «Circuit Cellar» и «MAKE Magazine».

15.10.2 Когда стоит использовать микроконтроллеры

Почти всегда! А конкретно, в электронных системах:

  1. имеющих алфавитно-цифровые или графические индикаторы в качестве элементов интерфейса пользователя;
  2. содержащих микросхемы, требующие записи данных во внутренние регистры для настройки режима работы;
  3. связанных с управляющей машиной, внешней периферией или сетью;
  4. ведущих расчёты, накапливающих данные, преобразующих форматы, обрабатывающих сигналы и т.д.;
  5. нуждающихся в калибровке или линеаризации;
  6. обрабатывающих некоторую последовательность шагов во времени;
  7. предполагающих обновление и расширение состава выполняемых функций.

Микроконтроллеры следует рассматривать в качестве замены и для стандартных «аналоговых» функций измерения и управления, особенно с учётом увеличивающегося разнообразия внутрикристальных аналоговых блоков контроллеров Analog Devices и Cypress.

Для сравнения, программируемая логика ( PLD, FPGA ) предназначена в основном для задач, требующих жёсткой временнОй разбивки или высокой степени параллелизма операций. Но этот класс микросхем заметно сложнее микроконтроллеров в программировании и отладке. И, в любом случае, устройства, включающие PLD или FPGA, содержат обычно и микроконтроллеры. Часто µC присутствует в системе в виде «программного ядра», т.е. одного из логических блоков внутри FPGA, а то и в виде аппаратного ядра в «гибридных» FPGA. Примерами программных ядер могут служить Actel ARM, Altera Nios-II, Lattice Mico и Xilinx MicroBlaze. Встроенные аппаратные ядра есть в гибридных сериях Altera ( ARM ), Atmel ( AVR ) и Xilinx ( PowerPC ).

Ещё одним методом ловли двух зайцев - удовлетворения жёстким временнЫм требованиям ( видео реального времени, беспроводная связь ) и гибкости микроконтроллеров - является использование специализированных полузаказных микросхем ( например, радиотракт сотового телефона ) в паре со вспомогательным микроконтроллером.

15.10.3 Выбор микроконтроллера

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

  1. порты ( аналоговые и цифровые );
  2. встроенные функции ( ШИМ, АЦП, контроллер ЖКИ );
  3. скорость;
  4. вид и объём имеющейся памяти ( Flash, EEPROM, SRAM );
  5. корпус;
  6. рассеиваемая мощность, тактирование в режиме малого потребления;
  7. наличие программного обеспечения.

Хорошей стартовой точкой для подбора требований является справочный раздел §15.3 .

Выбирая конкретную модель в линейке µC, легко потеряться в их разнообразии. Удобнее всего взять старшую микросхему с наибольшим объёмом памяти и скоростью. Серия обычно состоит из такого вот кристалла с урезанными возможностями и с чуть отличающимся набором периферии.

Прежние модели микроконтроллеров имели 8-разрядное машинное слово, современные - в большинстве 32-разрядные. Среди преимуществ 32 разрядов - плоская модель памяти и вычислительная мощность, в значительной мере смазанные сложностью стартового кода 61 , чуть более высокой ценой и простотой знакомства с 8-разрядными моделями.

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

Очень важно качество и количество доступных библиотек. Например, библиотеки TCP/IP, SPI, I2C и др. сильно упрощают работу с микроконтроллерами Rabbit. То же можно сказать о проекте Arduino, где сообщество фанатов постоянно увеличивает общий объём кода. Сложно переоценить наличие качественных компиляторов и отладчиков. Это, кстати, одна из причин для выбора микроконтроллера, настроенного для работы в OS Linux ( Gumstix Overo, BeagleBoard и им подобные ). Отладочные платы с такими кристаллами поставляются со стабильной версией изначально многозадачной операционной системы с драйверами низкого уровня, имеют много плюсов при отладке ( SSH, терминал, консоль ) и впечатляющие аппаратные возможности, включая производительные графические контроллеры.

15.10.4 Последнее напутствие

Трудно сказать, получилось ли у авторов объяснить, насколько микроконтроллеры увлекательная тема. На фото 15.25 показан электронный шлем Джейсона Галиччо (Jason Gallicchio) ко Дню всех святых 2004 года. По случайному стечению обстоятельств он больше напоминает электрифицированный дуршлаг, увешанный мигающими светодиодами и с пачкой батареек на макушке. Среди его примечательных возможностей есть и возможность чтения мыслей в голове, которую он прикрывает. На фото показана реакция транслятора после вопроса, «В какой колледж направляешься?»

Рис. 15.25   «Этот шлем сканирует мой мозг». [* Увидев эту фотку первый раз, решил, что переводить данную часть не буду, но стремление к текстуальной полноте возобладало. Да, я очень ответственный чел ]

60 Если есть просто желание оценить тему, то можно найти демонстрационные платы только с парой светодиодов. Обычно они вставляются в USB порт и стОят порядка $10. Их возможности очень ограничены, и для ознакомления всё же правильнее будет взять нормальный комплект. <-

61 Например, периферия ARM требует массу кода только для активации, настройки и подключения к линиям ввода-вывода. <-

Previous part:

Next part: