Supongamos que tengo una serie de señales (ejemplo abajo), la cual es transmitida sin un acompañante de la señal de reloj, me gustaría encontrar un circuito (utilizando componentes discretos / ICs, posiblemente un FPGA, pero no un microcontrolador) para reconstruir el reloj para esta señal.
El principal reto es que la frecuencia de esta serie de la señal varía con el tiempo. Se recibe la señal de una conexión inalámbrica de ASIC. Cuando el ASIC transmisor está activado, el receptor produce una señal, como lo que se muestra a continuación.
Además, el ASIC intermitentemente puede (y asincrónica) corte después de un par de segundos, y una diferente transmisor vendrá en línea. Cualquier transmisor de la frecuencia nominal puede estar en cualquier lugar de 35 a 65 KHz debido a problemas de diseño.
Dependiendo de cuánta potencia del transmisor tiene, he visto un solo ASICs reloj a la deriva por tanto como 2 KHz a partir de un valor nominal de 50 khz durante la operación continua. Nunca he medido un notable cambio de frecuencia dentro de menos de 20 frames de datos, pero no tengo una figura real de la tasa de cambio en la frecuencia de reloj....
Hay un bit de inicio en cada fotograma, y un bit de paridad y bit de parada al final. No puede haber tantos como 13 ceros consecutivos en el marco. Siempre hay 4 cero entre los ciclos de los marcos que proviene de una sola ASICs transmisor. Fotogramas consecutivos vienen de un solo transmisor, pero como he mencionado, el transmisor periódicamente se puede cortar, y otro puede venir en línea en una diferente frecuencia de reloj.
Lo que estoy buscando es un circuito para recuperar el reloj, utilizando una combinación de lógica digital, y la discreción de los componentes analógicos (no un microcontrolador!) que es muy robusto, que puede adaptarse a la deriva del reloj, y se puede bloquear en las frecuencias en que la amplia gama. También me gustaría encontrar un diseño que funciona bien a altas frecuencias, porque el futuro de ASICs tendrá un transmisor de reloj que es mucho más rápido (he escuchado tanto como 20 veces más rápido).
Un FPGA será utilizado para decodificar la secuencia de datos (y el uso de la recuperación de reloj, de hecho esto ya ha sido implementado antes de asumir la disponibilidad del reloj), y como tal, puede ser utilizado como parte de la recuperación de reloj del circuito si que ayuda.
Muy perdón por la confusión, espero que todo ha sido aclarado.