In this FSK the frequency is shifted from 90khz to 100khz. the Baud rate is 4800 or lesser. Noise immunity is important for the final design. Is there any measure of this?
I never did it before and do not really know how it is "normally" implemented.
Thinking about the problem I'd try it the following way:
Set up a periodic interrupt @ a multiple of 4800 Hz (at least 4 * 4800 Hz).
Have a counter count the number of pulses from the input.
Decide every timer event whether the counter value is above or below the given threshold.
Decode the same way UARTs are doing it. Hardware documentation or older Microchip application notes will show you how to.
This is not exactly the PLL way, but doable with quite a number of microcontrollers with little hardware presumptions. But it will create quite some processor load.
given some kind of PWM generator or compare port this should be doable.
To implement this it would be sufficient to have a timer interrupt of 4800 Hz - switching the PWM generation setup to the appropriate parameters for every bit.
You can build your PLL as all digital PLL, where the the voltage controlled oscillator is made to generate two frequencies say fm and fs with fm=100 kHz and fs= 90KHz, The two frequencies can be digitally synthesized by storing the sine wave samples and reading them with the appropriate speed and starting them with the correct phase according to the phase detector output. The loop filter and the phase frequency detector are built from digital building blocks from digital circuits.
The all digital phase locked loop can be constructed in software that can be executed by the micro controller.
For more information please follow the Link:http://users.ece.gatech.edu/pallen/Academic/ECE_6440/Summer_2003/L080-ADPLL(2UP).pdf
and the link:http://epubl.ltu.se/1402-1617/2006/284/LTU-EX-06284-SE.pdf