Курсовая работа: Разработка архитектуры, принципиальной схемы и конструкции специализированного микроконтроллера
Протокол передачи данных по шине разработан таким образом, чтобы гарантировать надежный качественный прием/передачу данных. При передаче данных одно устройство является “Ведущим”, которое инициирует передачу данных и формирует сигналы синхронизации. Другое устройство “Ведомое”, которое может начать передачу данных только по команде ведущего шины.
Каждое устройство на шине имеет уникальный адрес. Когда ведущий инициирует передачу данных, то сначала передается адрес устройства, к которому выполняется обращение. Остальные устройства проверяют переданный ведущим адрес. В составе байта адреса устройства входит бит направления передачи данных (выполняется чтение из ведомого или запись). Ведомый и ведущий шины всегда находятся в противоположном режиме работы, что можно представить в виде двух состояний: ведущий передатчик – ведомый приемник; ведомый передатчик – ведущий приемник. В обоих случаях ведущий формирует тактовый сигнал.
Вывод тактового сигнала SCL и данных SDA должны иметь выход с открытым коллектором, чтобы выполнять требования “монтажного И” на шине. Число устройств, которые могут быть подключены к шине, ограничивается только максимальной емкостью шины (400 пФ).
3 Описание работы контроллера клавиатуры/дисплея КР580ВД79
микроконтроллер разработка схема
Микросхема КР580ВД79, именуемая для краткости ККД (контроллер клавиатуры/дисплея), представляет собой универсальное программируемое устройство сопряжения с клавиатурой и дисплеем на основе семисегментных светодиодных индикаторов (ССИ).
Он состоит из двух основных функционально разделимых частей: клавиатурной и дисплейной. Клавиатурная часть предназначена для сопряжения с клавиатурой печатающих устройств и с произвольными наборами переключателей. Дисплейная часть ПККИ позволяет отображать информацию с помощью индикаторов различных типов (дисплеев). В нашем случае используется десять семисегментных индикаторов, которые используются в качестве алфавитно-цифрового дисплея.
Клавиатурная часть обеспечивает работу с клавиатурой размером 8x8 + 2 клавиши или с матрицей 8x8 датчиков. Обеспечиваются различные дисциплины распознавания нажатых клавиш, антидребезговый контроль. Имеется память кодов нажатых клавиш на 8 байт, организованная в виде очереди FIFO. При занесении в эту память более 8 кодов устанавливается признак переполнения. Нажатие клавиши возбуждает линию прерывания, которая может опознаваться в МК.
Дисплейная часть обеспечивает работу с дисплеем на семисегментных индикаторах (их может быть до 32 шт.). Имеется ОЗУ дисплея на 16 байт, организованное в виде двух массивов 16х4 бита. Память дисплея может быть загружена из МК и прочитана им. И в том, и в другом случае возможно автоинкрементирование адреса ОЗУ дисплея. Таким образом, ККД освобождает МК от задач постоянного сканирования клавиатуры и поддержания изображения на дисплее.
Назначение входных, выходных и управляющих сигналов ПККИ приведено в таблице 3.
Таблица 3
Обозначение вывода | Назначение вывода |
RL0-RL7 | Входы линий возврата, служащие для подачи сигналов от датчиков через контакты клавиш или ключа |
SHIFT | Вход сигнала сдвига, используемого для сканирования клавиатуры |
CNTL/STB | Вход сигнала управления для режима сканирования клавиатуры или стробирующего сигнала для режима ввода по стробу |
RD | Вход сигнала чтения L-уровня, разрешающего передачу информации из ПККИ в канал данных микропроцессора |
WR | Вход сигнала записи L-уровня, разрешающего передачу информации из канала данных микропроцессора в ПККИ |
A0 | Вход для управления записью/чтением данных или команд; при сигнале Н-уровня происходит запись команды или чтения состояния ПККИ, при сигнале L-уровня — запись или чтение данных |
CS | Выбора микросхемы; L — уровень сигнала разрешает работу схемы |
CLK | Вход сигнала синхронизации микросхемы |
RESET | Линия сброса ПККИ в начальное состояние |
DB0 – DB7 | Двунаправленная шина данных |
OA0 – OA3 | Выходы канала А (старшая тетрада) |
OB0 – OB3 | Выходы канала В (младшая тетрада) |
BD | Выход сигнала гашения отображения L-уровня |
SL0 – SL3 | Выходы сигналов сканирования клавиш клавиатуры |
IRQ | Выход сигнала прерывания |
Управление ККД с помощью сигналов на внешних выводах.
Управляющие слова (УС) загружаются в регистры управления ККД при . Загружая определенные УС, можно настроить ККД на работу в требуемом режиме и предписать выполнение некоторой операции.
Операции, выполняемые в ККД, определяются не только управляющим словом, но и комбинацией управляющих сигналов на его входах:
Направление и вид операций обмена между микропроцессором и ПККИ представлены в таблице 4.
Таблица 4
Сигналы управления | Вид операции обмена | |||
CS | A0 | RD | WR | |
1 | X | X | X | ПККИ не выбран |
0 | X | 1 | 1 | ПККИ не выбран |
0 | 0 | 0 | 1 | Чтение данных из памяти клавиатуры или дисплея |
0 | 0 | 1 | 0 | Передача команды с ШД в ПККИ |
0 | 1 | 0 | 1 | Чтение байта состояния ПККИ |
0 | 1 | 1 | 0 | Загрузка управляющего слова в ПККИ |
УС инициализации клавиатуры и дисплея (УС0):
0.0.0.D.D.KK.S.
Здесь DD кодирует режим работы дисплея, КК - режим работы клавиатуры, S - режим сканирования в соответствии со следующими правилами:
DD:00Дисплей на 8 символов с вводом слева
01Дисплей на 16 символов с вводом слева
10Дисплей на 8 символов с вводом справа
11Дисплей на 16 символов с вводом справа
Описание режимов правого и левого вводов приводится ниже. Если сканирование идет в режиме дешифратора, то дисплей не может быть больше, чем на четыре символа (так как линии SL общие).
КК: 00 Клавиатура в режиме одиночного нажатия клавиш
01 Клавиатура в режиме N-клавишного нажатия
10 Сканирование матрицы датчиков
11 Режим стробируемого ввода
S:0Сканирование в режиме 4-битного двоичного счетчика
1Сканирование в режиме инверсного дешифратора на четыре выхода.
После сброса ККД оказывается в режиме, соответствующем УС0-00001000. При сканировании в режиме счетчика цикл опроса клавиатуры укладывается в восемь состояний счетчика от "0000" до "0111" и oт "1000" до "1111". Таким образом, в этом режиме опрос клавиатуры происходит дважды в каждом цикле полного пересчета счетчика SLO—SL3, т.е. для сканирования клавиатуры используются только три младшие линии SLO-SL2.
УС инициализации опорной частоты (УС1): О.О.1.Р.Р.Р.Р.Р. Здесь РРРРР устанавливает коэффициент деления частоты внешнего синхросигнала CLK для получения внутреннего опорного сигнала с частотой не более 100 кГц. После сброса устанавливается максимальный коэффициент РРРРР, равный 11111. При частоте внутреннего опорного сигнала 100 кГц один полный цикл сканирования занимает приблизительно 10,2 мс.
УС чтения памяти клавиатуры/датчиков (УС2): О.1.0.I.Х.А.А.А. УС2 должно предшествовать чтению данных из памяти клавиатуры. Здесь I есть признак автоинкрементной адресации; ААА устанавливает адрес байта памяти, который должен быть считан. Если бит I установлен, то последующие команды чтения данных будут вызывать автоматическое увеличение адреса. Таким образом, если необходимо прочитать всю память клавиатуры, то это можно сделать, загрузив УС2 с битом I = 1 и затем 8 раз считать данные из ККД.