Выдержки из описания UART 16550AFN
из National Semiconductor Data Book
Этот чип имеет два 16 байтных (+ биты ошибок) буфера: один для пе-
редачи и один для приема. При включении питания этот чип переходит в ре-
жим эмуляции UART 16450, имеющий однобайтный буфер. Однако программное
обеспечение предусматривает 16-ти байтный буфер. А это означает:
- Возможность установки количества байтов в буфере (входном), по
которому будет выставляться прерывание. Количество байтов - 1, 4, 8 или
14 байтов, устанавливается при инициализации UART (в конфигурационном
файле коммуникационной программы или в командной строке фоссила). При
работе UART 16550 коммуникационная программа (благодаря прерыванию) по-
лучает из буфера установленное количество байтов. После вывода из буфера
данных прерывание не будет вновь выставлено до тех пор, пока из порта в
буфер не попадет, например, 8 новых байтов.
- Возможность загрузки в выходной буфер до 16-ти байтов данных и
передача их в линию (а не передача по одному байту).
Благодаря этим двум новшествам время ожидания в очереди при работе
с высокими скоростями сокращается в 10 или более раз. Так, при работе со
скоростью 2400 бит/с и использовании обычного UART это время довольно
незначительно. Однако уже на скорости 9600 бит/с и выше имеется значи-
тельный выигрыш. Так, обычное число 960 прерываний/с уменьшается, ска-
жем, до 100 прерываний/с, что является значительным выигрышем.
аконец, в конце потока входящих данных имеется возможность того,
что не будет достигнут предел, когда будет выставлено прерывание и поэ-
тому несколько знаков будут находиться в буфере неопределенно долго или,
по крайней мере, до тех пор пока не поступят новые знаки. Для предотвра-
щения этого UART 16550AF обладает свойством тайм-аута. Таким образом,
если за время равное по длительности 4-ем байтам в буфер не поступают
новые знаки, то будет генерироваться прерывание для очистки буфера.
Следует обратить внимание на маркировку. Если там имеется надпись
UART 16550 и еще букву N для отметки того, что это пластмассовый DIP
корпус, то этот чип практически 'нерабочий', так как даже когда за-
действован 16-ти байтный Fifo (16-ти байтный буфер), то передача все
равно идет по одному байту. В UART 16550AFN эта ошибка уже исправлена и
Fifo работает исправно. Поэтому, когда UART маркирован как 16550AFN, то
это - 'хороший' UART в пластмассовом DIP корпусе.
Эти чипы становятся все более популярными в частности в тех случа-
ях, когда используются режим мультитаска, и возникает проблема 'потери
знаков' по той причине, что система не может достаточно быстро реагиро-
вать на поступающие данные.
И еще несколько соображений по замене этих чипов. Вначале следует
определить тип чипа, используемого в вашей коммуникационной плате или
внутреннем модеме. Если там установлен UART 8250 или 16450, то UART
16550AFN представляет полную замену, которая выполняется простой сменой
чипа в 40 контактной панельке. Однако некоторые коммуникационные платы
или модемы могут не иметь отдельно установленного UART. В этих случаях
UART возможно является составной частью другой сложной схемы. В этом
случае ваши шансы на простую смену UART весьма ограничены, и тогда воз-
можно потребуется установка такой платы коммуникационного порта или мо-
дема, где UART установлен на отдельной панельке.
Alex
--- GoldED 2.42.G0214
* Origin: Back Panel #2 BBS (DOWN) (2:5020/93)