Последната
актуализация
на този
раздел е от 2019
година.
9.2.
Проблеми на синхронизацията
Управлението
на един
АЦ-контролер,
базиран
върху
системната
шина може да
стане само с
програмни
средства. Ето
защо
проблемите на
синхронизацията
на програмата
(т.е.
процесора) с
работата на
контролера изискват
пояснение. В
изходно
състояние АЦ-контролера
е неактивен.
Задействането
му с цел
получаване
на данни от
външен
реален процес
става чрез
приложната
програма в необходимия
момент.
Програмата
следва да попадне
в
алгоритмичната
структура,
показана на
фигура 9.2.1.
Условният
блок за
проверка на
контролера реализира
синхронизацията
му с програмата.
Независимо в
кой режим
DMA-каналът е
извършил
трансфера на
данните,
АЦ-контролерът
е удобно да
бъде
изключен по чисто
схемен път
чрез сигнала ТС,
който
DMA-контролерът
разпространява
по системната
шина.
Следователно
синхронизацията
може да се
реализира
чрез
прочитане на
съдържанието
на регистъра
на състоянието
на
DMA-контролера
и анализ на
стойността на
флага ТС за
съответния
DMA-канал.
Фиг.
9.2.1. Синхронизация
на
управляващата
програма
Стартирането
на
аналого-цифровото
преобразуване
в
АЦ-контролери,
управлявани
в режим
на единичен
обмен може
да се
постигне
след
разрешаване
достъпа на
тактовите
импулси до
преобразователя.
За целта
програмата
чрез команда
OUT
записва
инициализираща
информация в
съответния
регистър на
АЦ-контролера,
на което
съответства
примерната
схема от
фигура 9.2.2.
Фиг.
9.2.2. Схема
за
инициализация
Стартирането
на
аналого-цифровото
преобразуване
в
АЦ-контролери,
управлявани в
режим на
блочен обмен
не може да
стане по
описания
статичен
начин.
Стартиращите
импулси I/O Read в
този режим
(виж фигура 9.1.4)
се генерират
в самия
процес на
обмен и ако
той не бъде
възбуден те
няма откъде
да се появят.
Ето защо
първият
стартиращ
импулс
следва да се
формира
изкуствено
от
програмата.
Това може да
стане например
чрез едно
фиктивно
четене на
данни от регистър
на
АЦ-контролера
с помощта на машинната
команда IN. На
казаното
съответства
примерната
схема от
фигура 9.2.3.
Фиг.
9.2.3. Схема
за
прихващане
на
програмния
старт
Следващият
раздел е:
Заключителни
бележки на
автора