Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК Вычислительные машины, системы и сети.doc
Скачиваний:
52
Добавлен:
05.11.2018
Размер:
1.65 Mб
Скачать

8.3.Работа с параллельным портом (lpt)

Если Вы хотите что-либо считывать с порта, то Вам необходимо переключить режим работы порта компьютера в режим EPP (Enhanced Parallel Port – режим двунаправленной передачи данных). Это делается в BIOS. Во время загрузки компьютера когда появится надпись Press DEL to enter setup, нажмите DEL, чтобы попасть в меню BIOS. Затем выберите раздел INTEGRATED PERIPHERALS и там выберите строку PARALLEL PORT MODE: измените режим работы Вашего порта на EPP или SPP/EPP. Сохраните сделанные изменения. Если же на Вашем компьютере нет режима EPP, то Вы сможете только передавать данные Параллельный порт для связи с принтером (или другим устройством) имеет базовый адрес &H378 (LPT1), &H278 (LPT2), &H3BC (LPT3).. Адресное пространство порта занимает диапазон &H378-&H37F. Адрес &H378 называется базовым и служит для передачи или чтения данных, через контакты 2-9 разъема LPT-порта. Адрес &H37A служит для передачи управляющих сигналов к устройству, подключенного к этому порту (принтер, сканер и т.д.). И, наконец, адрес &H379 предназначен для приема управляющих сигналов с устройства, подключенного к этому порту (принтер, сканер и т.д.). Рассмотрим конкретные примеры для каждого из адресов. Для написания статьи я использовал VB5 и библиотеку Inpout32.dll. В принципе подойдет любая другая, которая имеет возможность общаться с LPT портом.

В самом начале программы необходимо указать с какой библиотекой мы будем работать:

Option Explicit

Private Declare Function Inp Lib "inpout32.dll" _

Alias "Inp32" (ByVal PortAddress As Integer) As Integer

Private Declare Sub Out Lib "inpout32.dll" _

Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer) 

Передача числа 15 в LPT-порт адрес &H378  

Private Sub Command1_Click()

Out &H378, 15

End Sub

Чтобы наглядно убедиться в работоспособности программы соберите для удобства вот такую схему.

После нажатия кнопки Command1 на контактах 2-5 появиться уровень логической 1 (+5В) значит первые (сверху по схеме) 4 светодиода загорятся (1 + 2 + 4 + 8 = 15).

Команда: Out &H378, 0 - погасит все светодиоды

Команда: Out &H378, 255 - заставит все светодиоды светиться ( 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255)  

Прием данных из LPT- порта Адрес &H378 или &H37B-&H37F

Можно принимать данные либо по адресу &H378 либо в диапазоне адресов, начиная с &H37B - &H37F (по любому из них). В первом случае необходимо подавать сначала команду, переводящую порт в режим приема, а потом считывать данные по адресу &H378 

Private Sub Command1_Click()

Out &H37A, 32

Text1.Text = Inp(&H378)

End Sub 

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

Private Sub Command1_Click()

Text1.Text = Inp(&H37F)

End Sub 

При всех разомкнутых кнопках на разрядах D0-D7 присутствует уровень логической единицы и если выполнить такую команду, 

Private Sub Command1_Click()

Text1.Text = Inp(&H37F)

End Sub 

     8.4.Шина USB

        Шина USB (Universal Serial Bus - универсальная последовательная шина) появилась по компьютерным меркам довольно давно - версия первого утвержденного варианта стандарта появилась 15 января 1996 года. Разработка стандарта была инициировна весьма авторитетными фирмами - Intel, DEC, IBM, NEC, Northen Telecom и Compaq.         Основная цель стандарта, поставленная перед его разработчиками - создать реальную возможность пользователям работать в режиме Plug&Play с периферийными устройствами. Это означает, что должно быть предусмотрено подключение устройства к работающему компьютеру, автоматическое распознавание его немедленно после подключения и последующей установки соответствующих драйверов. Кроме этого, желательно питание маломощных устройств подавать с самой шины. Скорость шины должна быть достаточной для подавляющего большинства периферийных устройств. Попутно решается историческая проблема нехватки ресурсов на внутренних шинах IBM PC совместимого компьютера - контроллер USB занимает только одно прерывание независимо от количества подключенных к шине устройств.

Практически все поставленные задачи были решены в стандарте на USB и весной 1997 года стали появляться компьютеры, оборудованные разъемами для подключения USB устройств (см. фото слева), но периферия с подключением к USB  до середины 1998 года  так практически и не появилась. В чем дело? Почему только к концу 1998 года уже существенно активнее производители оборудования стали предлагать на рынке устройства с USB интерфейсом? Этому есть несколько объяснений:

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

