Параллельные и последовательные порты и их особенности работы. Соединение по технологии HomePlug PowerLine

Передача данных от центрального процессора к любому периферийному устройству и наоборот контролируется заданием запроса на прерывание IRQ...

Прерывания и адреса

Передача данных от центрального процессора к любому периферийному устройству и наоборот контролируется заданием запроса на прерывание (IRQ) и адреса ввода-вывода (I/O address). Для внешнего периферийного устройства запрос на прерывание и адрес ввода-вывода приписываются тому порту, через который оно подсоединяется.

Сами слова "запрос на прерывание" сообщают, что прерывается работа ЦП и ему предписывается заняться данными, поступающими с какого-либо устройства. Всего существует 16 прерываний - от 0 до 15. Все последовательные и параллельные порты, как правило, требуют своего собственного запроса прерывания, за исключением того, что порты СОМ1 и COM3, а также COM2 и COM4 зачастую имеют общий запрос прерывания.

Для каждого порта нужно указывать уникальный адрес ввода-вывода, который подобен почтовому ящику для приходящей на адрес ЦП корреспонденции, в котором она хранится до обработки. Если какой-либо запрос на прерывание или адрес ввода-вывода используются одновременно более чем одним устройством, то ни одно из них не будет работать надлежащим образом и может даже "зависнуть" ПК.

При проблемах с портом проверьте, какие запросы на прерывание и адрес ввода-вывода ему приписаны.

Панель управления - Система - Устройства - Порты СОМ и LPT

Если вы увидите перед какой-либо строчкой желтый кружок с восклицательным знаком внутри, то, возможно, найдете причину "помехи". Выделив строчку, нажмите "Свойства - Ресурсы". В поле "Список конфликтующих устройств" найдите, что вызывает конфликт. Если окажется, что это какая-нибудь старая плата, не поддерживающая Plug & Play, то она будет указана в списке как "Неизвестное устройство".

Чтобы разрешить проблему, измените для одного из устройств-нарушителей запрос на прерывание или адрес ввода-вывода. Если порт находится на системной плате, то используйте для этого программу начальной установки системы System Setup (BIOS).

Для вхождения в System Setup во время запуска ПК нажмите клавишу "Delete", "F1" или иную - узнайте в документации на систему. Во многих программах начальной установки можно назначать запрос на прерывание и адрес ввода-вывода (установить ресурсы) для каждого конкретного порта, отменив старые.

Найдите неиспользуемый запрос на прерывание или адрес ввода-вывода.

Панель управления - Система - Устройства - Компьютер

Вы увидите полный список применяемых ресурсов. Если неиспользуемых запросов на прерывание нет, то попробуйте отключить с помощью System Setup неиспользуемый порт.

После этого...

Система - Устройства - Конфликтующее устройство - Ресурсы

Выключите функцию "Автоматическая настройка". В окне "Перечень ресурсов" выберите тип ресурса, нажмите кнопку "Изменить" и в поле "Значение" задайте новое (неиспользуемое) значение запроса на прерывание или адрес ввода-вывода.

Установка параметров паралельных портов

Параллельные порты обозначаются аббревиатурой LPT. Компьютер автоматически приписывает каждому обнаруженному параллельному порту адреса от LPT1 до LPT3.

Если вы устанавливаете второй параллельный порт, убедитесь, что он не использует уже имеющийся запрос на прерывание. В некоторых компьютерах LPT1 и LPT2 по умолчанию применяют IRQ7. С помощью Диспетчера устройств установите IRQ5 для LPT2. Если это невозможно, то используйте программу Setup CMOS вашей системы.

Стандартные установки ресурсов параллельных портов

LPT-порт Запрос на прерывания Адрес ввода-вывода
LPT1 IRQ7 ЗВС
LPT2 IRQ7 378
LPT3 IRQ5 278

Установка параметров последовательных портов

Каждый последовательный порт идентифицируется с помощью одного из восьми возможных СОМ-адресов - СОМ1, COM2 и т. д., каждому из которых соответствуют свой уникальный адрес ввода-вывода и запрос на прерывание.

