Пр о ц е с с о р TMS 3 2 0C4 x
60
2.1. Ввод/вывод данных
2.1.1. Программный ввод/вывод
Программный ввод/вывод (или ввод/вывод по опросу готовности) осуще-
ствляется по инициативе программы. Он заключается в периодическом считы-
вании и анализе регистра состояния устройства и передаче слова, если устрой-
ство готово к обмену. Режим характе-
ризуется непроизводительными поте-
рями процессорного времени на ожи-
дание готовности устройства. Обоб-
щенный алгоритм обмена по опросу
готовности представлен на рис.2.1. До
начала цикла обмена определяется ко-
личество передаваемых слов и адрес
буфера памяти, с которым произво-
дится обмен.
Инициализация порта заключа-
ется в сбросе бита ICH (разрешение
ввода данных) или OCH (разрешение
вывода данных). Далее в цикле произ-
водится считывание состояния порта,
выделение битов готовности порта и
их анализ. В случае готовности порта
производится обмен данными между
портом и памятью, счетчик слов
уменьшается на единицу и, если он
равен нулю, передача завершается.
Регистр состояния коммуника-
ционного порта не содержит битов го-
товности. Вместо них используются
поля, характеризующие уровень за-
полнения входного (INPUT LEVEL) и
выходного (OUTPUT LEVEL) FIFO
буферов порта.
Если биты INPUT LEVEL не
равны 0000, то входной буфер порта
содержит хотя бы одно принятое сло-
во, что означает готовность входного
порта к обмену. В противном случае (INPUT LEVEL =0000) входной порт не
готов. Если биты OUTPUT LEVEL не равны 1111, то выходной буфер порта за-
полнен не полностью, т.е. порт готов к обмену. В противном случае (OUTPUT
LEVEL = 1111) выходной порт не готов.
да
да
нет
нет
Определение счетчика
передаваемых слов и
адреса буфера
Инициализация порта
Устройство
готово ?
Все слова
переданы ?
Передача слова и
декремент счетчика
Завершение обмена
Начало обмена
Считывание состояния
порта и выделение
битов готовности
Рис.2.1. Алгоритм программного
обмена