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