logo
Всё по МСА доц

3.2.2. Последовательная шинаUsb

Специализированные устройства сбора данных, например скоростные платы аналого-цифровых и цифро-аналоговых преобразователей производства Texas Instruments,Sun Danceили московской фирмы ЗАО «Инструментальные системы», используют для передачи данныхFireWireиUSB 2.0. Применение этих шин обусловлено тем, что устройства сбора данных, применяемые в связи, технике, промышленных и научных измерениях часто необходимо для предотвращения помех расположить как можно дальше от компьютера и как можно ближе к датчику, показания которого снимаются устройством. При этом нередко требуются достаточно высокие скорости передачи данных, такие как, например, в случае 14-битного АЦП, работающего с частотой 100 МГц.

Шина USBбыла предложена в качестве замены имеющимся в компьютерахСОМиLPTпортам. Современные вариантыLPTпортов способны передавать до 24 Мбит/с, скорость передачи последовательныхСОМпортов не более 115 кбит/с. ШинаUSBизначально разрабатывалась с учетом того, что программное обеспечение должно самостоятельно определять какой драйвер следует использовать для работы с каждым вновь подключаемым устройством. Это особенно важно с учетом того, что устройства могут подключаться и отключаться на ходу к различным портам компьютера.

В настоящее время существуют 4 версии стандарта USB:USB 1.0,USB 1.1,USB 2.0 иUSB 3.0. В стандартеUSB 1.1 исправлены ошибки, имеющиеся вUSB 1.0, других отличий нет.

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

Таблица 3.4. Названия скоростей и поддерживаемые версии USB

Low-Speed

Full-Speed

High-Speed

Super Speed

USB 1.0

USB 1.1

USB 2.0

USB 3.0

В таблице 3.5 показаны максимальные значения четырех типов скоростей.

Таблица 3.4. Названия скоростей и пропускная способность

Low-Speed

Full-Speed

High-Speed

Super Speed

Максимальная пропускная способность, МБ/с

0,1875

1,5

60

625

Максимальная пропускная способность, Мбит/с

1,5

12

480

5000

Основные технические характеристики стандартов приведены в таблице 3.5.

Таблица 3.5. Технические характеристики USB

Наименование

Версия стандарта USB

USB1.1

USB2.0

USB3.0

Максимальная скорость передачи, Мбит/с

12

480

4,8 Гбит/с

Скорость медленных USBустройств, Мбит/с

1,5

1,5

1,5

Максимальная длина кабеля, м

3

5

3

Максимальная суммарная длина, м

15

25

15

Импеданс кабеля, Ом

90

Чувствительность приемника не менее, мВ

200

Вносимая задержка сигнала для кабеля в целом не более, нс

30

Максимальная допустимая емкость линий относительно земли не более, пФ

10

Время нарастания фронта импульса, нс

5

Напряжение сигнала, В

3,8

Максимальное число устройств в одной шине

127

Вид сигнала

Дифференциальный по напряжению

Для работы шины в целом необходимым элемент является хост – центральный компьютер.

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

Рис. 3.9. Кабель USB1.0 и 2.0

Сигнальные провода обычно выполнены в виде экранированной витой пары.

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

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

Шина USBсоединяет устройства с хостом. На физическом уровне топологияUSBпредставляется в виде многоуровневой звезды. В центре каждой звезды находится концентратор (HUB). Каждый сегмент провода - двухточечное соединение между хостом и концентратором или устройством, или концентратором соединенным с другим концентратором или устройством. Пример топологии шиныUSBпоказана на рис. 3.10.

Рис. 3.10. Пример топологии шины USB

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

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

Основная проблема шины USB2.0 заключается в том, что она является однонаправленной. То есть данные передаются в обе стороны (либо в одну, либо в другую, но не одновременно) по одной и той же витой паре. Несмотря на декларируемую максимальную скорость передачи данных до 480 Мбит/с, шинаUSB2.0 имеет достаточно большие задержки между запросом на передачу данных и собственно началом передачи. Поэтому в реальности интерфейсUSB2.0 не позволяет передавать данные со скоростью более 35 Мбайт/с (280 Мбит/с). Подключение по интерфейсуUSB2.0 внешних жестких дисков и флэш-памяти не позволяет реализовать весь их скоростной потенциал. К примеру, при подключении внешнего жесткого диска по интерфейсуeSATAскорость передачи данных ограничивается скоростными характеристиками самого диска и для современных дисков составляет порядка 90 Мбайт/с (при последовательных операциях чтения и записи), а при подключении того же внешнего диска по интерфейсуUSB2.0 скорость передачи данных снижается до 33 Мбайт/с.

Не только внешние накопители, но и многие другие периферийные устройства нуждаются в существенно большей пропускной способности интерфейса, поэтому разработан высокоскоростной стандарт USB3.0.

