On a sunny day (Mon, 12 Oct 2009 15:37:47 +0200) it happened René wrote in :
Yes, the TCM3105, I still have one, packet radio modem, ancient diagram of mine here: ftp://panteltje.com/pub/baycom_diagram1.jpg
There is even somebody who created a website for it, and sells those at a high price:
But no way can you guarantee it will be available.
But, then there is the old [74HC]4046 PLL, you can make a nice FSK or FM modulator / demodulator with those. I know that Siemens used those in telemetry PLC stations for the Amsterdam water monitoring system, so over long distances using fixed phone lines. Then you also need some stuff for data conditioning, perhaps RC filters. A quad opamp should do, 2 for RX filter and 2 for TX filter.
You can do FSK sine generation with a PIC too, and I think I have seen a decoding asm source for it on the internet.
If you don't mind having to do a little extra software, you can do it one direction at a time. This makes a very simple method practical. I call this "glitch code modulation"
At the transmit side, you take RS-232 and run it though a high (band) pass filter and then couple it onto the power line this can just be an inductor in the power and capacitor from the signal.
The signal travels down the power line as a bunch of spikes on the edges of the RS-232.
At the receiver end, a comparator with positive feedback converts it back into RS-232. You need to have a bit of a crude band pass here to DC couple it and remove any RF. This filtering will not change the shape much. The positive feedback circuit should provide a significant positive feedback at DC and more at high frequencies. I'll explain why below.
I have done this at 9600 Baud over 1000 feet of cable without trouble. Since the pulses are fairly short, the power consumption to make 2V pulses is low.
Since the signal you need to reconstruct is only about 5KHz, the energy in the signal can be mostly in the 20KHz to 100KHz band.
You want a filter with soft shoulders and no excess phase shift so that your glitches don't ring much. You do want the high pass action to be two pole. To get the recovery back to DC quick, the glitch will have a bit of a bounce on the tail. The high frequency feedback in the comparator prevents it from reacting to this.
Most switchers use a cycle skipping scheme if the load is light, potentially creating noise well into the higher audio range, even if the switcher is layed out to work in the >> 100KHz range. To make matters more interesting, the power is fed into a load that also contains multiple switchers (embedded processor platform with several voltages).
In the first place, it is not realistic to expect reliable data transfer when there is so much noise ("noisy switching converter"). So, fix and/or filter that damn supply. At worst, a tri-filar transformer at the supply can be used to inject/isolate the data signal, and (if load Z not too low) capacitive coupling would work at the load end; obviously i amdescribing a differential signaling system.