Связь компьютера с периферийными устройствами

Основные задачи построения сетей

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

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

Начнем с наиболее простого случая непосредственного соединения двух устройств физическим каналом, такое соединение называется связью «точка-точка» ( point-to-point ).

Связь компьютера с периферийными устройствами

Для обмена данными между компьютером и периферийным устройством (ПУ) в компьютере предусмотрен внешний интерфейс (рис. 1.6), то есть набор проводов, соединяющих компьютер и периферийное устройство, а также набор правил обмена информацией по этим проводам (иногда вместо термина интерфейс употребляется термин протокол — подробней об этих важных терминах мы еще поговорим). Примерами интерфейсов, используемых в компьютерах, являются параллельный интерфейс Centronics, предназначенный, как правило, для подключения принтеров, и последовательный интерфейс RS-232C, через который подключаются мышь, модем и много других устройств. Интерфейс реализуется со стороны компьютера совокупностью аппаратных и программных средств: контроллером ПУ и специальной программой, управляющей этим контроллером, которую часто называют драйвером соответствующего периферийного устройства.

Со стороны ПУ интерфейс чаще всего реализуется аппаратным устройством управления, хотя встречаются и программно-управляемые периферийные устройства.

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

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

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

Распределение обязанностей между контроллером и драйвером ПУ может быть разным, но обычно контроллер выполняет набор простых команд по управлению ПУ, а драйвер использует эти команды, чтобы заставить устройство совершать более сложные действия по некоторому алгоритму. Например, контроллер принтера может поддерживать такие элементарные команды, как «Печать символа», «Перевод строки», «Возврат каретки» и т. п. Драйвер же принтера с помощью этих команд организует печать строк символов, разделение документа на страницы и другие более высокоуровневые операции. Для одного и того же контроллера можно разработать различные драйверы, которые будут управлять данным ПУ по-разному — одни лучше, а другие хуже — в зависимости от опыта и способностей программистов, их разработавших.

Рис. 1.6.Связь компьютера с периферийным устройством

Рассмотрим последовательность действий, которые выполняются в том случае, когда некоторому приложению требуется напечатать текст на принтере. Со стороны компьютера в выполнении этой операции принимает участие, кроме уже названных контроллера, драйвера и приложения, еще один важнейший компонент — операционная система. Поскольку все операции ввода-вывода являются привилегированными, все приложения при выполнении операций с периферийными устройствами используют ОС как арбитра. Итак, последовательность действий такова:

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

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

Драйвер передает команды и данные контроллеру, который помещает их в свой внутренний буфер. Пусть, например, драйвер загружает значение некоторого байта в буфер контроллера ПУ.

Контроллер перемещает данные из внутреннего буфера во внешний порт.

Контроллер начинает последовательно передавать биты в линию связи, представляя каждый бит соответствующим электрическим сигналом. Чтобы сообщить устройству управления принтера о том, что начинается передача байта, перед передачей первого бита данных контроллер формирует стартовый сигнал специфической формы, а после передачи последнего информационного бита — стоповый сигнал. Эти сигналы синхронизируют передачу байта. Кроме информационных бит, контроллер может передавать бит контроля четности для повышения достоверности обмена.

Устройство управления принтера, обнаружив на соответствующей линии стартовый бит, выполняет подготовительные действия и начинает принимать информационные биты, формируя из них байт в своем приемном буфере. Если передача сопровождается битом четности, то выполняется проверка корректности передачи: при правильно выполненной передаче в соответствующем регистре устройства управления принтера устанавливается признак завершения приема информации. Наконец, принятый байт обрабатывается принтером — выполняется соответствующая команда или печатается символ.

Обязанности между драйвером и контроллером могут распределяться по-разному, но чаще всего контроллер поддерживает набор простых команд, служащих для управления периферийным устройством, а на драйвер обычно возлагаются наиболее сложные функции реализации обмена. Например, контроллер принтера может поддерживать такие элементарные команды, как «Печать символа», «Перевод строки», «Возврат каретки» и т. п.

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

Возможно распределение функций между драйвером и контроллером (ПУ).

