Buenas!
La trama dmx es asi:
Asumimos que está la linea en "mark", o sea en 1
1: poner la linea en "cero" durante al menos 88 uS ("Break", hasta 1 segundo es admisible)
2: luego poner la linea en "uno" al menos 8 uS ("MAB")
3: enviar un caracter "cero" (es decir, start bit, ocho bits en cero y 2 bits de stop en uno, NSC)
4: a partir de aqui enviar los valores de cada canal (siempre 1 bit de start, 8 de datos y dos de stop)
se puede enviar un canal como minimo y hasta 512 como maximo
hay algunas restricciones de tiempos para el largo máximo del paquete y el máximo de paquetes por segundo,
pero entran dentro del sentido comun
Espero les sea de ayuda, saludos!