Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции / лекции ВМСС / интерфейсы

.pdf
Скачиваний:
110
Добавлен:
15.02.2014
Размер:
1 Mб
Скачать

ПОСЛЕДОВАТЕЛЬНЫЕ ИНТЕРФЕЙСЫ: RS-232C

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

Последовательная передача данных может осуществляться в асинхронном или синхронном режимах. При асинхронной передаче каждому байту предшествует стартбит, сигнализирующий приемнику о начале посылки, за которым следуют биты данных и, возможно, бит паритета (четности). Завершает посылку стоп-бит, гарантирующий паузу между посылками (рис. 1). Старт-бит следующего байта посылается в любой момент после стоп-бита, то есть между передачами возможны паузы произвольной длительности. Старт-бит, имеющий всегда строго определенное значение (логический 0), обеспечивает простой механизм синхронизации приемника по сигналу от передатчика. Подразумевается, что приемник и передатчик работают на одной скорости обмена. Внутренний генератор синхронизации приемника использует счетчик-делитель опорной частоты, обнуляемый в момент приема начала старт-бита. Этот счетчик генерирует внутренние стробы, по которым приемник фиксирует последующие принимаемые биты. В идеале стробы располагаются в середине битовых интервалов, что позволяет принимать данные и при незначительном рассогласовании скоростей приемника и передатчика. Очевидно, что при передаче 8 бит данных, одного контрольного и одного стоп-бита предельно допустимое рассогласование скоростей, при котором данные будут распознаны верно, не может превышать 5%. С учетом фазовых искажений и дискретности работы внутреннего счетчика синхронизации реально допустимо меньшее отклонение частот. Чем меньше коэффициент деления опорной частоты внутреннего генератора (чем выше частота передачи), тем больше погрешность привязки стробов к середине битового интервала, и требования к согласованности частот становятся более строгими. Чем выше

частота передачи, тем больше влияние

искажений фронтов на фазу принимаемого

сигнала. Взаимодействие этих факторов

приводит к

повышению требований

к

согласованности частот приемника и передатчика с ростом

частоты обмена.

 

Рис.1. Формат асинхронной передачи

Формат асинхронной посылки позволяет выявлять возможные ошибки передачи :

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

-если во время, отведенное под стоп-бит, обнаружен уровень логического нуля, фиксируется ошибка стоп-бита.

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

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

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

Для асинхронного режима принят ряд стандартных скоростей обмена: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 и 115200 бит/с. Количество бит данных может составлять 5, 6, 7 или 8 (5- и 6-битные форматы распространены незначительно). Количество стоп-бит может быть 1, 1,5 или 2 ("полтора бита" означает только длительность стопового интервала).

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

На физическом уровне последовательный интерфейс имеет различные реализации, различающиеся способом передачи электрических сигналов. В большинстве стандартов сигнал представляется потенциалом. Существуют последовательные интерфейсы, где информативен ток, протекающий по общей цепи передатчик-приемник - "токовая петля". Для связи на короткие расстояния приняты стандарты беспроводной инфракрасной связи. Наибольшее распространение в PC получил простейший последовательный интерфейс - стандарт RS-232C, реализуемый СОМ -портами. В промышленной автоматике широко применяется RS-485.

Интерфейс RS-232C предназначен для подключения аппаратуры, передающей или принимающей данные от оконечного оборудования данных (ООД, DTE - Data Terminal Equipment), к оконечной аппаратуре каналов данных (АКД, DCE - Data CommunicationEquipment). В роли АПД может выступать компьютер, принтер, плоттер и другое периферийное оборудование. В роли АКД обычно выступает модем. Конечной целью подключения является соединение двух устройств АПД. Полная схема соединения приведена на рис. 2. Интерфейс позволяет исключить канал удаленной связи вместе с парой устройств АПД, соединив устройства непосредственно с помощью нуль-модемного кабеля (рис. 3).

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

Рис. 3. Соединение по RS-232C нуль-модемным кабелем

Стандарт RS-232C использует несимметричные передатчики и приемники - сигнал передается относительно общего провода - схемной земли. Интерфейс НЕ ОБЕСПЕЧИВАЕТ ГАЛЬВАНИЧЕСКОЙ РАЗВЯЗКИ устройств. Логической единице соответствует напряжение на входе приемника в диапазоне -12...-3 В. Логическому нулю соответствует диапазон +3...+12В. Диапазон -3...+3В - зона нечувствительности, обусловливающая гистерезис приемника: состояние линии будет считаться измененным только после пересечения порога (рис. 4). Уровни сигналов на выходах передатчиков должны быть в диапазонах -12...-5 В и +5...+12 В для представления единицы и нуля соответственно.

