PlayStation Network (PSN) - 2500 рублей
PlayStation Network (PSN) - 2500 рублей


Разблокировка Quanta 1K6E
Разблокировка Quanta 1K6E


XBOX Live 2000 рублей (RUS)
XBOX Live 2000 рублей (RUS)


В начало

Лабораторная работа

Изучение системы синхронизации и прерываний ОЭВМ К1816ВЕ48

 

Цель работы

1. Изучение системы синхронизации и прерываний К1816ВЕ48.

2. Написание, загрузка и отладка прикладных программ.

 

 

1. СИНХРОНИЗАЦИЯ ОЭВМ. ТАЙМЕР/СЧЕТЧИК СОБЫТИЙ

 

ОЭВМ серии 1816 имеет встроенный генератор, выполненный по последовательной резонансной схеме, обеспечивающей работу в диапазоне

частот 1 . . . 11 МГц для ИС КР1816ВЕ39, КР1816ВЕ49 и 1 . . . 6 МГц  для  остальных ИС. Обратная связь и фазовый сдвиг, необходимые для генерации (возбуждения генератора), реализуются через выводы  XTAL1 и XTAL2, причем XTAL1 является входом, а XTAL2 - выходом каскада усиления. 

В качестве источника опорной частоты для встроенного генератора можно использовать кварцевый резонатор, LC - цепь или внешний источник синхроимпульсов. Различные варианты схемных решений подключения к ОЭВМ источника опорной частоты приведены на рис.5.

 

 

 

 

 

 

 

 


а) Схема подключения LC - цепочки               б) Схема подключения

 кварцевого резонатора

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в) Схема подключения внешнего источника синхросигналов

 

Рис. 5 Варианты подключения к ОЭВМ источника синхросигналов

 

Опорная частота делится на три и используется в качестве тактовой частоты (fCLK) внутренней синхронизации ОЭВМ. Сигналы CLK могут быть выведены на внешний вывод Т0 по команде ENT0 CLK. Блокировать вывод сигналов на T0 можно только сигналом системного сброса  RESET.

Структурная схема системы синхронизации ОЭВМ приведена на рис.6.

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 6.  Схема синхронизации ОЭВМ

 

Схема синхронизации ОЭВМ включает в себя три делителя D1, D2  и  D3 c

коэффициентами деления 3, 5 и 32 соответственно. Длительность одного машинного такта и временные соотношения в ОЭВМ определяет тактовая частота  fCLK.  Делитель  D2  осуществляет деление fCLK  на  5, формируя таким  образом  частоту, определяющую  машинный цикл, состоящий  из  пяти состояний (S1 . . . S5). Полученный синхросигнал выдается, на вывод ALE и используется в качестве строба при работе ОЭВМ с внешней памятью, а также может быть использован для синхронизации внешней аппаратуры.

Делитель D3 реализует еще одну ступень деления на 32 (результирующий коэффициент деления 3*5*32=480), и его выходной сигнал может быть подан (по команде STRT T) на счетный вход таймера.

Таймер/счетчик представляет собой восьмиразрядный двоичный суммирующий счетчик, снабженный флагом переполнения (TF), который устанавливается в «1» при переполнении счетчика (переход FFH Þ 00H) и сбрасывается в «0» командой опроса флага JTFaddr. TCNT программно доступен для записи (загрузки) и чтения. Для управления счетным входом таймера используется три команды.

- запуск таймера (STRT T - подключение счетного входа к выходному сигналу делителя D3, который по этой же команде устанавливается в состояние «0», что обеспечивает целостность формируемых временных интервалов);

- запуск счетчика (STRT CNT -подключение счетного входа к выводу T1, в этом случае пользователь может использовать счетчик для подсчета числа внешних событий);

- останов таймера/счетчика (STOP TCNT - переключение счетного входа в нейтральное состояние).

При подсчете числа внешних событий минимальный период счетных импульсов должен быть не менее трех машинных циклов. Приращение счетчика происходит по переходу «1» Þ «0». Скважность может быть переменной, но длительность сигнала высокого уровня должна быть не менее 100 нс.

Если идентификатором некоторого события является переход «1» Þ «0»

на входе Т1 и необходимо, чтобы после появления N-го события был сформирован запрос прерывания по TF, то в TCNT должно быть загружено число, являющееся дополнением N до 100Н.

