The RDS standard as specified in
EN 50067:1998 is separated into these sections according to the
OSI model. (The network and transport layers are excluded, as this is a unidirectional broadcast standard.) •
Data channel (Physical layer) •
Baseband coding (Data-link layer) •
Message format (Session and presentation layer)
Data channel (Physical layer) The physical layer in the standard describes how the bitstream is retrieved from the radio signal. The RDS hardware first demodulates the 57 kHz RDS subcarrier signal to extract a
differential Manchester encoded signal which contains both the bit clock and the
differentially encoded bitstream. This allows the RDS decoder to tolerate phase inversion of its input.
Baseband coding (Data-link layer) At the data link layer, 26 consecutive bits form a "block", consisting of 16 data bits followed by 10 error correction bits. Four blocks make a 104-bit "group". The error correction bits also encode the "offset", or block number within a 4-block group. The error correction is done using a 10-bit
cyclic redundancy check, with polynomial . (Neither a preset nor post-invert is used, as they are not necessary with a fixed-size data field.) The CRC is also summed with one of five "offset" words which identify the block: A, B, C, C′, or D. Four consecutive blocks (ABCD or ABC′D) make up a "group" of 104 bits (64 data bits + 40 check bits). There are slightly over 11.4 groups transmitted per second. There is no gap between blocks. The receiver synchronizes to groups and blocks by checking CRCs on each 26 bits until synchronization is achieved. Once synchronized (the offset word is predictable), the code is capable of correcting up to 5-bit
burst errors. This basic modulation and block structure was originally developed for the "mobile search" protocol, with the difference that MBS (or the North American equivalent MMBS "modified MBS") does not use an offset word. To allow the two systems to interoperate (and to allow FM radio stations to transmit RBDS data while maintaining their pager contracts), the RBDS standard defines a sixth all-zero offset word E. Groups of four E blocks may be mixed with RBDS groups, and ignored by RBDS receivers. (Likewise, the RBS offset words are chosen to appear as uncorrectable errors to MBS receivers.) Data within each block (and group) is transmitted
most significant bit first, and thus are numbered from bit 15 (transmitted first) to bit 0 (transmitted last). The most frequently information transmitted is a 16-bit "program identification" code, identifying the transmitting radio station. Blocks A and C′ always include the PI code; offset C is used when the third block contains something else.
Shared structure Block 1 always contains the 16-bit program identifier. The first 11 bits (bits 15–5) of block 2 are also the same in all groups. The first 4 bits (bits 15–12) of block 2 are the "group type code", which describe the interpretation of the remaining data. Each group type comes "A" and "B" variants, distinguished by the fifth "B" bit (bit 11): If B=0, then the group is 0A through 15A, and contains 5+16+16 = 37 bits of data. If B=1, block 2 contains a PI code (and is encoded with offset word C′), the group is one of 0B through 15B, and contains 21 bits of data. Within Block 1 and Block 2 are structures that will always be present in both group versions, for fast and responsive identifications. The first block of every group, will always be the program identification code. The second block dedicates the first 4 bits for Application/Group Type. Meaning of Block 2 Bits • GTYPE: Group Type • B0: If B0=0 then Message Group Type A else Type B • TP: Traffic Program. Indicates this channel includes periodic
traffic reports. • PTY: Program Type (See .) • ????: Rest of the bits are group type dependent
Message version A Message version B Block 3 is used for repeating program identification code.
Program identification code (PI code) This allows for quick identification of radio program type, based on country, coverage area, and program reference number. While the country code is specified by the standard, bit 11 to bit 0 is specified by each country local authorities. Country codes are re-used, but only in geographically distant regions beyond FM broadcast range from each other. For example, country code F is assigned to
France,
Norway,
Belarus and
Egypt. Neighbouring countries never have the same country code which means it is not necessary for PI codes to be coordinated with adjacent countries.
Group type This is a list of the 16 group types. Each group type has two possible versions available
Traffic Program This can be considered an additional program type bit, and indicates that the station broadcasts periodic
traffic reports. By including it in every group, a receiver can quickly search for a station which includes traffic reports. Another bit, traffic announcement (TA), is sent in block types 0A, 0B and 15B to indicate that such a report is in progress. It is common for otherwise-
simulcast transmitters to have periodic local traffic reports which are customized to the individual transmitter. The traffic announcement bit tells a receiver that a transmitter-specific broadcast is in progress, and it should avoid switching frequencies while they are in progress. There is a different form of traffic announcement bit in block type 14B (Enhanced Other Networks), which indicates the presence of a traffic announcement on a
different radio station, so that radio receivers can automatically switch.
RDS message examples These are non-comprehensive examples that cover just the simple messages like station name, radio text, and date/time.
Group type 0 – Version B – Station name As we have already described previous fields above, these dot points below show just the application specific fields. • TA : Traffic Announcement • M/S : Music/Speech The station name and decoder identification code is sent progressively over 4 groups, where the offset is defined by bit C1 and C0.
Group type 2 – Radio text As we have already described previous fields above, these dot points below show just the application specific fields. • A/B : Text A/B flag is used to detect if a screen clear is requested. • C3 to C0 : Is the text segment offset value The station name and decoder identification code is sent progressively over 4 groups, where the offset is defined by bit C1 and C0.
Group type 4 – Version A – Clock time and date When group type 4A is used, it shall be transmitted every minute according to EN 50067. The clock time group is inserted so that the minute edge will occur within ±0.1 seconds of the end of the clock time group. Time and date are packed as these: Note: The local time offset is expressed in
multiples of half hours within the range −15.5h to +15.5h. It is expressed in
signed magnitude form, with the most significant bit being the "Local Offset
Sign" bit (LOS), 0 = + (east of
Greenwich), 1 = −. ==Example RDS usage==