Микропроцессорная система и ее основные элементы
Микросхема КР580ВВ51 принимает параллельный код от микропроцессора, преобразует его в последовательный поток данных с присоединением служебными битами и передает его в линию связи, а также выполняет обратное преобразование: принимает последовательный поток данных из линии связи и преобразует его в параллельный 8-разрядный код, одновременно выполняя ряд функций по контролю над правильностью приема… Читать ещё >
Микропроцессорная система и ее основные элементы (реферат, курсовая, диплом, контрольная)
- 1. Задание к курсовому проекту
- 2. Общая структура системы
- 3. Формирование сигнала выбора модуля
- 4. Структура памяти
- 5. Организация ввода/вывода
- 5.1 Организация ПДП
- 5.2 Организация программируемого интервального таймера
- 5.3 Система прерываний
- 5.4 Реализация аппаратных интерфейсов вычислительных систем
- 6. Программное обеспечение
- 6.1 Начальная инициализация системы
- 6.2 Инициализация программируемых БИС
- 6.2.1 Программируемый контроллер ПДП
- 6.2.2 Программируемый интервальный таймер
- 6.2.3 Программируемый адаптер последовательного интерфейса
- 6.2.4 Программируемый контроллер прерываний
- 6.3 Подпрограммы обработки прерываний
- 7. Список используемой литературы
- Приложение
1. Задание к курсовому проекту.
В курсовом проекте необходимо разработать микропроцессорную систему (МПС) на основе однокристального 8-разрядного микропроцессора КР580ВМ80А. Основные характеристики системы заданы в таблице 1.
Таблица 1. Основные характеристики.
Тип процессора. | КР580ВМ80А. | ||
Объем памяти ОЗУ. | 32К. | ||
Тип и организация БИС ОЗУ. | СОЗУ 32Кх8. | ||
Объем памяти ПЗУ. | 32 К. | ||
Тип и организация БИС ПЗУ. | РПЗУ с УФ 8Кх8. | ||
Контроль на паритет ОЗУ, контрольная сумма ПЗУ. | Нет. | ||
Контроллер ДОЗУ. | Нет. | ||
Количество цифровых входов. | 8-разрядный порт ППИ, режим 0. | ||
Количество цифровых выходов. | 8 БР. | ||
Аппаратная реализация системы прерывания. | 3 БИС КПР. | ||
Порядок обслуживания прерываний. | Фиксированный. | ||
Канал ПДП. | КПДП. | ||
Последовательный канал. | 2 БИС ПСА. | ||
Таймер/счетчик. | есть. | ||
Способы обмена (организация ВВ). | Программный ввод-вывод, ПДП, режим прерываний. | ||
Тип интерфейса. | RS-232C. | ||
Контроль на паритет. | есть. | ||
Характеристики аналогового канала. | 8-разрядный АЦП. | ||
2. Общая структура системы.
Микропроцессорная система (МПС) представляет собой совокупность узлов, реализующих различные функции, связанные между собой шинами адреса, данных, управления, посредством которых происходит обмен информацией. В такой системе выделяются следующие основные элементы:
Блок процессора;
Схема начальной установки и формирования сигналов выбора устройств.
устройство памяти для хранения программ и массивов данных, включающее в себя ОЗУ и ПЗУ;
устройства ввода — вывода, служащие для обмена информацией с ВУ.
для формирования временных интервалов используется программируемый интервальный таймер.
Центральным процессорным элементом является микропроцессор КР580ВМ80А.
Функциональное назначение выводов МП следующее:
А0 — А15 Выходы для вывода 16 разрядов адреса.
GND Общий.
D0 — D7 Вход. /выход. Двунаправленная шина данных.
RESET Вход. Установка в начальное состояние.
HOLD Вход запроса ПДП.
INT Вход запроса прерывания.
С1, С2 Вход тактовых сигналов.
INTE Выход разрешения прерываний.
DBIN Выход приема информации.
WR Выход выдачи информации.
SYNС Выходной сигнал синхронизации.
HLDA Выход. Подтверждение запроса ПДП.
RDY Вход. Сигнал готовность.
Интерфейс однокристального МП не обеспечивает его непосредственного соединения с системной магистралью. Для построения законченного модуля ЦП требуются дополнительные схемы: генератор тактовых импульсов (DD3), системный контроллер (DD2), буферные регистры (DD6, DD7).
Обслуживание входов С1, С2, READY, RESET взяла на себя микросхема КР580ГФ28 генератора тактовых импульсов. Выходной сигнал SYNC вводит синхронизацию его работы.
Вывод INT используется для организации прерываний блоком приоритетных прерываний.
Контакты HOLD и HLDA служат для перевода системы в режим ПДП.
Сигналы DBIN, WR поступают на системный контроллер на микросхеме КР580ВК28 для формирования системных управляющих сигналов, таких как чтение из памяти (MEMR), запись в память (MEMW), ввод информации (I/OR), вывод информации (I/OW), подтверждение прерывания (INTA).
Принципиальная схема процессорного ядра системы включает МП, СК и ГТИ. Схемы включения этих микропроцессорных ИС типовые, их рекомендуют справочники и технические условия по применению. Связи между процессором, системным контроллером и генератором определены их функциональным назначением и для всех вариантов заданий будут одинаковыми.
В этой схеме с помощью дополнительных элементов задаются следующие условия работы. Во-первых, тактовая частота генератора задается внешним кварцевым резонатором ZQ1 (конденсатор С2 корректирующий, подавляющий высокочастотные составляющие). Во-вторых, предполагается, что внешние устройства и память при обмене данными с микропроцессором не требуют тактов ожидания, т. е. могут работать также быстро, как и процессор, поэтому вход готовности RDYIN генератора тактовых импульсов, а через него и микропроцессора, соединен с источником питания +5 В.
Резистор R2 ограничивает входной ток. Цепочка С1, R1 — типовая схема формирования импульса сброса нулевого уровня при замыкании ключа S1. Диод VD1 предохраняет вход ИС генератора от паразитных отрицательных импульсов, возникающих при переключении S1.
Системный контроллер помимо управляющих сигналов формирует и системную шину данных. Формирование системных (магистральных) шин необходимо потому, что нагрузочная способность выходов микропроцессора мала (2−3 входа ТТЛ-элемента). С целью увеличения нагрузочной способности шины адреса, считая, что проблему с шиной данных решает системный контроллер, в схему дополнительно вводят буферы (регистры или шинные формирователи) адреса.
микропроцессор программный модуль память.
3. Формирование сигнала выбора модуля.
Для дешифрации портов ввода-вывода используется ИС дешифратора 4-х разрядного кода (линии А4-А7) в активный низкий уровень на одной из 16-и выходных линий. Разрешение дешифрации возможно при обращении МП к портам ввода/вывода (низкий уровень на линиях IOR, IOW), а также при отсутствии цикла ПДП (низкий уровень на линии AEN).
Назначение сигналов CS на выходах дешифратора ВУ приведены в таблице 2.
Таблица 2 «Назначение сигналов ВУ» .
Устройство. | Регистр устройства. | Номер порта. | Адресные линии. | Сигнал выбора устройства. | ||||||||
A7. | A6. | A5. | A4. | A3. | A2. | A1. | A0. | |||||
КПР1. | ICW1, OCW1. | 00h. | CSINT1. | |||||||||
ICW2, OCW2, OCW3. | 01h. | |||||||||||
КПР2. | ICW1, OCW1. | 10h. | CSINT2. | |||||||||
ICW2, OCW2, OCW3. | 11h. | |||||||||||
КПР3. | ICW1, OCW1. | 20h. | CSINT3. | |||||||||
ICW2, OCW2, OCW3. | 21h. | |||||||||||
КПДП. | Рг. адреса канал 0. | 30h. | CSDMA. | |||||||||
Рг. счетчика циклов канал 0. | 31h. | |||||||||||
Рг. адреса канал 1. | 32h. | |||||||||||
Рг. счетчика циклов канал 1. | 33h. | |||||||||||
Рг. адреса канал 2. | 34h. | |||||||||||
Рг. счетчика циклов канал 2. | 35h. | |||||||||||
Рг. адреса канал 3. | 36h. | |||||||||||
Рг. счетчика циклов канал 3. | 37h. | |||||||||||
Рг. управляющего слова. | 38h. | |||||||||||
Таймер-счетчик. | Канал 0. | 40h. | CSPIT. | |||||||||
Канал 1. | 41h. | |||||||||||
Канал 2. | 42h. | |||||||||||
Регистр управляющего слова. | 43h. | |||||||||||
УСАПП1. | Регистр данных. | 50h. | CSPCA1. | |||||||||
Регистр управляющего слова. | 51h. | |||||||||||
УСАПП2. | Регистр данных. | 60h. | CSPCA2. | |||||||||
Регистр управляющего слова. | 61h. | |||||||||||
ППИ. | Порт А. | 70h. | CSPPI. | |||||||||
Порт В. | 71h. | |||||||||||
Порт С. | 72h. | |||||||||||
Регистр управляющего слова. | 73h. | |||||||||||
АЦП. | Регистр данных АЦП. | 80h. | CSAD. | |||||||||
4. Структура памяти.
Проектирование подсистемы памяти следует начинать с сопоставления объемов заданной памяти и размеров адресного пространства, прямо доступного из микропроцессора КР580ВМ80А. Объем этого адресного пространства определяется разрядностью программного счетчика, оно фиксировано и равно 64К. Если объем физически реализуемой памяти не превышает 64К, то дополнительных схемных решений для расширения адресного пространства не потребуется. Кроме того, следует учесть, что в задании часто указаны и адресные диапазоны, в которых должны быть размещены оперативная и постоянная память. Карта распределения памяти приведена на рисунке 3.
Согласно заданию объем оперативной памяти 32 Кb, объем ПЗУ 32 Kb. Данный объем памяти необходимо отобразить в адресное пространство в 64Kb. Адресное пространство процессора разделено на две части по 32 Kb для каждого типа памяти. Линия А15 осуществляет выбор памяти, к которой происходит обращение (RAM или ROM).
Для реализации ПЗУ объёмом 32 Кбайт используется 4 микросхемы M2732AF1 с организацией 8К х 8.
Оперативное запоминающие устройство объёмом 32 Кбайта выполнено на одной микросхем3 i51256 S/L с организацией 32К x 8.
5. Организация ввода/вывода.
5.1 Организация ПДП.
ПДП используется при обмене данных между внешними устройствами и основной памятью. Для организации режима ПДП используется контроллер ПДП КР580ВТ57, регистр фиксации старшего байта адреса К580ИР82.
Основные возможности КПДП КР580ВТ57:
· Контроллер подключает 4 внешних устройства.
· Независимо программируются 4 канала обмена.
· Имеет фиксированные приоритеты обслуживания.
· Размер передаваемых данных 16Кбайт.
· Прямо доступно 64Кб памяти.
Программно можно установить 3 режима: чтения, записи и верификации.
Контроллер построен по n-МДП технологии, имеет источник питания +5 В. При программировании на входы RD и WR поступают сигналы IOR и IOW от системного контроллера. Линии A0-A3 используются для адресации внутренних регистров контроллера в режиме программирования и для выдачи соответствующих разрядов адреса в режиме ПДП.
При поступлении запроса на ПДП от внешнего устройства на вход контроллера, он выдает сигнал запроса HOLD, идущий к процессору. Процессор, получив этот запрос, переходит в режим ПДП, сообщая об этом сигналом HLDA. После этого, контроллер выдает на шину данных старшую часть адреса для области обмена и фиксирует ее в буферном регистре (КР580ИР82) сигналом ADSTB, после чего выдает сигнал AEN=1, который переводит выходы шинных формирователей в Z-состояние. Инверсный сигнал AEN (BUSEN) разрешает выдачу 8-и старших разрядов адреса буферным регистром на шину адреса. Далее контроллер работает в обычном режиме.
Программирование контроллеров ПДП осуществляется через порт с базовыми адресами 00h (линии A3-A0 отвечают за внутреннюю адресацию контроллера). Интерфейс с внешними устройствами представляет собой набор линий: запросов ПДП от внешнего устройства (DRQ0 — DRQ3) и сигнала готовности от внешнего устройства (READY), сигналов подтверждения (DACK0-DACK3), выходного сигнала последнего цикла (ТС), сигнала 128 байта (MARC), сигналов IOW и IOR, а также шины данных (D0 — D7). Все эти линии выведены на разъем Х5.
5.2 Организация программируемого интервального таймера.
В качестве системного таймера-счетчика используется программируемый интервальный таймер КР580ВИ53. Микросхема выполнена по n-МОП технологии и имеет единственный источник питания +5 В.
В состав БИС входят три 16-разрядных вычитающих счетчика. Связь ПИТ с микропроцессором осуществляется через двунаправленную 8-разрядную шину данных под управлением сигналов A0, A1, CSPIT, IOR и IOW. Перед началом работы каждый счетчик должен быть инициализирован посылкой слова состояния. Каждое слово состояния, за исключением операции защелки, сопровождается 1−2 байтами данных начального состояния счетчика. После этого начинается счет.
Входы GATE1. GATE0 подключены к источнику питания +5 В. Канал 0 ПИТ используется как генератор синхроимпульсов для УСАПП 1, канал 1 используется как генератор синхроимпульсов для УСАПП 2. Канал 2 может использоваться программистом для различных целей. Для этого выходы ПИТ GATE2 и OUT2 выведены на разъем XS1.
5.3 Система прерываний.
Источники запросов прерываний IRQ0-IRQ5 заняты системой:
IRQ0. | Запрос на прерывание от УСАПП по окончанию передачи. | |
IRQ1. | Запрос на прерывание от внешнего устройства. | |
IRQ2. | Запрос на прерывание от АЦП (конец преобразования). | |
IRQ5. | Запрос на прерывание от УСАПП по окончанию приема. | |
IRQ6. | Запрос на прерывание от внешнего устройства. | |
IRQ7. | Запрос на прерывание от внешнего устройства. | |
Обработчики прерываний хранятся в ПЗУ и могут быть вызваны соответствующими источниками запроса.
Временная диаграмма контроллера прерываний:
5.4 Реализация аппаратных интерфейсов вычислительных систем.
Разрабатываемая схема содержит последовательный канал интерфейс RS-232С. Этот интерфейс построен на базе микросхемы КР580ВВ51. Эта микросхема предназначена для аппаратной реализации последовательного канала связи между процессором и внешним устройством (ВУ), способным поддерживать протокол обмена данными в последовательном коде с УСАПП.
Микросхема КР580ВВ51 принимает параллельный код от микропроцессора, преобразует его в последовательный поток данных с присоединением служебными битами и передает его в линию связи, а также выполняет обратное преобразование: принимает последовательный поток данных из линии связи и преобразует его в параллельный 8-разрядный код, одновременно выполняя ряд функций по контролю над правильностью приема данных. Программирование БИС позволяет выбирать один из режимов работы: синхронный или асинхронный, а также установить скорость передачи/приема, контроль на чётность (нечетность) и другие параметры работы.
В разрабатываемой микропроцессорной системе УСАПП программируется на асинхронный режим со скоростью передачи 1: 1, длиной символа 8 бит, с контролем на четность и числом стоп-битов, равным 2.
Назначение сигналов интерфейса RS-232 приведено в таблице:
Сигнал. | N контакта. | Направление. | Назначение. | |
CD. | вход. | Обнаружение несущего сигнала. | ||
RxD. | вход. | Данные, принимаемые компьютером в последовательном коде (логика отрицательная). | ||
TxD. | выход. | Данные, передаваемые компьютером в последовательном коде (логика отрицательная). | ||
DTR. | выход. | Готовность терминала. | ||
SG. | ; | Общий сигнал. | ||
DSR. | вход. | Готовность данных к передаче. | ||
RTS. | выход. | Сигнал запроса передачи. | ||
CTS. | вход. | Готовность внешнего устройства к приему. | ||
RI. | вход. | Индикатор вызова. | ||
Все сигналы RS-232 передаются специально выбранными двухполярными уровнями, обеспечивающими высокую помехоустойчивость связи.
5.5 Организация аналоговых каналов.
Система имеет два 8-и разрядных АЦП, организованных на базе микросхем 12-и разрядного АЦП К572ПВ1, операционного усилителя К553УД2 (DA1), 8-и разрядного буферного регистра КР580ИР82.
АЦП — устройство, предназначенное для преобразования непрерывных, аналоговых сигналов в цифровой код. Связь с МП, как и для многих типов ВУ, осуществляется в режимах программного ввода-вывода или прерываний. Данные считываются с АЦП после завершения цикла преобразования. При организации режима обмена данными через АЦП, как правило, для преобразователя в системе выделяется несколько адресов. С каждым из адресов при управлении работой АЦП программным способом связана определенная операция: запуск АЦП, чтение данных или признаков и т. п.
На Рисунке 7 приведена схема включения 8 — разрядного АЦП. Для управления буферными регистрами введен дополнительный дешифратор, управляемый сигналами CSADC с основного дешифратора внешних устройств и IOR с выхода системного контроллера, а также адресной линией АB0. Дешифратор позволяет получить два дополнительных адреса для буферных регистров и требуется в тех случаях, когда у основного дешифратора ВУ нет свободных выходов (адресов) для выбора буферных регистров АЦП.
Запуск АЦП производится из программы при выполнении команды OUT port. В адресной части команды указывается адрес АЦП, назначенный устройству при составлении таблицы адресов ВУ. Внешний сигнал запуска АЦП по входу STB формируется схемой 2И-НЕ, на входы которой подаются сигналы CSADC (от дешифратора ВУ) и IOW (от системного контроллера). На вход тактовых импульсов STB преобразователя подаются синхроимпульсы микропроцессорной системы, которые формируются, например, программируемым интервальным таймером.
Следует отметить только, что частота синхроимпульсов не должна превышать максимально допустимое значение, установленное для выбранного типа АЦП.
Рисунок 7 — Схема включения 8 — разрядного АЦП.
6. Программное обеспечение.
6.1 Начальная инициализация системы.
Программа в ПЗУ рассчитана на то, что после сброса системы выполнение начинается с адреса 0000h. Программа инициализирует все устройства системы на установки, описанные ниже, устанавливает отображение первой страницы в окно ОЗУ (нулевая страница всегда отображена в память), устанавливает таблицу прерываний, вершину стека и инициализирует системные переменные. Инициализация заканчивается переходом на адрес С000h.
Адрес. | Метка. | Мнемокод. | Комментарий. | |
JUMP Start. | Перейти к командам инициализации. | |||
Start: | DI. | Запретить прерывания. | ||
LXI SP, 87FFh. | Загрузить вершину стека. | |||
MVI A, 00h. | Задаем страницу ОЗУ. | |||
OUT A, 00h. | ||||
CALL Test_ROM. | Вызвать процедуру тестирования ПЗУ. | |||
035B. | CALL Test_RAM. | Вызвать процедуру проверки ОЗУ. | ||
035E. | CALL Init. | Вызвать процедуру инициализации контроллеров. | ||
CALL Polling. | Вызвать подпрограмму обмена данными в режиме программного ввода/вывода. | |||
EI. | ||||
6.2 Инициализация программируемых БИС.
Init: | CALL DMA_INIT. | Вызвать процедуру инициализации КПДП. | |||||
CALL PIT_INIT. | Вызвать процедуру инициализации ПИТ. | ||||||
001C. | CALL PCA_INIT. | Вызвать процедуру инициализации УСАПП. | |||||
001 °F. | CALL PPI_INIT. | Вызвать процедуру инициализации ППИ. | |||||
CALL KPR_INIT. | Вызвать процедуру инициализации КПР. | ||||||
MVI H, 98. | Инициализация счетчиков памяти для. | ||||||
MVI L, 02. | для вывода данных ЦАП1 и ЦАП2. | MVI L, 02. | |||||
SHLD 9800. | |||||||
002B. | MVI H, A0. | ||||||
002C. | SHLD A000. | ||||||
RET. | |||||||
6.2.1 Программируемый контроллер ПДП.
Контроллер ПДП имеет четыре канала, каждый из которых содержит 16-битный регистр адреса, 14-битный счетчик и 2-битный регистр режима канала.
Формат регистра режима.
D7. | D6. | D5. | D4. | D3. | D2. | D1. | D0. | |
AL. | TCS. | EW. | RP. | EN3. | EN2. | EN1. | EN0. | |
EN3. EN0 ; | разрешение работы каналов 0.3. | |||||||
RP ; | задает приоритет обслуживания каналов, RP = 1 — циклический приоритет, RP = 0 — фиксированный приоритет. | |||||||
EW ; | бит расширенной записи. | |||||||
TCS ; | бит задания режима КС-счета, TCS = 0 — нормальное завершение режима ПДП, TCS = 1 — после завершения режима ПДП по обслуживанию канала i соответствующий бит ENi сбрасывается в 0. | |||||||
AL ; | бит установки режима автозагрузки. AL = 1 — автоматически устанавливаются параметры режима канала 2 из параметров режима канала 3. | |||||||
Формат регистра состояния контроллера.
D7. | D6. | D5. | D4. | D3. | D2. | D1. | D0. | |
; | ; | ; | OF. | TC3. | TC2. | TC1. | TC0. | |
TC3. TC0 ; | окончание счета каналов 0.3. | |||||||
OF ; | бит модификации для режима автозагрузки. | |||||||
Начальная инициализация контроллера ПДП.
Адрес. | Метка. | Мнемокод. | Комментарий. | |
DMA_INIT: | MVI A, 00h. | Записать 00h в аккумулятор | ||
OUT 60h. | Запретить работу всех каналов КПДП. | |||
MVI A, low_addr0. | В, А — младший байт начального адреса канала 0. | |||
OUT 61h. | Записать его в ПДП. | |||
MVI A, hi_addr0. | В, А — старший байт начального адреса канала 0. | |||
003A. | OUT 61h. | Записать его в ПДП. | ||
003C. | MVI A, low_count0. | В, А — младший байт счетчика адреса канала 0. | ||
003E. | OUT 62h. | Записать его в ПДП. | ||
MVI A, hi_count0. | В, А — старший байт счетчика адреса канала 0. | |||
OUT 62h. | Записать его в ПДП. | |||
Аналогично для канала 1, 2 и 3. | ||||
MVI A, 0Fh. | Записать в, А инструкцию режима КПДП. | |||
OUT 60h. | Установить режим КПДП. | |||
RET. | ||||
Направление и другие параметры обмена в режиме прямого доступа к памяти задаются программой пользователя и могут изменяться ею в любое время.
6.2.2 Программируемый интервальный таймер.
Программируемый интервальный таймер содержит три таймера-счетчика, каждый из которых может быть запрограммирован в один из шести режимов работы:
Режим 0 — Прерывание по окончанию счета.
Режим 1 — Генератор одиночного импульса.
Режим 2 — Генератор прямоугольных импульсов.
Режим 3 — Генератор меандра.
Режим 4 — Одиночный программно-стробируемый сигнал.
Режим 5 — Одиночный аппаратно-стробируемый сигнал.
Формат управляющего слова.
D7. | D6. | D5. | D4. | D3. | D2. | D1. | D0. | |
SC1. | SC0. | RL1. | RL0. | M2. | M1. | M0. | BCD. | |
BCD ; | BCD = 0 — двоичный счет, BCD = 1 — двоично-десятичный счет. | |||||||
M2. M0 ; | номер режима. | |||||||
RL1. RL0 ; | тип операции: 00 — защелкивание, 01 — чтение/запись только младшего байта, 10 — чтение/запись только старшего байта, 11 — чтение/запись сначала младшего, затем старшего байтов. | |||||||
SC1. SC0 ; | номер канала: 00 — счетчик 0, 01 — счетчик 1, 10 — счетчик 2, 11 — запрещенная комбинация. | |||||||
Канал 0 и 1 используются как генератор частоты для ПСА. Он программируется в режим 2. Зададим на канале 0 частоту 4800, а на канале 1 — 9600. Коэффициенты счета получим равные 416 и 208.
Адрес. | Метка. | Мнемокод. | Комментарий. | |
PIT_INIT: | MVI A, 34h. | В РУС — канал 0, режим 0, двоичный счет, задание. | ||
OUT 33h. | и младшего и старшего байтов. | |||
MVI A, A0h. | Запись мл. байта коэффициента пересчета. | |||
OUT 30h. | в канал 0. | |||
008A. | MVI A, 01h. | Запись ст. байта коэффициента пересчета. | ||
008C. | OUT 30h. | в канал 0. | ||
008E. | MVI A, 54h. | В РУС — канал 1, режим 2, двоичный счет, задание. | ||
OUT 33h. | только младшего байта. | |||
MVI A, D0h. | Запись коэффициента пересчета в канал 1. | |||
OUT 31h. | ||||
009E. | RET. | |||
6.2.3 Программируемый адаптер последовательного интерфейса.
Программирование программируемого адаптера последовательного интерфейса осуществляется в несколько этапов:
1. Инструкция управления с кодом 40h — программный сброс.
2. Инструкция режима — определяет основные параметры режима обмена данными.
3. Инструкция управления — определяет дополнительные условия, сопровождающие процесс обмена.
Формат инструкции режима.
D7. | D6. | D5. | D4. | D3. | D2. | D1. | D0. | |
ST1. | ST0. | P1. | P0. | L1. | L0. | DR1. | DR0. | |
DR1. DR0 ; | Режим работы: 00 — синхронный режим, 01 — асинхронный 1: 1, 10 — асинхронный 1: 16, 11 — асинхронный 1: 64. | |||||||
L1. L0 ; | Длина символа: 00 — 5 бит, 01 — 6 бит, 10 — 7 бит, 11 — 8 бит. | |||||||
P0 ; | 1 — разрешить контроль на паритет, 0 — запретить контроль на паритет. | |||||||
P1 ; | 1 — контроль на четность, 0 — контроль на нечетность. | |||||||
ST1. ST0 ; | Число стоп-бит в асинхронном режиме: 00 — запрещенная комбинация, 01 — 1 стоп-бит, 10 — 1,5 стоп-бита, 11 — 2 стоп-бита. | |||||||
Формат инструкции управления.
D7. | D6. | D5. | D4. | D3. | D2. | D1. | D0. | |
EH. | IR. | RTS. | ER. | SBRK. | RxE. | DTR. | TxE. | |
TxE ; | Бит разрешения работы передатчика. | |||||||
DTR ; | Управление выходом DTR. | |||||||
RxE ; | Бит разрешения работы приемника. | |||||||
SBRK ; | 0 — нормальный режим работы — при отсутствии передачи на выходе передатчика 1, 1 — при отсутствии передачи на выходе передатчика 0. | |||||||
ER ; | Бит сброса триггеров ошибок: 1 — сбросить триггер ошибок, 0 — сохранить триггер ошибок. | |||||||
RTS ; | Управление выходом RTS. | |||||||
IR ; | Установка программного сброса. | |||||||
EH ; | Устанавливается в синхронном режиме работы: 1 — поиск синхроимпульсов, 0 — поиска синхроимпульсов нет. | |||||||
В разрабатываемой микропроцессорной системе ПСА программируется на асинхронный режим со скоростью передачи 1: 1, длиной символа 8 бит, с контролем на четность, числом стоп-битов, равным 2.
Адрес. | Метка. | Мнемокод. | Комментарий. | |
PCA_INIT: | DI. | Запретить прерывания. | ||
MVI A, 40h. | Программный сброс контроллера. | |||
OUT 41h. | ||||
OUT 51h. | ||||
MVI A, FDh. | Запись в ПСА инструкции режима. | |||
010B. | OUT 41h. OUT 51h. | |||
010D. | MVI A, 17h. | Запись в ПСА инструкции управления. | ||
010 °F. | OUT 41h. OUT 51h. | |||
MVI H, A8. | Инициализация счетчиков памяти для. | |||
MVI L, 02. | Ввода и вывода информации контроллеров. | |||
SHLD A800. | ||||
011A. | MVI H, B0. | |||
011С. | SHLD B000. | |||
011 °F. | MVI H, B8. | |||
SHLD B800. | ||||
MVI H, C0. | ||||
SHLD C000. | ||||
EI. | Разрешить прерывания. | |||
RET. | ||||
6.2.4 Программируемый контроллер прерываний.
Перечень прерываний, обслуживаемых контроллером, имеет вид:
Номер прерывания. | Устройство, от которого поступает запрос на прерывание. | ||
IRQ0. | IRDRAM. | Запрос на ошибку ОЗУ. | |
IRQ1. | IRT1. | Запрос на прерывание от УСАПП по окончанию передачи. | |
IRQ2. | IRR1. | Запрос на прерывание от УСАПП по окончанию приема. | |
IRQ3. | IRT2. | Запрос на прерывание от УСАПП по окончанию передачи. | |
IRQ4. | IRR2. | Запрос на прерывание от УСАПП по окончанию приема. | |
IRQ6, IRQ5, IRQ7. | Запрос на прерывание от внешнего устройства. | ||
При инициализации контроллера задаются расположение таблицы прерываний, размер одной ячейки в таблице прерываний, количество контроллеров прерываний в системе. При программировании примем, что в системе один контроллер прерываний, размер одной ячейки в таблице прерываний 4 байта и таблица прерываний расположена по адресам 0140h — 015Fh. Таблица прерываний имеет вид:
Адрес. | Метка. | Мнемокод. | Комментарий. | |
JMP IRDRAM. | Переход на обработчик прерывания IRQ0. | |||
JMP IRT1. | Переход на обработчик прерывания IRQ1. | |||
JMP IRR1. | Переход на обработчик прерывания IRQ2. | |||
014C. | JMP IRT2. | Переход на обработчик прерывания IRQ3. | ||
JMP IRR2. | Переход на обработчик прерывания IRQ4. | |||
JMP IRQ5. | Переход на обработчик прерывания IRQ5. | |||
JMP IRQ6. | Переход на обработчик прерывания IRQ6. | |||
015C. | JMP IRQ7. | Переход на обработчик прерывания IRQ7. | ||
Программирование контроллера выполняется последовательностью управляющих слов двух типов: командами инициализации ICW и командами управления OCW.
Команды начальной установки ICW1 и ICW2 переводят БИС КПР в состояние готовности к обработке запросов прерываний. Инициализация контроллера начинается с записи в него команды ICW1. Формат команды ICW1:
A0. | D7. | D6. | D5. | D4. | D3. | D2. | D1. | D0. | |
A7. | A6. | A5. | ADI. | SNGL. | |||||
Разряд D1 (SNGL) программирует число контроллеров в системе. При D1=1 контроллер один, в противном случае — несколько (до 8), и для начальной установки необходима команда ICWЗ.
Разряд D2 (АDI) задает адресный интервал в таблице обработчика прерываний. Если D2=1, то интервал равен четырем, а при D2=0 — восьми.
Положение таблицы прерываний в адресном пространстве произвольно и задается при программировании в разрядах D7-D5 команды ICW1 и команды ICW2, содержащей старший байт адреса таблицы.
A0. | D7. | D6. | D5. | D4. | D3. | D2. | D1. | D0. | |
A15. | A14. | A13. | А12. | А11. | А10. | А9. | А8. | ||
Команды ICW1 и ICW2 сбрасывают в ноль все разряды IRR и IMR, устанавливают приоритеты для входов IRQ0. IRQ7 (IRQ0 — высший приоритет, IRQ7 — низший приоритет) и определяют начальный адрес подпрограммы, обслуживающей прерывания по входу IRQ0. Адреса обработчиков прерываний по входам IRQ1-IRQ7 автоматически задаются смещением (сдвигом) относительно начала таблицы.
Адрес. | Метка. | Мнемокод. | Комментарий. | |
_INIT: | DI. | Запретить прерывания. | ||
MVI A, 56h. | Инициализация КПР: | |||
OUT 10h. | задать один КПР, ячейка таблицы. | |||
MVI A, 01b. | прерываний 4 байта, адрес таблицы прерываний. | |||
OUT 11h. | равен 0140h. | |||
MVI A, 1 010 0000b. | Установка циклического сдвига прерываний. | |||
016B. | OUT 10h. | |||
016D. | MVI A, 00h. | Разрешить все прерывания. | ||
016 °F. | OUT 11h. | |||
EI. | Разрешить прерывания. | |||
RET. | ||||
Разрешение и запрещение прерываний может осуществляться программой пользователя по необходимости.
6.3 Подпрограммы обработки прерываний.
По окончанию передачи данных от первого УСАПП вызывается обработчик прерывания IRT1.
Адрес. | Метка. | Мнемокод. | Комментарий. | |
01DD. | IRT1: | DI. | Запрет прерываний. | |
01DF. | PUSH PSW. | |||
01E0. | LHLD A800h. | Читаем след. для записи адрес. | ||
01E3. | LDAX H. | Заносим в аккумулятор байт для передачи. | ||
01E4. | OUT 40h. | Передаем новый байт в буфер УСАПП. | ||
01E6. | INX H. | Инкрементируем адрес. | ||
01E7. | MVI A, AFh. | Проверка на конец блока данных. | ||
01E9. | CMP H. | |||
01EA. | JNZ ENDIRT1. | |||
01ED. | MVI A, FFh. | |||
01EF. | CMP L. | |||
01F0. | JNZ ENDIRT1. | |||
01F3. | MOV H, A8h. | Переходим в начало блока. | ||
01F5. | MOV L, 02h. | |||
01F7. | ENDIRT1. | SHLD A800h. | Сохраняем значение следующего адреса. | |
01FA. | MVI A, 20h. | |||
01FC. | OUT A0h. | |||
01FE. | POP PSW. | |||
01FF. | EI. | |||
RET. | ||||
По окончанию приема данных от первого УСАПП вызывается обработчик прерывания IRR1.
Адрес. | Метка. | Мнемокод. | Комментарий. | |
IRT1: | DI. | Запрет прерываний. | ||
PUSH PSW. | ||||
LHLD B800h. | Читаем след. для записи адрес. | |||
IN 40h. | Читаем новый байт в буфер УСАПП. | |||
STAX H. | Сохраняем бит в памяти. | |||
020A. | INX H. | Инкрементируем адрес. | ||
020B. | MVI A, ВFh. | Проверка на конец блока данных. | ||
020D. | CMP H. | |||
020E. | JNZ ENDIRR1. | |||
MVI A, FFh. | ||||
CMP L. | ||||
JNZ ENDIRR1. | ||||
MOV H, B8h. | Переходим в начало блока. | |||
MOV L, 02h. | ||||
021B. | ENDIRR1. | SHLD B800h. | Сохраняем значение следующего адреса. | |
021E. | MVI A, A0h. | |||
OUT 10h. | ||||
POP PSW. | ||||
EI. | ||||
RET. | ||||
По окончанию передачи данных от второго УСАПП вызывается обработчик прерывания IRT2.
Адрес. | Метка. | Мнемокод. | Комментарий. | |
IRT2: | DI. | Запрет прерываний. | ||
PUSH PSW. | ||||
LHLD B000h. | Читаем след. для записи адрес. | |||
022С. | LDAX H. | Заносим в аккумулятор байт для передачи. | ||
022D. | OUT 50h. | Передаем новый байт в буфер УСАПП. | ||
022 °F. | INX H. | Инкрементируем адрес. | ||
MVI A, B7h. | Проверка на конец блока данных. | |||
CMP H. | ||||
JNZ ENDIRT2. | ||||
MVI A, FFh. | ||||
CMP L. | ||||
JNZ ENDIRT2. | ||||
023A. | MOV H, B0h. | Переходим в начало блока. | ||
023C. | MOV L, 02h. | |||
023E. | ENDIRT2. | SHLD B000h. | Сохраняем значение следующего адреса. | |
MVI A, А0h. | ||||
OUT 10h. | ||||
POP PSW. | ||||
EI. | ||||
RET. | ||||
По окончанию приема данных от второго УСАПП вызывается обработчик прерывания IRR1.
Адрес. | Метка. | Мнемокод. | Комментарий. | |
024A. | IRT1: | DI. | Запрет прерываний. | |
024B. | PUSH PSW. | |||
024C. | LHLD C000h. | Читаем след. для записи адрес. | ||
024 °F. | IN 50h. | Читаем новый байт в буфер УСАПП. | ||
STAX H. | Сохраняем бит в памяти. | |||
INX H. | Инкрементируем адрес. | |||
MVI A, C7h. | Проверка на конец блока данных. | |||
CMP H. | ||||
JNZ ENDIRR1. | ||||
MVI A, FFh. | ||||
025B. | CMP L. | |||
025C. | JNZ ENDIRR1. | |||
025 °F. | MOV H, C0h. | Переходим в начало блока. | ||
MOV L, 02h. | ||||
ENDIRR1. | SHLD B800h. | Сохраняем значение следующего адреса. | ||
MVI A, A0h. | ||||
OUT 10h. | ||||
026A. | POP PSW. | |||
026B. | EI. | |||
026C. | RET. | |||
7. Список используемой литературы.
1. Александров К. К., Кузьмина Е. Г. Электрические схемы и чертежи. — М.: Энергоатомиздат, 1990. — 288 с.
2. Зорин А. Ю. Условные графические изображения на электрических схемах / под. ред. А. И. Питолина. М.: Издательский дом МЭИ, 2007. — 74 с.
3. Гук М. Аппаратные интерфейсы ПК. Энциклопедия. — СПб.: Питер, 2003. — 528 с.
4. Ключев А. О., Ковязина Д. Р., Петров Е. В., Платунов А. Е. Интерфейсы периферийных устройств. — СПб.: СПбГУ ИТМО, 2010. — 290 с.
Приложение.