Radio Data System Explained

Radio Data System (RDS) is a communications protocol standard for embedding small amounts of digital information in conventional FM radio broadcasts. RDS standardizes several types of information transmitted, including time, station identification and program information.

The standard began as a project of the European Broadcasting Union (EBU), but has since become an international standard of the International Electrotechnical Commission (IEC). Radio Broadcast Data System (RBDS) is the official name used for the U.S. version of RDS.[1] The two standards are only slightly different, with receivers able to work with either system with only minor inconsistencies in the displayed data.

Both versions carry data at 1,187.5 bits per second (about 1.2kbit/s) on a 57 kHz subcarrier, so there are exactly 48 cycles of subcarrier during every data bit. The RBDS/RDS subcarrier was set to the third harmonic of the 19 kHz FM stereo pilot tone to minimize interference and intermodulation between the data signal, the stereo pilot and the 38 kHz DSB-SC stereo difference signal. (The stereo difference signal extends up 38 kHz + 15 kHz = 53 kHz, leaving 4 kHz for the lower sideband of the RDS signal.)

The data is sent with an error correction code, but receivers may choose to use it only for error detection without correction. RDS defines many features including how private (in-house) or other undefined features can be "packaged" in unused program groups.

RDS is only used on analog stations. The HD Radio equivalent is Program-associated data (PAD).

Development

RDS was inspired by the development of the Autofahrer-Rundfunk-Informationssystem (ARI) in Germany by the Institut für Rundfunktechnik (IRT) and the radio manufacturer Blaupunkt.[2] ARI used a 57-kHz subcarrier to indicate the presence of traffic information in an FM radio broadcast.[3]

The EBU Technical Committee launched a project at its 1974 Paris meeting to develop a technology with similar purposes to ARI, but which was more flexible and which would enable automated retuning of a receiver where a broadcast network transmitted the same radio programme on a number of different frequencies. The modulation system was based on that used in a Swedish paging system and the baseband coding was a new design, mainly developed by the British Broadcasting Corporation (BBC) and the IRT. The EBU issued the first RDS specification in 1984.

Of the three broadcasting partners of the EBU, the BBC were reportedly pursuing the application of RDS technology most enthusiastically and sought to attract bids from manufacturers to make a "BBC-accredited radio" supporting RDS features. Having received no manufacturer interest, however, the corporation engaged designers at Kinneir Dufort to produce a prototype showcasing these features. This prototype, unveiled in 1989, incorporated a liquid-crystal display capable of showing images such as weather maps, accompanied by "a light pen with which the radio can be programmed from barcodes", these barcodes encoding programme information, and supported detachable modules, of which a cassette player module and a printer module were developed. Despite reluctance to develop screen-based functionality that might bring RDS into competition with television, the utility of being able to print out information such as weather maps or even advertising was regarded as potentially interesting to both radio and television manufacturers alike.[4]

Enhancements to the alternative frequencies functionality were added to the standard and it was subsequently published as a European Committee for Electrotechnical Standardization (CENELEC) standard in 1990.

In 1992 the U.S. National Radio Systems Committee issued the North American version of the RDS standard, called the Radio Broadcast Data System. The CENELEC standard was updated in 1992 with the addition of Traffic Message Channel and in 1998 with Open Data Applications and, in 2000, RDS was published worldwide as IEC standard 62106.[5]

RDS2

The RDS-Forum (Geneva/CH) decided at its annual meeting (8–9 June 2015) in Glion/Montreux to bring the new standard RDS2 on the way. The standard will be created in close collaboration with U.S. colleagues from NRSC RBDS-Subcommittee and should offer a unified platform for FM broadcasting and data services worldwide.

Key features:

Content and implementation

The following information fields are normally contained in the RDS data:

