Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
008401 / / лекции по интерфейсам.doc
Скачиваний:
63
Добавлен:
10.04.2015
Размер:
1 Мб
Скачать

2.2.2. Управление потоком данных

Для управления потоком данных (Flow Control) могут ис­пользоваться два варианта протокола — аппаратный и про­граммный. Иногда управление потоком путают с квитиро­ванием, но это разные методы достижения одной цели — согласования темпа передачи и приема. Квитирование (Handshaking) подразумевает посылку уведомления о полу­чении элемента, в то время как управление потокам предпо­лагает посылку уведомления о невозможности последующе­го приема данных.

Аппаратный протокол управления потоком RTS/CTS (Hardware Flow Control) использует сигнал CTS, который поз­воляет остановить передачу данных, если приемник не готов к их приему (рис. 2.9). Передатчик «выпускает» очередной байт только при включенной линии CTS. Байт, который уже начал передаваться, задержать сигналом CTS невозможно (это гарантирует целостность посылки). Аппаратный протокол обеспечивает самую быструю реакцию передатчика на состо­яние приемника. Микросхемы асинхронных приемопередат­чиков имеют не менее двух регистров в приемной части —

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

Аппаратный протокол удобно использовать при подключе­нии принтеров и плоттеров, если они его поддерживают (рис. 2.10). При непосредственном (без модемов) соедине­нии двух компьютеров аппаратный протокол требует пере­крестного соединения линий RTS — CTS.

Если аппаратный протокол не используется, у передающего терминала должно быть обеспечено состояние «включено» на линии CTS перемычкой RTS — CTS. В противном случае передатчик будет «молчать».

Программный протокол управления потоком XON/XOFF пред­полагает наличие двунаправленного канала передачи данных. Работает протокол следующим образом: если устройство, принимающее данные, обнаруживает причины, по которым не может их дальше принимать, оно по обратному последо­вательному каналу посылает байт-символ XOFF (13h). Про­тивоположное устройство, приняв этот символ, приостанав­ливает передачу. Когда принимающее устройство снова становится готовым к приему данных, оно посылает символ

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

Преимущество программного протокола заключается в от­сутствии необходимости передачи управляющих сигналов интерфейса — минимальный кабель для двустороннего об­мена может иметь только 3 провода (см. рис. 2.8а). Недо­статком, кроме требования наличия буфера и большего вре­мени реакции (снижающего общую производительность канала из-за ожидания сигнала XON), является сложность реализации полнодуплексного режима обмена. В этом слу­чае из потока принимаемых данных должны выделяться (и обрабатываться) символы управления потоком, что ограни­чивает набор передаваемых символов. Минимальный вари­ант кабеля для подключения принтера (плоттера) с прото­колом XON/XOFF приведен на рис. 2.12.

Кроме этих двух распространенных стандартных протоко­лов, поддерживаемых и ПУ, и ОС, существуют и другие. Некоторые плоттеры с последовательным интерфейсом ис­пользуют программное управление, но посылают не стан­дартные символы XON/XOFF, а слова (ASCII-строки). Такой обмен на уровне системной поддержки протокола практи­чески не поддерживается (эти плоттеры непосредственно«разговаривают» с прикладной программой). Конечно, можно написать драйвер СОМ-порта (перехватчик INT 14h), но не­обходимость обработки в нем текстовых сообщений от уст­ройства вывода обычно не вызывает восторга у системного программиста. Кабель для подключения совпадает с приве­денным на рис. 2.12.

2.3. Интерфейс «токовая петля»

Распространенным вариантом последовательного интерфей­са является токовая петля. В ней электрическим сигналом является не уровень напряжения относительно общего про­вода, а ток в двухпроводной линии, соединяющей приемник и передатчик. Логической единице (состоянию «включено») соответствует протекание тока 20 мА, а логическому нулю — отсутствие тока. Такое представление сигналов для описан­ного формата асинхронной посылки позволяет обнаружить обрыв линии — приемник заметит отсутствие стоп-бита (об­рыв линии действует как постоянный логический нуль).

