The Radio Data System (RDS) is a solution that uses FM multiplexing technology to transform the existing FM radio system and use the remaining frequency band of FM radio to achieve data broadcasting. By analyzing the basic data structure of RDS, this paper introduces the method and program flow of converting the traditional cyclic redundancy check (CRC) operation into a three-byte recursive algorithm and using a table lookup method for fast calculation, and realizing RDS data group synchronization operation under the premise of limited computing speed and resources, as well as how to use the RDS transparent data channel to transmit urban bus advertising information.
Keywords: Radio Data System; Data Structure; Data Group Synchronization; Transparent Data Channel; Information Transmission
0 Introduction
The Radio Data System (RDS) uses FM multiplexing technology to transform the existing FM broadcasting system, using the 57 kHz subcarrier of FM stereo or mono broadcasting in the frequency range of 87.5 to 108 MHz to transmit data information. Its transmitting and receiving devices are fully compatible with the existing FM broadcasting system. The bandwidth occupied by the RDS signal is relatively narrow, and the data transmission rate is only 1 187.5 b/s, which is very suitable for transmitting real-time text information with low data rate requirements. The "urban bus advertising information display screen" designed here uses the transparent data channel of RDS to realize the transmission of text advertising information.
1 System composition and working principle
The composition of the “RDS-based urban bus advertising information display screen” is shown in Figure 1.
In the design of RDS signal reception, a circuit composed of the programmable phase-locked loop frequency synthesizer LC72131M and the radio chip LA1844M of Japan's Sanyo Company is selected to receive FM broadcast signals.
The stereo composite signal output by the discriminator in the LA1844M chip is sent to the RDS decoding circuit S1A0905XO1 for separation, and the RDS baseband signal is extracted and directly input into the PIC16F74 microcontroller, and the data synchronization is processed by software, and then the corresponding advertisements and text information are displayed on the strip LED display in front of the bus.
2 Structure of RDS data group
Figure 2 shows the basic data structure of the RDS baseband signal. The largest element in the structure is called a data group, which consists of 104 bits. Each group consists of 4 data blocks of 26 bits each. Each data block consists of an information code and a check code, where the information code is 16 bits and the check code is 10 bits. The offset in the figure represents the position of each data block in the data group.
The main features of the RDS data structure can be summarized as follows:
(1) The first data block of each RDS data group must contain a program identification code (PI code). The PI code is established to identify the same program broadcast in different regions or even different countries. It is not for the purpose of displaying program information, but is an identity card for a specific program, making the program different from other programs. An important application of the PI code is that when the reception effect of the current frequency point is poor, the RDS receiver can automatically tune to other frequency points that are broadcasting the same program to ensure the listening quality. This function is particularly important in vehicles or mobile receiving devices.
(2) The traffic program identification code (TP code) and program type code (PTY code) always appear in a fixed position in the second data block of each RDS data group, regardless of the version of the data group.
The TP code is a switch flag that is used to indicate whether the radio program broadcast at the frequency point currently tuned contains traffic information, including traffic information that is currently being broadcast and will be broadcast soon.
The function of the PTY code is to inform the listener in the form of characters what type of program is being received, such as sports programs, entertainment programs, etc.
(3) The first 4 bits of the second data block of each RDS data group are the data group type flag. In the RDS specification, data groups are divided into 16 categories from 0 to 15 according to the different 4-bit flags, and each category is divided into two versions, A and B, according to the different values of the 5th bit.
In the RDS specification, there are as many as 16 categories and two versions of RDS data groups, totaling 32 types, each targeting different data characteristics and functions. It should be pointed out that these different types of data groups are sent at different frequencies according to the importance of the information they carry and the difference in the type of information.
Among the RDS systems that have been put into operation in the world, none of them fully realizes all the functions that the RDS system can have, but they are selectively realized according to the specific local conditions. Similarly, in the design process of RDS receivers, based on cost-effectiveness and practicality considerations, some RDS functions are also implemented in a targeted manner.
3 Acquisition of RDS data group synchronization
In the RDS data block, a variation of the standard CRC check is used, and its generating polynomial is:
divide the 16-bit information word g(x) modulo 2, and the remainder is then added to the offset of the data block using modulo 2 addition to form the 10-bit check word sent.
Since the RDS data group and data block are sent continuously without any interval, to complete the synchronization operation of the RDS data group, the CRC check operation must be performed on the newly formed 26-bit data stream after each new data bit is received. In order to ensure the continuity of data processing, the operation must be completed before the next data bit arrives, that is, it must be completed within 842μs (i.e., one RDS code element period).
Since the generating polynomial G(x) of the CRC check in RDS occupies two bytes in the microcontroller operation, according to the principle of CRC check, its operation in the 8-bit microcontroller is actually a three-byte sequence recursive operation, and the remainder obtained from each operation is added to the next three-byte sequence for modulo 2 division. By analogy, each recursive operation is a calculation of a three-byte sequence. Therefore, how to operate on three bytes simply and quickly is the key to the algorithm.
When it comes to simple and fast, people naturally think of the table lookup method, that is, all the remainders of the three-byte sequence are calculated in advance and placed in a table called the remainder table for reading at any time. However, such a table is too large and requires 224 16-bit units, which takes up 225 bytes of storage space. This is unacceptable for the microcontroller. Therefore, we must try to minimize the storage space occupied by the table.
Suppose a three-byte sequence Tabc=[abc], a three-byte sequence Ta00=[a OO] and a two-byte sequence Tbc=[bc]. The relationship between them can be expressed in the form of a polynomial as Tabc(x)=Ta00(x)+Tbc(x). Therefore, for Ta00:
Among them, Qa00(x) is an integer and has nothing to do with the remainder; while Ra00(x) and Tbc are both two-byte sequences, so their sum (modulo 2 addition, that is, XOR operation) is still a two-byte sequence, so it is the remainder Rabc of Tabc, that is:
In this way, the operation of the three-byte sequence Tabc = [abc] can be decomposed into two steps:
(1) By looking up the remainder table, read the remainder Ra00 = [ha00 laO0] of Ta00 = [a O 0];
(2) Perform an XOR operation on Ra00 and [bc] to obtain the remainder Rabc = [habc labc] of [abc].
Since only one byte of [a 0 0] is not zero, the remainder table only needs 256 units, that is, 512 B of storage space.
The PIC16F74 microcontroller is used in the design of the RDS receiver. Its ROM space is only 16 KB. It also needs to complete many other functions such as display control and electronic tuning control. The storage space is very tight, so the remainder table needs to be compressed.
Decompose Ta00=[aoo] into Ta00=[e OO] and Tf00=[f 0 O], and make the upper half byte of byte e the same as the upper half byte of a but the lower half byte is zero, and make the lower half byte of byte f the same as the lower half byte of a but the upper half byte is zero, and then use the generated remainder table of Ta00 and Tf00 to replace the remainder table of Ta00. Since only half of the byte content in Ta00 and Tf00 is not zero, each remainder table only needs 16 units, that is, 32 bytes, and the two remainder tables occupy 64 bytes in total, which can meet the storage space requirements of the PIC16F74 microcontroller.
The fast algorithm for implementing CRC verification is only one of the prerequisites for obtaining the synchronization of the RDS data signal. Since the synchronization information of the RDS data signal is included at the end of each 26-bit data block, it is necessary to receive the data first and then perform the synchronization operation. In the general register of the PICl6F74 microcontroller, a 4-byte buffer is specially set for receiving data. Every time 1 bit of data is received, the data buffer is shifted according to the first-in first-out (FIFO) principle, and then the 26-bit data received recently is subjected to CRC check operation, and the operation result is compared with the RDS data block offset A, B, C, D. If it is found to be the same as one of them, it is considered to have entered the quasi-synchronous state. Due to the randomness of the received data, the probability of calculating the data block offset in a single 26-bit data stream is relatively high, so further detection must be performed. After entering the quasi-synchronous state, the quasi-synchronous counter starts to count the received data bits. When another set of 26-bit data is received, a CRC check operation is performed again. If the operation result is one of the RDS data block offsets A, B, C, D, and is in a sequential relationship with the RDS data block offset detected last time, it can be considered that the synchronization of the RDS data signal has been obtained.
After synchronization is acquired, it is not necessary to perform a CRC check every time a bit of data is received. Instead, a check operation is only performed after a complete 26-bit data is received to detect whether the data is transmitted incorrectly and to obtain the offset of the data block.
4 Transmission of text information in RDS transparent data channel
Since the RDS receiver involved here is mainly used for text signal transmission of bus advertising display screens, the focus is on discussing two data types suitable for text information transmission in RDS, namely open data applications and transparent data channels.
Open data application (ODA) is an important content in RDS data types, which gives the RDS system great flexibility to implement various specific functions. Open data application only specifies the format of the data group, but does not make specific provisions for the content. Due to the regional characteristics of FM broadcasting, different places can make specific provisions for the content of open data applications according to their own needs. Of course, the receiving end must also be able to understand these specific provisions. In practical applications, open data structures are often used for special purpose data broadcasting, such as wireless paging, stock market information, etc. In the relevant standards of RDS, it is stipulated that open data applications should be registered with the standard setting department. Compared
with open data applications, transparent data channels (TDC) make the function implementation of RDS more flexible. The reason why it is called transparent is that it can transmit data of almost any length and format. FIG3 shows the data group structure of the transparent data channel.
The address code in Figure 3 refers to the subchannel number of the transparent data channel, which is composed of a total of 5 binary digits. That is to say, the transparent data channel can accommodate up to 32 channels of data for simultaneous transmission.
In view of the flexibility and scalability of the transparent data channel in terms of functional implementation, the designed "urban bus advertising information display screen based on RDS" adopts the transparent data channel for data transmission. Since it can accommodate up to 32 channels of data transmission, it also means that advertising operators can transmit multiple sets of information on one FM channel at the same time, which is not only conducive to reducing operating costs. It can also display specific advertising information content on specific bus routes in a targeted manner according to the needs of advertisers, thereby improving the flexibility of advertising information delivery.
The RDS specification does not specify the format and length of data transmitted in the transparent data channel, so the data transmission protocol can be designed according to actual needs. Since the system transmits ASCII codes (less than 80H) and Chinese character codes such as numbers, English, punctuation marks, etc., for 16-bit Chinese character codes, 16 bits of a transparent data segment are required for transmission. For ASCII code characters, only the lower 8 bits of a transparent data segment are required for transmission, and the upper 8 bits are reserved for backup. Since each byte of Chinese character encoding starts from OAlH, it will not be confused with ASCII code characters less than 80H.
To facilitate signal processing, a start flag 7EH is set at the beginning of each text message, corresponding to the ASCII code character "~"; an end flag ODH is set at the end of each text message, corresponding to the ASCII code carriage return.
The main process of receiving a complete text message is shown in Figure 4.
5 Conclusion
In the design process of "Urban Bus Advertising Information Display Screen Based on RDS", through careful analysis of the RDS data structure, under the premise of limited processing speed and computing resources, the real-time problem of RDS data group synchronization operation was successfully solved, and the transmission of text information in the RDS transparent data channel was realized, and satisfactory results were achieved in the actual operation process.
As a data transmission method developed based on traditional media, RDS itself is constantly being improved and developed. With the application of more new technical means to the RDS system, the connotation of RDS is also constantly expanding, and its application field will continue to expand.
Previous article:IvyAsia machine-to-machine upgrade solution and steps
Next article:U-band commonly used radio station frequency table
- Popular Resources
- Popular amplifiers
- High signal-to-noise ratio MEMS microphone drives artificial intelligence interaction
- Advantages of using a differential-to-single-ended RF amplifier in a transmit signal chain design
- ON Semiconductor CEO Appears at Munich Electronica Show and Launches Treo Platform
- ON Semiconductor Launches Industry-Leading Analog and Mixed-Signal Platform
- Analog Devices ADAQ7767-1 μModule DAQ Solution for Rapid Development of Precision Data Acquisition Systems Now Available at Mouser
- Domestic high-precision, high-speed ADC chips are on the rise
- Microcontrollers that combine Hi-Fi, intelligence and USB multi-channel features – ushering in a new era of digital audio
- Using capacitive PGA, Naxin Micro launches high-precision multi-channel 24/16-bit Δ-Σ ADC
- Fully Differential Amplifier Provides High Voltage, Low Noise Signals for Precision Data Acquisition Signal Chain
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- CircuitPython in Space
- Schematic diagram of KeyStone DSP synchronous buck converter with VID function
- STM32F407VGTx FSMC and UART5 conflict issue?
- EEWORLD University Hall----Statistical Machine Learning
- Silicon Labs Bluetooth EFR32MG Study Notes 1 - Installing Simplicity Studio Development Environment
- 28335 serial communication method
- Award-winning live broadcast: Comprehensive explanation of TI MSP Academy tutorials. Registration is open~
- The Dragon Boat Festival Chip Coin Exchange Event has begun! Zongzi, practical tool sets, and adjustable temperature soldering stations are waiting for you!
- What external factors interfere with electromagnetic coupling?
- EEWORLD University Hall----On-time Atomic Linux Video