Estou tentando descobrir que tipo de modulação e codificação é usada pelo controle remoto da minha janela, com o objetivo de implementar o mesmo em um Raspberry Pi para adicionar um pouco de automação residencial.
Um colega me ajudou a amostrar o sinal com um USRP e me forneceu os arquivos de dados. Eu os examinei com o Inspectrum .
Receio que as amostras tenham sido gravadas centralizadas muito perto da frequência do sinal. Mais tarde, li que isso pode não ser uma boa ideia e acho que é isso que causa o ruído permanente que você pode ver nas fotos. Devo centralizar a amostragem alguns kHz abaixo no futuro?
Pressão única do sinal "janela aberta"
A taxa de símbolos, ou melhor, o que eu imaginei ser a taxa de símbolos, parece consistente nesse nível (cerca de 42 bauds).
Isso mostra energia de frequência. O eixo X é o tempo, o eixo Y é a frequência (banda base). As cores foram ajustadas para mostrar apenas o poder interessante.
Detalhe de um dos "blocos"
Aqui, a última imagem mostra, de baixo para baixo: frequência, QI (vermelho / azul) e fase. Não sei bem o que o gráfico de frequências representa aqui.
Amplie a transição entre esparsas e densas
A "taxa de símbolos" não parece constante aqui.
Não tenho idéia de que tipo de modulação, codificação, taxa de bits ou protocolo esse controle remoto usa, e agora minha única opção seria tentar cegamente todos os blocos demod no gnuradio.
Seria extremamente útil se a resposta pudesse incluir algumas orientações sobre como desmodular esse sinal no gnuradio para obter os bits. Eu acho que posso aguentar de lá.
O controlador é para uma cobertura de janela do Velux, mas não encontrei nenhuma informação na web. Finalmente, preciso descobrir qual chip comprar para o Arduino / rPi.
Posso dizer que o chip tem algum texto inscrito, mas não consigo lê-lo, parece que está gasto, mas não tenho uma lente de aumento ...: /
Dados brutos enviados para: https://www.dropbox.com/s/rh2k7ho68dvoxhd/data_mando3.dat?dl=0 . A taxa de amostragem é de 3 MHz. O formato dos dados é o padrão GNU Radio Companion , que é o IQ, cada componente expresso como um flutuador de 32 bits.
Atualizar
Após mais algumas investigações, este parece ser o protocolo io-homecontrol . Parece que não teve engenharia reversa, é codificado e nenhuma informação está disponível. É um protocolo bidirecional, portanto, precisarei pegar amostras de conversas completas (as amostras atuais são obtidas apenas com o controle remoto disponível).
Este chip em teoria é capaz de trabalhar com este protocolo: http://www.analog.com/media/en/technical-documentation/data-sheets/ADF7022_2page.pdf
O consórcio não fornecerá especificações. Ainda estou interessado em farejar algumas conversas com o GNURadio e ver se consigo trabalhar com elas. Diante disso, só posso recomendar produtos io-homecontrol e Velux.
Obrigado!
fonte
Respostas:
Ok, fiz algum sinal forense na captura de dados e acredito que a modulação é uma forma de FSK.
A modulação FSK foi de +/- 20 KHz com uma taxa de dados de 38 KHz.
ATUALIZAÇÃO: A descoberta do OP de que este é o "io-homecontrol" e a folha de dados da ADI que ele encontrou confirmou que esse é realmente o FSK com um desvio de 20KHz e taxa de dados de 38,4 Kbps. Além disso, este link fornece mais detalhes sobre o formato de modulação:
https://cansecwest.com/slides/2015/From_Baseband_to_bitstream_Andy_Davis.pdf
Parece que na verdade pode ser Gaussian-FSK, com sinalização de resposta completa (BT = 1), significando que a resposta para cada bit é concluída antes do início do próximo bit. Isso pode ser facilmente implementado com um filtro gaussiano (consulte Filtro gaussiano FIR sem multiplicadores?) seguido por um NCO. Nesse caso, cada bit de dados é representado como impulsos seguidos de zeros por todo o comprimento do filtro e a saída do filtro direciona a palavra de controle de frequência para o NCO (um VCO digital). (Para sinalização de resposta parcial que requer um receptor mais complicado e não o que eles estão fazendo aqui, os zeros são mais curtos que o comprimento do filtro, mas isso também funcionaria). O desvio de frequência pode ser definido com um ganho multiplicador constante entre a saída do filtro e a entrada NCO. A escolha entre FSK gaussiano e FSK simples é para melhor contenção espectral na forma de onda transmitida (e é a razão das transições arredondadas que vemos).
Incluírei as parcelas caso alguém tenha mais informações:
Primeiro, uma visão macro na vizinhança do primeiro burst, ocorrendo em torno de 0,93 segundos. Para obter esse gráfico, removi um deslocamento de frequência correspondente a 0,2688 radianos / amostra após dizimar 10 amostras, assumindo que a taxa de amostragem original era de 3 MHz, isso corresponde a um deslocamento de 12,834KHz.
Este gráfico mostra a fase desembrulhada x tempo (o eixo vertical é radianos) e a magnitude correspondente x tempo. Presumo que, quando a magnitude é baixa, estamos vendo o ruído e o sinal de interesse está ocorrendo apenas quando a magnitude é maior.
Aproximando o zoom na primeira parte do burst, o pulso inicia em aproximadamente 0,9265 segundos e, no início do burst, a fase fica "plana" por aproximadamente 3 ms. Correspondendo a uma transportadora não modulada, acredito, da comparação com os detalhes que veremos mais adiante.
Após os 3 ms da parte "fase plana", existe um padrão muito longo do que parece ser 1 0 1 0 1 0 com uma taxa de dados de 37,5 KS / s. A modulação está entre 0 e 180 graus, mas mais tarde veremos rampas de fase claras, fazendo-me suspeitar de FSK em vez de BPSK. (Se fosse o MSK, eu esperaria ver evidências de rotações de 90 graus, mas a rotação mínima encontrada foi de 180 graus). Observe no início do padrão (assumindo +180 = 1 e -180 = 0), vemos 1 1 0 1 0 1 0 1 ... que então dura com o padrão 1 0 1 0 por aproximadamente 90 ms antes novamente inserindo um "1 1" próximo à marca de 1,02 segundo e continuando novamente como 0 1 0 1 0 1 ... até a marca de 1,414 segundo. (aproximadamente 0,4 segundos de duração com um padrão 1 0 1 0). Observe a "corcunda" na trajetória geral;
Em 1.414 segundos, os dados reais são iniciados. (O primeiro provavelmente era um padrão de sincronização / aquisição). Olhando primeiro para uma visão macro, vemos um padrão que nessa visão parece se repetir três vezes antes do término da explosão.
Aproximando a primeira região, vemos consistentes inclinações positivas e negativas indicativas de FSK. No final do burst de dados, há uma longa duração de 1s por 4 ms, seguida pelo padrão 101010 novamente por cerca de 14 ms.
A próxima explosão, iniciando em torno de 1,51 segundos, logo após a primeira, novamente apresenta o mesmo padrão de partida de uma transportadora não modulada, seguida pelo padrão de modulação longo 101010. (Embora ligeiramente diferente, pois o início foi 1 1 1 1 0 1 0 1 0 1 0 1, mas a duração do padrão 1010 antes da modulação dos dados foi novamente de 14 ms)
fonte