Токовая петля обычно предполагает гальваническую развяз­ку входных цепей приемника от схемы устройства. При этом источником тока в петле является передатчик (этот вариант называют активным передатчиком). Возможно и питание от приемника (активный приемник), при этом выходной ключ передатчика может быть также гальванически развязан с ос­тальной схемой передатчика. Существуют упрощенные ва­рианты без гальванической развязки, но это уже вырожден­ный случай интерфейса. Токовая петля с гальванической развязкой позволяет пере­давать сигналы на расстояния до нескольких километров. Расстояние определяется сопротивлением пары проводов и уровнем помех. Поскольку интерфейс требует пары прово­дов для каждого сигнала, обычно используют только два сиг­нала интерфейса. В случае двунаправленного обмена при­меняются только сигналы передаваемых и принимаемых данных, а для управления потоком используется программ­ный метод XON/XOFF. Если двунаправленный обмен не тре­буется, используют одну линию данных, а для управления потоком обратная линия задействуется для сигнала CTS (ап­паратный протокол) или встречной линии данных (про­граммный протокол).

Преобразовать сигналы RS-232C в токовую петлю можно с помощью несложной схемы (рис. 2.13). Здесь принтер под­ключается по токовой петле к СОМ-порту с аппаратным управлением потоком. Для получения двуполярного сигна­ла, требуемого для входных сигналов СОМ-порта, приме­няется питание от интерфейса.

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

2.4. Интерфейс MIDI

Цифровой интерфейс музыкальных инструментов MIDI (Musical Instrument Digital Interface) является двунаправ­ленным последовательным асинхронным интерфейсом с ча­стотой передачи 31,25 Кбит/с. Этот интерфейс, разработан­ный в 1983 году, стал фактическим стандартом для сопряжения компьютеров, синтезаторов, записывающих и воспроизводящих устройств, микшеров, устройств специаль­ных эффектов и другой электромузыкальной техники.

В интерфейсе применяется таковая петля 10 мА (возможно 5 мА) с гальванической развязкой входной цепи. Это исклю­чает связь «схемных земель» соединяемых устройств через интерфейсный кабель, устраняя помехи, крайне нежелатель­ные для звуковой техники. Снижению интерференционных помех служит и выбор частоты передачи, которая совпадает с одним из значений частот квантования, принятых в циф­ровой звукозаписи.

Асинхронная посылка содержит старт-бит, 8 бит информации и 1 стоп-бит, контроль четности отсутствует. Старший бит посылки является признаком «команда/данные». Его нуле­вое значение указывает на наличие семи бит данных в млад­ших разрядах. При единичном значении биты [6:4] содер­жат код команды, а биты [3:0] — номер канала. Команды могут быть как адресованными конкретному каналу, так и широ­ковещательными безадресными. К последней группе отно­сятся команды старта, стопа и отметки времени, обеспечи­вающие синхронизацию устройств (система синхронизации MIDI Sync и МТС - MIDI Time Code).

Интерфейс определяет три типа портов: MIDI-In, MIDI-Out nMIDI-Thru.

Входной порт MIDI-In представляет собой вход интерфейса «токовая петля 10 мА», гальванически развязанного от при­емника оптроном с быстродействием не хуже 2 мкс. Устрой­ство отслеживает информационный поток на этом входе и реагирует на адресованные ему команды и данные.

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

Транзитный порт MIDI-Thru (не обязателен) служит для ре­трансляции входного сигнала.

В качестве разъемов применяются 5-контактные разъемы DIN, распространенные в бытовой звуковой аппаратуре. На всех устройствах устанавливаются розетки, на кабелях — вилки. Все соединительные кабели MIDI унифицированы (рис. 2.14). Контакт 2 — экран кабеля — соединяется с общим проводом только на стороне передатчика (на разъемах MIDI-Out и MIDI-Thru).

В маркировке входов и выходов, указанной около разъемов, бывают разночтения. Одни производители пишут «In» или «Out» в соответствии с функцией разъема данного устрой­ства (и это) правильно), тогда любой кабель соединяет «In» и «Out». Другие считают, что подпись должна обозначать функ­цию подключаемого устройства. Тогда кабель будет соединять разъемы с обозначениями «In» — «In» и «Out» — «Out».