Рис. 4. Прием сигналов RS-232C

Стандарт RS-232C регламентирует типы применяемых разъемов. На аппаратуре АПД (в том числе на СОМ -портах) принято устанавливать вилки (male) DB-25P или более компактный вариант - DB-9P. Девятиштырьковые разъемы не имеют контактов для дополнительных сигналов, необходимых для синхронного режима (в большинстве 25штырьковых разъемов эти контакты не используются). На аппаратуре АКД (модемах) устанавливают розетки (female) DB-25S или DB-9S.

Если аппаратура АПД соединяется без модемов, то разъемы устройств (вилки)

соединяются между собой нуль-модемным

кабелем, имеющим на обоих концах розетки,

контакты

которых

соединяются

перекрестно.

USB: СТРУКТУРА И ВЗАИМОДЕЙСТВИЕ УСТРОЙСТВ СИСТЕМЫ

USB( Universal Serial Bus - универсальная последовательная шина) является промышленным стандартом расширения архитектуры РС, ориентированным на интеграцию с телефонией и устройствами бытовой электроники. Спецификация USB 1.0 была опубликована в январе 1996. Весной 2000г. опубликована спецификация USB 2.0. Архитектура USB определяется следующими критериями:

Легко реализуемое расширение периферии РС.

Дешевое решение, поддерживающее скорость передачи до 480 Мбит/с.

Полна поддержка в реальном времени передачи аудио и сжатых видео данных.

Гибкость протокола для смешанной передачи изоморфных данных и асинхронных сообщений.

Интеграция в технологию выпускаемых устройств.

Доступность в РС всех конфигураций и размеров.

Открытие новых классов устройств, расширяющих РС.

C точки зрения пользователя привлекательны такие черты USB:

Простота кабельной системы подключений.

Изоляция подробностей электрических подключений от пользователя.

Самоидентифицирующаяся периферия, автоматическая связь устройств с драйверами и конфигурирование.

Возможность динамического подключения и реконфигурирования периферии.

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

Устройства (Device) USB могут являться хабами, "функциями" или их комбинацией. Хаб (Hub) обеспечивает дополнительные точки подключения устройств к шине. "Функции" (Function) USB предоставляют системе дополнительные возможности - например подключение к ISDN, цифровой джойстик. акустические колонки с цифровым интерфейсом и т.д. Устройство USB должно иметь интерфейс USB, обеспечивающий поддержку протокола USB, выполнение стандартных операций(конфигурирование и сброс) и стандартное представление информации, описывающей устройство. Многие устройства, подключаемые к USB, имеют в своем составе и "функции" и хабы. Работой всей системы USB управляет хост-контроллер. являющийся программно-аппаратной подсистемой хост-

компьютера. Физическое соединение устройств осуществляется по топологии многоярусной звезды. Центром каждой звезды является хаб, каждый кабельный сегмент соединяет две точки - хаб с другим хабом или хаб с функцией. В системе USB имеется только один хостконтроллер, расположенный в вершине пирамиды устройств и хабов USB. Хост-контроллер интегрируется с корневым хабом (root hub), обеспечивающим одну или несколько точек подключения - портов. Контроллер USB, входящий в состав чипсетов многих современных системных плат обычно имеет двух/четырехпортовый хаб. Логически устройство подключенной к любому хабу и сконфигурированное может рассматриваться как подключенное напрямую к хост-контроллеру. "Функции" представляют собой устройства USB, способный принимать или передавать данные или управляющую информацию по шине. Физически в одном корпусе может быть несколько "функций" со встроенным хабом, обеспечивающим их подключение к одному порту.

Каждая "функция" предоставляет конфигурационную информацию, описывающую его возможности и требования к ресурсам. Перед использованием функция должна быть сконфигурирована хостом - ей должна быть выделена полоса в канале, выбраны специфические опции конфигурации. Хаб - ключевой элемент системы Plug-and-Play в архитектуре USB. Хаб является кабельным концентратором, точки подключения называются портами хаба. Каждый хаб преобразует одну точку подключения в их множество. Архитектура подразумевает возможность соединения нескольких хабов. У каждого хаба имеется один восходящий порт (upstream port), предназначенный для подключению к хосту или к хабу верхнего уровня. Остальные порты являются являются нисходящими (downstream) и предназначены для подключения функций и хабов нижнего уровня. Хаб может распознать подключение или отключение устройств к этим портам и управлять подачей питания на их сегменты. Каждый из этих портов индивидуально может быть разрешен или запрещен и сконфигурирован на полную или ограниченную скорость обмена. Хаб обеспечивает изоляцию сегментов с низкой скоростью от высокоскоростных. Хабы могут иметь возможность управления подачей питания на нисходящие порты, предусмотрена управляемая установка ограничения на ток, потребляемый каждым портом. Система USB разделяется на три уровня с определенными правилами взаимодействия. Устройство USB делится на интерфейсную часть, часть устройства и функциональную часть. Хост тоже делится на три части - интерфейсную, системную и ПО устройства. Каждая часть отвечает только за определенный круг задач, взаимодействие между ними показано на рисунке 1.

