Que tipo de modulação é essa?

8

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"

Visão geral do sinal

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"

Detalhe do sinal Detalhe do sinal (Freq, Fase, IQ)

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.

Detalhe da transição Detalhe da transição (Freq, Phase, IQ)

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.

insira a descrição da imagem aqui

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!

jjmontes
fonte
1
Você pode descrever mais, o que cada curva mostra? A primeira figura se parece com STFT. O que são curvas em verde, azul e vermelho na última figura?
Maximilian Matthé 11/03/19
2
Sim seria bom se você pudesse fazer uma nova amostra, para que um múltiplo inteiro da taxa de amostragem não pare nas proximidades do seu sinal. Além disso, se você estiver realizando amostragem real, deseja que o sinal digital aterre na frequência Digital IF. Uma escolha ideal é ter o seu espectro amostrado a , por conseguinte, utilizar os relação e onde é a sua frequência portadora e é a largura de banda do sinal. Eu recomendo ir com um resultado tal que f_c >> 2 * f_b $. Depois de fazer isso, você pode remover digitalmente a transportadora, observando a rotação. fs/4Nfsfc=fs/4Nfsfc>2fbfcfb
11117 Dan Boschen
1
Você abriu o controle remoto? Muitas dessas empresas usarão silício comercial e haverá um número de peça no chip, que muitas vezes pode facilmente levar a uma folha de dados.
Stephen Rauch
@ MaximilianMatthé Atualizei a pergunta, obrigado!
Jjmontes
1
@jjmontes Quero ter certeza de que você viu o link que adicionei ao topo da minha resposta na seção "atualização", repetida aqui: cansecwest.com/slides/2015/… . O apresentador mostra passo a passo como desmodular o sinal io-homecontrol.
Dan Boschen 13/03/19

Respostas:

5

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.

insira a descrição da imagem aqui

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.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

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;

insira a descrição da imagem aqui

insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui

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.

insira a descrição da imagem aqui

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.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

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)

insira a descrição da imagem aqui

Dan Boschen
fonte
Pergunta noob: durante a sincronização, existem 5 a 7 bandas de frequência proeminentes no gráfico em cascata. No entanto, ainda tenho que centralizar meu filtro (passa baixo) no filtro central (20kHz), certo? Estou surpreso porque isso deixa parte do espectro (que se expande de ~ + -35kHz) fora do filtro, mas parece funcionar mesmo assim:?
jjmontes
Você centraliza o deslocamento de 12,834 KHz para desmodular e, em seguida, a frequência desse sinal será seus dados. Um atraso e multiplicação consigo mesmo podem tornar um simples discriminador de frequência.
Dan Boschen 12/03/19