|This article needs additional citations for verification. (January 2011)|
POCSAG is an asynchronous protocol used to transmit data to pagers. The name comes from Post Office Code Standardization Advisory Group, this being the British Post Office which used to run nearly all telecommunications in Britain before privatization.
The family of POCSAG protocols can operate at three speeds, 512 bits per second (the original specification speed) is the base standard.
With Super-POCSAG 1200 bits per second, or 2400 bits per second transmission rates are possible. Super-POCSAG has mostly displaced the POCSAG in the developed world but the transition is still in progress.
The related Flex Synchronous protocol achieves speeds of 1600 bits per second, 3200 bits per second and 6400 bits per second.
How it works
The ±4.5 kHz frequency shift is used along with a 25 kHz channel spacing, known as "wideband". Some jurisdictions require that all systems move to a "narrowband" configuration, using 12.5 kHz channels and ±2.5 kHz frequency shifts (for example, the US FCC has mandated this transition be completed prior to 2013.)
Often single transmission channels contain blocks of data at more than one of the rates.
Data is transmitted in 32bit 'Pre-amble' code words that are used to synchronise the data transmissions. Each code word can be either an address or data, which is indicated by the first bit transmitted, bit 31. An address code word then contains 18 bits of address (bit 30 through to 13), and 2 function bits (12 & 11).
A data codeword has 20 bits of data (bit 30 through to 11). Both code words then have 10 bits of ECC that is a BCH code normally referred to as BCH(31,21) and has the ability to correct 2 bit errors in each codeword.
The BCH ECC code used provides a 6 bit hamming distance between all valid codewords in the possible set (that is every valid 32 bit codeword differs from ever other one in at least 6 bits). This makes one or two bit error correction of codewords possible, and provides a robust error detection capability.
Code words are transmitted in batches that consist of a sync codeword, defined in the standard as 0x7CD215D8, followed by 16 others containing the data. Any unused code words are filled with the idle value of 0x7A89C197. In practice other values are sometimes used to indicate sync and idle.
Although the address (also referred to as a RIC - Radio Identity Code) is transmitted as 18 bits the actual length is 21 bits the remaining three bits are derived from which of the 8 pairs of code words in the batch the address is sent in. This strategy allows the receiver to turn off for a considerable percentage of the time as it only needs to listen to the pair that applies to it, thus saving a significant amount of battery power.
Before a burst of data there will always be a preamble of at least 576 bits of data containing alternating 1s and 0s, allowing the receiver to synchronize itself to the signal, and is another mechanism that enables the receiver to be turned off for a large percentage of the time.
A message will start with an address codeword followed by a number of data code words and will continue until another address, a sync, or an idle codeword is sent. When the data bits are extracted they will be in one of two formats.
There are two message coding formats defined for the information content part of messages. Numeric messages are sent as 4 bit BCD values, and alphanumeric messages are sent as 7 bit ASCII. The 7 bit ASCII is commonly referred to as 'alpha-paging', and 4-bit BCD is commonly referred to as 'numeric-paging'.
BCD encoding packs 4 bit BCD symbols 5 to a codeword into bits 30-11.
The most significant nibble (bits 30,29,28,27) is the leftmost (or most significant) of a BCD coded numeric datum.
Values beyond 9 in each nibble (i.e. 0xA through 0xF) are encoded as follows:
- 0xA Reserved (possibly used for address extension)
- 0xB Character U (urgency)
- 0xC " ", Space (blank)
- 0xD "-", Hyphen (or dash)
- 0xE ")", Left bracket
- 0xF "(", Right bracket
BCD messages are space padded with trailing 0xC's to fill the codeword. There is no POCSAG specified restriction on message length, but particular pagers of course have a fixed number of characters in their display.
Alphanumeric messages are encoded in 7 bit ASCII characters packed into the 20 bit data area of a message codeword (bits 30-11). Since three seven bit characters are 21 rather than 20 bits and the designers of the standard did not want to waste transmission time, they chose to pack the first 20 bits of an ASCII message into the first code word, the next 20 bits of a message into the next codeword and so forth.
What this means that a 7 bit ASCII character of a message that falls on a boundary can and will be split between two code words, and that the alignment of character boundaries in a particular alpha message code word depends on which code word it is of a message. The side benefit of this is a slightly increased error-correcting code reliability for messages that span more than one POCSAG packet.
Within a codeword 7 bit characters are packed from left to right (MSB to LSB). The LSB of an ASCII character is sent first (is the MSB in the codeword) as per standard ASCII transmission conventions, so viewed as bits inside a codeword the characters are bit reversed.
ASCII messages are terminated with ETX or EOT to distinguish them from numeric messages.[dubious ]
Example of Pocsag transmission in 1200 bits per second. This file may have problems; see Talk:POCSAG#Example file.
|Problems playing this file? See media help.|
In the UK most pager transmissions are in three bands at
- 138 MHz
- 153 to 153.5 MHz
- 454 MHz
The frequency 466.075 MHz was previously used by Hutchinson paging, but the network was shut down in 2000. The frequency is still reserved for paging but is not currently used.
In Germany well known transmissions are at
- 173 MHz range (Fire Departments, Rescue)
- 466.075 MHz (nationwide public paging by emessage)
- 465.970 MHz (-same-)
Licenced paging is possible in any other VHF/UHF bands.
In Spain nationwide service was provided by Telefónica Mensatel but the network was shut down in 2012.
The Swedish pager network marketed as "Minicall" is encoded as POCSAG and broadcast on these frequencies:
- 169.800 MHz
- 161.4375 MHz
The Belgium POCSAG is used for paging over the A.S.T.R.I.D. network:
- 169.625 MHz: POCSAG 2400 (Fire Departments, Rescue)
United States of America
- POCSAG can be used on any of the frequencies reserved for paging.
- 152.0075 Medical Paging
- 157.4500 Medical Paging
- 163.2500 Medical Paging
- 454.0125 to 454.5000 (12.5 KHz steps)
- 462.7500 to 462.9250 (25 KHz steps)
- 929.0125 to 929.9875 (12.5 KHz steps)
- 931.0125 to 931.9875 (12.5 KHz steps)
- 931.4375 Mhz; (UHF) (Skytel)
- 931.9375 Mhz; (UHF) (Skytel)
Australia uses the following frequencies for localised paging, such as in Hospitals, Hotels and other facilities
- 148.3375 MHz (VHF)
- 450.375 MHz (UHF)
- 450.325 MHz (UHF)
Other paging systems for wide-area paging, such as commercial networks are licensed and operate anywhere in the VHF/UHF bands.
- MultimonNG: Open Source POCSAG decoder for Windows, Linux and MacOS X implementing error correction for better reception under weak conditions
- OpenPoc: OpenSource-Application for decoding POCSAG-Transmissions
- PageOne Communications: How a POCSAG paging system operates[dead link]
- Ham Radio Paging: Putting POCSAG On Packet
- OFCOM: United Kingdom Frequency Allocation Table