AF (alternative frequencies list): This provides the receiver with a list of frequencies that allows a receiver to re-tune to a different frequency providing the same station when the first signal becomes too weak (e.g., when moving out of range). Before performing the switch, a radio will check for a matching PI code to ensure the AF is the same station. This is often used in car stereo systems, allowing the head unit to automatically tune into the stronger signal on the move, optionally with the same regional code (so that, in the case of national broadcasting stations, the user can keep listening to the original radio program).
  • CT (clock time and date): Can synchronize a clock in the receiver or the main clock in a car. Due to transmission vagaries, CT can only be accurate to within 100 ms of UTC. CT is not usually transmitted if a broadcaster has no way to regularly synchronise the clock within the RDS encoder.
  • EON (enhanced other networks information): Informs the receiver about other networks or stations, linked to the one being listened to, for dynamically changing data such as the TA flag turning on for a particular station of the network in a particular moment due to a traffic programme being broadcast, and automatically and temporarily allows the radio to tune into that station.
  • PI (programme identification):This is the unique 4 character hexadecimal code that identifies the station. Every station in a country should use a unique 3 character code with the correct country prefix character. In the US, PI is determined by applying a formula to the station's call sign, or randomly assigned by the NRSC to FM translators (which have a longer call sign, making them incompatible with the formula).[7] The PI code is the most important RDS parameter and the most frequently transmitted within the RDS data structure. The RDS standard for non US use defines country codes for all countries so that no where with common borders has the same code. This removes the need to coordinate PI codes between different countries. Any transmission that carries the same code is considered by receivers to be the same and can be switched to as an alternative frequency to improve reception (even if it is not specifically listed as an alternative frequency). PI codes can be generically linked. A PI code is generically linked if the first, third and fourth nibbles are the same. Generic linking is typically done by radio stations in different areas that are related in some way. Receivers (especially those in vehicles) may have a setting called 'Regional' which when activated allows the radio to switch to another generically linked station. PI codes are normally static (i.e. do not change). However, in the UK some networks use dynamic PI codes where the second nibble changes (to a generically liked code). The national broadcaster Classic FM for example does this. The intention of this is to prevent radios retuning during commercial breaks where each transmitter carries a different set of commercials.
  • PS (programme service name): This is simply an eight-character static display that represents the call letters or station identity name. Most RDS capable receivers display this information and, if the station is stored in the receiver's presets, will cache this information with the PI code, frequency and other details associated with that preset. In some countries, stations use the PS to dynamically send other information. This is prohibited in some countries and was not its intended use within the RDS system.
  • PTY (programme type): This coding of up to 31 pre-defined programme types (e.g., in Europe: PTY1 News, PTY6 Drama, PTY11 Rock music) allows users to find similar programming by genre. PTY31 is reserved for emergency announcements in the event of natural disasters or other major calamities.
  • REG (regional): This is mainly used in countries where national broadcasters run "region-specific" programming such as regional opt-outs on some of their transmitters. This functionality allows the user to "lock-down" the set to their current region or let the radio tune into other region-specific programming as they move into the other region. See the description of Program identification code below for further information.
  • RT (radio text): This function allows a radio station to transmit a 64 (or less commonly 32) character free-form text message that can be either static (such as station slogans) or in sync with the programming (such as the title and artist of the currently playing song).
  • RT+ (radio text plus): An enhancement of the original RT which allows Artist, Title and some other metadata to be sent to receivers.
  • TA, TP (traffic announcement, traffic programme):The receiver can often be set to pay special attention to this flag (taking advantage of the EON linkage if it's available) and, for example, pause a CD or retune to receive a traffic bulletin. The TP flag is used to allow the user to find only those stations that regularly broadcast traffic bulletins whereas the TA flag is used to signal an actual traffic bulletin in progress, with radio units perhaps performing other actions such as pausing a CD/MP3 (so the radio can be heard) or raising the volume during the traffic bulletin.
  • TMC (traffic message channel): Digitally encoded traffic information. Not all RDS equipment supports this, but it is often available for automotive navigation systems. In many countries only encrypted traffic data is broadcast, and so an appropriate decoder, possibly tied to a subscription service, is required to use the traffic data. The subscription is often paid by the vehicle manufacturer and is therefore transparent to the user.
  • US NRSC FM Translator Announcements: The National Radio Systems Committee has introduced a unique Radio Data System Program Identification code for US FM translators. One type of metadata transmitted by RDS subcarrier is the PI code, which is used by the receiver to uniquely identify the audio program being broadcast by the FM station. In the U.S., the PI code has historically been derived from a radio station's call sign, which can become complicated when used in conjunction with FM translators. A new algorithm just for FM translators has been created that assigns a unique PI code to each FM translator. This algorithm has been implemented using a web-based tool and a list of all known PI codes for all FM translators in the US. http://picodes.nrscstandards.org/
  • RDS support

    As far as implementation is concerned, most car stereos will support at least AF, EON, REG, PS and TA/TP.

    There are a growing number of RDS implementations in portable audio and navigation devices thanks to lower-priced, small-footprint solutions.

    RDS compatibility

    The RDS sub-carrier at 57 kHz occupies ±2 kHz of the composite spectrum which in theory keeps it above the upper cutoff of the stereo subcarrier at 53 kHz. However the 53 kHz cutoff is entirely dependent on the performance of the 15 kHz low pass filters used before the stereo encoder. In older equipment, these filters were only designed to protect the 19 kHz pilot and sometimes did not provide sufficient protection to the RDS subcarrier when a significant amount of stereo information was present. In this situation, stereo enhancement devices combined with aggressive audio processing could render the RDS subcarrier unreceivable.

    Composite clipping systems may also degrade the RDS sub-carrier because of the harmonics created by the clipping. More modern composite clippers include filtering to protect the RDS subcarrier.

    The RDS subcarrier typically uses 2–4 kHz of carrier deviation. Therefore, the deviation available for the program material is reduced by this amount, assuming the usual 75 kHz deviation limit is not exceeded.

    Program types

    The following table lists the RDS and RBDS (North American) program type (PTY) codes and their meanings:

    RDS program type RBDS program typePTY code RDS program type RBDS program type
    0 No programme type or undefined16 Weather Rhythm and blues
    1 News17 Finance Soft rhythm and blues
    2 Current affairsInformation18 Children's programmesLanguage
    3 Information Sports19 Social affairsReligious music
    4 Sport Talk20 Religious talk
    5 Education Rock21 Personality
    6 Drama Classic rock22 Travel Public
    7 Culture Adult hits23 Leisure College
    8 Science Soft rock24 Jazz music Spanish Talk
    9 Varied Top 4025 Spanish Music
    10 Country26 National music Hip hop
    11 Rock music Oldies27 Oldies music Unassigned
    12 Soft music28 Folk music
    13 Light classicalNostalgia29 Documentary Weather
    14 Serious classicalJazz30 Alarm test Emergency test
    15 Other music Classical31 Alarm Emergency

    The PTY codes have undergone several expansions. The first RDS standard only defined 0–15 and 31. The later RBDS standard implemented in the U.S. assigned the same meanings to codes 0, 1 and 31, but made no attempt to match the rest of the original RDS plan and created its own list for codes 2–22 and 30,[8] including commercially important (in the U.S.) radio formats such as top 40, religious, country, jazz and R&B which were not in the RDS list. This included mismatched codes for information. sport, and rock. Later RBDS standards added types 23 (College) and 29 (Weather), while the RDS type code list grew to its current size,[9] importing some types (e.g. jazz and country) from the RDBS list. RDBS types 24–26 were added in April 2011. The code mismatches are mainly a problem for people taking portable radios into or out of North America.

    RDS technical specification

    The RDS standard as specified in EN 50067:1998[10] is separated into these sections according to the OSI model. (The network and transport layers are excluded, as this is a unidirectional broadcast standard.)

    1. Data channel (Physical layer)
    2. Baseband coding (Data-link layer)
    3. 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–11) 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 10): 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.

    Block 1Block 2
    Block MeaningProgram Identification CodeGTYPEB0TPPTYvaries
    bit notation per blockb15 — b0b15–b12b11b10b9–b5b4–b0
    Fixed Meaning Per Group?YesYesYesYesYesNo
    Meaning of Block 2 Bits
    Message version A
    Block 1Block 2Block 3Block 4
    Block MeaningProgram Identification CodeGroup TypeB0TPPTYAPPGroup Specific PayloadGroup Specific Payload
    Block Payload Bit ValueXXXX XXXX XXXX XXXXXXXX0XXXXXXXXXXXXXXX XXXX XXXX XXXXXXXX XXXX XXXX XXXX
    Offset Value (Sync)Offset AOffset BOffset COffset D
    Message version B

    Block 3 is used for repeating program identification code.

    Block 1Block 2Block 3Block 4
    Block MeaningProgram Identification CodeGroup TypeB0TPPTYAPPProgram Identification CodeGroup Specific Payload
    Payload Bit ValueXXXX XXXX XXXX XXXXXXXX1XXXXXXXXXXXXXXX XXXX XXXX XXXXXXXX XXXX XXXX XXXX
    Offset Value (Sync)Offset AOffset BOffset C'Offset D

    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.

    PI CodeNibble 0Nibble 1Nibble 2Nibble 3
    MeaningCountry CodeProgram Area CoverageProgram Reference Number
    Bit Positionb15b12b11b8b7b4b3b0

    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 short list of the full group type. Each group type may have a secondary version available

    Group TypeBit ValueMessage Version AMessage Version B
    00000Basic Tuning and Switching Information Only
    10001Program Item Number and Slow Labeling CodeProgram Item Number
    20010Radio Text
    30011Application Identification for Open Data ApplicationsOpen Data Applications
    40100Clock Time and DateOpen Data Applications
    etc...etc...

    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, which indicates the presence of a traffic announcement on a different frequency, so that radio receivers can automatically switch.)

    RDS message examples

    These are non-comprehensive examples that cover just the simple messages likes station name, radio text, and date/time.

    Group type 0 – Version B – Station name

    Version Block 1 : 26bitsBlock 2 : 26bitsBlock 3 : 26bitsBlock 4 : 26bits
    Block InternalPI CodeCheck + Offset AGTYPEB0TPPTYTAM/SDIC1C0Check + Offset BPI CodeCheck + Offset C'Character ACharacter BCheck + Offset D
    Bit Value16 bits00001XXXXXXXXXXX16 bits8 bits char8 bits char
    As we have already described previous fields above, these dot points below show just the application specific fields.

    The station name and decoder identification code is sent progressively over 4 groups, where the offset is defined by bit C1 and C0.

    Character SegmentStation Name :Decoder Identification Code : 4 bit
    C1C0Offset012345673210
    000ABDI
    011ABDI
    102ABDI
    113ABDI

    Group type 2 – Radio text

    RadioText Version A Block 1 : 26bitsBlock 2 : 26bitsBlock 3 : 26bitsBlock 4 : 26bits
    Block InternalPI CodeCheck + Offset AGTYPEB0TPPTYA/BC3C2C1C0Check + Offset BCharacter ACharacter BCheck + Offset CCharacter CCharacter DCheck + Offset D
    Bit Value16 bits00100XXXXXXXXXXX8 bits char8 bits char8 bits char8 bits char
    RadioText Version B Block 1 : 26bitsBlock 2 : 26bitsBlock 3 : 26bitsBlock 4 : 26bits
    Block InternalPI CodeCheck + Offset AGTYPEB0TPPTYA/BC3C2C1C0Check + Offset BPI CodeCheck + Offset C'Character CCharacter DCheck + Offset D
    Bit Value16 bits00101XXXXXXXXXXX16 bits8 bits char8 bits char

    As we have already described previous fields above, these dot points below show just the application specific fields.

    The station name and decoder identification code is sent progressively over 4 groups, where the offset is defined by bit C1 and C0.

    Text SegmentVersion AVersion B
    C3C2C1C0OffsetChar AChar BChar CChar DChar AChar BChar CChar D
    000001234Version B Specifies That This Field Is For

    Program Identification

    Code

    12
    00011567834
    00102910111256
    ............etc.....................
    111115616263643132

    Group type 4 – Version A – Clock time and date

    VersionBlock 1: 26 bitsBlock 2: 26 bitsBlock 3: 26 bitsBlock 4: 26 bits
    Block InternalPI CodeCheck + Offset AGTYPEB0TPPTYRRRTime/Date DataCheck + Offset BTime/Date DataCheck + Offset C'Time/Date DataCheck + Offset D
    Bit Value16 bits01000XXXXXX2 bits16 bits16 bits
    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:

    Time/Date DataHalf Block 2 PayloadBlock 3 PayloadBlock 4 Payload
    Payload Bit Pos7 6 5 4 3 2 1 015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
    Field Bit Posetc...Reserved16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 04 3 2 1 05 4 3 2 1 0± 4 3 2 1 0
    DescriptionReservedModified Julian Day NumberUTC Hours (0–23)UTC Minutes (0–59)Local Time Offset
    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

    The following images illustrate how RDS can be used on an FM radio station. The first three images show the display on the Sony XDR-S1 DAB/FM/MW/LW portable radio. The second and third were taken when the radio was tuned to Nottingham radio station Trent FM.

    RDS decoder chipsets

    Companies such as ST Microelectronics, Skyworks Solutions in Austin, Texas and NXP Semiconductors (formerly Philips) offer single-chip solutions that are found in these devices.

    See also

    High-level RDS APIs
    Related technologies
    Related topics

    References

    External links

    Notes and References

    1. Web site: NRSC-4-B United States RBDS Standard. National Radio Systems Committee. April 2011. 2011-12-31. 2016-10-20. https://web.archive.org/web/20161020015638/http://www.nrscstandards.org/SG/nrsc-4-B.pdf. dead.
    2. Web site: March 2009: RDS is now 25 – the complete history . RDS Forum . Geneva, Switzerland . 2009-03-25 . 1 . 2011-06-15.
    3. EP. 1432157. Method for separating a RDS signal component and signal receiver. 2004-06-23. Sony International (Europe) GMBH. Wildhagen. Jens.
    4. Like radio, only more so . Design . 482 . February 1989 . 3 April 2022 . Hancock . Marion . 28–29 .
    5. Web site: IEC Webstore Publication detail: IEC 62106 Ed. 1.0 English . International Electrotechnical Commission . Geneva, Switzerland . 2009-05-18.
    6. Web site: 3232a-1982 Displayable character set for teletext . EBU Tech . 4 November 2022.
    7. Web site: Jurison. Alan . 28 November 2017. NRSC Activates PI Codes for FM Translators Web Resource. NAB Pilot. 2020-09-17.
    8. News: RDS in Europe, RBDS in the USA – What are the differences and how can receivers cope with both systems? . T. Beale . D. Kopitz . EBU Technical Review . Spring 1993 . 5–11 . 2021-08-30.
    9. RBDS versus RDS – What are the differences and how can receivers cope with both systems? . Scott . Wright . January 1998 . National Radio Systems Committee . 2021-08-30.
    10. Web site: European Standard EN 50067:1998: Specification of the radio data system (RDS) for VHF/FM sound broadcasting in the frequency range from 87,5 to 108,0 MHz . April 1998 . 2021-08-30 . CENELEC . European Committee for Electrotechnical Standardization.
    11. Web site: SPB 490 Universal Encoder Communication Protocol (UECP) specification . version 5.1 . 1997-08-22 . European Broadcasting Union . RDS Forum . 2016-02-08 . dead . https://archive.today/20000301194815/http://www.rds.org.uk/rds98/ebuuecpspecification.htm . 2000-03-01.