Спецификацией USB3.0 предусмотрен режимSuperSpeedсо скоростью передачи данных до 5 Гбит/с (640 Мбайт/с), то есть более чем в 10 раз превышающей ту, что предусмотрена спецификациейUSB2.0. Конечно, реальная скорость передачи данных будет, скорее всего, ниже, однако даже с учетом этого для большинства периферийных устройств такой пропускной способности шиныUSB3.0 более чем достаточно.

В спецификации USB3.0, кроме режимаSuperSpeed, оставлены и режимыHi-Speed,Full-SpeedиLow-Speed. Кроме того, разъемыUSB3.0 совместимы с разъемамиUSB2.0. Это означает, что все периферийные устройства с интерфейсомUSB2.0 можно будет подключать к шинеUSB3.0.

Следующее важное отличие спецификации USB3.0 отUSB2.0 заключается в том, что стандартом предусмотрена двунаправленная передача данных по разным витым парам. Увеличилось и количество проводов вUSB-кабеле. Так, в стандартеUSB2.0 одна витая пара использовалась для приема/передачи данных, а другая — для питания, то есть в разъемахUSB2.0 было четыре контакта, аUSB-кабель содержал четыре провода.

В спецификации USB3.0 первая витая пара применяется для передачи данных, вторая — для приема данных, третья — для питания, а для совместимости со стандартомUSB2.0 предусмотрена четвертая витая пара, по которой осуществляется прием/передача данных в режимеUSB2.0 (Hi-Speed,Full-SpeedиLow-Speed). Кроме того, в обязательном порядке присутствует еще одна «земля» (GND_DRAIN) в виде оплетки двух витых пар. Таким образом, в кабелеUSB3.0 не четыре провода, а восемь, а в разъемахUSB3.0 как минимум девять контактов (оплетки витых пар подключаются к контактуGND_DRAIN).

Рис. 3.11. Кабель для USB3.0

Чтобы гарантировать надежную передачу данных интерфейс USB3.0 использует кодирование 8/10 бит, которое используется, например, вSerialATA. Один байт (8 бит) передается с помощью 10-битного кодирования, что улучшает надежность передачи в ущерб пропускной способности. Поэтому переход с битов на байты осуществляется с соотношением 10:1 вместо 8:1.

Новый стандарт эффективно оптимизирует энергопотребление. Интерфейс USB2.0 постоянно опрашивает доступность устройств, на что расходуется энергия. Напротив, уUSB3.0 есть четыре состояния подключения, названныеU0-U3. Состояние подключенияU0 соответствует активной передаче данных, aU3 погружает устройство в «сон».

Если подключение бездействует, то в состоянии U1 будут отключены возможности приема и передачи данных. СостояниеU2 идет еще на шаг дальше, отключая внутренние тактовые импульсы. Соответственно, подключенные устройства могут переходить в состояниеU1 сразу же после завершения передачи данных, что, как предполагается, даст ощутимые преимущества по энергопотреблению, если сравнивать сUSB2.0.

Кроме разных состояний энергопотребления стандарт USB3.0 отличается отUSB2.0 и более высоким поддерживаемым током. ЕслиUSB2.0 предусматривал порог тока 500 мА, то в случае нового стандарта ограничение было сдвинуто до планки 900 мА.

Для передачи данных по шине используется дифференциальный способ передачи сигналов D+ иD– по двум проводам. Все данные кодируются с помощью метода, называемогоNRZIwithbitstuffing(NRZINonReturntoZeroInvert, метод не возврата к нулю с инвертированием единиц).

Вместо кодирования логических уровней как уровней напряжения USBопределяет логический 0 как изменение напряжения, а логическую 1 как не изменение напряжения. Этот метод представляет собой модификацию обычного потенциального метода кодированияNRZ(NonReturntoZero, не возврат к нулю), когда для представления 1 и 0 используются потенциалы двух уровней, но в методеNRZIпотенциал, используемый для кодирования текущего бита, зависит от потенциала, который использовался для кодирования предыдущего бита. Если текущий бит имеет значение 0, то текущий потенциал представляет собой инверсию потенциала предыдущего бита, независимо от его значения. Если же текущий бит имеет значение 1, то текущий потенциал повторяет предыдущий. Очевидно, что если данные содержат нули, то приемнику и передатчику достаточно легко поддерживать синхронизацию – уровень сигнала будет постоянно меняться, рис. 3.12,а). А вот если данные содержат длинную последовательность единиц, то уровень сигнала меняться те будет, и возможна рассинхронизация. Следовательно, для надежной передачи данных нужно исключить из кодов слишком длинные последовательности единиц. Это действие называется стаффинг (Bitstuffing): после каждых шести единиц автоматически добавляется 0, рис. 3.12,б).

Рис. 3.12. Кодирование NRZI

а) без добавления бита; б) с добавлением бита

Существует только три возможных байта с шестью последовательными единицами: 00111111, 01111110, 111111100.

Стаффинг может увеличить число передаваемых бит до 17%, но на практике эта величина значительно меньше. Для устройств, подключаемых к шине USB, кодирование происходит прозрачно:USB-контроллеры производят кодирование и декодирование автоматически.

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

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