|
Процедура вывода байта состоит из следующих шагов:
1) вывод байта в регистр данных,
2) опрос регистра состояния и, если терминал не готов, ожидание готовности устройства (принтера),
3) установка сигнала строба данных.
Для вывода одного байта требуется, по меньшей мере, 4–5 машинных операций ввода-вывода с регистрами порта, так что скорость обмена невысока, при значительной нагрузке микропроцессора. Стандартный порт удается разогнать до скоростей, порядка всего 100-150 Кбайт/сек, при полной загрузке процессора, что явно недостаточно для печати на лазерный принтер.
Недостатки стандартного порта частично устраняли новые типы портов, появившиеся в компьютерах семейства PS/2, но, не будучи стандартизованными, такие порты требовали от их производителей использования собственных специальных драйверов. В 1994 году был принят стандарт на параллельный интерфейс IEEE 1284, определяющий режимы работы SPP (стандартный), EPP – двунаправленный и ECP (Extended) – двунаправленный, с возможностью аппаратного сжатия данных по методу RLE, использования FIFO-буферов в контроллере порта и DMA системной платы. В современных машинах, с LPT-портом на системной плате, режим порта – SPP, EPP, ECP, или их комбинация, задается программно в BIOS SetUp.
Контрольные вопросы.
1. Какие базовые адреса может иметь LPT-порт?
2. Какова разрядность регистра данных LPT-порта?
3. Какие номера прерываний может использовать LPT-порт?
4. Как использовать LPT-порт для ввода данных?
5. Как использовать LPT-порт для ввода данных?
СОМ-порт.
Последовательный интерфейс для передачи данных в каждую сторону использует по одной отдельной линии данных, по которой данные передаются в последовательном коде. Последовательная передача данных может осуществляться в асинхронном или синхронном режимах.
При асинхронной передаче, каждому байту предшествует один или два стартовых бита, сигнализирующих приемнику о начале очередной посылки, за ним следуют биты данных и, возможно, бит паритета (контроля четности). Завершает посылку стоп-бит, гарантирующий определенную выдержку между соседними посылками. Старт-бит следующего байта может посылаться в любой момент времени после окончания стоп-бита, т.е. между передачами возможны паузы произвольной длительности. Старт-бит имеет всегда строго определенное значение логической 1 и обеспечивает простой механизм синхронизации приемника по сигналу от передатчика. Подразумевается, что и приемник и передатчик работают на одной скорости обмена, измеряемой в количестве передаваемых бит в секунду. Внутренний генератор синхронизации приемника использует счетчик-делитель опорной частоты, обнуляемый в момент приема старт-бита, и генерирует внутренние стробы, по которым приемник фиксирует последующие принимаемые биты. В идеале, эти стробы располагаются в середине битовых интервалов, что обеспечивает возможность приема битов и при некотором рассогласовании скоростей приемника и передатчика. Нетрудно просчитать, что при передаче 8 бит данных, контрольного и одного стоп-бита предельное рассогласование скоростей не может превышать 5%, но с учетом фазовых искажений (затянутых фронтов сигналов) допустимое отклонение скоростей значительно меньше, так что с ростом частоты обмена повышаются и требования к согласованности скоростей и частот работы приемников и передатчиков.
Приемник, получив сигнал о начале передачи, отвечает передатчику своим состоянием и, если приемник готов к приему, передатчик выдает старт-бит, приемник запускает свой генератор тактов и принимает, с этой частотой, байт данных. Естественно, частоты генераторов передатчика и приемника должны быть довольно строго одинаковыми, но скоростные характеристики линии передачи могут быть разными, в разных конфигурациях АПС, поэтому и частоты передач, определяемые контроллером порта, должны допускать разные значения. Эти значения стандартизованы, и в каждом сеансе связи, перед началом передачи первого байта, передатчик сообщает приемнику – на какой из стандартных частот, будет вестись данный сеанс связи.
Для асинхронного режима передачи принят ряд стандартных скоростей обмена: 50, 75, 110, 150, 300,600,1200, 2400, 4800, 9600, 19200, 38400, 57600, и 115200 бит/сек (не путать с Бод).
Бод – это единица измерения пропускной способности линии связи и приемо-передатчиков, выраженная в количестве переключений состояния линии в секунду, что характерно для недвоичного способа кодирования, а при двоичном способе передачи количество бод и бит/сек, могут отличаться в несколько раз. Так, за одну модуляцию (изменение состояния линии) при недвоичном кодировании, например, ДОФМ широко применяемом в современных модемах, может передаваться несколько бит, а при двоичной асинхронной передаче через СОМ-порты, за одну посылку передается 8 информационных бит, но, с учетом стартовых стоповых бит и бита паритета – до 13 бод.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51
При использовании материалов активная ссылка на источник обязательна.