lunes, 23 de octubre de 2017

RTL-SDR Proyecto : Recepción y decodificación de telemando.


Se tomó un mando inalámbrico de apertura de puerta de garage y se usó un dispositivo RTL-SDR de bajo costo para analizar su comportamiento.

Este fue el SDR usado:



Se usó el control remoto SETR2641AM2

Cuyas características son:

 
Se realizó el siguiente procedimiento:
1-      Verificación de la frecuencia de operación. Se realizó el diseño en simunlik colocando el receptor RTL-SDR sintonizadolo hasta obtener la frecuencia central de recepción en la mitad de la gráfica de espectro. Se fijó la frecuencia en 433.86MHz.
En las sigueintes gráficas se peude ver en diseño de simulink, el analizador de espectro con la señal recibida y la serie de tiempo.
 








 En el análisis de espectro se observa que hay una única frecuencia que no cambia, correspondiendo al comportamiento de la modulación ASK


En la serie de tiempo se puede verificar que efectivamente se trata de una modulación ASK. La serie de tiempo muestra los canales I/Q



2. Adición de bloque de valor absoluto. Este bloque toma el valor absoluto del mayor valor en su entrada, lo que permite tener una sola curva en la serie de tiempo.
Diseño simulinK:
 




Serie de tiempo de la salida original y luego del paso por el bloque de valor absoluto.

3. Uso del bloque de integración y vaciado “integrate and dump”.



Luego de la salida del bloque de valor absoluto se usa un bloque que se encarga de hace una suma acumulativa de las muestras obtenidas cada cierta cantidad N de muestras (number obf samples) para graficar un valor único representativo de ese rango de muestras, con lo cual se obtiene el suavizamiento de la serie de tiempo.
Para su configuración se tiene en cuenta la cantidad de muestras que hace el bloque RTL-SDR, en este caso se configuró para hacer muestras a 1MHz:



Con una frecuencia de muestreo de 1 MHz se tendrán 1 millon de muestras por segundo. Se analiza el tiempo de duración de cada uno de los pulsos de ASK:



Con ayuda de los marcadores de la serie de tiempo se haya que un pulso dura aproximadamente 420uS. Quiere decir que en 1 segundo pueden existir hasta
Nask= 1S/420uS = 2380
Dodne Nask es la cantidad de pulsos posibles. 2380 pulsos en 1 segundo, aproximadamente.
Dado a que, como se mencionó, se toman 1 millon de muestras por segundo, cada pulso tiene aproximadamente 1000000muestras/2380muestras = 420 muestras, aproximadamente.
Quiere decir que si se aplica un factor mayor a 420 en el bloque de “integrate and dump” se perderá información. Por otro lado el bloque “integrate and dump” solo permite multiplos de 1024, por lo cual se decide usar un factor de 128, lo cual hace el mayor suvizado de los datos, sin perder información.


En la siguiente gráfica se pueden observar las 2 series de tiempo anteriores, y en la última posición la salida del bloque de Integrate and dump, logrando el suavizado de la serie y logrando identificar los bits de la transmisión


4. Análisis de datos.

Se ralizaron varias pruebas en donde se identificaron cosas como:
Dentro de la codificación usada por el control remoto existe un estándar asociado al inicio de la transmisión. En todas las pruebas se vió que el transmisor envía 22 pulsos alternados 1,0 de ASK y luego hace una pausa (tiempo de guarda) del equivalente a 16 pulsos:





La duración de pulsos puede variar al cambiar entre combinaciones, lo cual puede indicar el uso de un código de línea:



Entre transmisiones continuas hay un tiempo de guarda de 16 mS:



Al transcribir a 1’s y 0’s se observa que existe algún tipo de codificación (como lo indica la hoja de datos del fabricante) que hace que el código enviado no sea siempre el mismo. Sin embargo los bits de inicio y parada son siempre los mismos. A continuación, algunas tramas trascritas: