Меню Рубрики

Адреса портов ввода вывода

Содержание

Архитектура ЭВМ

Компоненты ПК

Интерфейсы

Мини блог

Самое читаемое

Адреса портов ввода-вывода

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

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

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

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

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

Системная плата и набор микросхем системной логики обычно используют адреса порто ввода-вывода от 0h до FFh, а все другие устройства — от 100h до FFFFh.

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

Устройства на шине, как правило, используют адреса, начиная с 100h.

Чтобы точно знать, какие адреса используют ваши устройства, настоятельно рекомендую обратиться к документации или просмотреть информацию об устройстве в диспетчере устройств Windows.

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

Порт ввода-вывода – логическое объединение сигнальных линий, через которое принимаются и передаются данные.
Каждая линия порта, как правило, обозначается как Pnx, где

  • n – обозначение порта;
  • x – номер бита (линии) в порте.

Каждый порт ввода-вывода обслуживают как минимум 3 служебных регистра:

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

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

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

Читайте также:  Живая изгородь из форзиции

Для всех линий портов ввода-вывода, как правило, доступна программная конфигурация входных подтягивающих резисторов. Подтягивающие резисторы осуществляют доопределение потенциалов «брошенных» входов напряжением высокого (Pull-up) или низкого (Pull-down) уровня.

Для обращения к отдельным линиям порта используется маскирование битов.

Входные элементы управления

В качестве входных элементов управления могут использоваться

  • другие элементы схемы;
  • тумблеры;
  • джамперы;
  • множественные переключатели;
  • кнопки.

Тумблеры предназначены для коммутации цепей управления. Обрабатываемый сигнал с тумблера – потенциальный.

Различают 1-позиционные и 2-позиционные тумблеры:

1-позиционные

2-позиционные

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

Множественные переключатели представляют собой набор 1-позиционных тумблеров в миниатюрном формате.

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

Выходные элементы управления

В качестве выходных элементов управления могут использоваться

  • другие элементы схемы;
  • элементы индикации (единичные светодиоды или светодиодные сборки, в частности, — 7-сегментные индикаторы).

Единичные светодиоды

7-сегментные индикаторы

Различают 7-сегментные индикаторы с общим анодом и с общим катодом.

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

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

В таблице приведены коды для отображения цифр на 7-сегментном индикаторе

Общие рекомендации по выбору памяти.

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

В таблице представлены минимальные, рекомендуемые и максимальные требования к памяти для различных операционных систем. Данные получены обобщением опыта многих системных администраторов г. Саратова. Максимальное значение ОЗУ – объем памяти, сверх которого повышение скорости работы компьютера не наблюдается.

Таблица
ОС Мин. Рек. Макс.
MS-DOS 3.30 256K 640K 640K
MS-DOS 6.22 640K 4Mb 8Mb
MS-DOS + Win 3.11 2Mb 8Mb 16Mb
Win 95 8Mb 16Mb 64Mb
Win NT 3.51 4Mb 8Mb 24Mb
Win NT 4.0 16Mb 24Mb 64Mb
Win 98 16Mb 48Mb 128Mb
Win 2000 Prof 32Mb 128Mb 256Mb
Win 2000 Serv 128Mb 256Mb -?
OS/2 8Mb 16Mb 64Mb
Linux 16Mb 64Mb 128Mb

Примечание: Microsoft Windows 98 может работать и при том же объеме памяти, что и Microsoft Windows 95, однако тогда для свопинга памяти необходимо иметь втрое большее свободное дисковое пространство (начиная от 128 Мбайт.)

Исходя из этой таблицы необходимо выбирать объем оперативной памяти для операционной системы.

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

Читайте также:  Dh321 datasheet на русском

При установке прикладных пакетов учтите, что установка каждого нового пакета, кроме дискового пространства, требует дополнительно к минимальному значению ОЗУ 2-4 Мбайта памяти! Это правило отчасти объясняет тот факт, что при большом числе установленных пакетов все программы работают медленнее, даже если они загружаются и работают поочередно. При этом производительность и устойчивость работы компьютера снижается экспоненциально до некоторого предела, зависящего от производителя и марки компьютера!

Драйвер (driver) – программное обеспечение, позволяющее конкретному устройству работать с остальными устройствами компьютера. Каждому устройству соответствует свой драйвер, разработанный под соответствующую операционную систему (операционная система – программное обеспечение, позволяющее всем частям компьютера работать как единое целое). Операционная система компьютера не распознает устройство до тех пор, пока не будет установлен необходимый драйвер (если операционная система не поддерживает спецификацию Plug and Play(включи и работай)). Существуют драйверы мыши, клавиатуры, видеокарты и т.д.

Каждое устройство для своей работы использует ресурсы ПК, называемыми системными. Обычно под систем­ными ресурсами подразумевают:

адреса портов ввода-вывода.
каналы запросов прерываний (IRQ);
адреса памяти;
каналы прямого доступа к памяти (DMA); ‘

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

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

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

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

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

В отличие от прерываний IRQ и каналов прямого доступа к памяти, в наших персональных компьютерах мы имеем огромное множество портов ввода-вывода. Имеется 65 535 портов, пронумерованных от 0000h до FFFFh, и это, пожалуй, самый удивительный артефакт в процессоре Intel. Хотя многие устройства используют до восьми портов, все равно их количество более чем достаточное. Самая большая проблема состоит в том, чтобы двум устройствам случайно не назначить один и тот же порт.

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

Читайте также:  Автоматика для откатных ворот doorhan отзывы

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

Системная плата и набор микросхем системной логики обычно используют адреса портов ввода-вывода от 0h до FFh, а все другие устройства— от 100h до FFFFh.

Каналы запросов прерываний (irq).

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

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

Указатели в таблице векторов определяют адреса памяти, по которым записаны програм­мы-драйверы для обслуживания платы, пославшей запрос. Например, для сетевой платы век­тор прерывания содержит адрес сетевых драйверов, предназначенных для работы слей; для контроллера жесткого диска вектор указывает на программный код BIOS, обслуживающий контроллер

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

Благодаря прерываниям компьютер может своевременно реагировать на внешние собы­тия. Например, всякий раз, когда с последовательного порта в систему поступает новый байт, вырабатывается IRQ.

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

При генерации большого количества прерываний стек может переполниться и тогда ПК зависнет. Если такая ошибка возникает слишком часто, попытайтесь исправить ситуацию, увеличив параметр STACKS (размер стека) в файле CONFIG.SYS.

Условно схема обработки прерывания выглядит следующим образом:

1.процессор получает сигнал прерывания и его номер;

2.по специальной таблице отыскивается адрес программы, ответственной за обработку прерывания с данным номером – обработчика прерывания;

3.процессор приостанавливает текущую работу и переключается на выполнение обработчика (в общем случае это некоторый драйвер);

4.драйвер получает доступ к устройству и проверяет причину возникновения прерывания;

5.запускаются запрошенные действия – инициализация, конфигурирование устройства, обмен данными и др.

Не нашли то, что искали? Воспользуйтесь поиском:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *