Research and Application of CMMB Standard Emergency Broadcasting Service

Research and Application of CMMB Standard Emergency Broadcasting Service

1 Introduction of CMMB standard emergency broadcast protocol

1.1 Introduction of CMMB standard

CMMB (China Mobile MulTImedia BroADCasTIng, China Mobile Multimedia Broadcasting) is the first domestically developed system for mobile phones, PDAs, MP3, MP4, digital cameras, notebook computers and other mobile terminals, using S-band satellite signals to achieve "world" Integrated coverage and national roaming, supporting 25 TV programs and 30 radio programs. On October 24, 2006, the State Administration of Radio, Film and Television officially promulgated the China Mobile Multimedia Broadcasting (commonly known as mobile TV) industry standard "GY / T 220.1-2006 Mobile Multimedia Broadcasting Part 1: Modulation of Broadcast Channels", and decided to adopt China STIMi (Satellite-Terrestrial InteracTIve Multi-service Infrastructure), a mobile multimedia broadcast transmission technology standard developed.

The main components of the mobile multimedia broadcast system architecture include the broadcast front end, broadcast TV programs and data services, which are aggregated together for broadcast through the program integration platform. Its transmission system mainly includes a satellite system and a ground conversion network: mainly satellite coverage, supplemented by a ground-reinforced network, covering all of China.

1.2 Introduction of foreign warning broadcasting system

The United States began building an emergency broadcasting system as early as 1963. The original design goal was to provide the President with a means of communication that can quickly inform the people when the country is in an emergency. Later, with the joint efforts of the US Federal Communications Commission, the Federal Emergency Management Agency, and the National Meteorological Service, the emergency broadcast system was gradually improved and renamed the emergency warning system. In addition to the nationwide emergency warning, EAS can also be used in local emergency situations.

In Nepal, the broadcast network is the only communication system that can reach remote areas. Therefore, the Nepal Radio Station (RNE) and the Nepal Television (NTV) have jointly implemented an emergency warning broadcast system using broadcast network communications.

The Japan Meteorological Agency uses an earthquake early warning system, which detects the initial small-scale vibration of the earthquake (seismic longitudinal wave), predicts the epicenter and intensity of the earthquake, and issues an alarm to the public. The information that this system can predict includes the time and magnitude of the main and aftershocks. In this system, broadcast warning technology is used. The system can superimpose the alarm broadcast to the existing TV station and radio broadcast.

1.3 The development of emergency broadcasting in China

At present, China's emergency early warning broadcasting system is still in its infancy. On November 14, 2007, the State Administration of Radio, Film and Television issued "Mobile Multimedia Broadcasting Part 4: Emergency Broadcasting", which began on November 20, 2007. This shows that our country's emergency broadcasting has started from scratch and is gradually on track. The standard is guided by the "National General Emergency Plan for Public Emergencies" issued by the State Council, and is closely integrated with the CMMB technology system. important parts of.

1.4 The core technology of emergency broadcast protocol in CMMB standard

The flow of sending and receiving emergency broadcasts specified in "Mobile Multimedia Broadcasting Part 4: Emergency Broadcasting" is shown in Figure 1. When an emergency broadcast message is to be sent, the server first splits the message and encapsulates it into an emergency broadcast data segment. Then the emergency broadcast data segment is encapsulated into an emergency broadcast table, and finally multiplexed and transmitted. At the receiving end, the analysis is performed in the reverse process. Finally get the specific emergency broadcast message content, and present the content to the user on the terminal. The main function of the client implemented in this article is to parse out the specific emergency broadcast message from the received multiplex frame and display it.

Emergency broadcast sending and receiving process

This client parses the emergency broadcast message according to the format of the emergency broadcast message specified in "Mobile Multimedia Broadcasting Part 4: Emergency Broadcasting". The emergency broadcast table is a multiplexed subframe whose table identifier is 0x10 in time slot 0 (MF_ID = 0), as shown in FIG. 2.

Multiplex subframe

The protocol version number in the emergency broadcast table represents the emergency broadcast protocol version. The lowest version number of the protocol indicates the lowest compatible serial number, and the value is not greater than the current protocol version number. The network level indicates the network level of the network to which the emergency broadcast message belongs. The network number indicates the network number of the network to which the emergency broadcast message belongs. The message ID indicates an emergency broadcast message; multiple emergency broadcast messages are allowed to be broadcast at the same time, and an emergency broadcast message is uniquely determined by the network level, network number, and message ID. The current serial number indicates the serial number of the current emergency broadcast data segment. The last segment number indicates the serial number of the last emergency broadcast data segment. The data length indicates the length of the subsequent emergency broadcast data in bytes. The emergency broadcast data carries the split emergency broadcast message, and the receiving terminal concatenates all the emergency broadcast data with the same network level, network number and message ID according to the order and quantity indicated by the fields of "current segment number" and "last segment number" You can get an emergency broadcast message. The length N of this field is indicated by the signature "data length" field.

2 Design and implementation of EBP client on the terminal

2.1 Design model of EBP client

The EBP (Emergeney Broadcasting Protocol) client is divided into the following four layers from parsing to presentation, as shown in FIG. 3.

Design model of EBP client

EBP parsing layer: It is mainly responsible for parsing emergency broadcast messages from the multiplex subframes with table identifier 0x10 in the time slot 0 (MF_ID = 0) provided by the CMMB protocol stack, and abstracting the corresponding data structures for the upper layer. This layer can be compiled into a library and can be left unmodified during migration.

EBP local management: mainly responsible for the local management of emergency broadcast messages that have been received, such as saving and obtaining emergency broadcast messages that have been received, and deleting expired emergency broadcast messages. This layer needs to do a small amount of work to adapt the corresponding terminal file system when transplanting.

Interface abstraction layer: According to the above two layers, a unified interface for the user UI layer is abstracted. All interfaces used by the user UI layer are provided through this layer and remain unchanged, which reduces the porting work of the user UI layer to a certain extent. User UI layer: mainly responsible for the presentation of emergency broadcast message data to users. For different terminals, such as mobile phones, game consoles, PDAs, car GPS, MP4 that support CMMB technology, the screen size, resolution, and supported UI system may be different. The main job is to transplant this layer. The abstract interface layer, EBP local management layer, and EBP analysis layer constitute the core of the EBP client.

2.2 Processing flow of EBP client

(1) Key news

â‘  Message that needs CMMB protocol stack notification: MSG_EBP_COME. When the CMMB protocol stack finds an emergency broadcast message, it sends a predefined MSG_EBP_COME message to the EBP client.

â‘¡ Message sent by EBP client core to UI: a. EBP_RECEIVE_OK, the client successfully received a new emergency broadcast message, the UI presentation layer needs to be displayed accordingly; b. EBP_RECEIVE_TIMEOUT, the client failed to receive the emergency broadcast message timeout.

(2) Key data structure

â‘ EBP_Index: Emergency broadcast index. The local management layer shown in Figure 3 manages the locally saved emergency broadcast messages through this data structure.

â‘¡EBP_Table: emergency broadcast table, corresponding to the format of the control information table with the table ID of 0x10 shown in FIG. 2, and the data preliminarily parsed in the parsing layer of FIG. 3 for the first time is stored in this structure.

â‘¢ EBP_MessageInfo: non-triggered message, the non-triggered message parsed in the parsing layer of FIG. 3 is saved with this structure.

â‘£EBP_TriggerInfo: trigger message, the trigger message parsed in the parsing layer of FIG. 3 is saved by this structure.

⑤EBF_MsgInfo: emergency broadcast message, because an emergency broadcast message can only be one of trigger or non-trigger, in order to facilitate processing in logic and flow, the structure combines the above structures 3 and 4 into one structure.

â‘¥ EBP: the structure of the emergency broadcast message exposed to the local management layer, the encapsulation of EBP_MsgInfo, plus some attribute fields that the upper layer needs to use.

