|   | 
           
              Интерфейс 
                USB 
                описание и основы устройств сопряжения 
              | 
            | 
         
         
          |   | 
            Интерфейс 
              USB (Universal Serial Bus) - Универсальный Последовательный Интерфейс 
              - 
              предназначен для подключения периферийных устройств к персональному 
              компьютеру. Позволяет производить обмен информацией с периферийными 
              устройствами на трех скоростях (спецификация USB 2.0):  
              Низкая скорость (Low Speed - LS) - 
              1,5 Мбит/с;  
              Полная скорость (Full Speed - FS) - 12 Мбит/с;  
              Высокая скорость (High Speed - HS) - 480 Мбит/с. 
                | 
            | 
         
         
          |   | 
          Для 
              подключения периферийных устройств используется 4-жильный кабель: 
              питание +5 В, сигнальные провода D+ и D-, общий провод.  
            Интерфейс 
              USB соединяет между собой хост (host) и устройства. Хост находится 
              внутри персонального компьютера и управляет работой всего интерфейса. 
              Для того, чтобы к одному порту USB можно было подключать более одного 
              устройства, применяются хабы (hub - устройство, обеспечивающее подключение 
              к интерфейсу других устройств). Корневой хаб (root hub) находится 
              внутри компьютера и подключен непосредственно к хосту. В интерфейсе 
              USB используется специальный термин "функция" - это логически 
              законченное устройств, выполняющее какую-либо специфическую функцию. 
              Топология интерфейса USB представляет собой набор из 7 уровней (tier): 
              на первом уровне находится хост и корневой хаб, а на последнем - 
              только функции. Устройство, в состав которого входит хаб и одна 
              или несколько функций, называется составным (compaund device).  
            Порт 
              хаба или функции, подключаемый к хабу более высокого уровня, называется 
              восходящим портом (upstream port), а порт хаба, подключаемый к хабу 
              более низкого уровня или к функции называется нисходящим портом 
              (downstream port). 
              Все передачи данных по интерфейсу иницируются хостом. Данные передаются 
              в виде пакетов. В интерфейсе USB испольуется несколько разновидностей 
              пакетов:   | 
            | 
         
         
          |   | 
          
               
                - 
                    пакет-признак (token paket) описывает тип 
                    и направление передачи данных, адрес устройства и порядковый 
                    номер конечной точки (КТ - адресуемая часть USB-устройства); 
                    пакет-признаки бывают нескольких типов: IN, OUT, SOF, SETUP; 
                     
                    - пакет с данными (data packet) содержит 
                    передаваемые данные;  
                    - пакет согласования (handshake packet) предназначен 
                    для сообщения о результатах пересылки данных;  
                  Пакеты 
                    согасования бывают нескольких типов: ACK, NAK, STALL. 
                  Таким 
                    образом каждая транзакция состоит из трех фаз: фаза передачи 
                    пакета-признака, фаза передачи данных и фаза согласования.  | 
                 
                    USB 
                    интерфейс  | 
               
              | 
            | 
         
        | 
  
   
    
         
          |   | 
           В 
            интерфейсе USB используются несколько типов пересылок информации. 
             
            - Управляющая пересылка (control transfer) используется 
            для конфигурации устройства, а также для других специфических для 
            конкретного устройства целей.  
            - Потоковая пересылка (bulk transfer) используется 
            для передачи относительно большого объема информации.  
            - Пересылка с прерыванием (iterrupt transfer) испольуется 
            для передачи относительно небольшого объема информации, для которого 
            важна своевременная его пересылка. Имеет ограниченную длительность 
            и повышенный приоритет относительно других типов пересылок.  
            - Изохронная пересылка (isochronous transfer) также 
            называется потоковой пересылкой реального времени. Информация, передаваемая 
            в такой пересылке, требует реального масштаба времени при ее создании, 
          пересылке и приеме.    | 
            | 
         
         
          |   | 
          Потоковые 
            пересылки характеризуются гарантированной безошибочной передачей 
            данных между хостом и функцией посредством обнаружения ошибок при 
            передаче и повторного запроса информации.  
            Когда хост становится готовым принимать данные от функции, он в фазе 
            передачи пакета-признака посылает функции IN-пакет. В ответ на это 
            функция в фазе передачи данных передает хосту пакет с данными или, 
            если она не может сделать этого, передает NAK- или STALL-пакет. NAK-пакет 
            сообщает о временной неготовности функции передавать данные, а STALL-пакет 
            сообщает о необходимости вмешательства хоста. Если хост успешно получил 
            данные, то он в фазе согласования посылает функции ACK-пакет. В противном 
            случае транзакция завершается.  
            Когда хост становится готовым передавать данные, он посылает функции 
            OUT-пакет, сопровождаемый пакетом с данными. Если функция успешно 
            получила данные, он отсылает хосту ACK-пакет, в противном случае отсылается 
            NAK- или STALL-пакет.  
            Управляющие пересылки содержат не менее двух стадий: Setup-стадия 
            и статусная стадия. Между ними может также располагаться стадия передачи 
            данных. Setup-стадия используется для выполнения SETUP-транзакции, 
            в процессе которой пересылается информация в управляющую КТ функции. 
            SETUP-транзакция содержит SETUP-пакет, пакет с данным и пакет согласования. 
            Если пакет с данными получен функцией успешно, то она отсылает хосту 
            ACK-пакет. В противном случае транзакция завершается.  
            В стадии передачи данных управляющие пересылки содержат одну или несколько 
            IN- или OUT-транзакций, принцип передачи которых такой же, как и в 
            потоковых пересылках. Все транзакции в стадии передачи данных должны 
            производиться в одном направлении.  
            В статусной стадии производится последняя транзакция, которая использует 
            те же принципы, что и в потоковых пересылках. Направление этой транзакции 
            противоположно тому, которое использовалось в стадии передачи данных. 
            Статусная стадия служит для сообщения о результате выполнения SETUP-стадии 
            и стадии передачи данных. Статусная информация всегда передается от 
            функции к хосту. При управляющей записи (Control Write Transfer) статусная 
            информация передается в фазе передачи данных статусной стадии транзакции. 
            При управляющем чтении (Control Read Transfer) статусная информация 
            возвращается в фазе согласовании статусной стадии транзакции, после 
            того как хост отправит пакет данных нулевой длины в предыдущей фазе 
            передачи данных.  
            Пересылки с прерыванием могут содержать IN- или OUT-пересылки. 
            При получении IN-пакета функция может вернуть пакет с данными, NAK-пакет 
            или STALL-пакет. Если у функции нет информации, для которой требуется 
            прерывание, то в фазе передачи данных функция возвращает NAK-пакет. 
            Если работа КТ с прерыванием приостановлена, то функция возвращает 
            STALL-пакет. При необходимости прерывания функция возвращает необходимую 
            информацию в фазе передачи данных. Если хост успешно получил данные, 
            то он посылает ACK-пакет. В противном случае согласующий пакет хостом 
            не посылается.  
            Изохронные транзакции содержат фазу передачи признака 
            и фазу передачи данных, но не имеют фазы согласования. Хост отсылает 
            IN- или OUT-признак, после чего в фазе передачи данных КТ (для IN-признака) 
            или хост (для OUT-признака) пересылает данные. Изохронные транзакции 
            не поддерживают фазу согласования и повторные посылки данных в случае 
            возникновения ошибок. | 
            | 
         
        
          |   | 
           | 
            | 
         
         
          |   | 
          Читайте 
              также статью 
              Интерфейс USB 
                               | 
            | 
         
         
          |   | 
          Подробную 
              информацию о USB читайте в статье Александра Русева  
              Устройство USB и FireWire 
                
                | 
            | 
         
        |