Будьте внимательны при установке в ПК устройства, требующего СОМ-порта. Порты СОМ1 и COM2 имеют стандартные адреса ввода-вывода и запросы на прерывание, которые нигде не должны изменяться (обычно могут быть изменены только в программе Setup CMOS вашего ПК). Если для нового устройства требуется назначить порт СОМ1 или COM2, то при загрузке ПК войдите в программу Setup и либо отключите последовательный порт, приписанный к СОМ1 или COM2, либо, если нужно освободить соответствующие установки для добавляемого устройства, измените идентифицирующие его запрос на прерывание и адрес ввода-вывода.

Заметьте, что все стандартные адреса ввода-вывода используют только третье и четвертое прерывания. Поскольку два устройства не должны использовать один и тот же запрос на прерывание, то постарайтесь для новых внешних устройств приписать портьте COM3 по COM3, вручную устанавливая запросы на прерывание и адреса ввода-вывода с помощью Диспетчера устройств (диалоговое окно "Свойства: Система" ).

Стандартные установки ресурсов последовательных портов

СОМ-порт Запрос на прерывание Адрес ввода-вывода
СОМ1 IRQ4 3F8
COM2 IRQ3 2F8
COM3 IRQ4 ЗЕ8
COM4 IRQ3* 2Е8
СОМ5 IRQ4* ЗЕО
СОМ6 IRQ3* 2ЕО
СОМ7 IRQ4* 338
СОМ8 IRQ3* 238

* Могут быть установлены с помощью Диспетчера устройств Windows 9x (Свойства: Система)

Оптимизация последовательных портов

Компьютер имеет один либо два встроенных последовательных порта в виде 9-штырькового разъема, обычно расположенных на задней панели компьютера. С помощью такого порта за единицу времени можно передать лишь 1 бит данных, в то время как посредством параллельного - 8 бит. Скорость работы последовательного порта зависит от универсального асинхронного приемо-передатчика (UART), преобразующего проходящий через шину ПК параллельный поток данных в однобитовый.

Как правило, современные ПК поставляются с UART модели 16550. В этом случае максимальная пропускная способность составляет 115 кбит/с, что обеспечивает достаточную полосу пропускания для большинства последовательных устройств. Более старые UART моделей 16450 и 8250 с этой задачей уже не справляются. Но иногда производительности UART 16550 может оказаться недостаточно, ведь некоторые аналоговые модемы обрабатывают сжатые данные со скоростью 230 кбит/с, а адаптеры ISDN - до 1 Мбит/с. Так что, если вам требуется большая скорость передачи данных, покупайте плату расширения с UART модели 16750, способной работать со скоростью 921 кбит/с.

Работа с параллельными портами

Параллельные порты обычно используются для принтеров, хотя через них могут подключаться к ПК и другие устройства, например сканеры. С их помощью можно передавать данные со скоростью от 40 Кбайт/с до 1 Мбайт/с, а иногда даже с большей.

В основном все ПК поставляются с одним параллельным портом в виде 25-штырькового разъема на задней панели. Чтобы добавить второй порт, необходимо купить контроллер ввода-вывода и установить его в разъем расширения на системной плате. Параллельный порт бывает четырех типов - однонаправленный, двунаправленный, с улучшенными возможностями (ЕРР-порт) и с расширенными возможностями (ЕСР-порт). Для каждого из них характерны различные скорость и возможности. Порты большинства новых ПК поддерживают все четыре режима, и чтобы узнать, какой из них обеспечивает параллельный порт, посмотрите в программе Setup (CMOS Setup utility) вашего ПК раздел периферийных устройств (Integrated peripherals).

Однонаправленный порт иногда называется также SPP-портом. Эта базовая конфигурация пропускает данные со скоростью 40-50 Кбайт/с лишь в одном направлении - к принтеру или другому внешнему устройству.

Двунаправленный порт. Обеспечивает двусторонний обмен данными со скоростью передачи от 100 до 300 Кбайт/с между ПК и внешним устройством. При этом информация о состоянии последнего поступает в компьютер.

Порт с улучшенными возможностями (ЕРР). Разработан для внешних дисководов и сетевых адаптеров, требующих высокой производительности. Обеспечивает скорость передачи данных от 400 Кбайт/с до 1 Мбайт/с и более.

При установке в программе System Setup опции ЕРР предлагаются версии 1.7 и 1.9. Практически для всех периферийных устройств, купленных в последние годы, нужно выбирать 1.9.

Порт с расширенными возможностями (ЕСР). Повышает скорость и расширяет возможности обмена данными между внешним устройством и компьютером. Если принтер и иное периферийное устройство поддерживают ЕСР, то они непосредственно выдают сообщения о состоянии устройств и ошибках.

Если в программе. System Setup задать опцию ЕСР, то появится строчка для выбора DMA-канала (канал непосредственного доступа к памяти, direct memory access). Необходимо задать его так же, как и при запросе на прерывание. Чтобы предотвратить возникновение конфликтов DMA-каналов, просмотрите свободные из них в окне "Свойства: Компьютер" , как описано выше. Если конфликта не избежать, то вернитесь к двунаправленному режиму порта.

Лучший порт для урагана данных.

В новых системах и периферийных устройствах параллельные и последовательные порты стали заменять универсальной последовательной шиной (Universal Serial Bus , USB). С ее помощью можно достичь скорости передачи данных до 12 Мбит/с, а также подключать при наличии всего одного порта клавиатуры, мониторы, мыши и многие другие (до 127) устройства, которые, как и с решающим сходные задачи SCSI-интерфейсом, могут быть соединены "цепочкой" . При этом используется всего один запрос прерывания. USB-шину можно устанавливать и на более старые компьютеры, купив соответствующую плату расширения.

Параллельный порт (сокращенное название – LPT) появился на самом первом IBM PC. Иногда его называют Centronics – по имени фирмы-разработчика. Параллельный порт использовался раньше преимущественно для подключения принтеров.

Современные принтеры обычно подключаются к компьютеру через USB (см. главу 10), но многие модели имеют разъем для подключения LPT-кабеля (кабеля параллельного порта).

Научимся находить разъемы параллельного порта. На рис. 9.1 изображен LPT-разъем на принтере Lexmark E321 – довольно современная модель (принтер куплен в прошлом году). Под ним – USB-разъем с подключенным USB-кабелем. Это говорит о том, что в данный момент принтер подключен к компьютеру через USB.


Рис. 9.1. LPT-разъем на принтере

Если бы принтер подключался к параллельному порту компьютера, то нам бы понадобился кабель, изображенный на рис. 9.2.


Рис. 9.2. Кабель

На рис. 9.3 показана материнская плата. Самый большой разъем, изображенный на этом рисунке, – параллельный порт. Обычно он окрашен для подключения устройств к параллельному порту компьютера в розовый цвет. Как различить последовательный и параллельный порты, одинаковые по размерам? Разъем параллельного порта имеет тип «мама», а последовательного порта – «папа». Другими словами, даже если вы перепутаете цвета (последовательный порт обычно окрашивается в синий цвет), вы не сможете подключиться к последовательному порту с помощью LPT-кабеля.


Рис. 9.3. Параллельный и последовательный порты

К параллельному порту, кроме принтера, можно подключить:

Некоторые носители данных, например внешние приводы CD-ROM, магнитные накопители «повышенной» емкости (раньше повышенной емкостью считалось 120 Мб);

Стримеры – устройства хранения данных на магнитной ленте. Сейчас они практически не используются, а раньше часто использовались для создания резервных копий на серверах предприятий – ведь магнитная лента стоила копейки по сравнению с другими носителями информации и позволяла записывать большие на то время объемы информации (несколько гигабайтов);

Сканеры старых образцов (современные подключаются через USB).

Откровенно говоря, я сомневаюсь, что сегодня вам придется воспользоваться параллельным портом, но такая вероятность есть – может быть, у вас есть старенький принтер, который еще хорошо работает, но подключается только к LPT-порту. Тогда вы должны знать о режимах работы параллельного порта (режим работы порта обычно выбирается в BIOS):

