Pontos de extremidade USB e seus pipes
Um dispositivo USB tem pontos de extremidade usados para transferências de dados. No lado do host, os pontos de extremidade são representados por pipes. Este tópico diferencia esses dois termos.
Resumo
- O ponto de extremidade é hardware no dispositivo; pipe é software no lado do host.
- O ponto de extremidade não está configurado; pipe está configurado para transferências
- O host envia ou recebe dados de ou para um pipe.
Ponto de extremidade USB
Um ponto de extremidade é um buffer em um dispositivo USB. Ponto de extremidade é um termo relacionado ao próprio hardware, independente do sistema operacional host. O host pode enviar e receber dados de ou para esse buffer. Os pontos de extremidade podem ser categorizados em pontos de extremidade de controle e de dados.
Cada dispositivo USB deve fornecer pelo menos um ponto de extremidade de controle no endereço 0 chamado ponto de extremidade padrão ou Ponto de Extremidade0. Esse ponto de extremidade é bidirecional. ou seja, o host pode enviar dados para o ponto de extremidade e receber dados dele em uma transferência. A finalidade de uma transferência de controle é permitir que o host obtenha informações do dispositivo, configure o dispositivo ou execute operações de controle exclusivas para o dispositivo.
Os pontos de extremidade de dados são opcionais e usados para transferir dados. Eles são unidirecionais, têm um tipo (controle, interrupção, massa, isócrono) e outras propriedades. Todas essas propriedades são descritas em um descritor de ponto de extremidade (consulte Descritores USB Padrão).
Na terminologia USB, a direção de um ponto de extremidade (e é transferida para ou para eles) é baseada no host. Portanto, IN sempre se refere a transferências para o host de um dispositivo e OUT sempre se refere a transferências do host para um dispositivo. Os dispositivos USB também podem dar suporte a transferências bidirecionais de dados de controle.
Os pontos de extremidade em um dispositivo são agrupados em interfaces funcionais e um conjunto de interfaces compõe uma configuração de dispositivo. Para obter mais informações, consulte Layout do dispositivo USB.
O software host pode examinar as informações do ponto de extremidade, antes que o dispositivo tenha sido configurado ou durante a seleção de uma configuração alternativa. Você iterará por todas as interfaces e, em seguida, por meio de cada lista de interfaces de configurações e examinará as propriedades de cada ponto de extremidade ou todo o conjunto de pontos de extremidade na configuração. Examinar as informações do ponto de extremidade não afeta o estado configurado do dispositivo.
Pipes USB
Os dados são transferidos entre um dispositivo USB e o host USB por meio de uma abstração chamada pipe. Pipes é puramente um termo de software. Um pipe conversa com um ponto de extremidade em um dispositivo e esse ponto de extremidade tem um endereço. A outra extremidade de um pipe é sempre o controlador de host.
Um pipe para um ponto de extremidade é aberto quando o dispositivo é configurado selecionando uma configuração e a configuração alternativa de uma interface. Portanto, eles se tornam alvos para operações de E/S. Um pipe tem todas as propriedades de um ponto de extremidade, mas está ativo e será usado para se comunicar com o host.
Um ponto de extremidade não configurado é chamado de ponto de extremidade enquanto um ponto de extremidade configurado é chamado de pipe.