Ближе к проводам
Как уже сообщалось, шина USB состоит всего из 4 проводников:
- V-BUS шина питания
- D+ и D- сигнальные шины
- GND сигнальное заземление.
На стандартном штекере кабеля, контакты V-BUS и GND длиннее сигнальных, это позволяет подать питание раньше подключения сигнальных линий. Основная масса информации переда.тся с использованием дифференциальных приемопередатчиков. Сигнал передается по линиям в противофазе, по витой паре. Потенциал помехи добавляется к сигнальному напряжению на обоих проводах в равной мере, не влияя на разность напряжений. Применение дифференциальных при.мопередатчиков существенно повышает помехозащищ.нность. Дифференциальный передатчик способен выдавать на линии не только сигналы в противофазе, но и когда обе линии данных под высоким потенциалом или наоборот, когда обе линии под низким. Такие режимы не характерны для классических дифференциальных передатчиков. Кроме дифференциальных при.мников и передатчиков имеются устройства позволяющие измерять напряжения на каждой из сигнальных шин в отдельности, а не только разностный сигнал. Схема приемопередатчика FS (Full speed) приведена на рисунке 16. Здесь можно увидеть дифференциальные передатчики нисходящего порта хаба и USB устройства, а так же линейные приемники. Резисторы R5 и R6 по 15 килоом постоянно подключены к нисходящему порту хаба. Резистор R7 используется для целей энумерации, этот резистор спрятан в микроконтроллере AT90USB162 и подключается программно. Резисторы R3 и R4 внешние по 22 ом, для согласования и защиты от перегрузок, номинал задан в спецификации на микроконтроллер. Номинал резисторов R1 и R2, зависит от конструкции хаба и служат для целей согласования и защиты от перегрузок.
Для передачи по линиям шины цифровой сигнал кодируется специальным линейным кодом. Вообще, при передаче данных по линиям связи применяются так называемые линейные коды. Простейший из известных – это униполярный NRZ (non return to zero). Логической 1 соответствует положительный импульс, а логическому 0 отсутствие. Биполярный NRZ - используется в RS-232, логическому 0 соответствует положительный импульс, а логической 1, отрицательный. Из необычных линейных кодов, можно упомянуть Манчестер II, логическая 1 кодируется отрицательным перепадом напряжения, а логический 0 кодируется положительным перепадом. Этот тип линейного кодирования используется в Ethernet.
Шина USB использует код NRZI (non return to zero, inverted). Поток бит в коде униполярный NRZ, кодируется в NRZI и подается на дифференциальный передатчик. На приемной стороне, сигнал с дифференциального приемника раскодируется обратно в NRZ. У кода NRZI, есть существенный недостаток, если на вход кодера подается длинная последовательность единиц, то возможна потеря синхронизации с приемником. С этим борются техникой вставки дополнительных бит (bit stuffing), если входящий поток бит оказался больше, чем из 6 единиц, то вставляется ноль, а на приемной стороне этот ноль удаляется. Кодирование в NRZI и обратно происходит чисто аппаратными средствами. Рисунок 17 иллюстрирует принцип кодирования NRZI. При передаче логической 1, напряжение не меняется, а при каждом логическом 0, происходит переход на противоположный уровень. Длительность битового интервала для FS режима составляет 83,3 нсек.
Рисунок 16 |
Рисунок 17 |
Состояние шины, когда потенциал линии приемника D- низкий, а D+ высокий - это состояние называется дифференциальная единица. А когда противоположная ситуация, то дифференциальный ноль. Проще говоря, когда D+ в плюсе, а D- в минусе, то это дифференциальная единица или состояние J (Data J state) для режима FS. Противоположное состояние называется состояние K (Data K state) для режима FS.
Состояние, когда потенциал обоих линий меньше 0,8 вольта – называется SE0 (Single-Ended Zero). Проще говоря, когда обе линии на нуле – SE0 . Когда описывалась структура пакета, то упоминался EOP (End of Packet) конец пакета, конец пакета отмечается состоянием SE0 в течение 2-х битовых интервалов. Напомним, что для режима FS (Full Speed) длительность одного битового интервала составляет 83,3 нсек.
Состояние, когда потенциал обоих линий приемника на высоком уровне, больше 2 вольт – называется SE1 (Single-Ended One). Такое состояние не может занимать исправная шина в процессе нормальной работы. Только под действием помехи или неисправности возможно состояние SE1.
Состояние, когда шина длительное время, больше 3 миллисекунд, находится в состоянии J, называется состояние покоя (Idle state). В такое состояние шина переходит, когда хост сигнализирует USB устройству о необходимости перехода в состояние с низким потреблением энергии. Ранее уже описывалось.
.
|