Важным моментом при включении ОЭВМ является обеспечение ее инициализации, которая осуществляется по сигналу RESET. Длительность этого сигнала при включении питания должна быть не менее 50 мкс, а если он формируется в процессе работы, то не менее 12,5 мкс (при fT=6 МГц).

По сигналу RESET  ОЭВМ выполняет следующие операции:

         - устанавливает программный счетчик в 000H, обеспечивая тем самым старт программы с нулевого адреса; это относится и к разряду PC11, при помощи которого осуществляется переключение банков памяти МВ0/МВ1:

         - устанавливает в 0 указатель стека в PSW;

         - устанавливает порт Р0 (BUS) в высокоимпедансное состояние (при ЕА=0);

         - фиксирует в портах Р1 и Р2 код FFH, обеспечивая возможность ввода информации через эти порты;

         - выбирает банк регистров RB0 во внутренней памяти данных;

         - запрещает все виды;

         - останавливает, но не сбрасывает таймер/счетчик событий (аналогично команде STOP TCNT);

 

- коммутирует вывод Т0 для ввода информации;

- сбрасывает в 0 флаги пользователя F0 и F1, а также триггер флага таймера/счетчика TF.

 

 

2. ОРГАНИЗАЦИЯ СИСТЕМЫ  ПРЕРЫВАНИЙ

 

В ОЭВМ реализована одноуровневая векторная система прерываний, которая воспринимает запросы на прерывания от внешнего источника (по входу INT) или от внутреннего таймера/счетчика (TCNTI). Прерывания могут быть избирательно разрешены  или запрещены с помощью команд: ENI, DISI, EN TCNTI, DIS TCNTI. Внешнее прерывание обладает более высоким приоритетом, то есть если запросы на прерывание от внешнего источника и от таймера/счетчика возникают одновременно, то внешнее прерывание обслуживается в первую очередь.

Техника обслуживания прерываний состоит в том, что после завершения  текущей команды, когда в PC11¸ PC0 сформирован адрес следующей команды, содержимое программного счетчика и PSW.7 ¸PSW.4 загружается в стек. После этого в PC11¸PC0 загружается адрес 003Н, если обслуживается прерывание по INT, или 007Н - если по TCNT, причем по указанным адресам должны быть расположены первые команды подпрограмм обслуживания прерываний. Завершение процедуры обслуживания прерываний осуществляется по команде RETR, с помощью которой производится восстановление из стека содержимого PC и PSW.7¸PSW.4, обеспечивающее продолжение прерванной программы.

Поскольку в ОЭВМ реализована одноуровневая система прерываний,

то  подпрограмму любого прерывания нельзя прервать до команды RETR

и обслуживание вновь поступивших прерываний откладывается до конца

обработки текущего прерывания. Сигнал INT запроса на прерывание, которое обслуживается в данный момент, должен быть снят до исполнения команды RETR, в противном случае процессор начнет повторное обслуживание данного запроса прерывания.

В ОЭВМ при обслуживании прерываний старший разряд PC (А11) аппаратно устанавливается в «0» всякий раз, когда происходит переход к подпрограмме обработки прерываний, поэтому все программы обработки прерываний и все подпрограммы, вызываемые ими, должны располагаться в пределах нулевого банка памяти программ (ячейки 0 . . . 2047). Выполнение команд SEL MB0 и SEL MB1 во время обработки прерываний не рекомендуется, так как эти команды, изменяя состояние триггера переключения банков памяти, не изменяют значения старшего разряда PC до тех пор, пока происходит обработка текущего прерывания. 

 

 

3. ПРЕДВАРИТЕЛЬНАЯ ПОДГОТОВКА К РАБОТЕ

 

1. Повторить систему команд ОЭВМ К1816ВЕ48 и организацию системы прерываний.

2. Написать следующую программу: вывод «бегущей 1» («бегущего 0») в P1.7 . . . P1.0, P4.3 . . . P4.0, P5.3 . . . P5.0 c различными вариантами подпрограммы задержки:

  - программная;

- по прерыванию INT;

- по прерыванию от таймера;

- по прерыванию от счетчика событий (например, 2 нажатия кнопки S4);

- по опросу входов INT или T1.

3. Написать собственные варианты демонстрационных программ по согласованию с преподавателем.

 

 

4. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ.

 

1. Ввести и отладить подготовленную программу с различными вариантами задержки.

2. Провести количественную оценку быстродействия исполняемой программы.

3. Оформить индивидуальный отчет, содержащий алгоритмы и листинги программ, а также результаты оценки быстродействия исполнения программ.