более высокая стоимость устройств с USB по сравнению с аналогичными устройствами, имеющими стандартные интерфейсы

отсутствие поддержки со стороны производителей программного обеспечения и, главным образом, Microsoft, хотя она и была одним из авторов стандарта. Только в Windows 98 появилась полная поддержка USB, а в Windows NT она только должна быть в 1999 году.

Сейчас USB стала активно внедряться производителями компьютерной периферии. Сенсацией стало наличие в компьютере iMAC фирмы Apple Computers только USB в качестве внешней шины.

Возможности USB следуют из ее технических характеристик:

Высокая скорость обмена (full-speed signaling bit rate) - 12 Mb/s

Максимальная длина кабеля для высокой скорости обмена - 5 m

Низкая скорость обмена (low-speed signaling bit rate) - 1.5 Mb/s

Максимальная длина кабеля для низкой скорости обмена - 3 m

Максимальное количество подключенных устройств (включая размножители) - 127

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

Отсутствие необходимости в установке пользователем дополнительных элементов, таких как терминаторы для SCSI

Напряжение питания для периферийных устройств - 5 V

Максимальный ток потребления на одно устройство - 500 mA (это не означает, что через USB можно запитать устройства с общим током потребления 127 x 500 mA=63.5 A)

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

Такой иконой официально обозначается шина USB как в Windows 98, так и на задних стенках компьютеров (к сожалению, далеко не всех), а также на всех разъемах USB. Эта икона на самом деле правильно отображает идею топологии USB. Топология USB практически не отличается от топологии обычной локальной сети на витой паре, обычно называемой "звездой". Даже терминология похожа - размножители шины также называются HUB'ами.  

Условно дерево подключения USB устройств к компьютеру можно изобразить так (цифрами обозначены периферийные устройства с USB интерфейсом):

Вместо любого из устройств может также стоять HUB. Основное отличие от топологии обычной локальной сети - компьютер (или host устройство) может быть только один. HUB может быть как отдельным устройством с собственным блоком питания, так и встроенным в периферийное устройство. Наиболее часто HUB'ы встраиваются в мониторы и клавиатуры

На рисунке показан пример правильного соединения периферийных устройств в условную USB сеть. Так как обмен данными по USB идет только между компьютером и периферийным устройством (между устройствами обмена нет), то устройства с большими объемами приема и/или передачи данных должны подключаться либо к самому компьютеру, либо к ближайшему свободному узлу. В данном случае наивысший трафик у колонок (~1.3 Mb/s), затем идут модем и сканер, подключенные к HUB'у в мониторе и завершают цепь клавиатура, джойстик и мышь, трафик у которых близок к нулю. Может возникнуть вопрос - почему колонки имеют такой высокий трафик? Дело в том, что колонки с USB интерфейсом существенно отличаются от обычных. Для использования таких колонок НЕ ТРЕБУЕТСЯ звуковая карта. Драйвер колонок отправляет оцифрованный звук сразу в колонки, где с помощью АЦП (ADC) он преобразуется в аналоговый сигнал и подается на динамики.

Сигналы USB передаются по 4-х проводному кабелю, схематично показанному на рисунке . Здесь GND - цепь "корпуса" для питания периферийных устройств, VBus - +5V также для цепей питания. Шина D+ предназначена для передачи данных по шине, а шина D- для приема данных. Кабель для поддержки полной скорости шины (full-speed) выполняется как витая пара, защищается экраном и может также использоваться для работы в режиме минимальной скорости (low-speed). Кабель для работы только на минимальной скорости (например, для подключения мыши)  может быть любым и неэкранированным. Разъемы, используемые для подключения периферийных устройств, показаны на рисунке.

Как видно из рисунка, невозможно подключить устройство неправильно, так как разъем серии "А" можно подключить только к активному устройству на USB - HUB'у или компьютеру, а серии "В" только к собственно периферийному устройству.

USB разъемы имеют следующую нумерацию контактов: Таблица 4

Номер контакта

Назначение

Цвет провода

1

V BUS

Красный

2

D -

Белый

3

D +

Зеленый

4

GND

Черный

Оплетка

Экран

Оплетка

 

Цоколевка разъемов USB Таблица 6

Розетка типа 'A'

Розетка типа 'B'

Вилка типа 'A'

Вилка типа 'B'

 

В режиме низкой скорости: Клавиатуры Мыши Джойстики Матричные принтеры Дигитайзеры Цифровые фотокамеры Модемы для обычных телефонных линий Цепи управления монитором компьютера

В режиме высокой скорости: Колонки ISDN модемы Внешние накопители класса Iomega Zip Офисные АТС Лазерные и струйные принтеры

8.5. Условия согласования

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

Механическое согласование: источник и приемник должна иметь одинаковые разъемы и распайку из контактов, между ними может использоваться коммутационная плата.