SPP (Standard Parallel Port) – стандартный режим параллельного порта. В данном режиме разрешается только односторонняя передача данных от компьютера к периферийному устройству, подключенному к порту. Скорость передачи данных – 200 Кбит/с;

EPP (Enhanced Parallel Port) – расширенный режим. Разрешен двусторонний обмен данными. Скорость работы – до 2 Мбит/с. Разрешается подключение до 64 периферийных устройств (в цепочку);

Последовательные порты

Последовательные порты для обмена данными с внешними устройствами – важнейшая составляющая любого МК, без них его «общение» с внешним миром резко ограничено. Последовательными их называют потому, что в них в каждый момент времени передается только один бит (в некоторых случаях возможна одновременная передача и прием, но все равно только по одному биту за раз). Самое главное преимущество последовательных портов перед параллельными (когда одновременно производится обмен целыми байтами или полубайтами‑тетрадами) – снижение числа соединений. Но оно не единственное – как ни парадоксально, но последовательные интерфейсы дают значительную фору параллельным на высоких скоростях, когда на надежность передачи начинают влиять задержки в линиях. Последние невозможно сделать строго одинаковыми, и это одна из причин того, что последовательные интерфейсы в настоящее время начинают доминировать (типичные примеры: USB и Fire Wire вместо LPT и SCSI или Serial ATA вместо IDE).

В микроконтроллерных устройствах с нашими объемами данных, конечно, скорость передачи нас волнует во вторую очередь, но вот количество соединительных проводов – очень критичный фактор. Поэтому все внешние устройства, которые мы далее станем рассматривать, будут иметь последовательные интерфейсы (кроме дисплеев для отображения информации, для которых, увы, последовательные интерфейсы встречаются лишь в моделях достаточно высокого уровня).

Практически любой последовательный порт можно имитировать программно, используя обычные выводы МК. Когда‑то так и поступали даже в случае самого популярного из таких портов – UART. Однако с тех пор МК обзавелись аппаратными последовательными портами, что, впрочем, не означает необходимости их непременного использования. Легкость программной имитации последовательных портов – еще одно их достоинство.

Из всех разновидностей портов, которые могут наличествовать в МК AVR, мы особенно обратим внимание на UART (Universal Asynchronous Receiver‑Transmitter , универсальный асинхронный приемопередатчик). UART есть основная часть любого устройства, поддерживающего протокол RS‑232, но и не только его (недаром он «универсальный») – например, промышленные стандарты RS‑485 и RS‑422 также реализовываются через UART, т. к. они отличаются от RS‑232 только электрическими параметрами и допустимыми скоростями, а не общей логикой построения.

В персональных компьютерах есть СОМ‑порт, который работает по тому же протоколу RS‑232, и узел UART точно так же является его базовой частью. Поэтому UART служит основным способом обмена данными МК с компьютером.

Отметим, что отсутствие СОМ‑порта в большинстве современных моделей ПК не является препятствием – существуют переходники USB‑COM, а в настольную модель можно вставить дополнительную карту с СОМ‑портами. О том, как обращаться с UART на практике, рассказывается в главах 21 и 22 , применительно к платформе Arduino – программировать такой обмен на ассемблере гораздо сложнее (хотя и надежнее, см. далее). В главе 22 мы увидим, что существуют простые и при этом достаточно надежные способы организовать передачу через последовательный порт по радиоканалу, что позволяет обойтись вообще без проводов.

Кроме UART, почти все МК AVR содержат самый простой из всех последовательных портов – SPI (Serial Peripheral Interface , последовательный периферийный интерфейс). Об устройстве SPI упоминалось в главе 16 . Его принципиальная простота сыграла отчасти дурную роль – трудно встретить два устройства, где протоколы SPI полностью совпадают, обычно обмен по этому порту сопровождается теми или иными «наворотами». Следует отметить, что программирование AVR также осуществляется через SPI, однако в общем случае этот интерфейс и SPI для обмена данными – разные вещи, хотя в большинстве случаев выводы у них одни и те же.

