Эта шина предназначена обмена данными микропроцессора с периферийными устройствами. Она должна иметь не менее 8-ми разрядов для передачи информации по байтам (1 байт = 8 бит, 1 байт / с = 1 бод, 1 Кбайт = 1024 байт).
16-тиразрядная шина данных может за один такт передавать 2 байта, 32-разрядная шина – 4 байт, 64-разрядная – 8 байт.
Шина адреса (ADDR bus)
В отличие от шины данных, двоичные числа, передаваемые по шине адреса представляют собой адрес ячейки памяти или порта ввода/вывода, к которому в данный момент обращается процессор. Минимальное количество разрядов адресной шины – 16.
Шина управления (CONTROL bus)
В шину управления условно объединяют набор линий, передающих управляющие сигналы от процессора к периферийным устройствам и обратно. В любой шине управления присутствуют линии, передающие сигналы:
RD (Read) – чтение
WR (Write) – запись
MREQ – инициализация устройств памяти (ОЗУ или ПЗУ)
IORQ – инициализация портов ввода/вывода
READY – готовность
RESET – сброс
По отношению к любым периферийным устройствам, центральный процессор может выполнять в каждый момент времени одну из четырех основных операций: чтение или запись в ячейку памяти, чтение из порта и запись в порт.
Например, процесс записи данных в память происходит таким образом:
Сначала центральный процессор выставляет на адресную шинуадрес нужной ячейки памяти.
Затем на шину данныхон выставляется байт информации, предназначенный для записи в эту ячейку.
После чего активизируется сигнал MREQ, дающий доступ к модулю памяти.
Затем процессор устанавливает сигнал WR в активное состояние (лог.0). По этому сигналу происходит запись байта в ячейку памяти, адрес которой присутствует на шине адреса.
Для того, чтобы прочитать байт из ячейки памяти, процессор сначала устанавливаетна шине данных адрес нужной ячейки. Затем он устанавливает сигнал MREQ в активное состояние, то есть устанавливает его равным логическому нулю. Этот сигнал поступает на устройства памяти и служит разрешением для их работы. При этом сигнал IORQ остается равным лог.1. Поэтому порты ввода/вывода микропроцессорной системы остаются неактивными.
Далее, процессор переводит в активное состояние сигнал RD. Этот сигнал поступает как на устройства памяти, так и на порты ввода/вывода. Однако порты не реагируют на него, так как они отключены высоким уровнем сигнала IORQ. Устройство памяти, напротив, получив управляющие сигналы RD и MREQ, выдает на шину данныхбайт информации из той ячейки памяти, адрес которой присутствует в этот момент на шине адреса.
Операции чтения из порта и записи в порт происходят аналогично операциям чтения/записи ОЗУ. Различие лишь в том, что вместо сигнала MREQ в активное состояние переходит сигнал IORQ, разрешающий работу портов.
Обобщенную структурную схему микроконтроллера рассмотрим на примере одного из самых распространенных однокристальных микро- контроллеров американской фирмы ATMEL – АТ89С2051 (рис. 2). Эта микросхема выполнена в стандартном DIР-корпусе и имеет 20 выводов. Напряжение питания микросхемы +5В. Допускается разброс питающего напряжения от 2,7 В до 6 В, что обеспечивает высокую помехоустойчивость МК.
ППЗУ программ. Встроенное перепрограммируемое ПЗУ объемом 2 кБ выполнено по технологии электрически стираемого ПЗУ (так называемая «Флэш-память»). В эту память записывается программа, которую микроконтроллер начинает выполнять сразу после включения питания и окончания сигнала сброса.
Технология флэш-памяти допускает перепрограммирование, то есть повторную запись. Для этого информацию в ППЗУ сначала стирают. Стирание производится при помощи того же самого программатора. При этом используется повышенное напряжение (12 В). В стертое ППЗУ программ можно «зашивать» новую программу. Допускается до 1000 циклов записи/стирания.
ОЗУ данных состоит из 128 восьмиразрядных ячеек памяти. Как и в большинстве однокристальных МК, в микросхеме АТ89С2051 применяется принцип совмещения ОЗУ с регистрами общего назначения процессора и двумя восьмиразрядными портами ввода/вывода Рl и РЗ.
Арифметико-логическое устройство (АЛУ) заменяет здесь центральный процессор. Регистры для временного хранения данных, как уже говорилось, совмещены с ячейками ОЗУ.
Таймеры. В микросхеме имеются два встроенных 16-разрядных таймера/счетчика Тl и Т2. Они могут использоваться программистом для задания любых интервалов времени. Каждый счетчик может работать в двух режимах: режиме отсчета временных интервалов (в этом случае он считает импульсы внутреннего тактового генератора) и в режиме подсчета внешних импульсов.
Последовательный канал. Это канал специального типа для последовательной «побайтовой» передачи информации по одной линии. В любом компьютере всегда имеются два последовательных интерфейса (СОМl и СОМ2). Один из этих интерфейсов раньше часто использовался для подключения манипулятора «мышь». А второй предназначен, в основном, для подключения модема. Подобный канал реализован и в микросхеме АТ89С2051. В результате имеется возможность создания микропроцессорных устройств, управляемых при помощи компьютера по последовательному каналу.
Порты Рl и РЗ – параллельные восьмиразрядные порты ввода/вывода.
Встроенный контроллер прерываний. Способен обрабатывать шесть источников прерываний. Два внешних входа для запросов на прерывание. Два прерывания от обоих счетчиков/таймеров ТI и Т2. Запрос прерывания таймера поступает в тот момент, когда соответствующий счетчик/таймер досчитает до нуля (счетчик работает в режиме обратного счета). И, наконец, последние два источника прерывания – от последовательного канала ввода/вывода. Один от передатчика этого канала. Он срабатывает в тот момент, когда процесс отправки очередного байта закончился. И один – срабатывает от приемника, когда тот принял очередной байт.
Аналоговый компаратор. Сравнивает величину двух аналоговых сигналов. На его выходе появляется сигнал лог. 1, когда напряжение на входе «+» превысит напряжение на входе «–».