Функции, выполняемые драйвером:

· ведение очередей запросов;

· подсчет контрольной суммы последовательности байтов;

· анализ состояния ПУ;

· загрузка очередного байта данных (или команды) в регистр контроллера;

· считывание байта данных или байта состояния ПУ из регистра контроллера.

Функции, выполняемые контроллером:

1. преобразование байта из регистра (порта) в последовательность бит;

2. передача каждого бита в линию связи;

3. обрамление байта стартовым и стоповым битами – синхронизация;

4. формирование бита четности;

5. установка признака завершения приема/передачи байта.

Архитектура клиент-сервер может использоваться как в одноран-говых локальных вычислительных сетях, так и в сети с выделенным сервером.

Одноранговая сеть.В такой сети нет единого центра управления взаимодействием рабочих станций и нет единого устройства для хране-ния данных. Сетевая операционная система распределена по всем ра-бочим станциям. Каждая станция сети может выполнять функции как клиента, так и сервера. Она может обслуживать запросы от других ра-бочих станций и направлять свои запросы на обслуживание в сеть.

Пользователю сети доступны все устройства, подключенные к другим станциям (диски, принтеры).

Достоинстваодноранговых сетей: низкая стоимость и высокая надежность.
Недостатки одноранговых сетей:

· зависимость эффективности работы сети от количества станций;

· сложность управления сетью;

· сложность обеспечения защиты информации;

· трудности обновления и изменения программного обеспе-чения станций.

Наибольшей популярностью пользуются одноранговые сети на базе сетевых операционных систем LANtastic, NetWareLite.

Сеть с выделенным сервером.
В сети с выделенным сервером один из компьютеров выполняет функции хранения данных, предназначенных для использования всеми рабочими станциями, управления взаимодействием между рабочими станциями и ряд сервисных функций.
Такой компьютер обычно называют сервером сети. На нем уста-навливается сетевая операционная система, к нему подключаются все разделяемые внешние устройства — жесткие диски, принтеры и моде-мы.
Взаимодействие между рабочими станциями в сети, как правило, осуществляется через сервер. Логическая организация такой сети может быть представлена топологией звезда.Роль центрального устройства выполняет сервер. В сетях с централизованным управлением существу-ет возможность обмена информацией между рабочими станциями, ми-нуя файл-сервер. Для этого можно использовать программу NetLink. По-сле запуска программы на двух рабочих станциях можно передавать файлы с диска одной станции на диск другой (аналогично операции ко-пирования файловиз одного каталога в другой с помощью программы NortonCommander).

Достоинства сети с выделенным сервером:

· надежная система защиты информации;

· отсутствие ограничений на число рабочих станций;

· простота управления по сравнению с одноранговыми сетями.

· высокая стоимость из-за выделения одного компьютера под сервер;

· зависимость быстродействия и надежности сети от сервера;

· меньшая гибкость по сравнению с одноранговой сетью.

Сети с выделенным сервером являются наиболее распростра-ненными у пользователей компьютерных сетей. Сетевые операционные системы для таких сетей — LANServer(IBM), WindowsNTServerверсий 3.51 и 4,0 и NetWare(Novell).

Порт компьютера подается питание на а также осуществляется обмен данными между и компьютером

Дорогие читатели! Редакция сайта iXBT.com обращается к вам с просьбой отключить блокировку рекламы на нашем сайте.

Редакция сайта iXBT.com обращается к вам с просьбой отключить блокировку рекламы на нашем сайте.

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

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

Ресурсы персонального компьютера

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

* каналы запросов прерываний (IRQ);

* каналы прямого доступа к памяти (DMA);

* адреса портов ввода-вывода.

* адреса памяти;

Все эти ресурсы необходимы для различных компонентов компьютера. Платы адаптеров используют ресурсы для взаимодействия со всей системой и для выполнения своих специфических функций. Для каждой платы адаптера нужен свой набор ресурсов. Так, последовательным портам для работы необходим канал IRQ и уникальные адреса портов ввода-вывода, для аудиоустройств требуется еще хотя бы один канал DMA. Большинство сетевых плат использует блок памяти емкостью 16 Кбайт, канал IRQ и адрес порта ввода-вывода.

