POCSAG encoder and modem.en

Radioamatööriwikistä
Versio hetkellä 30. tammikuuta 2011 kello 22.52 – tehnyt >Oh7lzb
Siirry navigaatioon Siirry hakuun

This page documents the POCSAG encoder Perl module POCSAG::Encode, the Arduino-based bit-banger modem used to drive FSK transmitters with the POCSAG data generated by the encoder, and the POCSAG::PISS perl module used to communicate with the bit-banger modem.

Background

Encoder module

I've implemented a POCSAG encoder in Perl, and packaged it in a proper Perl module, POCSAG::Encode. It's available on the CPAN. It takes in a bunch of text messages, and returns a binary string which should be transmitted, bit-by-bit, using an FSK transmitter at 512 bit/s. The string does not include the mandatory preamble - it is generated by the modem to save buffer space. It also returns any messages which did not fit in the transmission (which has a limited length, depending on the buffer size of the modem), so that they can be put in the next transmission.

Modem

The reference modem for this POCSAG transmitter has been implemented on top of an Arduino Duemilanove microcontroller board. The traditional method to transmit synchronous FSK from a PC computer was to twiggle the handshaking lines (RTS/CTS/DTR...) of serial ports, or the I/O pins of the parallel port. That was easy in MS-DOS, but in proper operating systems that typically requires writing a kernel driver. And your average computer no long has serial or parallel ports. The Arduino board has an USB port, an FTDI USB-serial chip behind it, and a microcontroller which can be programmed over the USB. No programmer device required - and the same USB port can be used for communicating with the modem software. It also has a good amount of I/O pins which can be used to communicate with the FSK transmitter.

Installation

Transmitting from command line