
- •Глава 1.
- •1 .1. Понятия организации и архитектуры
- •1.2. Архитектура типовой микросистемы
- •1.3. Структура типовой микросистемы
- •1.4. Регистры микропроцессора
- •1.5. Адресация данных
- •Глава 2.
- •2 .1. Вводные замечания
- •2.2. Архитектура вм80
- •2.3. Система команд вм80
- •2.4. Структурная схема вм80
- •2.5. Базовый комплект бис серии кр580
- •2.6. Центральный процессор на базе бис серии кр580
- •2.7. Организация вм85а
- •Глава 3.
- •3.1. Организация программно-управляемого обмена
- •3.2. Периферийные бис
- •3.3. Средства параллельного ввода-вывода
- •3.4. Средства последовательного ввода-вывода
- •3.5. Система прерываний
- •3.6. Программируемый контроллер прерываний вн59
- •3.7. Средства счета времени
- •Глава 4.
- •4 .1. Вводные замечания
- •4.2. Базовая организация ве48
- •4.3. Набор регистров ве48
- •4.4. Организация памяти ве48
- •4.5. Система ввода-вывода и служба реального времени ве48
- •4.6. Система команд ве48
- •4.7. Физический интерфейс ве48
- •4.8. Расширение внутренних ресурсов ве48
- •4.9. Универсальный периферийный адаптер
- •4.10. Базовая организация ве51
- •4.11. Периферийные средства ве51
- •4.12. Система команд ве51
- •4.13. Функциональное описание ве51
- •Глава 5.
- •5 .1. Одноплатный микроконтроллер мМс1204
- •5.2. Средства ввода-вывода и поддержки режима реального времени
- •5.3. Программирование системы ввода-вывода
- •5.4. Программирование средств поддержки режима реального времени
- •Глава 6.
- •6 .1. Вводные замечания
- •6.2. Организация регистров вм86
- •6.3. Организация памяти вм86
- •6.4. Формат команд вм86
- •6.5. Система команд вм86
- •6.6. Структурная схема вм86
- •6.7. Структурные отличия вм88
- •Глава 7.
- •7 .1. Принцип построения
- •7.2. Генератор тактовых импульсов гф84
- •7.3. Системный контроллер вг88
- •7.4. Центральный процессор на базе бис серии к1810
- •7.5. Программируемый контроллер прерываний вн59а
- •7.6. Одноплатный микроконтроллер мМс1212
- •Глава 1. Организация микросистем ……………………………………………………………………………………..
- •Глава 2. Микропроцессоры кр580вм80/к1821вм85а ………………………………………………………………
- •Глава 3. Подсистема ввода-вывода ………………………………………………………………………………………
- •Глава 4. Организация однокристальных микроконтроллеров ……………………………………………………..
- •Глава 5. Организация одноплатных микроконтроллеров на базе кр580вм80 ………………………………
- •Глава 6. Микропроцессор к1810вм86 …………………………………………………………………………………
- •Глава 7. Организация одноплатных микроконтроллеров на базе к1810вм86 ………………………………
5.4. Программирование средств поддержки режима реального времени
В состав аппаратуры МК мМС1204 входит ряд стандартных средств поддержки режима реального времени. Среди них два системных таймера (таймер системного времени и таймер временных интервалов), реализованные на базе ПИТ КР580ВИ53 и 8-уровневая система прерываний, в основе которой лежит ПКП КР580ВН59. Третий таймер ПИТ резервируется в качестве генератора скорости передачи ПСА1 и ПСА2.
Аппаратная логика мМС1204 предусматривает строгую специализацию всех счетчиков ПИТ и их резервирование исключительно для общесистемных целей. Благодаря этому удается определить простой драйвер системного таймера, содержащий четыре стандартные подпрограммы:
; Установка скорости приема-передачи ПСА1 и ПСА2 |
|||
VEL: PUSH |
PSW |
|
|
MVI |
A, 0B6H |
;Код команды ПИТ |
|
OUT |
PIT + 3 |
|
|
MOV |
A, C |
;Передача параметра: |
|
OUT |
PIT + 2 |
;младший байт |
|
MOV |
A, B |
;и старший байт |
|
OUT |
PIT + 2 |
;фактора скорости |
|
POP |
PSW |
|
|
RET |
|
|
|
|
|
|
|
; Установка периода следования системных меток |
|||
CLK: PUSH |
PSW |
|
|
MVI |
A, 34H |
;Код команды ПИТ |
|
OUT |
PIT + 3 |
|
|
MOV |
A, C |
;Передача параметра: |
|
OUT |
PIT |
;младший байт |
|
MOV |
A, B |
;и старший байт |
|
OUT |
PIT |
;периода системных меток |
|
POP |
PSW |
|
|
RET |
|
|
|
|
|
|
|
; Запуск счетчика паузы |
|||
DELAY: PUSH |
PSW |
|
|
MOV |
A, C |
;Передача параметра: |
|
OUT |
PIT + 1 |
;младший байт |
|
MOV |
A, B |
;и старший байт |
|
OUT |
PIT + 1 |
;длительности паузы |
|
POP |
PSW |
|
|
RET |
|
|
|
|
|
|
|
; Процедура сброса счетчика паузы |
|||
DLINI: PUSH |
PSW |
|
|
MVI |
A, 70H |
;Код команды ПИТ |
|
OUT |
PIT + 3 |
|
|
POP |
PSW |
|
|
RET |
|
|
Драйвер поддерживает следующие процедуры: VEL—установку скорости передачи по каналам связи, CLK—установку частоты следования системных меток времени, DELAY—запуск счетчика задержки и DLINI—инициализацию счетчика задержки. Процедура DLINI подготавливает счетчик СТ1 ПИТ для работы в режиме 0 (прерывание по окончанию счета) и устанавливает на его выходе 0 (отсутствие запроса на прерывание IR2). Процедура DELAY загружает счетчик задержки СТ1 параметром, после чего он начинает счет. По окончанию счета генерируется запрос на прерывание IR2 по второму уровню. Более детально работа счетчика была рассмотрена в § 3.7.
Программируемый контроллер прерываний КР580ВН59 обеспечивает различные режимы работы системы прерываний. Важно определить ее стандартный способ функционирования, для поддержки которого может быть использован ряд специальных системных подпрограмм нижнего уровня. В качестве последнего удобно выбрать широко используемый режим строгого вложения приоритетов. Находясь в рамках данного режима, можно написать драйвер ПКП, включающий четыре стандартные подпрограммы:
; Инициализация ПКП |
|||
ICINI: DI |
|
;3апрет прерываний |
|
PUSH |
PSW |
|
|
MVI |
A, 0E0H |
|
|
ANA |
С |
|
|
ORI |
16H |
;Адресный интервал—4, |
|
OUT |
PIC |
;режим работы—автономный |
|
MOV |
A, B |
|
|
OUT |
PIC + 1 |
|
|
MVI |
A, 0FFH |
;Установка маски |
|
OUT |
PIC + 1 |
|
|
POP |
PSW |
|
|
EI |
|
;Pазрешение прерываний |
|
RET |
|
|
|
|
|||
; Конец прерывания |
|||
EOI: PUSH |
PSW |
|
|
MVI |
A, 20H |
;ЕOI |
|
OUT |
PIC |
|
|
POP |
PSW |
|
|
RET |
|
|
|
|
|||
; Чтение маски прерываний |
|||
MIN: IN |
PIC + 1 |
|
|
RET |
|
|
|
|
|||
; Запись маски прерываний |
|||
MOUT: OUT |
PIC + 1 |
|
|
RET |
|
|
Процедура ICINI инициализирует ПКП для работы в данном режиме. В качестве входного параметра через регистровую пару ВС процедуре ICINI передается базовый адрес ITAB таблицы векторов, которая имеет вид
-
ITAB:
IL0:
JMP
DB
ADDR0
0
;База таблицы
;Пользователь IR0
IL1:
JMP
ADDR1
;Системное время
DB
0
IL2:
JMP
ADDR2
;Система отсчета пауз
DB
0
IL3:
JMP
ADDR3
;Приемник ППА
DB
0
IL4:
JMP
ADDR4
;Приемник ПСА2
DB
0
IL5:
JMP
ADDR5
;Приемник ПСА1
DB
0
IL6:
JMP
ADDR6
;Пользователь IR6
DB
0
IL7:
JMP
ADDR7
;Пользователь IR7
Здесь ADDRN, N = 0—7, служит указателем точки входа в подпрограмму обслуживания прерывания соответствующего уровня. Следует помнить, что таблица должна располагаться по 32-байтовой границе. Инициализация включает команду разрешения прерывания EI при полностью установленных масках ПКП (прерывания по всем уровням запрещены). Для управления маской служит специальная пара процедур MIN и MOUT.
При каждом включении напряжения питания или нажатии клавиши сброса ПО мМС1204 инициализирует систему прерываний с базой таблицы векторов прерываний. При этом все векторы принимают нулевое значение. Пользователь управляет средствами поддержки режима реального времени, используя вышеуказанные процедуры.
В заключение отметим, что введение низкоуровневого слоя ПО, непосредственно управляющего аппаратурой МК, позволило организовать стандартную среду программирования, свободную от аппаратных особенностей ее реализации. Система двунаправленного ВВ обладает достаточной гибкостью для создания различных физических конфигураций по вводу и выводу данных. Система поддержки режима реального времени обеспечивает простой интерфейс по организации и управлению процессами на более высоком уровне.