Pergunta

Eu tenho um dispositivo embutido ( Technologic TS-7800 ) que anuncia capacidades em tempo real, mas não diz nada sobre 'hard' ou 'soft'. Enquanto eu esperar por uma resposta do fabricante, achei que não faria mal para testar o sistema de mim mesmo.

Quais são alguns dos procedimentos estabelecidos para determinar a 'dureza' de um dispositivo em particular no que diz respeito ao tempo real / comportamento determinístico (latência e jitter)?

Ser na faculdade, eu tenho acesso a alguns bastante puro hardware (osciloscópios bons e geradores de sinal), então eu não acho que vai correr em quaisquer problemas em termos de equipamento de testes, apenas especialização.

Foi útil?

Solução

Eu tenho o mesmo conselho aqui no trabalho. É um pouco modificado 2.6 Kernel, eu acredito ... não a versão de tempo real.

Eu não sei que eu tenho nada leitura nos docs ainda que indica que ele é destinado para o trabalho RTOS rigorosa.

Outras dicas

Com esse tipo de equipamento, que deve ser bastante fácil de sincronizar o o-escopo para um relógio constante, produzir um pico cada vez que o sistema em tempo real produz uma saída, uma ver o quanto esse pico varia de centro. A menos a variação, maior a dureza.

Para esclarecer a resposta de Bob talvez:

Use o gerador de sinal para gerar um pulso em alguma freqüência variável. distribuição aleatória através de alguma faixa seria melhor.

usar o gerador de sinal (sinal de disparo) para iniciar o âmbito.

o RTOS tem de responder, fazer coisa e enviar um pulso de saída.

alimentar a saída SOTR na entrada 2 do escopo.

obter o escopo de persistir modo / coleta. obter o escopo para começar em A, parada em B., se puder.

numa workd ideal, obtê-lo para medir a distribuição para você. A LeCroy faria. Comece com um traço muito mais lento do que você esperaria. Você precisa ser capaz de ver os outliers lentas. Você vai ser capaz de ver a distribuição.
Assumindo uma distribuição normal, a SD da variação do tempo de resposta é a suavidade. (Isso realmente não vai acontecer na prática, mas se você não obter os outliers é razoavelmente útil.) Se houver valores atípicos de grande latência, então o RTOS não é muito difícil. não atender bem prazos. Inadequados, então é para o trabalho em tempo real duro. Muitos RTOS-como as coisas têm uma boa borda esquerda da curva, inclinando-se para baixo como um 1 / f curva. Isso é indicitive de tremores combinados. A primeira coisa a olhar para fora é picos de resposta lenta na extremidade direita do escopo. Mantenha repetir o experimento com traços mais rápidos se não houver valores atípicos para obter uma boa imagem da encosta. Deve ser bom para alguma conclusão especulativa em seu papel.

Se para a sua aplicação, digamos, um delta de 1uS está bem, e você mede 0.5us, é tudo legal.

De qualquer forma, você pode publicar os resultados (e provavelmente no publicar sentido, mas certamente na web.)

Fazer a ligação desta questão para o papel quando você escreveu ele.

rígido em tempo real tem mais a ver com a forma como o software funciona do que o hardware por conta própria. Quando perguntando se algo é difícil em tempo real deve ser aplicado a todo o sistema (Hardware, RTOS e aplicação). Este meio duro ou mole em tempo real é questões de design do sistema.

Com carga superior a especificação até mesmo um sistema de tempo real rígido irá falhar (esperemos que com indicação de falha adequada), enquanto um sistema em tempo real macio com baixa carga daria duras resultados em tempo real. Quanto processamento deve acontecer no tempo e quanto pré / pós-processamento pode ser realizada é a verdadeira chave para em tempo real hard / soft.

Em algumas aplicações em tempo real alguma perda de dados não é uma falha que deve ser logo abaixo de um certo nível, novamente uma critérios do sistema.

Você pode gerar insumos para o conselho e têm uma pequena aplicação contá-los e verificar em quais dados nível vai ser perdido. Mas isso dá-lhe um rating específico para esse sistema executando esse aplicativo. Assim que você começar a fazer mais processamento de seus aumentos de carga computacional e agora você tem um limite de tempo real rígido diferente.

Este conselho vai executar um esqueleto programador vai dar grande desempenho em tempo real duro previsível para a maioria das tarefas. Funcionando um RTOS completos com carga computacional pesado você provavelmente só obter em tempo real macio.

Edit after comment
A maneira mais eficiente e mais fácil que eu utilizado para medir o desempenho do meu software (supondo que você use um schedular) é usando um timer de hardware corrida livre na placa e carimbo de tempo o meu início e fim do meu ciclo. Ou se você executar um RTOS carimbo de tempo integral você aquisição e de transição. Guarde o seu tempo Max e executar uma média dos valores ao longo de um segundo. Se a sua média é de cerca de 50% e você max é dentro de 20% da sua média você está OK. Se não, é hora de refatorar seu aplicativo. Como seu aplicativo cresce o tempo de ciclo vai crescer. Você pode monitorar o efeito de todas as alterações de software no seu tempo de ciclo.

Outra maneira é usar um hardware temporizador gerar uma interrupção cíclica. Se você estiver em tempo de repor a interrupção. Se você perder o prazo você tem manipulador de interrupção falha de sinal a. Este, porém, só vai te dar um aviso assim que a sua aplicação está tomando a tempo, mas dependem de hardware e interrupções para que você não pode perder.

Estas soluções também eliminam a necessidade de ligar um escopo para monitorar a saída desde a informação de tempo pode ser exibido em qualquer tipo de terminal, uma tarefa de fundo. Se é fácil para monitorar você vai monitorá-lo regularmente evitando resolver os problemas de tempo no final, mas assim que são introduzidos.

Espero que isso ajude

Eu acho que este não é um dispositivo em tempo real difícil, uma vez que ele é executado sem RTOS.

Eu entendo ser geek, mas usando osciloscópio para testar um computador com USB Ethernet / outros portos / digitais e estado interno ENORME (RAM) é ineficaz e pouco fiáveis.

Em vez de ver formas de onda, você pode conectar qualquer PC à porta de saída e executar análise estatística adequada.

O procedimento estabelecido (se o sinal de entrada analógico é por natureza) é a sistema de teste contra várias entradas característicos - tradicionalmente picos, as funções da etapa e ondas sinusoidais de diferentes frequências e - deslocamento de fase medida e variância para cada tipo de entrada. Pior caso é então utilizado nas especificações do sistema.

Mais uma vez, se você estiver usando portas padrão, você pode facilmente gerar aqueles em PC. Se a entrada é verdadeiramente analógico, um DAC separado ou simplesmente um cartão bom som seria necessário.

Agora, isso não vai dizer nada sobre OS sendo em tempo real -. Poderia funcionar vanilla Linux ou mesmo Windows CE e ainda produzir bons e estáveis ??resultados nesses testes se o hardware é rápido o suficiente

Então, você precisa pesada simular e cargas variáveis ??sobre processador, memória e todas as portas, deixe-o aquecer e comer memória por algumas horas e, em seguida, testes de repetição. Se a latência constante estadias, é difícil em tempo real. Se isso não acontecer, sob qualquer tipo de sinal de entrada de carga e, aumento acima do limite aceitável, que é macio. Caso contrário, é propaganda.

P.S .: implicação é que, mesmo para sistemas críticos que você não precisa realmente duro em tempo real, se você tem hardware.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top