Кстати, всем знакомые карты памяти («флэшки») также адресуются через протокол, очень близкий к SPI.

Кроме этих портов, часто применяется очень простой аппаратно, но более сложный с программной точки зрения и довольно медленный интерфейс 12С (в терминологии Atmel AVR он называется TWI (Two‑Wire Interface , двухпроводной интерфейс). С его помощью можно общаться со многими устройствами: часами реального времени, компасами, датчиками, некоторыми разновидностями памяти. Мы рассмотрим его опять же в главах, посвященных Arduino .

В AVR имеется 10‑разрядный АЦП последовательного приближения (см. главу 17 ). Работа с ним имеет довольно много нюансов, и мы ее подробно рассмотрим в главе 20 . В главе 22 вы увидите, насколько Arduino упрощает этот процесс. И вообще, некоторые другие узлы МК семейства AVR мы рассмотрим по ходу изложения конкретных схем – так будет нагляднее. Сейчас же мы закончим затянувшееся знакомство с микроконтроллером и обратимся к вопросу о том, как его программировать. Следующие две главы мы посвятим элементарным сведениям о программировании МК на ассемблере, а далее перейдем к языкам высокого (и даже сверхвысокого) уровня. Так вы сможете наглядно сравнить и даже при желании «пощупать руками» преимущества и недостатки того и иного подхода и границы их применимости.

Последовательный порт

Порт или интерфейс, который может использоваться для последовательной связи, при которой за раз передается только 1 бит.

Большинство последовательных портов для персональных компьютеров удовлетворяют стандарту RS-232C или RS-422. Последовательный порт есть интерфейс общего назначения, он может использоваться для многих типов устройств, включая модемы, мыши и принтеры (хотя большинство принтеров подсоединяются к параллельному порту).

Обычный PC имеет ttyS0 и ttyS2 на IRQ 4, и ttyS1 и ttyS3 на IRQ 3. Вы можете увидеть, какие IRQs используются, напечатав: setserial /dev/ttyS2, и т.д. Просмотр /proc/interrupts покажет некоторых из них. Чтобы использовать более, чем два последовательных устройства, вы должны будете переназначить прерывания. Хороший подход состоит в переназначении прерывания для параллельного порта. В PC обычно для ваших параллельных портов установлены прерывания IRQ 5 и IRQ 7, но мало кто использует два параллельных порта. Вы можете переназначать одно из прерываний на последовательное устройство, и прекрасно использовать оставшийся параллельный порт. чтобы сделать это, вам нужна будет программа setserial. Кроме того, вы должны поиграть с перемычками на матернской плате, свериться с документацией на вашу плату. Установите перемычки на IRQ, который вы хотите назначить каждому порту.

Вы должны установить все так, чтобы имелось одно и только одно прерывание для каждого последовательного устройства. Вот как Грэг устанавливает его в /etc/rc.d/rc. local - вы должны сделать это в файле, который выполняется после запуска:

/sbin/setserial /dev/ttyS0 irq 3 # моя последовательная мышь

/sbin/setserial /dev/ttyS1 irq 4 # мой Wyse dumb терминал

/sbin/setserial /dev/ttyS2 irq 5 # мой модем Zoom

/sbin/setserial /dev/ttyS3 irq 9 # мой модем USR

Стандартные назначения IRQ:

IRQ 0 Таймер, канал 0

IRQ 1 Клавиатура

IRQ 2 Cascade for controller 2

IRQ 3 Последовательный порт 2

IRQ 4 Последовательный порт 1

IRQ 5 Параллельный порт 2

IRQ 6 Накопитель на гибких дисках

IRQ 7 Параллельный порт 1

IRQ 8 Часы реального времени

IRQ 9 Перенаправлен на IRQ2

IRQ 10 не назначен

IRQ 11 не назначен

IRQ 12 не назначен

IRQ 13 Математический сопроцессор

IRQ 14 Накопитель на жестких дисках 1

IRQ 15 Накопитель на жестких дисках 2

В действительности нет никакого "правильного способа" назначения прерывания. Только удостоверьтесь, что оно не используется материнской платой или любыми другими платами.

Номера прерываний 2, 3, 4, 5 или 7 - это хороший выбор. «не назначен» означает, что в настоящее время ничего стандартно не использует эти IRQS. Также обратите внимание, что IRQ 2 - это тоже, что и IRQ 9. Вы можете вызывать его или как 2 или как 9, последовательный драйвер очень понятливый. Если у вас последовательная плата с 16-разрядным разъемом шины, то вы можете также использовать IRQ 10, 11, 12 или 15.

Только удостоверьтесь, что вы не используете IRQ 0, 1, 6, 8, 13 или 14! Они используются вашей материнской платой. Вы модете заработать множество неприятностей, используя эти IRQ не по назначению. Когда вы закончите, посмотрите /proc/interrupts и удостоверьтесь, что конфликтов нет.

Установка адресов последовательных устройств

Затем, вы должны установить адрес порта. Проверьте в руководстве по вашей плате установки перемычек. Подобно прерываниям, одно последовательное устройство может иметь только один адрес. Ваши порты обычно будут приходить с такими установками:

ttyS0 адрес 0x3f8

ttyS1 адрес 0x2f8

ttyS2 адрес 0x3e8

ttyS3 адрес 0x2e8

Выберите адреса, которые вы хотите использовать для каждого последовательного устройства и соответственно установите перемычки. Мой модем установлен на ttyS3, мышь на ttyS0, а мой терминал на ttyS2.

Когда вы перезагрузитесь, Linux должен увидеть ваши последовательные порты по тем адресам, на которые вы их установили. IRQ, который видит Linux, может не соответствовать IRQ, который вы устанавливаете перемычками. Не волнуйтесь об этом. Linux не делает попыток определить IRQ при загрузке, потому что определение IRQ рисковано и может быть неправильным. Используйте setserial, чтобы сообщить Linux, какое IRQ используется портом. Вы можете проверить /proc/ioports, чтобы увидеть, какие адреса порта ввода-вывода используются после загрузки Linux.

Адаптер параллельного интерфейса представляет собой набор регистров, расположенных в адресном пространстве устройств ввода/вывода. Количество регистров зависит от типа порта, однако три из них стандартны и присутствуют всегда - регистр данных, регистр состояния и регистр управления. Адреса регистров отсчитываются от базового, стандартные значения которого 3BCh, 378h, 278h. Узнать количество установленных портов в компьютере и их базовые адреса можно просканировав область данных BIOS по адресам 0:408h для LPT1, 0:40Ah для LPT2, 0:40Ch для LPT3 и 0:40Eh для LPT4. Если по данным адресам содержится слово (2 байта) с ненулевым значением, то это и есть базовый адрес порта. Если слово содержит нулевое значение - порт не установлен. BIOS не поддерживает больше 4 LPT-портов. Порт может использовать аппаратное прерывание (IRQ7 или IRQ9). Многие современные системы позволяют изменять режим работы порта, его адрес и IRQ из настроек BIOS Setup. Например, в AWARD BIOS имеется раздел Integrated Peripherals, позволяющий настраивать режим, адрес и IRQ порта.

LPT порт имеет внешнюю 8-битную шину данных, 5-битную шину сигналов состояния и 4-х битную шину управляющих сигналов. При начальной загрузке BIOS пытается обнаружить параллельный порт, причем делает это примитивным и не всегда корректным образом - по возможным базовым адресам портов передается тестовый байт, состоящий из чередующегося набора нулей и единиц (55h или AAh), затем производится чтение по тому же адресу, и если прочитанный байт совпал с записанным, то считается, что по данному адресу найден LPT порт. Определить адрес порта LPT4 BIOS не может. Для работы с ПУ в BIOS предусмотрено прерывание INT 17h, предоставляющее возможность передавать данные (побайтно), инициализировать ПУ и получать информацию о его состоянии.

Для того чтобы передать информацию какому-либо устройству или получить ее от этого устройства, компьютеру необходимо специально организовать процесс обмена данными.

Организация операций, связанных с вводом и выводом информации, подразумевает следующее:

    соблюдение одинакового кода передаваемых данных (то есть «разговор на одном языке»);

    согласование скоростей передачи и приема информации (или «диалог в одинаковом темпе»);

    единство формата обмена данными (то есть способ дробления их на фрагменты, передаваемые за один цикл);

    стандартный протокол специальных управляющих сигналов (команды, «понятные» принимающему и передающему устройству) .

Для того чтобы соблюсти все указанные требования, в компьютере существуют специализированные контроллеры ввода/вывода, предназначенные только для организации работы по обмену информацией с внешним миром. Этот обмен реализуется через специальные «ворота» (каналы), получившие название портов .

Обмен (то есть ввод и вывод) данных между компьютером и периферийным устройством происходит в два этапа: передача информации от компьютера к периферийному устройству и прием информации от периферийного устройства. Такая организация работы требуется для исключения возникающих ошибок (например, при переполнении приемного буфера периферийного устройства или наличии внешней помехи) и оперативного информирования системы о состоянии процесса ввода/вывода.

Помимо оперативной памяти, процессор может адресовать и другую область, известную как адресное пространство ввода-вывода. Каждый порт ввода-вывода имеет уникальное множество адресов ввода-вывода. Микропроцессор включает две команды: IN и OUT, используемые для чтения и записи данных в адресном пространстве ввода-вывода, а также другие инструкции, управляющие портами ввода-вывода (эти команды будут рассмотрены при изучении языка ассемблера).

Порты ввода/вывода, соответственно способам передачи, подразделяют на параллельные и последовательные.

В параллельном порту (Parallel Port) в одном направлении одновременно передаются сразу 8 бит (1 байт) информации. Поэтому разъем параллельного порта содержит восемь линий для передачи данных, а на компьютере с двунаправленным параллельным портом разъем дополнительно восемь линий используются для приема данных.

Для параллельного порта не существует международного стандарта, однако в качестве фактического стандарта используется спецификация, опубликованная фирмой-изготовителем периферийных устройств Centronics (поэтому ее часто называют стандартом Centronics).

Интерфейс Centronics в компьютере использует для обмена данными 25-контактный «материнский» разъем (контактные гнезда под штыри кабеля).

Существуют следующие типы параллельного порта:

    стандартный;

    улучшенный параллельный порт EPP (Enhanced Parallel Port);

    порт с расширенными функциями ECP (Extended Capability Port).

Стандартный параллельный порт предназначен только для односторонней передачи данных от компьютера к принтеру. Он обеспечивает максимальную скорость передачи данных от 120 до 200 Кбайт/с.

Порт EPP является двунаправленным, то есть обеспечивает передачу 8 бит данных в обоих направлениях. Это избавляет центральный процессор от необходимости выполнения медленных команд типа IN и OUT, позволяя программе непосредственно заниматься пересылкой данных. Порт EPP передает и принимает данные почти в 6 раз быстрее стандартного параллельного порта, в основном, за счет наличия буферной памяти. Специальный режим (с использованием прямого доступа в память – DMA) позволяет порту EPP передавать блоки данных непосредственно из оперативной памяти в последовательный порт, минуя процессор. При использовании соответствующего программного обеспечения порт EPP может принимать и передавать данные со скоростью до 2 Мбайт/с. Подобно интерфейсу SCSI порт EPP позволяет подключать в цепочку до 64 периферийных устройств.

Дальнейшим развитием порта EPP явился порт ECP . Он обладает теми же возможностями, что и порт EPP, но количество устройств увеличено до 128. Кроме того, в порту ECP реализована такая важная функция, как сжатие данных.

Для сжатия данных используется метод RLE (Run Length Encoding), в котором длинная последовательность одинаковых символов передается двумя байтами: один байт определяет повторяющийся символ, другой – число повторений. Стандарт ECP допускает сжатие и распаковку данных как программно (с помощью драйвера), так и аппаратно (схемой порта).

В настоящее время стандарты портов EPP и ECP включены в стандарт IEEE 1284 . Этот стандарт определяет четыре режима работы: полубайтовый, байтовый, EPP и ECP. Дополнительно к функциям портов EPP и ECP стандарт IEEE 1284 позволяет принтеру послать сигнал при аварии.

Хотя в операционной системе предусмотрено три логических имени для параллельных портов – LPT1 (синоним PRN), LPT2 и LPT3 обычно в комплектацию компьютера входит один параллельный порт (в современных компьютерах контроллер параллельного порта располагается на материнской плате)

Параллельный порт чаще всего используется для подключения принтера. Однако к нему можно подключать и другие устройства, например, сканеры, внешние дисководы, стримеры и дисководы CD. Параллельный порт можно использовать также для обмена данными между двумя компьютерами.

Параллельный порт обеспечивает довольно высокую скорость передачи, поскольку эта передача осуществляется побайтно. Однако при большой длине кабеля или при не очень интенсивном обмене данными удобнее оказывается последовательный порт.

Последовательный порт (Serial Port) передает в одном направлении одновременно всего лишь 1 бит информации. Данные могут передаваться через этот порт как от ПК к внешнему устройству, так и наоборот.

Последовательные порты компьютера обычно соответствуют международному стандарту RS-232C (Reference Standard 232 версии С), поэтому к этому порту можно подсоединить любое устройство, которое также ориентировано на этот стандарт (например, мышь, модем, последовательный принтер или последовательный порт другого компьютера). Этот интерфейс использует 9 каналов связи: один из них служит для передачи информации от компьютера, другой – для приема данных от периферийного устройства. Оставшиеся 7 каналов используются для управления самим процессом обмена данными.

Последовательный порт состоит из UART-микросхемы (Universal Asynchronous Receiver/Transmitter – универсальный асинхронный приемник/передатчик) и некоторых поддерживающих компонентов. Эта микросхема принимает байты данных от шины компьютера, преобразует их в строку битов, добавляет необходимые биты кадровой синхронизации и затем выполняет передачу данных, а также выполняет обратные действия по приему строки данных.

Современные микросхемы UART оснащены буферной памятью и обеспечивают скорость передачи данных до 115 Кбит/с.

Данные при последовательной передаче разделяются служебными посылками, такими, как стартовый бит и стоп-бит. Эти биты указывают на начало и конец передачи последовательных бит данных. Данный метод передачи позволяет осуществить синхронизацию между приемной и передающей стороной, а также выровнять скорость обмена данными.

Для идентификации и распознавания ошибок при последовательной передаче в состав посылки дополнительно может включаться бит контроля четности. Значение бита контроля четности определяется двоичной суммой всех передаваемых битов данных. В режиме, когда бит контроля четности четный (Even Parity), значение бит контроля четности равно 0, если сумма битов четная, и 1 – в противном случае. Биты контроля четности имеют инверсные (обратные) значения (соответственно 1 или 0), если бит контроля четности нечетный (Odd Parity).

Стандартная комплектация компьютера содержит два последовательных порта. В современных компьютерах контроллеры последовательных портов, также, как и контроллер параллельного порта, располагается на материнской плате. Отличие разъема последовательного порта от параллельного состоим в том, что этот разъем имеет контактные штыри, а не гнезда («отцовский» разъем). В старых компьютерах использовался один 25-контактный и один 9-контактный разъем, в современных компьютерах – два 9-контактных разъема. Длина кабеля последовательного порта ограничена 18 м. Основным устройством, подключаемым к последовательному порту, является модем.

Некоторые компьютеры, особенно ориентированные на коммуникационные приложения, могут иметь последовательные порты, выполненные по другим стандартам (например, RS-449A или RS-613), имеющие более высокую скорость передачи данных на более дальние расстояния.



В продолжение темы:
Windows

Часть вторая : "Важнейшие характеристики каждого семейства процессоров Intel Core i3/i5/i7. Какие из этих чипов представляют особый интерес" Введение Сначала мы приведём...

Новые статьи
/
Популярные