Communication control system based on satellite system driving layer
By designing a communication control system based on the driver layer of the satellite system, the adaptation problem of physical layer and protocol layer in the satellite communication system is solved, efficient and stable communication control is achieved, and system compatibility and data processing capabilities are improved.
Patent Information
- Application Number
- CN202510497163.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-21
- Publication Date
- 2025-06-27
AI Technical Summary
The adaptation problem between the physical layer and the protocol layer in satellite communication systems leads to complex communication control processes, making it difficult to achieve efficient and stable control.
A communication control system based on the driver layer of the satellite system is designed, located between the protocol layer and the physical layer, including the system initialization module, the timing information processing module, the message reception and analysis module, the interrupt response module and the multi-threaded parallel control module. Through unified interface standards and multi-level collaborative processing mechanism, the effective adaptation between the physical layer and the protocol layer is achieved.
Through unified interface standards and multi-level collaborative processing mechanism, the communication control process is simplified, the system compatibility and scalability are improved, data processing speed and accuracy are improved, and the system stability and reliability are enhanced.
Smart Images

Figure CN120223166A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to satellite communication technology, and in particular to a communication control system based on the satellite system driver layer. Background Art
[0002] With the rapid development of technology, satellite communication occupies an increasingly important position in the global communication field due to its advantages such as wide coverage, large communication capacity, high transmission quality, and being unrestricted by geographical conditions. From network coverage in remote areas, to maritime operations and aviation communication, to key fields such as military defense, satellite communication plays an irreplaceable role. However, in the actual application process of satellite communication systems, many challenges are faced. The physical layer of satellite systems is extremely complex, and there are significant differences in aspects such as the hardware architecture, interface standards, and signal processing methods of antennas and RF modules. This diversity makes it difficult for the protocol layer to effectively adapt to the physical layer, and the communication control process becomes extremely complex. In this context, there is an urgent need for a new technical solution to solve the adaptation problem between the physical layer and the protocol layer and achieve efficient and stable control of satellite system communication. Summary of the Invention
[0003] Aiming at the problems existing in the prior art, the purpose of the present invention is to provide a communication control system based on the satellite system driver layer that solves the adaptation problem between the physical layer and the protocol layer.
[0004] In order to achieve the above-mentioned invention purpose, the present invention provides the following technical solutions:
[0005] A communication control system based on the satellite system driver layer, the system is located between the satellite system protocol layer and the physical layer, and specifically includes:
[0006] A system initialization module for uniformly initializing and configuring the system hardware and software, including the initialization configuration of the GPIO module, RF module, serial port device, memory resources, and thread resources;
[0007] A timing information processing module for obtaining timing information from the timing module in the satellite communication system, performing timing calculations, and synchronizing it to other modules;
[0008] Message receiving and parsing module: used to receive and parse control UDP messages and data UDP messages from the protocol layer, store the data to be sent to the physical layer in the control UDP messages in the shared storage space in the form of data indexes, and perform cache management on the burst time plan of burst data; wherein, the burst time plan is sent using superframes, and each superframe includes a broadcast time slot group, a multicast time slot group, a unicast time slot group, and a service time slot group, and the burst time plan stores the time slot group type identifier, time slot group time parameter, carrier frequency parameter, time slot quantity allocation information, modulation and coding configuration information, and message and waveform type information of each time slot group in each superframe;
[0009] Interrupt response module, used to respond to various interrupt events in the system using a multiplexing mechanism;
[0010] Multi-thread parallel control module, used to separately allocate a thread to each module for multi-thread parallel processing.
[0011] Furthermore, the system initialization module specifically includes:
[0012] GPIO module initialization sub-module, used to configure the working mode and level status of the GPIO port;
[0013] RF module initialization sub-module, used to respectively configure the receive local oscillator frequency, transmit local oscillator frequency, RF hardware gain, and RF channel into the corresponding RF configuration files;
[0014] Clock pulse generation sub-module, used to generate clock pulses by controlling the GPIO port to ensure that the physical layer can perform clock synchronization;
[0015] Serial port device initialization sub-module, used to configure the communication parameters of the serial port device, including baud rate, data bits, parity bit, and stop bit;
[0016] Memory resource initialization sub-module, used to allocate and initialize the memory resources required by the system;
[0017] Thread resource initialization sub-module, used to create and initialize thread synchronization primitives, including semaphores and mutexes.
[0018] Furthermore, the clock pulse generation sub-module specifically includes:
[0019] Clock pulse generation unit, used to first set the value of the GPIO 1008 port to 0, then after a delay of 2 milliseconds, switch its value to 1, and then switch back to 0 after another 2 milliseconds, thereby forming a 2-millisecond clock pulse;
[0020] The status synchronization unit is used to send a synchronization signal to the physical layer, indicating that the synchronization of the satellite signal has been completed, and initiate the subsequent communication process.
[0021] Further, the RF module initialization sub-module specifically includes:
[0022] The receive local oscillator frequency configuration unit is used to open the receive local oscillator frequency configuration file and set the receive local oscillator frequency to a preset receive local oscillator frequency;
[0023] The transmit local oscillator frequency configuration unit is used to open the transmit local oscillator frequency configuration file and set the transmit local oscillator frequency to a preset transmit local oscillator frequency;
[0024] The hardware gain setting unit is used to open the hardware gain setting file and set the hardware gain to a preset gain to adjust the gain of the RF device;
[0025] The hardware register configuration unit is used to open the hardware register configuration file and write the RF chip channel configuration information to the hardware register.
[0026] Further, the timing information processing module specifically includes:
[0027] The timing initialization and configuration sub-module is used to send a configuration command to the timing module and set its baud rate to a preset value;
[0028] The timing data reading sub-module is used to check whether there is a timing message available for reading by monitoring the events generated by the timing module; when there is a timing message, read the timing message from the timing module and store the timing message in the buffer;
[0029] The timing data parsing sub-module is used to parse and calculate various timing information in the timing message from the buffer according to the correspondence between the message type and the preset position and data of the message, including timestamp, longitude and latitude parsing, altitude;
[0030] The timing status synchronization sub-module is used to check the timing status field to determine whether the timing information is valid. If the timing information is valid, trigger the clock synchronization operation and notify the system to start the subsequent clock synchronization and data processing;
[0031] The clock synchronization notification and data sharing sub-module is used to save the timing information to the corresponding data structure after successfully parsing the timing information, provide it to other modules of the system through the sharing mechanism, and set the synchronization flag to 1 and the anti-duplication operation flag to 1 to ensure data synchronization of all parts of the system and prevent duplicate synchronization operations.
[0032] Further, the message receiving and parsing module includes a control message parsing and processing sub-module, and the control message parsing and processing sub-module specifically includes:
[0033] A UDP socket initialization and binding unit, which is used to create a UDP socket and bind it to a preset port to receive control class messages;
[0034] A control class message receiving and parsing unit, which is used to receive control class messages through the created UDP socket, parse out control information from the control class messages according to the correspondence between the message type and the data position and data in the message, create a data index, and store the control information in a shared storage space; the data index specifically stores the superframe number, frame carrier number, time slot number, data length, and data content of each data block of the control information;
[0035] A burst time plan processing unit, which is used to perform cache management on the burst time plan in the control class messages;
[0036] A data integrity verification unit, which is used to perform data integrity verification on the control information in the control information data structure. If the data is incomplete or has errors, an error response is generated and sent back to the protocol layer to inform the sender that the data parsing fails; if it is complete, a successful processing response is generated and sent back to the protocol layer.
[0037] Further, the message receiving and parsing module further includes a data class message parsing and processing sub-module, and the data class message parsing and processing sub-module specifically includes:
[0038] A UDP socket initialization and binding unit: which is used to create a UDP socket and bind it to a preset port to receive data class messages;
[0039] A data class message receiving and parsing unit, which is used to receive data class messages through the created UDP socket, parse out the data content from them, and determine whether the data content is in the same superframe, and update the status in the relevant data index according to the superframe number;
[0040] A time slot verification and data storage unit, which is used to check the time slot number and superframe number after receiving a data class message to ensure that the data belongs to the current valid superframe. If the data belongs to a new superframe, the data index is updated, and the previous data cache is cleared, and then it is stored in the shared storage space in the form of a data index according to the data length and time slot number to ensure that the data is stored in order;
[0041] A data verification and processing unit, which is used to verify the integrity of the data according to the received data length. If the data length matches the expectation, the data is stored in the DDR or other storage areas; if the data is incomplete or has errors, continue to wait for the next valid data message;
[0042] A data storage and address management unit, which is used to calculate a new data storage address according to the data length and the storage address of the previous piece of data, and write the data into the corresponding memory area;
[0043] A response feedback and status update unit: used to send the processing result or status update information to the protocol layer after processing the data, and confirm that the data has been successfully received and stored.
[0044] Further, the interrupt response module is used to perform corresponding response operations on the interrupts of the superframe, pre-configuration module, anomaly detection, and forward receiving device through a polling and event handling mechanism.
[0045] Further, the interrupt response module specifically includes:
[0046] A semaphore waiting sub-module, which is used to wait for an interrupt semaphore passed by other threads;
[0047] An interrupt polling sub-module, which opens each device file and sets the corresponding event type for each device file, polls multiple device files, and waits for various interrupt events to occur;
[0048] An interrupt handling sub-module, which is used to read the superframe count and obtain the timing status when receiving a superframe interrupt, and update the superframe counter and system status information; when receiving a pre-configuration interrupt, load and apply the latest configuration parameters of the communication link; when receiving an anomaly interrupt or a forward receiving interrupt, record the error information in the corresponding device file and trigger an anomaly recovery program.
[0049] A satellite communication system, characterized in that it is configured with the above-mentioned communication control system based on the satellite system driver layer.
[0050] Compared with the prior art, the beneficial effects of the present invention are as follows: The present invention creatively constructs a set of general driver layer frameworks, and overcomes the problem of physical layer heterogeneity in satellite communication systems. Regardless of the hardware architecture used, the driver layer can be adapted through a unified interface standard, effectively avoiding communication obstacles caused by hardware differences, and greatly improving the system compatibility and expandability. This innovation makes the integration of satellite communication systems simpler and more efficient, reducing the R & D and maintenance costs. At the same time, the present invention also proposes a multi-level collaborative processing mechanism. The driver layer closely cooperates with the physical layer and the protocol layer to classify and process the messages, effectively reducing the workload of the protocol layer and improving the speed and accuracy of data processing. In the face of sudden interrupt events, each level responds quickly and collaborates to complete data processing, greatly improving the stability and reliability of the system. BRIEF DESCRIPTION OF THE DRAWINGS
[0051] Figure 1 is a framework diagram of the communication control system based on the satellite system driver layer provided by the embodiment of the present invention;
[0052] Figure 2 It is a schematic diagram of the composition of the emergency time plan and time slots;
[0053] Figure 3 It is a schematic diagram of the process of parsing and processing control type messages;
[0054] Figure 4 It is a schematic diagram of the process of parsing and processing data type messages. Specific implementation manners
[0055] Next, the technical solutions in the embodiments of the present invention will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present invention.
[0056] The embodiments of the present invention provide a communication control system based on the satellite system drive layer, as Figure 1 shown. The system is located between the satellite system protocol layer and the physical layer, and specifically includes:
[0057] A system initialization module, which is used to perform unified initialization configuration on the system hardware and software, including the initialization configuration of the GPIO module, RF module, serial port device, memory resources, and thread resources; through a systematic initialization process, it ensures that each hardware module and software component can be correctly configured and work together, greatly improving the system compatibility and expandability, making the integration of the satellite communication system simple and efficient, and reducing the maintenance cost;
[0058] A timing information processing module, which is used to obtain timing information from the timing module in the satellite communication system, perform timing calculations, and synchronize it to other modules; this module can provide a high-precision timekeeping function to meet the application requirements of the satellite system with strict time accuracy requirements. At the same time, through this module, the timing information in the satellite communication system can be obtained and processed, including positioning data, timestamps, speed information, etc. In addition, the system also tames the system main clock through the high-precision timekeeping pulse of the timing module for accurate time synchronization and positioning calibration, so as to ensure the high precision of satellite communication;
[0059] Message receiving and parsing module: It is used to receive and parse control UDP messages and data UDP messages from the protocol layer, store the data to be sent to the physical layer in the control UDP messages in the shared storage space in the form of data indexes, and perform cache management on the burst time plan of burst data; wherein, the burst time plan is sent by superframe, and each superframe includes a broadcast time slot group, a multicast time slot group, a unicast time slot group, and a service time slot group. The burst time plan stores the time slot group type identifier, time slot group time parameter, carrier frequency parameter, time slot quantity allocation information, modulation and coding configuration information, and message and waveform type information of each time slot group in each superframe. When dealing with emergency communication tasks, the system can quickly optimize resource allocation, give priority to ensuring the communication quality of key services, and significantly improve the response speed and service carrying capacity of the satellite communication system. Through multi-thread parallel processing technology, message receiving and parsing can be carried out simultaneously, and the control information and valid data in the data packet can be quickly extracted and processed. The parallel parsing mechanism of this module can effectively reduce the time delay of message processing, improve the data processing rate and communication efficiency;
[0060] Interrupt response module, which is used to respond to various interrupt events in the system by using a multiplexing mechanism; this module uses a multiplexing mechanism, which greatly reduces the consumption of CPU resources and ensures that interrupt events are responded to in a timely manner. By controlling interrupt handling tasks in parallel with multiple threads, the interrupt response time can be significantly shortened, and the system stability and response speed can be optimized;
[0061] Multi-thread parallel control module, which is used to separately allocate a thread to each module for multi-thread parallel processing. Ensure that multiple tasks such as the timing information processing module, message receiving and parsing, and interrupt response can be executed in parallel at the same time. The multi-thread parallel processing architecture effectively reduces the processing bottleneck brought by the traditional serial method, improves the resource utilization efficiency and overall response speed of the system, avoids competition between tasks, and optimizes the coordinated work of each module.
[0062] The present invention builds a comprehensive driver framework, effectively shields the hardware differences of the physical layer, and provides a standardized and unified interface for the protocol layer. With the help of this unified interface, the protocol layer can access the physical layer resources in a consistent manner, greatly simplifying the communication control process. The driver layer closely cooperates with the physical layer and the protocol layer to process messages hierarchically, effectively reducing the workload of the protocol layer and improving the speed and accuracy of data processing. In the face of sudden interrupt events, each level responds quickly and collaborates to complete fault handling, greatly improving the stability and reliability of the system.
[0063] Among them, the system initialization module specifically includes:
[0064] GPIO module initialization sub-module, which is used to configure the working mode and level state of the GPIO port;
[0065] The RF module initialization submodule is used to configure the receiving local oscillator frequency, transmitting local oscillator frequency, RF hardware gain, and RF channel to the corresponding RF configuration files;
[0066] The clock pulse generation submodule is used to generate clock pulses by controlling the GPIO port to ensure that the physical layer can perform clock synchronization;
[0067] The serial port device initialization submodule is used to configure the serial port device communication parameters, including baud rate, data bit, check bit and stop bit;
[0068] The memory resource initialization submodule is used to allocate and initialize the memory resources required by the system;
[0069] The thread resource initialization submodule is used to create and initialize thread synchronization primitives, including semaphores and mutexes.
[0070] Wherein, the clock pulse generation submodule specifically includes:
[0071] The clock pulse generation unit is used to access the / sys / class / gpio / gpio1008 / value file, first set the value of the GPIO 1008 port to 0, then switch its value to 1 after a 2 millisecond delay, and then switch back to 0 after another 2 milliseconds, thereby forming a 2 millisecond clock pulse;
[0072] The status synchronization unit is used to send a synchronization signal to the physical layer, indicating that the synchronization of the satellite signal has been completed and starting the subsequent communication process.
[0073] The clock pulse generation submodule can provide the system with a stable clock pulse signal, ensuring that the physical layer and other modules can achieve accurate time synchronization, thereby improving the stability and accuracy of satellite communications.
[0074] The RF module initialization submodule specifically includes:
[0075] The receiving local oscillator frequency configuration unit is used to open the receiving local oscillator frequency configuration file " / sys / bus / iio / devices / iio:device2 / out_altvoltage0_RX_LO_frequency" and set the receiving local oscillator frequency to the preset receiving local oscillator frequency, specifically 950MHz, to ensure that the receiver can receive signals within the predetermined frequency range;
[0076] The transmit local oscillator frequency configuration unit is used to open the transmit local oscillator frequency configuration file " / sys / bus / iio / devices / iio:device2 / out_altvoltage1_TX_LO_frequency" and set the transmit local oscillator frequency to the preset transmit local oscillator frequency, specifically 950 MHz, to ensure that the transmitter can transmit signals at the same frequency as the receive frequency;
[0077] The hardware gain setting unit is used to open the hardware gain setting file " / sys / bus / iio / devices / iio:device2 / ou t_voltage0_hardwaregain" and set the hardware gain to the preset gain of -20 dBm to adjust the gain of the RF device; to ensure that the signal is transmitted within a reasonable range and avoid the impact of too strong or too weak signals on the communication quality
[0078] The hardware register configuration unit is used to open the hardware register configuration file " / sys / kernel / debug / iio / iio:devi ce3 / direct_reg_access" and write the RF chip channel configuration information (such as 0x418 2 and 0x458 2) to the hardware register to ensure that the RF device works in the best state and improve the reliability and stability of data transmission.
[0079] Through the above RF module initialization sub-module, it is possible to provide the necessary RF configuration for the satellite communication system to ensure the stability and efficiency of data transmission.
[0080] Among them, the timing module is configured to receive an external time reference signal and generate high-precision time data accordingly to achieve precise synchronization of the time of the target device. Specifically, it includes: a signal receiving unit for receiving a time signal from an external time source, and the time source may include but is not limited to a global positioning system, a Beidou navigation system or other wireless time reference signal sources; a signal processing unit coupled to the signal receiving unit for parsing the received time signal and extracting standard time information; and a time output unit connected to the signal processing unit, adapted to convert the standard time information into a time data format recognizable by the target device and output it through a preset interface, and the interface may include a serial communication interface, a one-second pulse signal (1PPS) interface or a network communication interface.
[0081] Among them, the timing information processing module receives, parses, and processes timing data from the timing module to obtain real-time position information (such as longitude, latitude, altitude, time, etc.), and provides it to other modules of the system for further time synchronization and positioning calibration. This module adopts a multi-threaded parallel processing method and ensures that the satellite communication system can update the timing information in real time during operation and provide accurate time and position data for the system through an efficient data parsing and processing mechanism. The timing information processing module specifically includes:
[0082] The timing initialization and configuration sub-module is used to open the serial port interface ` / dev / ttyUSB0` of the timing device and perform communication configuration. The serial port configuration includes setting the communication baud rate to 115200. Specifically, by calling the `speed_set()` function, a configuration command is sent to the timing module to set its communication parameters, enabling the timing module to exchange data with the system at the correct baud rate;
[0083] The timing data reading sub-module is used to check whether there is a timing message available for reading by monitoring events generated by the timing module; when there is a timing message, the timing message is read from the timing module and the data is stored in the buffer `buff`. The data includes standard NMEA messages prefixed with `$GPGGA`, `$GPRMC`, etc.;
[0084] The timing data parsing sub-module is used to parse and calculate various timing information in the timing message in the buffer according to the corresponding relationship between the message type and the preset position and data of the message, including timestamp, longitude and latitude parsing, altitude; the specific parsing process is as follows: by calling the `getcomma()` function, specific fields in the timing message are parsed and the required position information is extracted; Timestamp parsing: By parsing the message of type `$GPRMC`, the UTC time field is obtained and converted into the system time format. The module extracts the hour, minute, and second fields in the timing data and converts them into the time information used by the system (such as `utc_time`) for subsequent time synchronization. Longitude and latitude parsing: For messages containing longitude and latitude data (such as `$GPGGA` and `$GPRMC`), the module extracts the degree, minute, and second parts of the latitude and longitude and converts them into floating-precision longitude and latitude values (`lla_data.latitude` and `lla_data.longitude`). Altitude parsing: The module also extracts altitude information from the `$GPGGA` message to ensure that the system can obtain the accurate altitude (`lla_data.altitude`) for positioning calibration;
[0085] The timing status synchronization sub-module is used to judge the timing by checking the timing status field (such as the status bit in `$GPRMC`), and determine whether the timing information is valid. If the timing information is valid, it triggers the clock synchronization operation (by calling the `clk_calc_open()` function) and notifies the system to start subsequent clock synchronization and data processing; this operation ensures that the system can timely notify the physical layer to perform clock taming after receiving a valid timing signal;
[0086] The clock synchronization notification and data sharing sub-module is used to save the timing information into the corresponding data structure after successfully parsing the timing information, provide it to other modules of the system through the sharing mechanism, and set the synchronization flag `g_uc_timer_valid` to 1 and the anti-duplicate operation flag `clk_calc_flag` to 1 to ensure data synchronization among all parts of the system and prevent duplicate synchronization operations. The setting of this flag ensures that the system triggers synchronization only when it first obtains a valid timing signal, avoiding duplicate calculations and unnecessary resource waste.
[0087] Through the timing information processing module, the system can efficiently receive and parse the position information from the timing module, providing accurate time synchronization and positioning data. This module enables the system to process the timing information in real-time and continuously, ensuring the stable operation of the satellite communication system in a state of high precision and high efficiency.
[0088] Among them, the message receiving and parsing module includes a control message parsing and processing sub-module and a data message parsing and processing sub-module. The control messages are mainly used for system configuration, parameter setting, and transmission of control commands. The control messages usually contain system configuration information, such as parameters like superframe count, frame type, frequency offset, etc. The system configures and controls the satellite communication system through these messages. The data messages are mainly used for transmitting the actual data in the satellite communication system, such as time slot data, frame data, etc.
[0089] As Figure 3 shown, the control message parsing and processing sub-module specifically includes:
[0090] The UDP socket initialization and binding unit is used to create a UDP socket and bind it to a preset port (defined by `udp_server_param_port`) to receive control messages;
[0091] The control message receiving and parsing unit is used to receive control messages through the created UDP socket by using the `recvfrom()` function, and parse out control information from the control messages according to the correspondence between the message type and the data position and data in the message. For example, information such as superframe count, frame type, frequency offset, number of time slot groups, etc., and create a data index `param_index_w`, and store the control information in the shared storage space; among them, the message type can be determined according to the identifier of the message (such as `param_type_buff`), and various parameters in the message are extracted; the data index is a data structure used to describe the attributes of the data to be sent, aiming to improve the efficiency of data transmission and the convenience of management. The data index specifically stores the following information: superframe sequence number: identifying the superframe number where each piece of data to be sent is located; frame carrier number: recording the frame carrier number used by the data to be sent; time slot number: recording the time slot number where the data to be sent is located; data length: indicating the number of bytes of the data to be sent; data content: this data content field is determined by the upper layer protocol software through UDP messages; by creating and maintaining the data index, the message receiving and parsing module can efficiently associate the data to be sent with the burst time schedule, ensuring that the data is transmitted to the physical layer according to the plan.
[0092] The burst time plan processing unit is used for caching and managing the burst time plan in the control class message; wherein, the burst time plan (Burst Time Plan, BTP) is a time scheduling data structure generated and broadcast by the network control center (Network Control Center, NCC), which is used to coordinate the data burst transmission of multiple return channel satellite terminals (RCST) on the return link. The network control center will dynamically allocate transmission time slots for each terminal according to the service requirements of the terminal, channel conditions and system resource allocation conditions, and the terminal sends data in the form of bursts in the allocated time slots. Therefore, the burst time changes dynamically according to the actual business and network conditions. The burst time of different terminals may be different, and the burst time of the same terminal at different times may also be different to adapt to the burst and diversity of interactive services. Therefore, the present invention uses superframe as the basic time unit for resource scheduling, wherein the duration of each superframe is fixed at 40 milliseconds, and a superframe contains multiple time slot groups. The time slot groups are respectively defined as broadcast time slot groups, multicast time slot groups, unicast time slot groups and service time slot groups, and each type of time slot group supports specific communication functions. Furthermore, each time slot group can be configured with different message types and waveforms, such as using the standard-defined TC-LM waveform for control messages, or the SS-TC-LM waveform for data messages, to adapt to different transmission requirements. In addition, the number of time slots in each time slot group in each superframe can be dynamically changed according to the needs of the application layer to achieve efficient use of resources. The burst time plan specifically stores the following data: time slot group identifier: an identifier used to distinguish broadcast, multicast, unicast or service time slot groups; time parameters: including the start time of each superframe, the relative start time of each time slot group in the 40ms superframe, and the time slot duration; frequency parameters: specifying the carrier frequency used by each time slot group; allocation information: recording the specific time slot number allocation of the time slot in each time slot group; modulation and coding configuration: adaptive coding and modulation (ACM) parameters defined for each time slot group or time slot, such as QPSK, 8PSK or 16QAM, etc.; message and waveform type: indicating the message type (such as data burst, synchronization burst) carried by each time slot group and the corresponding physical layer waveform. The specific time plan and time slot composition of the above data are as follows Figure 2 As shown, the division and allocation method of time slot groups within a 40ms superframe is exemplarily shown. The present invention stores and broadcasts the above scheduling data through a superframe structure with a period of 40ms. When multiple users request data transmission at the same time, the network control center will reasonably allocate time slots according to factors such as user priority and service type, so that burst data of different users are transmitted at different times, thereby achieving efficient resource utilization and flexible service support;
[0093] The data integrity verification unit is used to perform data integrity verification on the control information in the control information data structure. If the data is incomplete or has errors, an error response is generated and sent back to the protocol layer to inform the sender that the data parsing has failed; if it is complete, a successful processing response is generated and sent back to the protocol layer. The response message includes information such as the setting result and status, so that the client or protocol software can know the configuration result of the system.
[0094] The control message parsing and processing sub-module ensures efficient processing of control messages during reception and parsing through a multi-threaded parallel processing method. The module synchronizes with other threads through a semaphore mechanism to ensure that configuration updates can be made in a timely manner and other modules can be notified after receiving a valid control message.
[0095] Among them, the data message parsing and processing sub-module specifically includes:
[0096] UDP socket initialization and binding unit: used to create a UDP socket and bind it to a preset port (defined by `udp_server_data_port`) to receive data messages;
[0097] Data message reception and parsing unit: used to receive data messages through the created UDP socket using the `recvfrom()` function and parse out the data content, such as key information like superframe number, data length, data content, etc., and determine whether the data content belongs to the same superframe, and update the status in the relevant data index according to the superframe number; for example, the module will update the index of data storage according to the time slot number (`us_timeslot_index`) and ensure that the data is correctly stored according to the time slot;
[0098] Time slot verification and data storage unit: used to check the time slot number and superframe number after receiving a data message to ensure that the data belongs to the current valid superframe. If the data belongs to a new superframe, the data index `data_index_w` is updated, and the previous data cache is cleared. Then, according to the data length and time slot number, it is stored in the shared storage space in the `data_index_w` data index manner to ensure that the data is stored in order;
[0099] Data verification and processing unit: used to verify the integrity of the data according to the received data length. If the data length matches the expectation, the data is stored in the DDR or other storage areas; if the data is incomplete or has errors, it continues to wait for the next valid data message; by ensuring the integrity of the data, the system can avoid data loss and errors in real-time data processing;
[0100] A data storage and address management unit, which is used to calculate a new data storage address according to the data length and the storage address of the previous data, and write the data into the corresponding memory area;
[0101] A response feedback and status update unit: After processing the data, it is used to send the processing result or status update information to the protocol layer to confirm that the data has been successfully received and stored. The response feedback includes sending the processing result, data reception status, etc.
[0102] The data type message receiving and parsing sub-module also uses multi-threaded parallel processing to ensure efficient data reception and processing. Through the semaphore mechanism, the module can notify other threads to continue processing subsequent operations after receiving a valid data type message.
[0103] The control type message receiving and parsing sub-module and the data type message receiving and parsing sub-module process different types of messages respectively. Control type messages are mainly used for system configuration and command transmission, while data type messages are mainly used for the reception and storage of actual data. Both receive data through independent UDP ports and perform different parsing and processing according to the message type. Through multi-threaded parallel processing and semaphore synchronization mechanism, the system can efficiently receive, parse and store message data to ensure the stability and efficiency of the satellite communication system.
[0104] Among them, the interrupt response module is used to execute corresponding response operations on the interrupts of devices such as superframe (SFRAME), pre-configuration (PRE) module, anomaly detection (FAULT) and forward reception (FWDRX) through polling and event handling mechanisms. The interrupt response module specifically includes:
[0105] A semaphore waiting sub-module, which is used to wait for the interrupt semaphore `sem2` passed by other threads; to ensure that the interrupt response operation can be executed only after receiving a valid signal;
[0106] An interrupt polling sub-module, which opens each device file and sets the corresponding event type for each device file, and polls multiple device files through the `poll()` function to wait for various interrupt events to occur; specifically, the module will open the files related to devices such as superframe (SFRAME) and pre-configuration module (PRE), and set the corresponding event types (such as `POLLIN` and `POLLOUT`) for each device file to be able to detect interrupts in real time;
[0107] The interruption handling sub-module is used to read the superframe count and obtain the timing status when receiving a superframe interruption, update the superframe counter and system status information. Specifically, the module checks the timing status. If the status is `TAME_DONE`, it reads the superframe count and updates the corresponding superframe and data structures (such as `param_index_w` and `data_index_w`). Meanwhile, the module calls the `irq_reg_write()` function to write relevant parameters into the hardware register and notifies other system modules to update the parameter configuration; when receiving a pre-configuration interruption, it loads and applies the latest configuration parameters of the communication link; when receiving an exception interruption or a forward reception interruption, it records error information in the corresponding device file and triggers an exception recovery program. Specifically, it sends a specific message to the device file through the `write()` function to indicate that the corresponding interruption has been received and performs necessary processing.
[0108] The interruption response module efficiently processes interruptions from devices such as superframes, preprocessing modules, exception detection, and forward reception through a multi-threaded parallel processing method. Each interruption event triggers specific operations, such as reading the superframe count, updating parameter configuration, counting interruptions, etc., so as to ensure that the system can respond in a timely manner and execute necessary operations. Through the semaphore and thread synchronization mechanism, the module can ensure the coordination and stability of the processing of each interruption event, thus achieving efficient and stable system control.
[0109] The embodiment of the present invention also provides a satellite communication system. In addition to the necessary communication module configuration, this system is also configured with the above-mentioned communication control system based on the satellite system driver layer.
[0110] It should be noted that in the embodiments of the above system, the various units and modules included are only divided according to functional logic, but are not limited to the above division, as long as the corresponding functions can be realized; in addition, the specific names of the functional units are only for the convenience of mutual distinction and do not limit the protection scope of the present invention.
[0111] The embodiments described above are only illustrative. The modules described as separate components may or may not be physically separated, and the components shown as modules may or may not be physical modules, that is, they may be located in one place or distributed to multiple network modules. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. Those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus a necessary general hardware platform, and of course, it can also be implemented only by hardware as long as the functions or effects can be achieved.
[0112] It should be understood that the above embodiments and the descriptions in the specification are only the principles, main features and advantages of the present invention. Without departing from the spirit and scope of the present invention, the present invention will have various changes and improvements, and these changes and improvements all fall within the protection scope of the present invention.
Claims
1. A communication control system based on a satellite system driving layer, characterized in that: The system is located between the satellite system protocol layer and the physical layer, and specifically includes: The system initialization module is used to uniformly initialize and configure the system hardware and software, including the initialization configuration of the GPIO module, RF module, serial port device, memory resources, and thread resources; The timing information processing module is used to obtain the timing information from the timing module in the satellite communication system, perform timing calculations, and synchronize it to other modules; Message receiving and parsing module: used to receive and parse control UDP messages and data UDP messages from the protocol layer, store the data in the control UDP message to be sent to the physical layer in the shared storage space in the form of data index, and cache the burst time plan of the burst data; wherein the burst time plan is sent in a superframe, each superframe includes a broadcast time slot group, a multicast time slot group, a unicast time slot group and a service time slot group, and the burst time plan stores the time slot group type identifier, time slot group time parameters, carrier frequency parameters, time slot quantity allocation information, modulation and coding configuration information, and message and waveform type information of each time slot group in each superframe; An interrupt response module is used to respond to various interrupt events in the system using a multiplexing mechanism; The multi-thread parallel control module is used to allocate a thread to each module separately for multi-thread parallel processing.
2. The communication control system based on the satellite system driving layer according to claim 1 is characterized in that: The system initialization module specifically includes: GPIO module initialization submodule, used to configure the working mode and level status of the GPIO port; The RF module initialization submodule is used to configure the receiving local oscillator frequency, transmitting local oscillator frequency, RF hardware gain, and RF channel to the corresponding RF configuration files; The clock pulse generation submodule is used to generate clock pulses by controlling the GPIO port to ensure that the physical layer can perform clock synchronization; The serial port device initialization submodule is used to configure the serial port device communication parameters, including baud rate, data bit, check bit and stop bit; The memory resource initialization submodule is used to allocate and initialize the memory resources required by the system; The thread resource initialization submodule is used to create and initialize thread synchronization primitives, including semaphores and mutexes.
3. The communication control system based on the satellite system driving layer according to claim 2 is characterized in that: The clock pulse generation submodule specifically includes: The clock pulse generating unit is used to first set the value of the GPIO 1008 port to 0, then switch its value to 1 after a delay of 2 milliseconds, and then switch back to 0 after another 2 milliseconds, thereby forming a 2 millisecond clock pulse; The status synchronization unit is used to send a synchronization signal to the physical layer, indicating that the synchronization of the satellite signal has been completed and starting the subsequent communication process.
4. The communication control system based on the satellite system driving layer according to claim 1, characterized in that: The RF module initialization submodule specifically includes: A receiving local oscillator frequency configuration unit is used to open a receiving local oscillator frequency configuration file and set the receiving local oscillator frequency to a preset receiving local oscillator frequency; The transmitting local oscillator frequency configuration unit is used to open the transmitting local oscillator frequency configuration file and set the transmitting local oscillator frequency to a preset transmitting local oscillator frequency; A hardware gain setting unit is used to open a hardware gain setting file, set the hardware gain to a preset gain, and adjust the gain of the RF device; The hardware register configuration unit is used to open the hardware register configuration file and write the RF chip channel configuration information into the hardware register.
5. The communication control system based on the satellite system driving layer according to claim 1, characterized in that: The timing information processing module specifically includes: The timing initialization and configuration submodule is used to send configuration commands to the timing module and set its baud rate to a preset value; The timing data reading submodule is used to monitor the events generated by the timing module and check whether there is a timing message available for reading; when there is a timing message, the timing message is read from the timing module and stored in the buffer; The timing data parsing submodule is used to parse and calculate various timing information in the timing message from the buffer according to the correspondence between the message type and the preset position of the message and the data, including timestamp, longitude and latitude analysis, and altitude; The timing status synchronization submodule is used to check the timing status field to determine whether the timing information is valid. If the timing information is valid, the clock synchronization operation is triggered and the system is notified to start subsequent clock synchronization and data processing; The clock synchronization notification and data sharing submodule is used to save the timing information into the corresponding data structure after successfully parsing the timing information, and provide it to other modules of the system through a sharing mechanism, and set the synchronization flag to 1 and the anti-duplicate operation flag to 1 to ensure data synchronization of various parts of the system and prevent repeated synchronization operations.
6. The communication control system based on the satellite system driving layer according to claim 1, characterized in that: The message receiving and parsing module includes a control message parsing and processing submodule, and the control message parsing and processing submodule specifically includes: UDP socket initialization and binding unit, used to create a UDP socket and bind it to a preset port to receive control messages; A control message receiving and parsing unit is used to receive control messages through the created UDP socket, and parse the control information from the control message according to the message type and the corresponding relationship between the data position and the data in the message, and create a data index to store the control information in the shared storage space; the data index specifically stores the superframe sequence number, frame carrier number, time slot number, data length, and data content of each data block of the control information; A burst time plan processing unit, used for caching and managing burst time plans in control messages; The data integrity check unit is used to perform data integrity check on the control information in the control information data structure. If the data is incomplete or erroneous, an error response is generated and sent back to the protocol layer to inform the sender that the data parsing failed; if the data is complete, a successful processing response is generated and sent back to the protocol layer.
7. The communication control system based on the satellite system driving layer according to claim 6 is characterized in that: The message receiving and parsing module also includes a data message parsing and processing submodule, and the data message parsing and processing submodule specifically includes: UDP socket initialization and binding unit: used to create a UDP socket and bind it to a preset port to receive data packets; A data message receiving and parsing unit, used to receive data messages through the created UDP socket, parse the data content therefrom, determine whether the data content is the same superframe, and update the status in the relevant data index according to the superframe number; The time slot check and data storage unit is used to check the time slot number and super frame number after receiving the data message to ensure that the data belongs to the current valid super frame. If the data belongs to a new super frame, the data index is updated and the previous data cache is cleared. Then, according to the data length and time slot number, the data is stored in the shared storage space in the form of data index to ensure that the data is stored in order; The data checking and processing unit is used to check the integrity of the data according to the length of the received data. If the data length matches the expected one, the data is stored in the DDR or other storage area. If the data is incomplete or has errors, it continues to wait for the next valid data message. A data storage and address management unit, used to calculate a new data storage address according to the data length and the storage address of the previous data, and write the data into a corresponding memory area; Response feedback and status update unit: used to send processing results or status update information to the protocol layer after processing the data to confirm that the data has been successfully received and stored.
8. The communication control system based on the satellite system driving layer according to claim 1, characterized in that: The interrupt response module is used to perform corresponding response operations on the interrupts of superframes, pre-configuration modules, anomaly detection and forward receiving devices through polling and event processing mechanisms.
9. The communication control system based on the satellite system driving layer according to claim 8, characterized in that: The interrupt response module specifically includes: The semaphore waiting submodule is used to wait for the interrupt semaphore delivered by other threads; The interrupt polling submodule opens each device file, sets the corresponding event type for each device file, polls multiple device files, and waits for the occurrence of various interrupt events; The interrupt processing submodule is used to read the superframe count and obtain the timing status when receiving a superframe interrupt, and update the superframe counter and system status information; when receiving a pre-configured interrupt, load and apply the latest configuration parameters of the communication link; when receiving an abnormal interrupt or a forward reception interrupt, record the error information in the corresponding device file and trigger the abnormal recovery program.
10. A satellite communication system, characterized in that: A communication control system based on a satellite system driving layer as described in any one of claims 1-9 is configured.
Citation Information
Cited By
Satellite-borne routing telemetering and remote control method based on multi-thread architecture
CN120639165A
A spaceborne routing telemetry and remote control method based on a multi-thread architecture
CN120639165B