
Um membro da nossa colaboração científica projetou uma caixa de aquisição de dados com 4 canais a 1 kHz que sincroniza o tempo com GPS. Ele usa USB 2.0 para que a caixa se comunique com um computador, e a interface serial COM com taxa de transmissão de 115200 é usada para transferir dados para o computador no formato ASCII. O fabricante chama isso de “serial virtual” via USB 2.0. Conseqüentemente, todas as configurações como paridade, controle de fluxo de trabalho, etc... não importam na interface serial, mas apenas a taxa de transmissão deve ser definida como 115200 para que isso funcione.
Minha pergunta é:Este número 115200 realmente representa o número de bytes por segundo que podem ser transferidos ao máximo através desta porta, criando uma limitação do que a porta USB 2.0 pode fazer? Ou esse número realmente não importa e a taxa de transferência real é de cerca de480 Mbits/s como padrão USB 2.0?
Quais são os fatores que decidem isso?
Por que perguntar?A caixa atualmente usa comunicação serial unidirecional para entregar dados, o que causa problemas deperdendo bytes algumas vezes na sobrecarga do computador. A solução confiável seria tornar a conexão bidirecional com somas de verificação e solicitar pacotes e perguntar novamente quando os dados estiverem corrompidos. No entanto, se estivermos realmente limitados a 115 kB/s, isso significa que não podemos transferir 4 canais a 1 kHz.
Se precisar de alguma informação adicional, por favor pergunte.
Responder1
Serial via USB 2.0. É realmente mais rápido que serial?
Sua terminologia é desleixada.
"Serial sobre USB 2.0"pode referir-se ao uso de adaptadores USB para RS232 ou consultarCDC/ACM.
Sua última referência a"serial"presumivelmente é para RS-232.
Minha pergunta é: esse número 115200 realmente representa o número de bytes por segundo que podem ser transferidos ao máximo através desta porta, criando uma limitação do que a porta USB 2.0 pode fazer?
115200 é a taxa de transmissão, que (neste caso) é bits por segundo (e não bytes por segundo).
Como este é um canal assíncrono, cada caractere/byte é enquadrado individualmente com um bit de início e 1/1,5/2 bits de parada. Portanto, há uma sobrecarga de enquadramento de 25% (assumindo a configuração típica do 8N1).
USB é um barramento e pode lidar com mais de um canal de dados.
Os dados RS-232 assíncronos são empacotados para transmissão por USB síncrono e compartilham a largura de banda total de 480 Mbs do USB 2.0. (Embora o adaptador USB para RS232 típico use apenas USB 1.1.)
Eu testemunhei quatro canais RS-232 simultâneos de 115.200 baud transmitindo em uma única conexão USB 1.1 sem problemas.
Ou esse número realmente não importa e a taxa de transferência real é de cerca de 480 Mbits/s como padrão USB 2.0?
O número é importante porque é a taxa de transmissão configurada para aquele canal.
Quais são os fatores que decidem isso?
A taxa de transmissão máxima normalmente é limitada pelo hardware e pelo software de suporte.
Por que perguntar? A caixa atualmente usa comunicação serial unidirecional para entregar dados, o que às vezes causa problemas de perda de bytes devido à sobrecarga do computador.
A perda de dados parece ser um caso de saturação do buffer do sistema. Os dados chegam mais rápido do que são lidos/processados pelo programa aplicativo. Nenhum controle de fluxo está sendo empregado no canal de dados para evitar a saturação.