Por que a taxa da porta USB COM lê dados dependentes do laptop conectado?

2

Resumo

Estou lendo dados seriais através de uma porta USB e quando o laptop está carregando, a porta COM recebe cerca de 60 atualizações por segundo e quando o laptop não está carregando, a porta COM recebe cerca de 1 atualização por segundo.

Plano de fundo (não sei ao certo quais informações são úteis)

Estou trabalhando em um projeto em que um conjunto de sensores se comunica com um microprocessador e o microprocessador é conectado a um laptop. Como preciso dos dados para usar em controle em tempo real, a taxa na qual o laptop recebe informações do microprocessador é importante.

Normalmente, consegui obter cerca de 60 atualizações do microprocessador por segundo. No entanto, muitas vezes me deparo ocasionalmente com lentidão por nenhuma razão óbvia. Hoje ocorreu uma dessas lentidões e percebi que, quando o laptop não carregava ativamente, as atualizações por segundo eram muito lentas, mas quando o laptop estava carregando, ele recebia atualizações a toda velocidade.

Observe que o microprocessador não é ativado pelo laptop.

Editar 1: Meu plano de energia está definido como balanceado.

Editar 2: fiz as seguintes alterações para tentar melhorar o desempenho

  1. eu defini meus processos críticos para a prioridade em tempo real
  2. defina meu plano de energia como alto desempenho
  3. Eu estava enviando dados para uma janela de console muito rapidamente, então reduzi a impressão do console
  4. desativamos a suspensão seletiva de USB
  5. Anteriormente, eu havia alterado o cronômetro de latência da porta COM para 1 ms e o recebimento (bytes) para 128, na tentativa de corrigir problemas de comunicação com este dispositivo.

Eu achei que eles tinham consertado, mas depois de correr por vários minutos a lentidão ocorreu novamente.

Olhando para o Gerenciador de tarefas quando o programa está sendo executado corretamente, o uso da CPU é de cerca de 50% e o uso da memória é de cerca de 50%. Logo quando a desaceleração ocorreu, a utilização da CPU caiu para cerca de 25%, o uso de memória permaneceu inalterado.

Parecia que o número de threads e identificadores exibidos no gerenciador de tarefas aumentava constantemente ao longo do tempo, até cerca de 4000 threads e 98.000 handles. Quando fechei meus programas, a contagem de threads caiu para cerca de 3.000 e identificou para cerca de 90.000.

Configurações da porta COM

Editar 3:

Entrei no BIOS e mudei o Intel Speedstep para desativado e o controle do estado C para desativado. Isso não parece consertar nada. Fiz isso seguindo os conselhos desta página da Web: link

Editar 4: usei o Docklight para confirmar que o microprocessador está enviando informações com rapidez suficiente. Então, a questão está definitivamente no fim do laptop

    
por James 11.07.2018 / 23:43

0 respostas

Tags