По мере установки дополнительных плат в компьютере растет вероятность конфликтов, связанных с использованием ресурсов. Конфликт возникает при установке двух или более плат, каждой из которых требуется линия IRQ или адрес порта ввода-вывода. Для предотвращения конфликтов на большинстве плат устанавливаются перемычки или переключатели, с помощью которых можно изменить адрес порта ввода-вывода, номер IRQ и т.д. А в современных операционных системах Windows9х, удовлетворяющих спецификации Plug and Play, установка правильных параметров осуществляется на этапе инсталляции оборудования. К счастью, найти выход из конфликтных ситуаций можно почти всегда, для этого нужно лишь знать правила игры.

Каналы запросов прерывания (IRQ, Interrupt Request), или аппаратные прерывания, используются различными устройствами для сообщения системной плате (процессору) о том, что должен быть обработан определенный запрос. Каналы прерываний представляют собой проводники на системной плате и соответствующие контакты в разъемах. После получения IRQ компьютер приступает к выполнению специальной процедуры его обработки, первым шагом которой является сохранение в стеке содержимого регистров процессора. Затем происходит обращение к таблице векторов прерываний, в которой содержится список адресов памяти, соответствующих определенным номерам (каналам) прерываний. В зависимости от номера полученного прерывания запускается программа, относящаяся к данному каналу. Указатели в таблице векторов определяют адреса памяти, по которым записаны программы-драйверы для обслуживания устройства, пославшей запрос. Например, для сетевой платы вектор прерывания содержит адрес сетевых драйверов, предназначенных для работы с ней; для контроллера жесткого диска вектор указывает на программный код BIOS, обслуживающий контроллер.

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

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

Аппаратные прерывания имеют иерархию приоритетов: чем меньше номер прерывания, тем выше приоритет. Прерывания с более высоким приоритетом имеют преимущество перед прерываниями с более низкими приоритетами и могут «прерывать прерывания», В результате в компьютере может возникнуть несколько «вложенных» прерываний.

По шине ISA запросы на прерывание передаются в виде перепадов логических уровней, причем для каждого из них предназначена отдельная линия, подведенная ко всем разъемам. Каждому номеру аппаратного прерывания соответствует свой проводник. Системная плата не может определить, в каком разъеме находится пославшая прерывание плата, поэтому возможно возникновение неопределенной ситуации в том случае, если несколько плат используют один канал. Чтобы этого не происходило, система настраивается так, что каждое устройство (адаптер) использует свою линию (канал) прерывания. Применение одной линии сразу несколькими разными устройствами в большинстве случаев недопустимо. Совместное использование прерывания допускается только PCI-устройствами, и то не всеми, некоторые старые PCI-устройства могут некорректно работать при таком использовании прерываний. Эта возможность поддерживается BIOS и операционной системой.

Поскольку в шине ISA совместное использование прерываний обычно не допускается, при установке новых плат может обнаружиться недостаток линий прерываний. Если две платы используют одну и ту же линию IRQ, то их нормальную работу нарушит возникший конфликт. Хотя сейчас это уже не так актуально, как несколько лет назад — в современных платах попросту отстутствуют разъемы ISA.

Установка одинаковых прерываний для шин ISA и PCI обязательно приведет к конфликту. Также будут конфликтовать два устройства ISA с одинаковым прерыванием. Что же делать, если доступных прерываний недостаточно для всех установленных в системе устройств? Во всех новых системах допускается использование одного прерывания несколькими устройствами PCI. Все системные BIOS, удовлетворяющие спецификации Plug and Play, а также операционные системы, начиная с Windows 95b (OSR 2), поддерживают функцию управления прерываниями. В таких компьютерах всю заботу о распределении прерываний может брать на себя операционная система (хотя, на мой взгляд, гораздо лучше доверить эту функцию BIOS).