⑦EBP_CURSOR: A data structure defined by the local management layer, which is used by the interface layer, and the response emergency broadcast message is accessed through this structure.

⑧EBP_LangContent: stores language-related information in non-triggered emergency broadcast messages.

⑨EBP_Ext: stores related content of auxiliary information in non-triggered emergency broadcast messages.

(3) Key interface

â‘ int32_t ebp_receive_data (uint8_t * path); Function: Receive emergency broadcast table.

â‘¡static int32_t ebp_table_decoder (uint8_t * bur, int32_t len);
Function: Parse the emergency broadcast table.

â‘¢static int32_t ebp_message_decoder (uint8_t * * buf_adr, uint32_t len);
Function: Analyze the specific content of emergency broadcasting.

â‘£CMMB_EBP_CURSOR ebp_create_cursor (void_t);
Function: Create a cursor.

⑤CMMB_EBP_CURSOR ebp_get_nextcur (EBP_CURSOR cur);
Function: Get the next cursor of cur cursor.

â‘¥int8_t ebp_getebp (EBP_CURSOR cur, EBP_MESSAGE * msg);
Function: Get the specific content of the emergency broadcast message corresponding to the cur cursor and fill it in the output parameter msg.

⑦static int32_t ebp_checkout (void_t);
Function: Check the index and delete the expired EBP index and related documents.

⑧int8_t ebp_cancel_receive (void_t);
Function: Cancel the reception of emergency broadcast messages.

⑨int32_t ebp_set_cuRFreq_ebpupdate (uint32_t cur_freq);
Function: Set the update sequence number of the emergency broadcast message with frequency point cur_freq.

â‘©static int8_t ebp_read_sared_ebp (EBP * ebp, EBP_Index * index)
Function: Read the emergency broadcast saved locally.

â‘©int32_t ebp_suspend ();
Function: Block emergency broadcast message receiving thread.

â‘©int32_t ebp_active (void_t * param);
Function: Activate the emergency broadcast message receiving thread.

(4) Main process

The main process of this EBP client is divided into the following steps:

â‘ After the client starts, wait for the CMMB protocol stack to send MSG_EBP_COME message. After receiving this message, it indicates that there is an emergency broadcast message in the current CMMB network. The EBP client uses the ebp_receive_data (uint8_t * path) interface to receive the emergency broadcast table. The interface also sets the flag bit. During the process of receiving emergency broadcast messages, it does not respond to the new MSG_EBP_COME message.

â‘¡Use the ebp_table_decoder interface to parse the emergency broadcast table to get 1 set of EBP_Table data.

â‘¢Use the ebp_message_decoder interface to further analyze the EBP_Table data to obtain a set of EBP_MessageInfo or EBP_TriggerInfo data, and check and delete the messages that have been received, and then encapsulate the newly received emergency broadcast message into the EBP structure and add it to the received EBP chain on.

â‘£The core layer of the EBP client sends an EBP_RECEIVE_OK (if failed in the first three steps: EBP_RECEIVE_TIMEOUT) message to the user UI layer.

⑤ The user UI layer performs corresponding processing according to the message sent in step 4. a. If it is an EBP_RECEIVE_OK message, you can use the 4, 5, and 6 interfaces in the key interface to obtain each emergency broadcast message and display the response on the interface. The interface 4 will determine and delete the expired emergency broadcast message.

When there is an emergency broadcast with an emergency level of 1 or 2 in the newly received emergency broadcast message, the interface shown in FIG. 4 is directly popped up. When the urgency level of the newly received emergency broadcast message is level 3 or level 4, only a flashing prompt needs to be given to the user, and the user chooses whether to watch the broadcast message with a low urgency level. b. If it is an EBP_RECEIVE_TIMEOUT message, the strategy adopted by this client is to first call the ebp_cancel_receive interface to clean up the environment where the reception failed, and then enter step â‘¡ again after 10 minutes.

Interface shown

(5) Discussion on reducing the client workload

