В регистре WR3 к асинхронным операциям относятся только биты D0 разрешения приемника, D5 разрешения аппаратного квитирования (см. след. раздел) с помощью сигналов управления модемом CTS и DCD, а также два старших бита, определяющие число бит на символ. Остальные биты связаны с синхронными режимами, которые мы собираемся выключить соответствующим выбором D2-D3 в WR4. Таким образом, мы устанавливаем (D7, D6) = (1,1), D5 = 0 и D0 = 1, т. е. в WD3 мы посылаем шестнадцатеричный байт С1. С помощью WR4 мы задаем режим генератора x16 (минимальный делитель для асинхронных операций — УСАПП должен выполнять опрос сигнала каждого бита в его середине, поэтому частота входного генератора делается кратной частоте передачи), 1 стоп-бит на символ (используется всегда, за исключением устаревшего стандарта на телетайпную передачу со скоростью 110 бод), отсутствие контроля четности; получается шестнадцатеричный байт 44. Заметьте, что состояние битов D5-D4 не имеет значения, так как они управляют синхронной передачей; произвольно также состояние D1 (контроль четности или нечетности), если D0 (включение контроля) равен 0. Заметьте также, что установка 1 стоп-бита на символ (что имеет смысл только для асинхронного режима) автоматически выключает синхронный режим, а вместе с ним и все биты регистра управления, определяющие синхронные операции (например, D4-D1 в регистре WR3). Таким же образом можно управиться и с остальными управляющими регистрами. Это довольно скучная работа, в процессе которой легко допустить ошибки.
В табл. 11.7 приведены правильные, как мы надеемся, значения байтов (мы их тщательно проверили!).
Регистр · Байт2)
· Результат________________________________
WR0
· (Указатель регистра) · Используется для доступа к WR1-WR15WR1
· 00 · Запрет прерыванийWR2
· XX · Вектор прерываний (если разрешены)WR3
· С1 · 8 бит, разрешение приемаWR4
· 44 · х15, 1 стоп-байт без контроляWR5
· 68 · 8 бит, разрешение передачиWR6
· XX · Символ синхронизации (только синхронный режим)WR7
· XX · Символ синхронизации (только синхронный режим)WR8
· (Буфер передачи) · Передаваемые данные (прямой доступ с D/CWR9
· СО · СбросWR10
· XX · Режимы синхронных операцийWR11
· 50 · Такты приема/передачи от генератора скорости пересылкиWR12
· 10210 · Делитель скорости пересылки - старший байтWR13
· 00 · Делитель скорости пересылки - младший байтWR14
· 03 · Разрешение генератора скорости пересылкиWR15
· XX · Режимы прерываний (если разрешены)_____
1)
Асинхронный режим, 1200 бод, 8 бит, без контроля четности.2)
XX-произвольное состояние; все числа шестнадцатеричные, кроме WR12.Обратите внимание на состояние XX (произвольное) для регистров, игнорируемых нами, в силу того, что мы не используем ни прерываний, ни синхронного режима. Регистр WR9 выполняет полный сброс микросхемы, который должен предшествовать любым другим командам. С помощью регистров WR12 и WR13 устанавливается 16-разрядное значение делителя частоты передачи, которое для микросхемы 8530 дается выражением частота передачи =
Заметьте, что в вашем распоряжении все многочисленные режимы работы УСАПП, устанавливаемые соответствующими последовательностями инициализирующих управляющих байт. Микросхема 8530, как и все УСАПП, обеспечивает также синхронную коммуникацию в различных режимах со скоростями до 1 Мбит/с; это особенно полезно для пересылки данных между двумя процессорами. Для нашего прибора такой способ пересылки не имеет смысла в силу ограниченного объема оперативной памяти, однако он может оказаться полезным при подключении жесткого диска.
Обратите внимание на необходимость пересылки из ЦП в УСАПП правильной последовательности инициализирующих байт до того, как начнут передаваться какие-либо последовательные данные, как это было и в случае параллельного порта 8536; в нашем примере последовательный порт не использовался, так что мы опустили его инициализацию. Программа 11.4 дает понятие о процедуре инициализации. Сложность программы (включая декодирование таблиц с данными с целью определения управляющих байтов) — это цена, которую вы платите за исключительную гибкость БИС поддержки микропроцессора.