Всего архитектура персонального компьютера поддерживает 16 аппаратных прерываний: IRQ0 — IRQ15. Ряд этих прерываний зарезервирован за системными устройствами, а некоторые свободны для использования дополнительными адаптерами. Давайте рассмотрим, какие же прерывания зафиксированы за определенными устройствами:

IRQ0 — системный таймер;

IRQ1 — клавиатура;

IRQ2 — использует для своих нужд сам контроллер прерываний;

IRQ3 — обычно используется COM2;

IRQ4 — обычно используется COM1;

IRQ5 — обычно свободно, чаще всего используется аудиоплатой;

IRQ6 — используется контроллером дисковода;

IRQ7 — обычно используется портом принтера LPT1;

IRQ8 — используется часами реального времени;

IRQ9 — каскадом связано с IRQ2, используется самим контроллером прерываний;

IRQ10 — обычно свободно;

IRQ11 — обычно свободно;

IRQ12 — используется мышью в порту PS/2;

IRQ13 — используется математическим сопроцессором;

IRQ14 — используется первым каналом IDE0;

IRQ15 — используется вторым каналом IDE1;

Как видно из таблицы, свободным прерываний в системе всего 3: irq 5,10 и 11. А устройств, требующих прерывания много: видеоплата, контроллер USB, аудиоплата, сетевая плата, различные платы расширения. Но, вспомним, PCI устройства могут совместно использовать одно прерывание, хотя и не любое даже PCI устройство будет «дружить» с другим. Возникает проблема распределения прерываний. Однако нужно заметить, что такая проблема возникает только в случае, когда в компьютере много плат расширения: видео, аудио и USB вполне удовлетворяются тремя свободными прерываниями. Что же делать, если устройств много, а прерываний не хватает?

Для решения этой задачи есть несколько подходов. Простейший подход состоит в том, чтобы отключить неиспользуемые устройства. Если Ваша мышь установлена в СОМ порту, то можно отключить в BIOS Setup (об этом в следующих главах) использование порта PS/2. Если же Ваша мышь в порту PS/2, то зачем Вам 2 свободных СОМ порта? В один из них обычно устанавливают модем, второй же обычно остается свободным, и его можно отключить в BIOS Setup, освободив IRQ3 или IRQ4. Если Вы не пользуетесь устройствами в порту принтера, то его можно отключить. Если Вы не пользуетесь USB портом, то и его можно отключить, уменьшив список устройств, нуждающихся в прерываниях.

Кстати, теперь настало время сказать несколько слов о безусловной пользе шины USB. Вы можете подключить к USB принтер, сканер, мышь, клавиатуру, модем, видеокамеру и другие устройства, задействовав всего ОДНО прерывание. В этом огромное преимущество шины USB — она позволяет раз и навсегда решить проблему нехватки прерываний PC. Ведь применение шины USB для всех перечисленных устройств позволяет освободить IRQ 3(COM2),4(COM1),7(LPT1) и иногда IRQ1, освобождая таким образом достаточное количество прерываний для всех плат расширения персонального компьютера. В этом отношении шина USB весьма перспективна.

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

Наиболее просто эта задача решается в случае, когда в BIOS Setup материнской платы предусмотрена настройка для каждого слота PCI номера прерывания, которое будет назначено при старте устройству в этом слоте PCI. А как решить задачу разделения прерываний, если таких возможностей в BIOS Setup не предусмотрено?

Тогда следует делать следующим образом. BIOS раздает платам при старте прерывания в соответствии с тем, в каких слотах PCI они установлены. Вообще говоря, если поменять местами платы в слотах PCI, то они получат иные прерывания при старте, и благодаря этому можно попытаться настроить соответствие прерываний платам расширения. Следует вручную подобрать такую расстановку плат расширения в слотах PCI, при которой BIOS распределит прерывания таким образом, как Вам нужно. Это весьма длительная, нудная и кропотливая работа, так как пять плат в пяти слотах переставлять вплоть до того, как они получат нужные прерывания — весьма долго, но такой способ тем не менее дает положительный результат.