The big difference between embedded software development and PC software development is that embedded software design must consider the differences of the target machine, such as different screen sizes, different resolutions, different hardware interfaces, different GUI systems, and even different operating systems. If the design of this EBP client software does not consider the factors that are easy to transplant, then the adaptation of these mobile phones, game consoles, PDAs, car GPS, MP4 that are suitable for CMMB technology will require a very large amount of work. Taking this factor into account, this client has done the following two tasks to simplify the migration.

â‘  The decoupling of logic and GUI, which is the separation of the core layer and the UI layer shown in Figure 3. The responsibility of the core layer is to manage the reception, analysis, and local management of emergency broadcast messages. The responsibility of the UI layer is to listen to the EBP_RECEIVE_OK message sent by the core layer. After receiving the message, use the three interfaces ebp_create_cursor, ebp_get_nextcur, and ebp_getebp provided by the interface layer to access the received emergency broadcast data like using an iterator. One of the advantages is that when the client is transplanted between terminals supporting the same GUI system, no migration work is required at the user UI layer. The second advantage is that this layer uses EBP_CURSOR (the current version definition is typedefvoid_t * CMMB_EBP_CURSOR;) to access the top-level data, if the data structure used by the core layer changes in the future, such as "typedef int CMMB_EBP_CURSOR;", that is, the storage of emergency broadcast messages is changed by the linked list As an array, this layer does not need to make any changes.

â‘¡Layering in the core layer. The reason why the core layer is divided into 3 layers is that the interface abstraction layer and the EBP parsing layer can remain unchanged during the migration process, and the local management layer may have to modify the specific operations because of the different file systems during the migration process. So extract this layer in the core layer, and only need to pay attention to this layer when porting the client core layer. The purpose of separating the EBP parsing layer from the interface layer is to only expose the interface and data structure of the interface layer to the user UI layer, so that the content of concern is limited to the data structure that they need. Problems that may change due to structural adjustments. In this way, if a third party implements the user UI layer, its development can be simplified.

In the initial prototype design, this layered structure was not adopted, but the logic and GUI were mixed together. When transplanted to different platforms, it was found that the increased workload was very large and extremely error-prone. So I decided to take refactoring before transplanting. The structure after refactoring is the design architecture described in this article, and the subsequent transplanting workload is very small and very simple. This design makes the author feel the benefits of this idea of ​​separating logic from UI.

2.3 Screenshot of running effect

The receiving process of this client is background receiving, and the running effect is shown in Figure 4. This figure is run on a Windows Mobile5 mobile phone that supports CMMB and is obtained by taking a screenshot with the SuperSnap tool. The label on the left indicates the time to receive the emergency broadcast message. You can switch the content on the right to view the specific emergency broadcast message through the label. The test data used is the CMMBMFS test sample code stream on the China Digital TV Forum.


The above design and implementation fully consider the two major factors of space and efficiency. By comparing with other products on the market, the system can run smoothly on mobile devices with smaller storage space and slower processing speed, which has achieved Satisfactory results.

The EBP client program in this design can successfully receive emergency broadcast messages sent by multiple frequency points in the CMMB network, and the client has a certain key robustness, which can be made suitable for CMMB technology through less porting workload Mobile phones, game consoles, PDAs, car GPS, MP4, achieved the expected purpose. I believe that as the CMMB network matures, the emergency broadcast application of the CMMB standard will inevitably play an important role in disaster warning in China.

A Cabin Air Filter is an air purification filter, sometimes called a [micro cabin Air Filter" or [in-cabin microfilter," designed to remove the microscopic dust, allergens, pollutants and other particles that come into the passenger cabin of your vehicle through its air vents. In addition to making the air in the interior of your car unpleasant and unhealthy, a dirty cabin air filter, clogged with dirt, dust, smelly mold and allergens, can also impact the performance of your defroster, heating and AC.

Cabin Air Filter

Cabin Filter,Car Carbon Cabin Filter,Cabin Air Filter,Auto Cabin Filter

Donguan Bronco Filter Co., Ltd ,