железоComputer Review#16(66)

В. Трондин

Интеллект вещей
Сфера однокристальных микроконтроллеров

 Что общего между крутым BMW, пейджером и тамогочи?

 Ни много, ни мало - везде применяются микропроцессоры. Откуда они пошли и куда могут нас завести?

 Около 30 лет назад одной никому не известной фирме "Intel" кто-то заказал разработку микросхемы для управления неведомо чем. "Intel" решила один раз не полениться и разработать раз и навсегда такую микросхему, которая будет настолько универсальной, что если кто еще попросит микросхему для управления чем-нибудь, достаточно будет только поменять немногое, чтобы закрыть новую потребность. Благими намерениями устлана дорога в ад - так появился первый микропроцессор.

 С той поры и существуют два направления - процессоры для универсального применения и процессоры для встроенных систем, впрочем, эти направления весьма часто пересекаются.

 Для микропроцессоров, предназначенных для встроенных систем, характерны небольшие по современным понятиям объемы памяти программ (от 1 до 128 Кбайт), памяти данных (128 байт - 4 Кбайта). Но зато, как правило, все это на одном кристалле, и помимо того на этом же кристалле имеются несколько таймеров, различные последовательные интерфейсы и порты ввода-вывода, аналоговые входы и выходы и так далее. Все это изобилие потребляет ток от микроампер до десятка миллиампер и очень часто способно работать в температурном диапазоне от -55 до +125 градусов по Цельсию. Программируются такие однокристальные контроллеры обычно на языках ассемблер или C. Реже используется Forth, Pascal, Basic. Для однокристальных контроллеров существуют и свои операционные системы, слава Богу, не имеющие ничего общего с Windows - их размер от сотен байт до единиц килобайт. Программа заносится в контроллер, как правило, один раз, после чего он устанавливается на печатную плату и готов к работе. Память программ и данных, как правило, расположены не в едином адресном пространстве, как мы привыкли видеть у большинства компьютеров, а разделена. Более того, не предусмотрена возможность записи в память программ, что уменьшает вероятность ошибок. Одним словом это называется "гарвардская архитектура". Однокристальные контроллеры обычно имеют защиту программного обеспечения. Это означает, что если я напишу программу для устройства на базе микроконтроллера и занесу ее в память, то вы не сможете считать ее и скопировать мою разработку, несмотря на ее внешнюю простоту.

 Для работы с однокристальными контроллерами полезно иметь специальное программное обеспечение и кое-какое "железо". Программное обеспечение - это какой-нибудь кросс-компилятор (или пакет целевой кросс-компиляции в терминах Forth) и программный симулятор. "Железо" - это программатор (обязательно) и внутрисхемный эмулятор (желательно).

 Самые "древние" из использующихся сейчас однокристальных контроллеров - это клоны Интеловских контроллеров i8051, которые за много лет развития многими фирмами стали гораздо быстрее, приобрели flash-память программ и данных, в них появились дополнительные устройства ввода-вывода. Пожалуй, наиболее популярны клоны этих процессоров, производимые фирмой Atmel, которая все, что можно и что нельзя, снабжает flash-памятью. Естественно, не обделили вниманием и i8051 - его снабдили flash-памятью программ с возможностью перезаписи до 1000 раз (AT89C51) и flash-памятью данных, которая выдерживает до 100 тысяч циклов записи (AT89S8252). Последний, кстати, еще снабжен и последовательным интерфейсом SPI, через который его можно программировать - в итоге можно обойтись без программатора. Еще один важный параметр - цена. Для AT89C51 она составляет 3,5 доллара за корпус. Вполне приемлемо даже по нашим временам. Большой плюс клонов i8051 - доступность программного обеспечения. Как-то я искал в Internet среды C-программирования для них (именно полноценные графические среды под Windows, а не просто трансляторы, запускаемые командной строкой) - и нашел их в Internet более 10. Но самые популярные - это Keil microVision, IAR C, Franklin Software ProView.

 У Atmel есть весьма популярная в России новинка - семейство процессоров AVR. Они характеризуются оптимальной системой команд, большинство из которых выполняется за один такт, более компактным кодом и меньшим энергопотреблением. Многие контроллеры семейства имеют встроенный 10-разрядный АЦП и ШИМ выход.

 Еще одно очень популярное в России семейство - PIC фирмы Microchip Technology. Немало копий сломано при выяснении, что лучше - AVR или PIC. Для каждого своя истина - но вот flash у большинства PIC нет, стало быть, одноразовые они (в смысле однократно программируемые, что, впрочем, для однокристальных контроллеров недостатком не является).

 Существует еще множество типов микропроцессоров, но почему-то в России популярны именно эти. Пожалуй, просто необходимо упомянуть о семействе DSP (Digital Signal Processor) фирмы Texas Instruments, предназначенных для цифровой обработки аналоговых сигналов. На процессорах этой фирмы сделано большинство модемов, на их базе делают различные системы обработки звука, в том числе и для автоответчиков без магнитной ленты. Различные однокристальные микропроцессоры выпускают множество фирм: Philips, Hitachi, Siemens, NEC, Mitsubishi, Matsushita, Motorola, OKI, Dallas Semiconductor - список можно продолжать и продолжать.

 В мире микроконтроллеров очень популярны последовательные шины типа I2C (Inter-Integrated Circuit bus) или SPI (serial peripheral interface). Благодаря этим шинам для подключения периферийных микросхем к процессору достаточно двух-трех проводов, а не десятков, как практиковалось раньше. В свою очередь, уменьшается число выводов микросхем, позволяя уменьшить габариты устройств, повысить надежность и упростить разработку устройств. Кроме того, при помощи таких шин легче запутать любителей чужой информации.

 Область применения однокристальных микроконтроллеров поистине безгранична, они устанавливаются буквально везде - в любой современной видео- и аудиоаппаратуре есть микропроцессоры, в кассовых аппаратах, пейджерах; современный автомобиль, если, конечно, он не российского производства, буквально нашпигован ими. Лет пятнадцать назад у разработчиков существовал критерий - если в цифровом устройстве больше, чем двадцать микросхем малой и средней степени интеграции, то нужно думать о возможности использования однокристального микропроцессора. Сейчас цены на них настолько малы, что их можно ставить, где только можно - ведь если что-то потребуется изменить, то проще изменить программу, чем принципиальную схему и печатную плату.


 Взглянем на пейджер - это карманный симбиоз микроконтроллера и радиоприемника. Роль процессора в нем очень велика - он получает от приемника сигнал в стандарте POCSAG или FLEX, декодирует его, определяет, предназначено это сообщение данному абоненту или нет. Если адрес совпал, сообщение принимается, запоминается в памяти контроллера и выдается на жидко-кристаллический дисплей. Если адрес не совпал, микропроцессор на некоторое время отключает питание приемника, существенно уменьшая энергопотребление пейджера. Такая система практически беззащитна от прослушивания - даже ребенок может взять пейджер, подключить его приемник вместо микроконтроллера к персональному компьютеру, на котором установлена программа-анализатор протокола и вылавливать из эфира все сообщения, сразу записывая их на диск. И особых усилий для этого не понадобится - описаний этой процедуры и анализаторов в Internet полным-полно. Так что будьте бдительны и не передавайте на пейджер конфиденциальную информацию. Вас, конечно, защищает закон, но уличить злоумышленника очень сложно.

 Теперь посмотрим, чем занимаются контроллеры в автомобиле. Уверяю вас, у них там очень много работы!

 Начнем с двигателя. Большинство импортных автомобилей оснащено электронным впрыском топлива. При этом дозировка топлива и зажигание смеси ложится на плечи микроконтроллера. Микроконтроллер анализирует расход воздуха с помощью датчика массового расхода или датчика разрежения, положение дроссельной заслонки, температуру охлаждающей жидкости и воздуха и, в зависимости от этих параметров, изменяет длительность открытого состояния форсунок, через которые под давлением впрыскивается топливо. Выхлопные газы анализируются на наличие несгоревшего кислорода при помощи лямбда-зонда и, при необходимости, корректируются параметры впрыска. Некоторые системы снабжены датчиком детонации, который позволяет точнее установить угол опережения зажигания и до некоторой степени учесть октановое число бензина.

 Близко время, когда большинство двигателей начнут оснащать интеллектуальной системой управления газораспределением, которая позволяет улучшить работу двигателя на различных режимах. Место распредвала займет гидравлическое управление клапанами, управляемое контроллером.

 Очередной контроллер найдется в приборной доске автомобиля - и любители "сматывать" счетчик встретят определенные трудности в автомобиле с такой приборной доской. BMW просто обожает такие приборные доски! Кроме всего прочего, такая приборная доска предупредит о необходимости поменять масло или сделать техническое обслуживание автомобиля. Сообщит она и о проблемах - жаль, на немецком.

 Хорошее торможение тоже невозможно без контроллера. Принцип антиблокировочной системы (ABS) прост - ни одно колесо не должно идти "юзом" - это увеличивает тормозной путь и приводит к плохой управляемости автомобиля при торможении. Хороший результат достигается тоже просто - на каждое колесо устанавливается датчик скорости вращения. Если при торможении какое-то из колес начинает проскальзывать и, следовательно, вращаться медленнее остальных, контроллер ABS дает команду на разблокировку колеса. Водитель такую ситуацию чувствует, как удары по педали тормоза.

 Аналогичную функцию выполняет антипробуксовочная система (TCS -Traction Control Systems), но не при торможении, а при разгоне автомобиля или поворотах. Если какое-то колесо теряет сцепление с дорогой и скорость его вращения становится больше других, контроллер TRS дает команду на подтормаживание этого колеса. Если и это не помогает, контроллер TRS "вступает в переговоры" с контроллером впрыска топлива, который заставляет двигатель сбросить обороты, восстанавливая сцепление с дорогой и ограничивая шансы лихача досрочно уйти в мир иной.

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

 В конечном итоге все равно большинство промышленных микроконтроллеров базируется на тех же однокристальных контроллерах, недаром фирмы, известные своими промышленными контроллерами производят и однокристальные микроконтроллеры.

 Расшифровка непонятностей:

 Flash - энергонезависимая память с электрическим стиранием
 АЦП - аналого-цифровой преобразователь
 ШИМ - широтно-импульсная модуляция
 P.S. Злоупотребляя добротой редакции, автор этой статьи сообщает, что в данное время он занимается поиском работы в Иркутске, Шелехове или Ангарске. Я разрабатываю аппаратуру на базе микроконтроллеров, пишу программное обеспечение для них и проектирую печатные платы. Кроме этого, я пишу программы для Windows на Delphi. Вы можете оставить свои координаты по Иркутскому телефону 43-40-65 или позвонить мне в Шелехов (210) 5-12-11. E-mail: trondin@geocities.com


железоComputer Review#16(66)

Copyright © 1998 "Компьютерное обозрение"
Дизайн - leidenwebdesign - http://leiden.irkutsk.ru