Ingeniería inversa de un sistema de automatización del hogar RF 315Mhz transimtter

3


Tengo este control remoto y transmisor y quiero aplicar ingeniería inversa a las 2 señales de RF enviadas por el transmisor. Esta es la pizarra .
El tablero dice "ak-rk01se". También puedo abrir el transmisor y ver que tiene un chip PT2264 .

A mi disposición también es un dispositivo de radio de jamón DVB-T hackeado. Así que puedo ver todos los datos que salen de 315MHz.
Aquí está un ejemplo de grabación desde el botón grande con demodulación de AM
¿Alguien sabe cómo abordar esto?

Actualización, así se ve cuando lo importo y ejecuto una señal de normalización en audacity. La misma onda cuadrada se repite una y otra vez.

La pregunta sigue siendo: ¿Cómo uso un transmisor de señal de RF para imitar esta señal? Tengo una pi de frambuesa y puedo obtener un transmisor de RF.

    
pregunta GuySoft

3 respuestas

3

¿Qué hay de hacer lo simple: simplemente conecte un PT2264 a la Raspberry PI! No tiene sentido reinventar la rueda.

Parece un chip relativamente económico, y hace toda la modulación adecuada que deseas. Todo lo que necesita hacer es averiguar exactamente cuál es la frecuencia del operador y conectar las cosas adecuadamente.

    
respondido por el user3624
6

He hecho esto exactamente con un dispositivo similar. De hecho, estoy trabajando en una publicación de blog sobre ingeniería inversa, pero lamentablemente es baja en mi lista de prioridades y la lista es larga. :-(

Todos estos son parte de un grupo muy simple de transmisores y receptores de radio. No tienen ninguna inteligencia en ellos, por lo que no puede simplemente conectar un pin de transmisión UART o recibir un pin y esperar que las cosas funcionen. Depende de usted enviar un flujo de datos bien formateado que le permita al receptor mantener el bloqueo. Los métodos populares incluyen la codificación de los bits en Manchester o la utilización de codificación de restricción de longitud de ejecución como 8b10b.

Parece que tu sistema particular está transmitiendo de manera similar a lo que es el mío; un tiempo de bit constante y un pulso largo '1' o un pulso corto '1' para indicar los dos niveles lógicos. Esta es una implementación muy simple de keying on-off y es bastante fácil de crear y decodificar con cualquier microcontrolador. Es más simple que la codificación de Manchester o la expansión de códigos como 8b10b, pero se paga con un ancho de banda disponible reducido. Por lo general, esto no es un problema para este tipo de sistemas, ya que no está intentando maximizar la transmisión de datos a través del canal.

La implementación de mi receptor particular utiliza un periférico Timer1 de AT90CAN128 configurado en modo de captura. Configuré un temporizador de funcionamiento libre de 64us y luego, cada vez que la línea de recepción cambia de estado, el periférico del temporizador captura el valor del temporizador y señala una interrupción. Desde allí, solo miro para ver cuánto tiempo "alto" es calculando el delta en los valores del temporizador y si está por encima de un umbral es un 1, de lo contrario es un cero (y si es demasiado corto lo considero ruido y lo ignoro) . Recolecto estos bits cambiándolos a una variable y cuando ya tengo suficientes, envío el valor de 32 bits a un pequeño FIFO de software y señalo a mi rutina principal que hay datos para procesar.

Para transmitir puedes hacer algo similar. Configure un temporizador con una tasa de tick que sea "agradable" para su aplicación en particular. (de la imagen parece que es aproximadamente 500us bueno, ya que el tiempo de bit parece ser aproximadamente 2 ms y el ancho del "pulso corto" es aproximadamente 500us). Usted quiere un tiempo de bit constante, por lo que necesita transmitir uno de dos estados: alto para 1.5ms / bajo para 0.5ms o alto para 0.5ms / bajo para 1.5ms. Puede hacer esto con los desbordamientos del temporizador o ir un poco más sofisticado y configurar el temporizador para establecer / borrar automáticamente el pin en función del valor, si el periférico lo permite. Probablemente pueda salirse con la suya también abusando de la función PWM. Para simplificar, me aseguraría de que pueda dormir con precisión durante unos 500 u. Póngalo a trabajar, luego vuélvase elegante.

De todos modos ahora para hacer ingeniería inversa. Recuerda que dije que estas radios son muy baratas y muy sencillas. En el gráfico puede ver que hay una secuencia constante de 16 bits: 0101010101010101; esto es para permitir que el receptor se bloquee en la señal. Después de eso, parece que la pulsación real del botón probablemente esté enviando el valor de 00001101 de 8 bits. Queda un bit 0, que posiblemente sea paridad o solo se use como un bit de parada. Podrá ver lo que está pasando si presiona otros botones. En mi particular aventura de ingeniería inversa para estos transmisores, era un protocolo de ingeniería inversa utilizado para transmitir temperatura y humedad. Adiviné correctamente en el estado 1 y 0 (podría haberse invertido) y adiviné incorrectamente en el orden de los bits (era LSB, supuse MSB). También hubo un bit de "batería baja" y un bit de paridad que finalmente descubrí.

La recreación de la transmisión es solo una cuestión de enviar los valores que has diseñado mediante ingeniería inversa al módulo de radio "sin procesar" utilizando uno de los métodos que describí anteriormente. ¡Alimenta esos valores al módulo transmisor y voilà!

    
respondido por el akohlsmith
1

Está bien, vamos a hacer esto bien. ¿Ha demodulado con éxito sus datos digitales y ahora desea poder recrear estos datos de manera precisa con una frambuesa pi y acoplar ese flujo de datos digitales a un transmisor de 315 MHz de AM?

¿Hasta ahora?

Para que esto funcione, debe estar seguro de la modulación de transmisión utilizada en el transmisor original; si es simple ASK (amplitud de cambio de amplitud), tendrá una buena oportunidad de hacerlo funcionar, pero debe ser preciso con su operador. La frecuencia de transmisión o su receptor no puede recoger nada en absoluto. Debe incluir el uso de un analizador de espectro para verificar la frecuencia precisa a la que se transmite. Oye, puedes tener suerte, pero en mi experiencia probablemente no.

Si se trata de una forma más compleja de transmisión de AM, como la portadora suprimida, tiene pocas posibilidades de encontrar un transmisor estándar que haga el trabajo.

    
respondido por el Andy aka

Lea otras preguntas en las etiquetas