Sorry; I didn't quite see this paragraph before.
GARTHWILSON wrote:
I made a couple of modems to do this years ago. The data integrity seemed to be excellent for all the testing I did on it, although I never really put it to actual use. You just plug it into an RS-232 line. Mark was 2400 Hz and space was 1200 (or vice-versa-- I don't remember.) If there was a chance the tape speed could be way off, you can remedy the problem and still use the modem by implementing a really short frame length. I made it for use at 300 bps, but I was surprised that even at twice that rate it could go sometimes a page or two of text without an error. If you omit the line driver and receiver so you'd just connect it directly to a UART, you can get the price down to a buck or two in common parts.
The Bell 202 standard, aka ITU-T/CCITT V.23, specifies the following: mark is at 1200Hz, space is at 2200Hz. Intended data rate: 1200bps.
This is called frequency shift keying, and in this case, AFSK (AUDIO FSK). Unfortunately, Bell's standard isn't as good as it could be, because to get a *clean* 1200bps signal, the frequency spacing should be the same as the symbol rate. In this case, the symbol rate matches the bit rate, so it should be 1200Hz. However, it's not in the Bell 202 standard -- it's only 1000Hz. Thus, errors at 1200bps will occasionally happen due to intermodulation effects.
Ham radio's 1200bps links utilize the old Bell 202 standard. V.23 is different in that it specifies only the European version of the standard, which states 1300Hz for mark, and 2100Hz for space (e.g., they get even worse performance, so they need better signal to noise ratios than we do). Fortunately, even in Europe, AFSK channels on ham radio use the American signalling.
One way to transfer more data faster is to use MFSK -- multiple frequency shift keying. Suppose I want to transmit two bits per symbol instead of one (to make the explanation nice and easy), for 2400bps operation, but we want to keep the 1200bd rate. We can do this by allocating four frequencies in the passband. Note that these frequencies still must be 1200Hz apart, since that's our symbol rate. Therefore, 2400bps links will consume double the bandwidth of the 1200bps link, which is expected.
Anyway, the frequencies might be assigned thus:
Code:
00 - 1200Hz
01 - 2400Hz
11 - 3600Hz
10 - 4800Hz
Note that Gray-code is used to increase the likelihood of single-bit errors, which are relatively easy to detect and correct with suitable encoding techniques.
Note that dropping the baud rate and increasing the frequencies doesn't give narrower bandwidths. You can easily transmit 2400bps data at 300bd by transmitting 8 bits at a time (256 frequencies!). 256 times 300Hz is 76800Hz bandwidth -- ouch! Again, the better the link, the more you can compact those frequencies. But still, it's going to be insanely huge.
What the Ethernet specification calls Manchester Encoding is what we call Binary Phase Shift Keying, or BPSK. The nice thing about BPSK is its bandwidth
is its bit rate. With radio, you can still do one better: QPSK gives you half the bandwidth of BPSK (but requires twice as good a signal path), or put another way, keeping the same bandwidth, you can transmit twice as much data. 16PSK doubles that, and 256PSK doubles that again, etc.
I would love the opportunity to create a BPSK/QPSK-enabled modem for the 2m band, and show that it is quite possible to get 12000bps and 24000bps data throughputs on a band where 1200bps is the norm (and the expected). Can such a modem be powered by a 65816?
Anyway, I'm off-topic here. I'll stop now.