Debido al aburrimiento, probé un poco de ingeniería inversa de un simple timbre inalámbrico barato que usa un transmisor y receptor de 433.92MHz a través de la modulación OOK. Envía varias veces la misma información. En el lado del transmisor hay un chip AD1614AT (que parece ser este ) . En el lado del receptor hay un chip CMT2210LC (este ) .
Grabé datos en el pin DOUT en el lado del receptor, se parece a lo siguiente:
No estoy muy familiarizado con dicho protocolo de codificación (?), así que necesito ayuda de personas más experimentadas aquí.
Los datos del registro se ven así (asumiendo que 200us es nuestro "período de reloj"):
1110 1000 1000 1000 1000 1000 1110 1110 1000 1110 1110 1000 1110 1000 1110 1000 1000 1110 1000 1000 1110 1000 1000 1000 1000
También he notado que el impulso corto toma alrededor de 200 us y el largo alrededor de 600 us. Parece que los datos están codificados como un par de estados largos y cortos, por ejemplo, 600us H + 200us L -> binario "1". Si hacemos tal decodificación obtenemos los siguientes datos:
10000 01101 10101 00100 10000
o si decodificamos datos de otra manera tenemos:
01111 10010 01010 11011 01111
He agrupado los datos en 5 "bits" porque tenemos 25 bits en total. A partir de ese momento estoy perdido. ¿Conocen este método de codificación/descodificación? Vi algo similar (impulsos largos/cortos) hace algún tiempo en un viejo control remoto IR pero no sé nada más. Revisé la hoja de datos del transmisor y en la descripción del registro ODS_TIMING (página 42) encontré la siguiente descripción del "serializador":
ODS_GROUP_WIDTH[2:0]: controla el ancho del grupo de símbolos, de 2 a 8 símbolos. Establézcalo en 4 para transmitir 5 grupos de símbolos obtenidos de la codificación 4/5. O establezca en 7 para enviar 8 grupos de símbolos obtenidos de la codificación Manchester de 4 bits.
Con codificación 4/5 lo decodificaríamos a:
10000 01101 10101 00100 10000 -> ningún símbolo '10000' en la tabla :(
01111 10010 01010 11011 01111 -> 0x07 0x08 0x04 0x0D 0x07
No estoy seguro de si los datos tienen algún significado, pero sería bueno saber si los decodifiqué correctamente. Una cosa más que he encontrado mientras tanto es que hay una codificación similar (?) En los controles remotos, por ejemplo, el protocolo NEC1 (ráfaga para 562.5us, 562.5us espacio -> "0", etc.). Aquí tengo el mismo tiempo para un solo "símbolo".
Editar:
Como sugirió @ Mattman944, los símbolos de códigos de protocolo ("1" y "0") por pulsos largos y cortos. Después de cada pulso hay un cambio en el estado de la señal. Por lo tanto, el mensaje se vería así (suponga que el pulso largo es "1"):
10010101010110100110100110011001011001011001010101
50 bits, digamos que los primeros 2 bits son el encabezado, luego tenemos:
10 01010101 01101001 10100110 01100101 10010110 01010101 ->
HDR 0x55 0x69 0xA6 0x65 0x96 0x55 ->
encabezado de cuadro, marcador, val_1, val_2, ((val_2<<4 & 0xF0)| (~(val_2>>4)) & 0x0F), ~val_1, marcador
Que parece ser ese mensaje. Para asegurarme, necesitaría volcar el código del transmisor y desmontar su código, pero es demasiado para un dispositivo tan simple.
De todos modos, la nueva pregunta es: ¿cuál es el nombre de dicha codificación cuando los símbolos se codifican por la longitud de los pulsos (largo/corto) y después de cada pulso hay un cambio en el estado de la señal? Se parece a algunos códigos de barras, pero no sé cuál.
Para cualquier pista y ayuda gracias de antemano!
Sospecho que un pulso ancho es un estado lógico y un pulso estrecho es el otro, 25 bits. Podrían ser simplemente 25 bits de datos. O bien, un bit de inicio y 3 bytes. No veo la necesidad de complicarlo más.
Algunos de los bits son probablemente un número de serie, desea minimizar la posibilidad de que interfiera el timbre de su vecino. Algunos de los otros bits son una suma de verificación o CRC, no desea que cosas aleatorias activen su timbre.
A menos que tenga suerte y encuentre algo en línea, necesitará datos de varios dispositivos para tener la oportunidad de comprenderlo mejor.
Kartman