Рис 1. - Взаимодействие компонентов USB

1.Физическое устройство USB - устройство на шине, выполняющее функции, интересующие пользователя.

2.Client SW - программное обеспечение, соответствующее конкретному устройству , исполняемое на хост-компьютере. Может являться составной частью ОС или специальным продуктом.

3.USB System SW - системная поддержка USB операционной системой, независимая от конкретных устройств и клиентского ПО.

4.USB Host Controller - аппаратные и программные средства, обеспечивающие подключение устройств USB к хост-компьютеру.

Рис.2. Пример подключения устройств USB

ИНТЕРФЕЙС I2C

Интерфейс последовательной шины I2C (Inter IС Bus - шина соединения микросхем), разработан в конце 80-х фирмой Philips как простое и дешевое средство сопряжения микросхем бытовой электроники. Сейчас он стал фактическим промышленным стандартом для устройств различного назначения. В настоящее время действует спецификация 2.1, принятая в 2000г.

Шина I2C очень удобна для обмена небольшими объемами данных, например, для конфигурации различных устройств. Приложения этого протокола могут быть самыми разнообразными. I2C используется для идентификации модулей DIMM, информация о которых хранится в маленьких микросхемах энергонезависимой памяти. В ряде современных системных плат присутствует шина SMBus, основанная на интерфейсе I2C. Эта шина используется для доступа к памяти идентификаторов и средствам термоконтроля процессоров Xeon. Она же входит и в состав сигналов слота CNR (слот подключения расширений аудиокодека и телекоммуникаций) для конфигурирования аудио- и коммуникационного оборудования. По интерфейсу I2C современные мониторы обмениваются конфигурационной и управляющей информацией с графическим адаптером (а через него и с центральным процессором). I2C успешно применяется для подключения считывателей карт, штрих-кодов и т. п. С помощью интерфейса I2C можно загружать программы (firmware) в энергонезависимую память (флэш) ряда популярных микроконтроллеров. Интерфейс I2C обеспечивает скорость передачи данных до 3,4 Мбит/с, при этом он гораздо проще и дешевле интерфейса RS-232C (максимум 115 Кбит/с) и позволяет легко подключать несколько устройств, с поддержкой «горячего» подключения/ отключения и технологии РnР.

Интерфейс I2C — синхронная последовательная шина, обеспечивающая двустороннюю передачу данных между подключенными устройствами по двум сигнальным линиям. Шина ориентирована на 8-битные передачи. Передача данных может быть как

одноадресной, к выбранному устройству,

так и широковещательной. Для выборки

устройств используется 7-битная или

10-битной адресация. Уровни сигналов —

стандартные, совместимые с широко распространенной логикой ТТЛ, КМОП, n-МОП, как с традиционным питанием +5 В так и с низковольтным (+3,3 В и ниже). Микросхемы с интерфейсом I2C, как правило, имеют аппаратную поддержку протокольных функций. Протокол позволяет взаимодействовать на одной шине устройствам с различным быстродействием интерфейса. Требования к временным параметрам сигналов весьма свободные, так что на компьютерах и микроконтроллерах, не имеющих аппаратной поддержки шины I2C, ее протокол может быть реализован даже чисто программно. В I2C определены три режима передачи: стандартный — Standard Mode (S) — со скоростью 0-

100 Кбит/с, быстрый — Fast Mode (F) — со скоростью 0-400 Кбит/с, и высокоскоростной

— High speed (Hs) — со скоростью до 3,4 Мбит/с. Режимы F и S логически работают одинаково, и для них используют обобщенное обозначение F/S. Интерфейс I2C использует две сигнальные линии: данных SDA (Serial Data) и синхронизации SCL (Serial Clock). В обменах участвуют два устройства — ведущее (master) и ведомое (slave). Ведущее и ведомое устройства могут выступать в роли и передатчика, и приемника данных. Протокол допускает наличие на шине нескольких ведущих устройств и имеет простой механизм арбитража (разрешения коллизий).

Протокол обмена для обычных устройств F/S иллюстрирует рис. 1. Обе сигнальные линии имеют нагрузочные резисторы, «подтягивающие» их уровень к напряжению питания. На устройстве к каждой линии подключен приемник и передатчик типа «открытый коллектор» («открытый сток»), у ведомого устройства передатчик на линии SCL не обязателен. Все одноименные передатчики соединяются по схеме «Монтажное И»: уровень в линии будет высоким, если все передатчики пассивны, и низким, если хоть у одного передатчика выходной транзистор открыт. В покое (Idle, исходное состояние шины) все передатчики пассивны. Синхронизацию задает ведущее устройство, но ведомое, если оно не имеет достаточного быстродействия, может замедлять обмен данными.

Рис. 1. Протокол передачи данных I2C.

Начало любой передачи — условие Start — инициируется ведущим устройством, убедившимся в том, что шина свободна (высокий уровень сигналов SCL и SDA). Условие Start (на диаграммах обозначается как S) — перевод сигнала SDA из высокого в низкий при высоком уровне SCL Завершается операция переводом сигнала SDA из низкого уровня в высокий при высоком уровне SCL — условие Stop (обозначается как Р), также вводящееся ведущим устройством. При передаче данных состояние линии SDA может изменяться только при низком уровне SCL, биты данных считаются действительными во время высокого уровня SCL Ведущее устройство может начать очередную передачу вслед за текущей, не вводя условие Stop, — это называется repeated Start (повторный старт, обозначающийся Sr). В протоколе условия S и Sr почти равнозначны. Каждая посылка данных состоит из 8 бит данных, формируемых передатчиком, после чего передатчик на один такт освобождает линию данных для получена подтверждения. Приемник во время девятого такта формирует бит подтверждения Ack, по которому передатчик убеждается, что передача прошла успешно.

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

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

Бит подтверждения ACK, вводящийся в конце каждого байта устройством-приемни- ком, выполняет несколько функций. Когда передатчиком является ведущее устройство, приемник (ведомый) должен вводить нулевой бит ACK, свидетельствующий о нормальном получении очередного байта. Единичный бит ACK (нет подтверждения) в ответ на посылку адреса свидетельствует об отсутствии адресованного ведомого устройства на шине или его занятости внутренними процессами. Не получив бита подтверждения, ведущее устройство должно сформировать условие Stop, чтобы освободить шину. Когда ведущее устройство является приемником, оно должно формировать нулевой бит ACK после каждого принятого байта, кроме последнего. Единичный бит ACK в этом случае является указанием ведомому устройству на окончание передачи — оно теперь должно освободить линии SDA и SCL, чтобы ведущее устройство смогло сформировать условие Р или Sr.

На вышеописанной физической основе строится протокол обмена данными по I2C. Каждое ведомое устройство имеет свой адрес, уникальный на шине. В начале любой

передачи ведущее устройство после условия S или Sr посылает адрес ведомого устройства или специальный адрес (адрес общего вызова для широковещательной передачи и пр.). Ведомое устройство, опознавшее свой адрес после условия Start, становится выбранным; оно обязано ответить подтверждением на адрес и последующие сигналы со стороны ведущего устройства, до получения условия Р или Sr.

При 7-битной адресации в первом байте после S (Sr) ведущее устройство передает 7 бит адреса (А[6:0] в битах [7:1]) и признак операции RW в бите 0 (RW=1 — чтение, RW=0 — запись). Диапазоны адресов устройств различных типов централизованно выдаются изготовителям устройств фирмой Philips. Для микросхем памяти, например, 7-битный адрес содержит две части: старшие 4 бита А[6:3] несут информацию о типе устройства (EEPROM - 1010), а младшие 3 бита А[0:2] определяют номер устройства данного типа на шине. Микросхемы с интерфейсом I2C имеют три адресных входа, коммутацией которых на логические уровни 1 и 0 задается номер устройства, а тип устройства «зашит» в нем самом его изготовителем.

Когда ведущее устройство является передатчиком данных, оно в первом байте передает адрес ведомого устройства, при этом RW=0. Выбранное ведомое устройство отзывается подтверждением (АСК=0), после чего ведущее устройство посылает один или несколько байт данных, на каждый из которых ведомое устройство должно отвечать подтверждением.

Когда ведущее устройство является приемником данных, оно в первом байте передает адрес ведомого устройства с RW=1. Выбранное ведомое устройство также отзывается подтверждением (АСК=0), после чего происходит смена направления передачи и данные уже передает ведомое устройство. Ведущее устройство подтверждает каждый принятый байт, кроме последнего.

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

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