Микроконтроллер умер. Да здравствует микроконтроллер! на базе цифрового сигнального процессора
Нет, микроконтроллер, конечно, не умер. В подтверждение его живучести компания Texas Instruments, плотно ориентированная на рынок цифровых сигнальных процессоров (ЦСП), продолжает активно развивать свое семейство микропотребляющих 16-разрядных микроконтроллеров MSP430 для построения измерительных систем и счетчиков. В добавление к уже ставшим популярными в России однократно программируемым МК серий 'P315, P325 и P337 TI начала массовый выпуск серии MSP430LF1102 со встроенной флэш-памятью стоимостью около 3 долларов. Дешевый программатор флэш и появление специализированной ИС радиоинтерфейса дополняют радужную картину. Так что — да здравствует микроконтроллер! Он вовсе даже не собирается умирать, а просто должен вот-вот родиться еще раз в новом качестве. На базе ЦСП. Вы удивлены? Тогда ознакомьтесь с приведенной ниже статьей.
Сергей Грибачев
(095) 796-9125 [email protected]
Сегодня вряд ли можно кого-то удивить разнообразием доступных пользователю микроконтроллеров (МК). Разработчики уже привыкли к тому, что под каждое возможное применение легко подобрать подходящий по разрядности, быстродействию, потреблению и объему внутренней памяти МК. У производителей существует неисчислимое множество вариантов, отличающихся комбинацией указанных свойств, разнообразной периферией, наличием или отсутствием встроенных АЦП, флэш-памяти и, конечно, стоимостью. Еще более многообразны возможные области применения МК. Это и интеллектуальные датчики
ПЗУ/Флэш 32К слов
ОЗУ:
544 +2К слов
Шины команд/Данных/Ввода-Вывода
16-разр регистр 16-разр Умножитель16х16
Сдвигатель Регистр Р (32р)
Сдвиг влево
АЛУ 32 разр.
Аккумулятор 32 разр.
Сдвиг влево 8 доп. регистров Счетчик циклов 2 регистра состояния
2 менеджера событий 4 Таймера 10 устройств сравнения О 16 ШИМ формирователей Логика “мертвого врем” 6 у стр. захватаа 4 квадратурных кодера
Сторожевой таймер
О
О До 40 портов ввода/вывода ^ ^ Интерфейсы SCI (UART), SPI О Контроллер CAN
О
2 10-разр. АЦП по 8 кал 5 сигналов внешних прер.
пожарной сигнализации на базе 4-разрядных микропотребляющих МК фирм EM Marin, Atmel, и бескрайнее море возможных применений 8-разрядных устройств таких производителей, как Motorola, Intel, MicroChip, включая автомобильные системы и бытовую технику, и сложные приложения из области телекоммуникаций и управления двигателями, где используются 16-разрядные МК Siemens, Motorola, TI. Кажется, что ничто не предвещает бури в этом спокойном мире соответствия спроса и предложения, и порой возникающие проблемы с поставками от одного из производителей быстро решаются за счет наличия большого числа аналогов и second source поставщиков.
Но время не стоит на месте. Наоборот, стремительное развитие пост-индустриального общества требует все большей производительности МК, поскольку это необходимо для решения возникающих все более сложных задач. Вдруг обнаруживается, что традиционная структура МК уже не может обеспечить необходимого быстродействия, именно ввиду своей универсальности, долгое время являвшейся их основным достоинством. Действительно, наличие универсального АЛУ, позволявшего минимизировать стоимость МК, резко снижает его производительность при необходимости выполнения таких операций, как умножение. А потребность в таких вычислениях становится актуальной, как только мы хотим наделить наше устройство рядом свойств, принципиально отличающих его от имеющихся на рынке.
Немного фантастики
Рассмотрим простой пример. Одной из типичных областей применения МК являются кассовые аппараты, где, помимо чисто вычислительных функций, МК управляет клавиатурой и ЖКИ-дисплеем. И отлично с этим справляется. Но сегодня этого уже мало. Сегодня мы захотим, чтобы такой аппарат позволял работать с кредитными картами (типа VISA, American Express и т. п.), а это не только устройство считывания магнитной полосы, но и модем, необходимый для автоматической авторизации карты, причем в защищенном режиме. Идя дальше, мы потребуем возможности голосового ввода информации. И это не фантастика. В некоторых барах США и Европы уже появились кассовые аппараты, позволяющие бармену называть номер столика и номер пункта меню, — калькуляцию аппарат выполняет сам, также по голосовой просьбе. При этом он реагирует лишь на голос бармена (или его сменщика) и не откликается на нескромный запрос посетителя. Для реализации всего перечисленного управляющий контроллер должен не просто уметь быстро выполнять операцию умножения. Алгоритмы, реализующие распознавание голоса, и модемные стандарты требуют действительно предельного быстродействия, и даже наличие встроенного аппаратного умножителя уже не спасает. Конечно, можно использовать целый набор самых мощных МК, объединить их по модному CAN-интерфейсу. Но ведь для того, чтобы такой аппарат кто-то купил, он должен стоить ну совсем немного дороже уже имеющихся на рынке!..
Ключ к решению проблемы
Как часто бывает, решение проблемы возникло задолго до того, как она была сформулирована. Цифровые сигнальные процессоры (ЦСП) — в английском написании DSP (Digital Signal Processor) — известны с 1982 года, когда компания Texas Instruments выпустила на рынок свой TMS32010 (производимый, кстати, в слегка модифицированном виде и до сих пор). Изначально, как и многие полупроводниковые изделия, ЦСП предназначались для военных применений, таких как радиолокация, шифрование и др. Среди решаемых ими задач были реализация быстрого преобразования Фурье (БПФ), фильтрация, координатные преобразования и т. п. Все эти функции требовали предельного быстродействия, поскольку должны были выполняться в реальном масштабе времени. В связи с этим отличительной чертой архитектуры ЦСП являются наличие независимых умножителя и АЛУ, встроенной памяти для команд и отдельно для данных, а также нескольких шин, позволяющих одновременно производить выборку команды, выборку данных и запись результата. С учетом того, что большинство операций выполняются в ЦСП за один машинный такт, эти устройства позволяют достигать производительности, на порядок превышающей таковую у универсальных МК.
Первое время ЦСП были очень дороги и использовались в основном военными. Но их главным достоинством была универсальность (в смысле возможности решения широкого круга задач одним типом ЦСП) и относительная простота программирования (вскоре вслед за возникновением первых кристаллов появился не только ассемблер, но и языки высокого уровня — С и Ада). Благодаря стремительному развитию электронной технологии стало возможным не только реализовать на одном кристалле быстрый вычислитель, но и существенно расширить периферию, дополнить систему команд типичными микроконт-роллерными инструкциями, реализовать эффективную систему прерываний. Выход на модемный и другие массовые рынки обусловил огромные объемы выпуска ЦСП, что, в свою очередь, привело к небывалому снижению их цены. Сегодня ЦСП фирмы Texas Instruments производительностью 100 MIPS (миллионов инструкций в секунду) стоит всего 5 долларов! Таким образом, доведенная до совершенства возможность эффективного решения наукоемких задач и реально возникшая потребность рынка в таких задачах удачно разрешились появлением цифровых сигнальных процессоров для микроконтроллер-ных приложений.
ЦСП-микроконтроллеры семейства TMS320C240x
Рассмотрим структуру ЦСП-микроконтрол-лера семейства TMS320C240x компании Texas Instruments — типичного представителя нового поколения МК.
Его отличительные особенности: быстродействующее ЦПУ со временем цикла 33 нс; встроенное ОЗУ со временем доступа в 1 цикл ЦПУ, включающее 544 слова двухпортовой памяти (с возможностью двух обращений за один цикл) и 2 К слов однопортовой памяти; 32 К слов секторной флэш-памяти (с возможностью независимой перезаписи секторов объемом 2 К слов каждый) либо масочное ПЗУ емкостью до 32 К слов; возможность подключения внешней памяти общим объемом до 192 К слов; ЦПУ позволяет за один цикл выполнять операцию умножения с накоплением (как и большинство других команд) и имеет конвейерную архитектуру (одновременно в процессе выполнения находится несколько команд); 2 независимых менеджера событий, каждый из которых имеет по 8 ШИМ-формирователей, по 5 устройств сравнения и 2 универсальных таймера; реализованы стандартные интерфейсы UART и SPI; имеется встроенный контроллер CAN с поддержкой протокола 2.0В; 40 универсальных контактов для реализации индивидуально программируемых портов ввода/ вывода и два 8-входовых 10-разрядных АЦП со временем преобразования 500 нс. Напряжение питания — 3,3 В, имеются режимы экономии энергии. Стоимость МК с флэш-памятью составляет от 5 до 15 долларов в зависимости от конфигурации. При массовом производстве версия с масочным ПЗУ будет процентов на 30 дешевле.
Как с ними работать
Предоставим разработчикам судить о технических достоинствах приведенных характеристик и рассмотрим проблему перехода к использованию ЦСП-микроконтроллеров для рядового пользователя, не искушенного в тонкостях дисциплины ЦОС (цифровой обработки сигналов). Действительно, у большинства имеются свои ассемблерные наработки для традиционных МК, уже вложены деньги в приобретение средств отладки, известно, где можно получить консультацию по каждому семейству... При переходе к действительно рыночным отношениям определяющее значение начинает иметь не только качество проекта, но и срок его завершения, а в дальнейшем — надежность работы созданного устройства и возможность его модернизации. Легко показать, что по всем этим критериям ЦСП имеют неоспоримые преимущества. Начнем со сроков. Не секрет, что они во многом зависят от удобства отладки программ и от имеющихся наработок. Принципиальным отличием всех современных семейств ЦСП является интерфейс отладки и диагностики по стандарту IEEE-1149.1 (JTAG). Данный интерфейс подразумевает наличие встроенной в кристалл ЦСП дополнительной аппаратуры для организации опроса либо модификации внутренних регистров в специальном отладочном режиме. У разработчика появляется возможность осуществлять начальную загрузку ОЗУ, модификации флэш-памяти, богатый оконный интерфейс позволяет отображать состояние внутренних регистров ЦСП и его памяти и даже изменять их без пере-трансляции программы. Специалистами TI был впервые создан DSP BIOS — ядро операционной системы реального времени, позволяющее реализовать функции «пробных точек», создавать на управляющем PC окно цифрового осциллографа, представлять данные в виде графиков в реальном времени. По отзывам огромного числа специалистов, работающих с новой интегрированной средой отладки под названием Code Composer, ее использование позволяет снизить сроки выполнения проекта в разы. Этому же служит наличие высокоэффективного транслятора языка С, дающего возможность писать большую часть кода на языке высокого уровня, оптимизируя на ассемблере лишь критичные модули. TI пошел в этом направлении дальше. Для сохранения программных наработок и облегчения их интеграции в новые (даже чужие) программы была создана система eXpressDSP — свод правил написания программ для обеспечения их 100%-й переносимости. И до этого в Интернете можно было найти огромное число текстов программ, реализующих конкретные алгоритмы (БПФ, КИХ- и БИХ-фильтры, модемы, вокодеры и др.). Теперь использовать даже чужие наработки становится намного легче. Разработчику остается думать лишь о реализации своего ноу-хау, а программирование всех сервисных функций и интеграцию уже готовых «кирпичиков» берет на себя система.
Таким образом, те, у кого нет багажа собственных наработок, могут весьма эффективно использовать чужой опыт. Что касается средств аппаратной отладки — у разработчика существует широкий диапазон для выбора. Относительно недорогие (Starter Kit стоит 300 долларов) тем не менее позволяют вести отладку в реальном времени. Профессиональные платы стоят за тысячу, зато резко сокращают время разработки.
Дополнительным плюсом является появление российских плат для профессиональной отладки (внутрисхемные эмуляторы компании «Скан-Инжиниринг-Телеком» из Воронежа), которые более надежны в российских условиях (имеют дополнительную защиту на шине) и в несколько раз дешевле оригинальных. При этом используется лицензионное программное обеспечение TI (увы, за отдельную плату) и выдается годовая гарантия, что для наших условий весьма существенно (есть с кого спросить!).
Плюсы и минусы
Как уже отмечалось, при интегральной оценке проекта уже на стадии разработки надо принимать во внимание и такие критерии, как надежность создаваемого оборудования и возможность его модернизации. Вполне очевидно, что интегрированное решение, при котором максимум устройств реализовано в одном кристалле, всегда надежнее «россыпи». Микроконтроллерный подход подразумевает модернизацию в основном за счет изменения программы, и в этом смысле предлагаемые ЦСП-МК хороши тем, что позволяют осуществлять апгрейды даже дистанционно, например через Интернет. В процессе же разработки новых версий программ неоценимую помощь оказывают все те же средства отладки (через JTAG), поскольку в них реализованы мощные механизмы оптимизации программы (анализатор загрузки ЦПУ, оценка эффективности распределения памяти).
Итак, нерассмотренным остался лишь вопрос информационной и технической поддержки. Все изложенное прекрасно на бумаге, но ведь в жизни не все так безоблачно? И да, и нет. Да, потому что действительно не так-то просто начинать с нуля освоение новой МК-технологии. Да, потому что программа eXpressDSP только начинает разворачиваться (хотя и в России уже есть фирмы, взявшие ее на вооружение). Нет — потому что у вас есть куда обратиться за консультацией, где можно потрогать руками расхваленные здесь средства отладки и оценить эффективность работы в среде Code Composer. Это сеть созданных в российских вузах лабораторий, оборудованных при поддержке TI средствами отладки ЦСП и МК. Всего таких вузов сегодня 15, но непосредственно на ЦСП-МК специализируется пока 5. Это, прежде всего, прекрасная лаборатория на кафедре автоматизированного электропривода в МЭИ. Здесь не только проводится обучение
студентов, но и организуются регулярные 10-дневные курсы для представителей промышленности (очередные запланированы на конец мая). Кроме того, сотрудники кафедры, аспиранты и студенты выполняют профессиональные разработки по заказу промышленности. Аналогичные лаборатории функционируют в НГТУ (Новосибирск), ЧГУ (Чебоксары), поставлено оборудование в ЯГУ (Ярославль) и ОГАХ (Одесса). В любом из перечисленных центров можно получить квалифицированную консультацию и техническую поддержку. Координаты — у автора данной статьи.
Реально ли все это?
В заключение хотелось бы немного помечтать. О том, какими характеристиками должен обладать микроконтроллер будущего. Для реализации алгоритмов электрического усилителя руля автомобиля быстродействия стандартных МК не хватает ну никак, а вот рассмотренный ЦСП-контроллер с этой задачей вполне справляется. Но такие работы уже ведутся, а что же в будущем? На Западе все больше говорят об управлении бытовой техникой через Интернет. Вот здесь действительно нужна производительность. И хорошо бы не 30 М1Р5, а этак 300-400. И разрядность побольше, хотя бы 32. И адресное пространство бы расширить гигабайт до восьми, а встроенную память иметь хотя бы 8 Мбайт. И при этом время реакции на прерывание сократить до 20-40 нс. И часто используемую последовательность «чтение(из памяти) — модификация — запись (в память)» реализовать бы за один такт (а не за 3, как сейчас). И более эффективный бы С-компилятор (ну хотя бы еще процентов на 25 уменьшить объем кода). И еще бы С++ в придачу. И чтоб отлаживать программы можно было уже сегодня, на имеющихся средствах! И чтоб стоило это чудо (простите за наглость!) доллара два...
Вы скажете, это нереально? Мне самому так казалось, пока я не заглянул недавно на сайт www.ti.com.
Образцы ожидаются уже в конце текущего года. А модернизация существующих средств отладки — этим летом. Вот и мечтай после этого!