Здавалка
Главная | Обратная связь

Определение момента окончания преобразования и инициация процедуры обмена



Так как преобразование данных в АЦП происходит не мгновенно, данные с его выхода могут быть считаны не в любой момент времени, а только после завершения преобразования. То есть перед началом обмена должна быть проверена готовность устройства (завершенность преобразования). Поэтому в данном случае мы не можем использовать синхронный обмен, а должны использовать обмен асинхронный, по прерываниям или с использованием ПДП.

 

Использования асинхронного обмена

При асинхронном обмене МП должен иметь возможность проанализировать готовность АЦП перед началом обмена. Готовность АЦП определяется значением на выход EOP — "1" означает завершенность преобразования (готовность к обмену). Следовательно, значение сигнала EOP должно быть считано МП. Для этого используется параллельный порт в режиме ввода информации (рис. 6).

Рис. 6.

В приведенной схеме линия готовности АЦП подключена к линии PA0 ППИ — таким образом, состояние линии EOP может быть определено путем анализа младшего бита порта А ППИ.

Адрес порта А ППИ при данной схеме подключения — 0000h, адрес выходного регистра АЦП — 00000100b (04h). Фрагмент программы, анализирующий состояние АЦП и выполняющий ввод данных в случае его готовности выглядит следующим образом:

IN AL, 0000h ; Введем значение из порта А ППИAND AL, 1 ; Анализируем значение младшего бита (маска 0000001)JZ _NotReady ; Если бит=0 - АЦП не готов, данные с него не вводимIN AL, 0004h ; Иначе (бит=1,АЦП готов) - вводим данные с АЦП............ ; Обработка данных, введенных с АЦП_NotReady:............ ; Продолжение основной программы

Использование обмена по прерываниям

Для организации обмена по прерываниям используется контроллер прерываний (рис. 7).

 

Рис. 7.

Контроллер прерываний подключается к шинам адреса, данных и управления как показано на рис. 7. Такое подключение обеспечивает возможность обращения к нему на этапе программирования (начальной инициализации) для настройки на нужный режим работы. По сравнению с предыдущими схемами, шина управления здесь дополнилась сигналами INT (запрос на прерывание, посылаемый процессору) и INTA — подтверждение прерывания от МП. Сигнал готовностиEOP подается на один из входов запроса прерывания контроллера (в нашем примере — IRQ0).

Схема работает следующим образом. По окончании преобразования, сигнал EOP устанавливается в "1". Контроллер прерываний рассматривает его как запрос на прерывание и инициирует процедуру обмена: посылает в МП сигнал запроса INT, дожидается подтверждения от МП по линии INTA, передает в МП номер устройства, запросившего прерывание. Микропроцессор по номеру устройства вызывает соответствующую подпрограмму обработки прерывания, которая и выполняет собственно обмен. Примерный вид подпрограммы обработки прерывания для ввода данных с АЦП:

IN AL, 0004h ; Вводим данные с АЦП........... ; Обработка данных, введенных с АЦПIRET ; Возврат из подпрограммы обработки прерывания

Так как АЦП сам инициирует обмен в момент завершения преобразования, проверка его готовности внутри подпрограммы обмена не производится.

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.