Интерфейс позволяет объединить группу до 16 устройств в локальную сеть. Топология должна подчиняться правилу:

вход MIDI-In одного устройства должен подключаться к выходу MIDI-Out или MIDI-Thru другого. При планирова­нии MIDI-сети необходимо руководствоваться информа­ционными потоками и связью устройств. Управляющие устройства — клавиатуры, секвенсоры (в режиме воспроиз- ведения), источники синхронизации — должны находиться перед управляемыми. Если устройства нуждаются в двуна­правленном обмене, они соединяются в кольцо. Возможно применение специальных мультиплексоров, позволяющих логически коммутировать несколько входных потоков в один выходной. Вырожденным случаем кольца является двуна­правленное соединение двух устройств. Несколько вариан­тов соединения приведено на рис. 2.15.

В PC MIDI-порт имеется на большинстве звуковых адапте­ров, его сигналы выведены на неиспользуемые контакты (12 и 15) разъема игрового адаптера. Для подключения устройств MIDI требуется переходной адаптер, реализующий интер­фейс «токовая петля». Переходной адаптер обычно встраи­вается в специальный кабель, схема которого приведена на рис. 2.16. Некоторые модели PC имеют встроенные адапте­ры и стандартные 5-штырьковые разъемы MIDI.

В PC для интерфейса MIDI применяются порты, совмести­мые с контроллером MPU-401 (Roland) в режиме UART. В пространстве ввода/вывода MPU-401 занимает два смеж­ных адреса MPU (обычно 330h) и MPU+1:

Порт DATA (адрес MPU+0) — запись и считывание байт, передаваемых и принимаемых по интерфейсу MIDI. Порт STATUS/COMMAND (адрес MPU+1) - чтение со­стояния / запись команд (запись — только для интеллек­туального режима). В байте состояния определены сле­дующие биты:

Бит 7 - DSR (Data Set Ready) - готовность (DSR-0) при­нятых данных для чтения. Бит устанавливается в «I», когда все принятые байты считаны из регистра данных.

Бит 6 - DRR (Data Read Ready) - готовность (DRR=0) UART к записи в регистр данных или команд. Условие готовности к записи не возникнет, если приемник имеет непрочитанный байт данных.

На некоторых системных платах применяются БИС контрол­леров интерфейсов, в которых UART, используемая для СОМ-порта, конфигурированием через BIOS SETUP может быть переведена в режим MIDI-порта.

2.5. СОМ-порт

Последовательный интерфейс СОМ-порт (Communication Port — коммуникационный порт) появился в первых моделях IBM PC. Он был реализован на микросхеме асинхронного при­емопередатчика Intel 8250. Порт имел поддержку BIOS (/Л/Т 74/?), однако широко применялось (и применяется) взаи­модействие с портом на уровне регистров. Поэтому во всех PC-совместимых компьютерах для последовательного интерфейса применяют микросхемы приемопередатчиков, совместимые с i8250. В ряде отечественных PC-совместимых (почти) компь­ютеров для последовательного интерфейса применялась мик­росхема КР580ВВ51 — аналог i8251. Однако эта микросхема является универсальным синхронно-асинхронным приемопе­редатчиком (УСАПП или USART — Universal Asynchronous Receiver-Transmitter). Совместимости с PC на уровне регист­ров СОМ-порта такие компьютеры не имеют. Хорошо, если у соответствующих компьютеров имеется «честный» драйвер B/OS INT 14h, а не заглушка, возвращающая состояние модема «всегда готов» и ничего не делающая. Совместимость на уров­не регистров СОМ-порта считается необходимой. Многие раз­работчики коммуникационных пакетов предлагают работу и через B/OS INT 14h, однако на высоких скоростях это неэффек­тивно. Говоря о СОМ-порте PC, по умолчанию будем подра­зумевать совместимость регистровой модели с i8250 и реали­зацию асинхронного интерфейса RS-232C.

Соседние файлы в папке