Другое направление совершенствования микроконтроллеров, ставшее возможным в конце 70-х, заключалось в сохранении относительно простого ЦПУ и использовании оставшихся ресурсов кристалла для реализации встроенной памяти и интерфейсов ввода/вывода. Это дало возможность создавать простые встраиваемые системы управления на одной-единственной микросхеме, значительно уменьшая таким образом общее число микросхем, необходимое для реализации заданной функции. Для реализации подавляющего большинства задач управления большой вычислительной мощности не требуется, а вот уменьшение размера готовых устройств и, соответственно, их стоимости крайне желательно. В качестве простого примера можно привести смарт-карту с интегрированным процессором. Такие микропроцессорные устройства получили название микроконтроллеров[67]. Например, в каждом доме, незаметно для нас, обитает несколько сот микроконтроллеров. Они есть повсюду — в бытовой технике, аудио- и видеоаппаратуре, персональных компьютерах, телекоммуникационных устройствах, смарт-картах и, в том числе, в автомобилях.
Если микропроцессор с точки зрения архитектуры (см. Рис. 3.1 и Рис. 3.2) представляет собой только блок центрального процессора, то микроконтроллер уже является законченной самодостаточной компьютероподобной системой. Рассмотрим в качестве примера электронную часть системы контроля автомобильного одометра, которая отображает общий пробег автомобиля с момента изготовления, а также дальность последней поездки (так называемый путевой одометр). Основным входным сигналом системы является сигнал от автомобильного тахометра, который формирует импульсы при каждом обороте маховика двигателя. Подсчитав суммарное количество этих импульсов, можно определить количество оборотов двигателя, а по интервалу между импульсами можно вычислить скорость движения автомобиля. Разумеется, реальный путь, проходимый автомобилем, зависит от передаточного числа коробки передач, поэтому нам необходимо знать о том, какая из пяти передач была включена водителем в каждый момент времени. Эта информация поступает из коробки передач по линиям G5, …, G1 (обычно обозначаемым как G[5:1]). Включенной передаче соответствует напряжение ВЫСОКОГО уровня на соответствующей линии (передача заднего хода не учитывается). Два дополнительных входа предназначены для задания единицы измерения отображаемых значений (мили или километры) и для обнуления путевого одометра.
Собственно дисплей одометра представляет собой семиразрядный 7-сегментный индикатор (см. Рис. 6.8 на стр. 183), который может отображать значения до
Рис. 3.8.
Дисплей путевого одометра является 4-разрядным и позволяет отображать значения до
Для реализации этой системы нам потребуются следующие ресурсы (так называемый
• Вход, срабатывающий по фронту и подключенный к счетчику/таймеру для подсчета числа оборотов вала двигателя (на этот вход поступают импульсы от тахометра).
• Семь цифровых входов для ввода текущего передаточного отношения, задания единицы отображения (мили/км) и для сброса путевого одометра.
• Четыре цифровых выхода для тактирования двух сдвиговых регистров и передачи информации о сегментах.
• Микропроцессор для выполнения вычислений, считывания входных сигналов и формирования выходных.
• • Память программ, обычно ПЗУ какого-либо типа.
• Память данных для хранения рабочих переменных программы, обычно статическое ОЗУ.
• Энергонезависимая память для долговременного хранения информации, такой как суммарный путь, пройденный автомобилем, и расстояние, пройденное с момента последнего сброса путевого одометра.
Все эти функции могут быть реализованы в одной-единственной интегральной микросхеме, называемой в данном случае микроконтроллером, т. е. микропроцессором, интегрированным на одном кристалле со вспомогательными схемами и выполняющим работу целого микрокомпьютера. Разумеется, перечисленные ресурсы имеют отношение только к нашему примеру. Хотя основные узлы (микропроцессор и память) являются общими для широкого круга приложений, интерфейс ввода/вывода необходимо подбирать под каждую конкретную задачу. Причем эти интерфейсные модули могут быть самыми разными, например:
• Модули приема/передачи данных по последовательным каналам с использованием разнообразных синхронных и асинхронных протоколов.
• Модули счетчиков/таймеров для подсчета числа внешних событий и формирования цифровых сигналов с точными временными параметрами.