Иосиф КАРШЕНБОЙМ
iosif.karshenboim@eltech.spb.ru
Микроконтроллеры NEC
для автомобильной электроники
Введение, или Рассказ о непрерывно растущих потребностях
Вот что он рассказывал о своей Ласточке. Он долго ее добивался, и она была его первая любовь. Она была такая молодая и легкая. Правда, характер у нее был... Он отдавал ей почти все, что у него было. Но если она сильно разгонялась, то ее заносило. И она любила, чтобы он занимался с ней этим не только дома, но и в самых диких местах.
Когда она сильно упрямилась, они ссорились, и он даже ругал ее. И только «кривой стартер» был последним аргументом в этом споре. Но время есть время. Теперь у него другая. У нее такие линии и мягкая кожа. Но в память
о той, он тоже зовет ее Ласточкой. И он ее тоже любит. И она не то, что та, первая.
Она тепло встречает его зимой, и она поет ему песни, а когда он что-то не заметит, то она ему об этом напоминает своим нежным голосом. И ее никогда не заносит, и он с ней не ссорится. И все же и теперь он тоже дарит ей все, что может. Правда, автопилот и все эти лампочки у нее в бортовом компьютере уже покруче будут, чем в Старфайтере, а дизель автоматизирован как в подводной лодке.
Есть в ней что-то от Форт-Нокса. И колеса у нее как у Боинга. А видеосалон, а Интернет! И конечно, космическая связь, как в центре управления полетами. И еще он подарил ей систему ночного видения, которая проецирует на лобовое стекло изображение от инфракрасной видеокамеры. Да, тот их парень 007 здесь просто отдыхает. И вот все же, у него тут бумажка, где он написал алгоритм, и молекулярный локатор, который чует «этих за 100 верст», и он хочет добавить.
Итак, господа разработчики автоматики для транспортных средств, картина до боли знакома. Температурный диапазон от -40 и до +85 °С под капотом. Гарантированная надежность. Вибрации. Требования и к цене, и к поставке. А еще программные инструменты и много памяти. А еще аппаратные узлы для сетевых стыков и звуковые генераторы.
Таблица 1. Название документов, подтверждающих
качество выпускаемой продукции
Document No. English
Document name
Quality Grade on NEC Semiconductor Devices C11531E
Reliability Quality Control on NEC Semiconductor Devices C10983E
Semiconductor Devices Quality Assurance Guide MEI-1202
Как удовлетворить все эти требования? И какой микроконтроллер выбрать?
Кто отзовется на волшебное слово «reliability»?
Первое требование, предъявляемое к микроконтроллеру, — надежность.
Давайте проверим, как относятся изготовители микросхем к этому понятию.
Результат поиска приводится по убыванию информации о надежности продукции фирм. Поиск проводился по двум направлениям:
• по слову «reliability»;
• по слову «микроконтроллер» + 16-32 бит. Сначала смотрим на сайте NEC: 28 записей
от фраз типа:
Automotive Applications Mission (Применение в автотранспорте) — NEC Electronics (Europe) GmbH
... And more than every second dashboard on the road in Europe is controlled by an NEC device. (... И более чем каждый второй автомобиль в Европе имеет приборную панель, выполненную на микроконтроллерах NEC.)
до записей типа:
Job offer «Analog Engineer (f/m)» (предложение работы: «инженер по аналоговой технике») — NEC Electronics (Europe) GmbH ... Mixed-signal circuit design (schematic entry, ..reliability analysis). (... Проекты, содержащие аналого-цифровые цепи (разработка схем, анализ надежности).)
Возьмем для примера описание микроконтроллера |iPD780816A, где уже на третьей странице есть фразы о том, что фирма NEC принимает все меры по повышению надежности, но разработчики тоже могут принять дополнительные меры в своих проектах. Кроме того, в описании присутствует таблица, выдержка из которой приведена в таблице 1.
Но это и неудивительно, ибо производство NEC Electronics сертифицировано по основным промышленным стандартам, таким как ISO 9000 и TS16949. Все продукты фирмы разработаны в соответствии с APQP/PPAP и соответствуют стандартам AEC, MIL и JEDEC.
Теперь проверим, что есть на других сайтах
Microchip. Здесь легко находится информация, что фирма Microchip тоже уделяет большое внимание системам качества, таким как Automotive Electronics Council AEC-Q100. Документация сведена в книге «Microchip Overview, Quality Systems and Customer Interface Systems Handbook».
Единственный недостаток — отсутствие высокопроизводительных 32-разрядных процессоров.
STMicroeiectronics. Фирма поддерживает стандарты качества ISO 9001 и TS16949. Для проверки берем описание микроконтроллера STR720. Видим: 16/32-разрядное MCU с 16K RAM, USB, CAN и т.д. Дополнительно о надежности ничего не сказано. Модельный ряд значительно меньше, чем у NEC. Не у всех микроконтроллеров серии STR7xx присутствует узел CAN.
Atmel. У фирмы Atmel для сравнения был взят документ на AT91SAM7S128, где слово «reliability» нашлось только на последней странице, как предостережение для тех, кто превышает предельно допустимые параметры.
Philips Semiconductor. У фирмы для тестирования были взяты микроконтроллеры LPC2119/LPC2129— 16/32-разрядные однокристальные МК; 128/256 Кб ISP/IAP Flash с 10-битным АЦП и CAN. Хороший процессор, цена приемлемая, одно только плохо — фирма не дает на это изделие пожизненной гарантии и рекомендует не применять его в изделиях, связанных с риском для жизни.
Результат поиска
Что же показал наш поиск? Микроконтроллеров существует много. Но при всем многообразии выбора постепенно приходим к тому, что для ответственных применений необходимо выбрать производителя, для которого слово «надежность» не будет мелкой фразой на последней странице.
Где надежность закладывается в изделие не на этапе рекламной кампании, сопутствующей началу продажи изделия, а при отборе и подготовке инженеров-разработчиков, для которых понятия «надежность» и «безотказность» являются фундаментом их проектов. Ну и «модельный ряд» хочется иметь побольше. И фирма NEC Electronics полностью оправдывает наши ожидания по надежности микроконтроллеров.
Концепция линий микроконтроллеров NEC
Новые микроконтроллеры фирмы NEC соответствуют непрерывно меняющимся требованиям рынка. Их отличает:
1. расширенный температурный диапазон;
2. взаимозаменяемые серии;
3. масштабируемость внутри серии, например шкала памяти 16, 24, 32, ..., 128 кбайт;
4. Дополнительные узлы — CAN, ROM correction, Sound Generator, Stepper motor controller, и другие.
Линии K, F, S, L и D обеспечивают соответствие растущим требованиям к микроконтроллерам для встроенных применений при разумной цене. Масштабируемость внутри линии и между линиями дает пользователю широкие возможности при выборе требуемой производительности микроконтроллера, его корпуса, объема памяти и цены:
• самая высокая масшабируемость по ресурсам микроконтроллера;
• охват от нижнего диапазона ресурсов до самого высокого;
• гарантия многократного использования программного обеспечения;
• минимизация затрат на дизайн.
Линии микроконтроллеров
На рис. 1 представлены области, занимаемые микроконтроллерами различных серий, а в таблице 2 приведено краткое описание их возможностей.
Масштабируемость внутри линии и между линиями
Что дает масштабируемость? Представим, что вы имеете совсем новый проект и еще
Рис. 1. Линии микроконтроллеров
Таблица 2. Линии микроконтроллеров и их краткие характеристики
Название серии Возможности микросхем
К-Ыпе. Линия микроконтроллеров для задач с обычными требованиями • Число выводов от 16 до 144. • Разрядность: 8-бит и 32-бит. • Питающее напряжение: 1,8—5,5 В. • Используется для всех типов применений
ЬЫпе. Линия микроконтроллеров для задач с ЖК-дисплеями • В состав микросхемы входит ЖКИ-контроллер/драйвер. • до 160 сегментов ЖКИ. • Питающее напряжение: 1,8—5,5 В. • 100% соответствует микросхемам К_Ыпе.
Р-Ыпе. Линия микроконтроллеров для задач с САМ-интерфейсом • Число выводов от 44 до 144. • Разрядность: 8-бит и 32-бит. • Питающее напряжение: 4-5,5 В. • Используется для всех типов применений.
Б-Ыпе. Линия микроконтроллеров для устройств, требующих много памяти • Число выводов от 100 до 144. • Разрядность: 32-бит. • Питающее напряжение: 2,85-3,65 В. • Для устройств, требующих много памяти.
Э-Ыпе. Линия микроконтроллеров для приборных панелей • Число выводов от 100 до 144. • Разрядность: 32-бит. • Питающее напряжение: 4,0—5,5 В • Для применений в автомобильном транспорте.
16 pin 20 pin 30 pin
КВ1+
KY1+ КА1+ КВ1+
KY1+ КАП-
KY1+
Рис. 2. Микроконтроллеры K-Line с малым числом выводов
точно не знаете, что будет собой представлять программное обеспечение на этапе отладки проекта. А печатную плату уже надо сдавать в производство.
Что обычно происходит в этом случае? Берем микроконтроллер «на вырост», как форму для первоклассника. Загружаем в память программу, сервис и дополнительные отладочные функции. Проводим отладку, выясняем, сколько же нужно памяти и ресурсов для конкретного устройства.
В итоге значительная часть памяти не будет использоваться, и для серийного изделия стоимость получается завышенной. А в масштабируемой линии микроконтроллеров фирмы ЫЕС пользователь имеет возможность выбрать микроконтроллер из семи вариантов с объемом адресуемой памяти: 16, 24, 32, 48, ..., 128 Мбайт. Например, для серии Б, в которую входят микроконтроллеры, имеющие разрядность как 8, так и 32 бит, «диапазон корпусов» простирается от 44-вывод-ных до 144-выводных. «Диапазон памяти» — от 32 до 512 кбайт (табл. 3).
Программные модули, написанные для микроконтроллера серии Б, могут быть применены и для любого другого микроконтроллера, входящего в состав этой серии. Это возможно потому, что периферия имеет одинаковые адреса и регистры. То же самое относится и к «железу». Если применены одинаковые корпуса, то микросхему можно при-
паять любую на выбор. Еще один аспект этой проблемы — одинаковые отладочные средства для всей серии.
Но и это еще не все. Далее начинается масштабируемость между различными линиями микроконтроллеров.
Рассмотрим следующие микроконтроллеры
Микроконтроллеры с малым числом выводов. К этой группе относятся микроконтроллеры K-Line с Flash-памятью до 8 кбайт и 256-байтной RAM и с числом выводов от 16 до 30 (рис. 2). Они имеют:
• 10-разрядный скоростной АЦП;
• питающее напряжение от 2,0 до 5,5 В;
• до 8 кбайт Flash-памяти;
• эмуляция EЕPROM;
• взаимозаменяемость с другими микросхемами серии K-Line;
• наличие аппаратных и программных инструментов.
Микроконтроллеры серии 78K0 — это
8-разрядные микроконтроллеры, входящие в состав линии K (рис. 3). Они имеют «на борту» всю стандартную периферию, а также блок CAN, ЖКИ-контроллер и управление моторами.
Таблица 3. Ресурсы микроконтроллеров серии F
S-разрядные F_Line 32-разрядные F_Line
Корпус От 44 до 80 выводов От 64 до 144 выводов
ROM (Flash/Mask) От 32 до 120 Кб От 64 до 512 Кб
RAM От 2 до 3 Кб От 4 до 20 Кб
CAN 1 От 1 до 4
Timer От 5 до 6 От 6 до 8
UART От 1 до 2 От 2 до 4
A/D От 8 до 12 От 10 до 24
Порты I/O От 19 до 54 От 51 до 128
Timers + UART + ADC/DAC + LCD
Timers + UART/SIO + ADC + FIP
Special
(ASSPs)
+ CAN
Special
(ASSPs)
Timers + UART + ADC/DAC
78086х |
■■■■■■■■!
20
44-52
120 Pins
Рис. 3. Микроконтроллеры серии 78KQ
78403х
78422х
78421х
Рис. 4. Микроконтроллеры 78K4
Микроконтроллеры 78K4. Старшая часть этой серии имеет 16-разрядную шину и до Мбайт памяти программ (рис. 4). Но здесь нужно подчеркнуть: NEC считает, что применять 16-разрядные микроконтроллеры нецелесообразно. Поэтому именно 32-разрядные микроконтроллеры V850 — основное направление для задач, связанных с обработкой большого объема данных.
Микроконтроллеры V850 — 32-bit RISC с uClinux. V850 семейство — RISC-процессор с гарвардской архитектурой. Отдельные блоки памяти для программ и для данных. Две независимых внутренних шины — для одновременной передачи команд и данных — позволяют работать намного быстрее, чем это делает процессор, построенный по фон-неймановской архитектуре.
Эффективная конвейерная обработка позволяет центральному процессору выполнять программный код, а дополнительные аппаратные усовершенствования позволяют блокировать задержки, появляющиеся при работе конвейера (например блокирование команд NOP).
Серия микроконтроллеров V850 поддерживает набор системных команд, подобных командам компьютера со сложным набором команд. Сюда входят, к примеру, команды манипуляции битами, которые являются стандартными для микроконтроллеров, предназначенных для встроенных приложений.
Аппаратный умножитель позволяет выполнить умножение двух 16/32-разрядных чисел в 32/64-разрядный результат за один цикл. Кроме того, команды суммирования с накоплением и высокоскоростной аппаратный умножитель позволяют получить эффективную работу на задачах фильтрации по цифровой обработке сигналов.
Для приложений реального времени очень важно иметь небольшое время отклика при переключении с задачи на задачу. V850 имеет программируемый контроллер прерываний и большой набор внутренних регистров, что позволяет проводить обработку прерываний в пределах 11-18 тактовых циклов.
Маскируемые прерывания могут быть активизированы индивидуально с программируемыми приоритетными уровнями, а внешние прерывания могут быть запрограммированы на положительный или отрицательный перепад сигнала на входе. Чтобы улучшить
надежность работы программного обеспечения, прерывания могут быть сгенерированы программно, как «traps», либо могут инициироваться при попытке выполнения запрещенных кодов программы [1].
uClinux для NEC V850E. Использование uClinux позволяет значительно упростить программирование и сокращает время разработки. Информация о ней находится на http://www.ic.nec.co.jp/micro/uclinux/eng/ (Япония) или http://www.ee.nec.de/uclinux (Европа).
Встроенные аппаратные средства повышения надежности
В микроконтроллерах NEC применены дополнительные аппаратные средства, повышающие надежность работы узлов сброса, контроля напряжения питания и сторожевого таймера. И конечно, основное внимание обращено на режимы программирования.
Самопрограммирование используется, когда микроконтроллер перепрограммируется уже в рабочем изделии без подключения каких-либо программаторов. Для повышения надежности алгоритмов самопрограммирования компания NEC применила специальный алгоритм «безопасное самопрограммирование» (secure self-programming), основанный на особом методе программирования Flash-памяти — «переключение блоков» (block swapping).
Важным отличием этого метода от стандартных является гарантированная безопасность работы алгоритма даже в случае аварийного отключения электропитания [2].
Следует выделить метод программирования непосредственно самой Flash-памяти с использованием кода коррекции ошибки (error correction code — ECC). Этот метод гарантирует корректную запись слова в память.
Во время процедуры записи помимо непосредственно записи данных происходит аппаратное формирование корректирующих битов ECC. Корректирующие биты записываются в специальную область Flash-памяти.
Во время процедуры чтения декодирующая логика может использовать сохраненные корректирующие биты для восстановления «на лету» единичного отказа бита данных. Таким образом, логика ECC обеспечивает повышенный уровень надежности.
Безопасность. Кроме корректной записи программного обеспечения во Flash-память микроконтроллера необходимо также позаботиться и о его защите от несанкционированного доступа.
Так например, несанкционированное проникновение в автомобильный контроллер может не только исказить пользовательские характеристики товара (снизить пробег автомобиля), но и привести к отказам и авариям.
Микроконтроллеры NEC имеют различные способы защиты, определяемые типом доступа, кроме того они поддерживают защиту как режима внутрисхемного программирования, так и режима самопрограммирования.
Разработчик должен сам определить тип и уровень защиты, устанавливая соответствующие флаги специального регистра. Таким образом разработчик может:
• защитить определенные блоки от стирания;
• предотвратить запись через пользовательский интерфейс;
• запретить функцию стирания кристалла или даже запретить программное чтение (используя функцию запрета чтения — read command disable function).
Примером могут служить два самых замечательных и популярных у разработчиков автоэлектроники микроконтроллера:
• UPD78f0852 и UPD78f0828, применяемые для приборных панелей;
• UPD78E9861 — уникальный микроконтроллер, маленькое «сердце» для брелоков автосигнализации.
В таблице 4 приведены параметры этих микроконтроллеров. Уже при беглом взгляде на таблицу видим, что микросхемы имеют большой объем памяти и много прерываний, а это значит, что для них легче писать «быстродействующие» программы.
У UPD78f0852 и UPD78f0828, кроме стандартной, всем известной периферии, есть много специализированных аппаратных узлов:
• индикатор снижения напряжения питания;
• детектор аварии питания;
• генератор звуков;
• драйвер шагового двигателя и другие. Микросхема UPD78E9861, кроме стандартной памяти и периферии, тоже имеет свои особенности — это EEPROM и регистр сдвига, предназначенный для выдачи кодовой последовательности на радиоканал брелока.
Стартовый набор и отладка
Для обучения и отладки программ фирмой NEC поставляется несколько стартовых наборов и эмуляторов. Здесь будет рассмотрен стартовый набор «Low Pin Count — Do it!» (рис. 5-6). В его состав входит микроконтроллер |iPD78F9222 с малым числом выводов (20), работающий на частоте 8 МГц. Стартовый набор подключается к хост-компьютеру по USB.
Таблица 4. Параметры микроконтроллеров
Группа параметров Параметр UPD78f0852 UPD78f0828 UPD78E9861
Общие Питание, В 4-5,5 4-5,5 1,8—3,6
Тактовая частота, МГц 1,00
Процессор Прерываний внутренних/внешних 16/3 20/3 5/1
ROM, кбайт Flash - 40 Flash - 59,5 БЕРРОМ — 4
RAM, кбайт 1,5 2,96875 128
EEPROM, байт - - 32
Порты ввода-вывода 56 59 14
LCD 20x4 28x4 —
АЦП 5x8-разрядный 5x8-разрядный —
UART 1 1 —
Периферия CSI 2 3 —
Timer 6 6 3
Watchdog есть есть есть
PWM 2x8^™bm 2x8^™bm 1х8-битный
CAN - 1xDCAN —
Другая периферия Выход частоты, LVI, детектор аварии питания, генератор звуков, драйвер шагового двигателя Выход частоты, LVI, детектор аварии питания, генератор звуков, драйвер шагового двигателя Регистр сдвига для выдачи кодовой последовательности, специальная схема генерации прерываний, узел сброса по включению.
Примечания:
1. Св1 — трехпроводной последовательный интерфейс;
2. IV! — индикатор снижения напряжения питания.
Питание осуществляется также по ШВ, поэтому сразу после подключения к ШВ-кабе-лю плата начинает помигивать светодиодом.
Итак, распаковываем, вставляем диск в дисковод, кабель — в ШВ. Устанавливаем две
программы — IAR «Embedded Workbench 78K» и «PG-LPC». Первая — основной рабочий инструмент (рис. 7), вторая — инструмент для программирования Flash (рис. 8), и все это всего за 30 евро!
I * г гг >1'., jjgjgg
..^ - 1_»щ* *
*-СэН і 1*". " с у
ШЇ if J
• ■ * I * . :■ •«_ i- * '
”■ .. ?ri if5 A — 1
NEC •
'--I ► 5Г U
rTtr*
r • • •£/,
• С € *±±±±±t , .
Рис. б. Плата с микроконтроллером
Рис. 7. Окно программы IAR «Embedded Workbench 78К»
Рис. S. Окно программы, используемой для загрузки Flash-памяти — «PG-LPC»
По поводу IAR «Embedded Workbench» можно сказать, что для многих разработчиков это уже сейчас «родная стихия». Что же касается документации на стартовый набор, то она включает в себя все описания как аппаратной части, так и программной.
Все готово! Можно работать! Кроме описанного здесь стартового набора существуют и другие отладочные инструменты и программаторы. Но это тема для отдельной статьи.
Выводы
Какие же выводы? Выделим то, что было написано в начале статьи и применим это к микроконтроллерам NEC:
• Температурный диапазон от-40 до 85 °С—да!
• Гарантированная надежность — да!
• Требования к цене и к поставке — да!
• Программные инструменты и много памяти, встроенная операционная система — да!
• Аппаратные узлы для сетевых стыков и звуковые генераторы и много другого — да! А вот что скажет скептик: «Знаем мы вас,
вам только дай написать». Но, как говорится, факт есть факт: каждый европейский (даже не японский) автомобиль Peugeot 206 имеет «на борту» 27 микроконтроллеров фирмы NEC — да, да, именно 27 микроконтроллеров в каждой машине! А есть еще и Ford, и GM Rover, и Toyota. А в дорогих и престижных машинах число микроконтроллеров может быть значительно больше.
В следующих статьях этого цикла будет дано более подробное описание микроконтроллеров и отладочных средств. Надо бы сказать как обычно: «Оставайтесь с нами», но очень хочется сказать: «Работайте с нами! Материалы доступны для изучения на сайте! Время уже идет!» ■
Литература
1. Г. Горюнов. 32-разрядный микроконтроллер по цене 8-разрядного — миф или реальность? // Компоненты и Технологии. 2005. № 3.
2. Thomas de Laar. Что вы ожидаете от современного Flash-микроконтроллера? // Мир Электронных Компонентов. 2005. № 1.