Вы можете получить под Windows список прерываний, используемый устройствами Вашего компьютера. Для этого нужно в панели управления выбрать приложение System, перейти на закладку Device Manager и дважды щелкнуть на устройстве Computer. В появившемся окне Вы сможете видеть используемые прерывания а также и другие ресурсы, о которых сейчас пойдет речь.

Каналы прямого доступа к памяти (DMA) используются устройствами, осуществляющими высокоскоростной обмен данными. C помощью каналов прямого доступа к памяти устройства могут напрямую обращаться к оперативной памяти миную центральный процессор, таким образом освобождая его от дополнительной нагрузки. Последовательный и параллельный порты, например, не используют DMA, в отличие от звуковой платы. Один канал DMA может использоваться разными устройствами, но не одновременно. Например, канал DMA 1 может использоваться как сетевым адаптером, так и накопителем на магнитной ленте, но вы не сможете записывать информацию на ленту при работе в сети. Для этого каждому адаптеру необходимо выделить свой канал DMA. Всего в архитектуре РС предусмотрено 8 каналов прямого доступа к памяти с номерами DMA0 — DMA7, однако такой проблемы, как с прерываниями не возникает. Дело в том, что только небольшому количеству устройств необходим для правильного функционирования канал DMA. В стандартной системе только два из 8-и каналов занято: канал DMA1 занимает контроллер дисководов, а канал DMA2 занимает сам контроллер прямого доступа к памяти для своих служебных нужд. Некоторые аудиоплаты требуют один, а то и два канала прямого доступа к памяти, кроме того один канал иногда нужен порту принтера. Обычно в системе много свободных каналов прямого доступа к памяти, так что никаких проблем при конфигурировании не возникает.

Через порты ввода-вывода к компьютеру можно подключать разнообразные устройства для расширения его возможностей. Принтер, подключенный к одному из параллельных портов LPT, позволяет вывести на бумагу результаты работы. Модем, соединенный с одним из последовательных портов СОМ, обеспечивает связь по телефонным линиям с другими компьютерами, находящимися за тысячи километров от вас. Сканер, подключенный к порту LPT, позволяет ввести в компьютер графические изображения или текст непосредственно с листа бумаги и преобразовать их в необходимый формат для дальнейшей обработки.

В большинстве компьютеров имеется хотя бы два последовательных порта и один параллельный. Последовательные порты обозначаются как СОМ1 и COM2, а параллельный- LPT1. В принципе, в компьютере можно установить до четырех последовательных (СОМ1-СОМ4) и трех параллельных (LPT1-LPT3) портов.

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

Порты ввода-вывода позволяют установить связь между устройствами и программным обеспечением в компьютере. Они подобны двусторонним радиоканалам, так как обмен информацией в ту и другую сторону происходит по одному и тому же каналу. В отличие от прерываний IRQ и каналов прямого доступа к памяти, в персональных компьютерах множество портов ввода-вывода. Существует 65536 портов, пронумерованных от 0000h до FFFFh. Хотя многие устройства используют до восьми портов, все равно их количество более чем достаточно. Самая большая проблема состоит в том, чтобы двум устройствам случайно не назначить один и тот же порт. Наиболее современные системы, поддерживающие спецификацию Plug and Play, автоматически разрешают любые конфликты из-за портов, выбирая альтернативные порты для одного из конфликтующих устройств.

Хотя порты ввода-вывода обозначаются шестнадцатеричными адресами, подобными адресам памяти, они не являются памятью, они — порты. Различие состоит в том, что данные, посланные по адресу памяти 1000h, будут сохранены в модуле памяти SIMM или DIMM. Если вы посылаете данные по адресу 1000h порта ввода-вывода, то они попадают на этот «канал» шины и любое устройство, прослушивающее этот канал, может принять их. Если никакое устройство не прослушивает этот адрес порта, то данные достигнут конца шины и будут поглощены ее нагрузочными резисторами.

Любое устройство в компьютере может пользоваться некоторыми ресурсами. Для того, чтобы получить список ресурсов, использованных конкретным устройством, следует в упомянутом выше Device Manager’e выбрать свойства любого устройства и перейти на вкладку Resource.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector