Программирование средств поддержки режима реального времени

В состав аппаратуры МК мМС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 ;База таблицы ;Пользователь IR0
IL1: JMP ADDR1 ;Системное время
  DB  
IL2: JMP ADDR2 ;Система отсчета пауз
  DB  
IL3: JMP ADDR3 ;Приемник ППА
  DB  
IL4: JMP ADDR4 ;Приемник ПСА2
  DB  
IL5: JMP ADDR5 ;Приемник ПСА1
  DB  
IL6: JMP ADDR6 ;Пользователь IR6
  DB  
IL7: JMP ADDR7 ;Пользователь IR7

Здесь ADDRN, N = 0—7, служит указателем точки входа в подпрограмму обслуживания прерывания соответствующего уровня. Следует помнить, что таблица должна располагаться по 32-байтовой границе. Инициализация включает команду разрешения прерывания EI при полностью установленных масках ПКП (прерывания по всем уровням запрещены). Для управления маской служит специальная пара процедур MIN и MOUT.

При каждом включении напряжения питания или нажатии клавиши сброса ПО мМС1204 инициализирует систему прерываний с базой таблицы векторов прерываний. При этом все векторы принимают нулевое значение. Пользователь управляет средствами поддержки режима реального времени, используя вышеуказанные процедуры.

В заключение отметим, что введение низкоуровневого слоя ПО, непосредственно управляющего аппаратурой МК, позволило организовать стандартную среду программирования, свободную от аппаратных особенностей ее реализации. Система двунаправленного ВВ обладает достаточной гибкостью для создания различных физических конфигураций по вводу и выводу данных. Система поддержки режима реального времени обеспечивает простой интерфейс по организации и управлению процессами на более высоком уровне.

ГЛАВА 6.








Дата добавления: 2019-02-07; просмотров: 356;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.