Электрическое согласование объединяет:

2.1) уровни активного и пассивного уровней. Напряжение питания.

2.2) величину задержки в цепи выборки, синхронизации и адреса. Это условие определяет минимальное значение.

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

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

временное хранение данных в буфере

опознавание сигнала готовности

представление сигнала из параллельной/последовательной формы в обратную последовательную/параллельную

перенос величины напряжения сигнала к требуемому уровню интерфейса.

Иногда термин интерфейс и канал совмещают. Интерфейс это более узкое понятие. Функция интерфейса — связь устройства ВВ с конкретным внешним устройством. Канал распространяется на все функциональные блоки.

Вопросы для самопроверки

  1. Приведите два основных режима , используемые для обмена информацией в ЭВМ

  2. Назовите основные требования, обеспечивающие согласование двух устройств при передаче данных.

  3. Поясните назначение интерфейсных функций.

  4. Приведите режимы работы параллельного порта ввода-вывода.

  5. Поясните особенности передачи информации по интерфейсу USB, отличающие эту процедуру от передачи по стандартному последовательному интерфейсу.

  6. Приведите протокол передачи информации по последовательному интерфейсу (Com- порту)

Лекция 9.ОРГАНИЗАЦИЯ СИСТЕМЫ ПРЕРЫВАНИЙ.

9.1.Способы прерываний.

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

от схем контроля ошибок

источников питания

результатов текущих операций (переполнение, деление на ноль)

от внешних устройств, при их неготовности или необходимости передать информацию от других процессоров

программные прерывания

Любая процедура прерывания — подпрограмма, поэтому обработка подпрограммы требует начального адреса подпрограммы, сохранения предыдущих данных и «мягкого» завершения подпрограммы. Такая подпрограмма может быть вызвана электрическими сигналами (запрос на прерывание), либо она может начаться по обращению к адресу как к обычной подпрограмме. Адреса подпрограмм прерываний в конкретных системах команд фиксированы. Программные прерывания упрощают выполнение стандартных процедур (например: обнуление экрана, опрос клавиатуры). Программными требованиями рекомендуют пользоваться при работе на уровне ассемблера. Прерывания от внешних сигналов связаны с обработкой внешних электрических сигналов. У процессора имеется два входа: требование прерывания (вход) и разрешение прерывания (выход). Сигнал на вход поступает от одного или нескольких внешних источников и вызывает обработку нужной подпрограммы. Если источник один можно напрямую подключить этот сигнал к входу процессора. Если источников сигналов несколько, используют различные методы опознавания, какую подпрограмму начать.

Способы:

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

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

система с одной линией подтверждения.

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

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

Последовательность:

запрос ВУ

контролер выставляет требование

получает подтверждение запроса на прерывание

выставляет на шине данных адрес устройства

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

2. Контролеры прерываний.

Контролер прерываний может выполняться как самостоятельная схема или интегрироваться в схему микропроцессора (i85).

Основная задача контролера:

корректно изменить последовательность вычислений

определить приоритеты

корректно вернуться в прерванную программу.

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

Сигналы прерывания могут появиться одновременно на нескольких входах. Для их упорядочивания используют систему приоритетов и маскирования. Каждый вход контроллера имеет свой приоритет (1…н, 1- самый важный). Входы контроллера подключаются к внешним сигналам согласно приоритетам. Если появляются два сигнала одновременно, обрабатывается сигнал высшего приоритета. Если сигнал высшего приоритета приходит с некоторой задержкой от первого сигнала прерывания, вступает в работу методика маскирования. Предыдущая команда уже начатая при обработке прерываний выполняется до конца. Ее результаты запоминаются, и только после запоминания изменяется адрес и процессор переходит на обработку высшего приоритета. Цель такой задержки — сохранить методику обращения к подпрограммам: переход возможен только после завершения текущей команды. Если подпрограммы высшего приоритета обработана, процессор возвращается к первой подпрограмме прерываний. При этом анализируется необходимость ее завершения: сохранился ли сигнал первого прерывания. Если он не сохранился, происходит возврат из подпрограммы в основную программу. Результаты прерванной подпрограммы восстанавливаются. Восстановление результата при выходе из подпрограммы стандартная процедура.

Вопросы для самопроверки

1.Поясните последовательность выполнения процедуры прерываний.

2.Для какой цели необходима линия подтверждения прерываний?

3. Как определяется устройство, пославшее запрос на прерывание в структуре с одной линией подтверждения прерываний?

4. Какие функции выполняет контроллер прерываний?

5. Что такое вектор прерываний? Как он определяется в структурах с контроллером?.

6. Поясните возможность расширения сигналов прерываний в схеме с контроллером.