Positioning chip baseband processing module interrupt optimization method, device and system
By filtering and classifying data for transmission under interruption trigger conditions, the problem of high bandwidth occupancy in the TE group channel is solved, and the multi-satellite concurrent tracking capability and positioning accuracy of the positioning chip are improved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-30
- Publication Date
- 2026-04-07
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
In the traditional baseband processing module's interaction with hardware, interrupt requests cause excessive TE group channel bandwidth resource consumption, resulting in low multiplexing efficiency and affecting positioning accuracy and frequency.
By filtering the data to be transmitted under interruption trigger conditions, it is divided into a first category of real-time interactive data and a second category of non-real-time interactive data, which are transmitted through the tracking engine channel and bus respectively, thus optimizing the data transmission strategy.
Reduce the amount of interrupted data transmission, free up channel bandwidth resources of the tracking engine, improve channel reuse efficiency, enhance multi-satellite concurrent tracking capabilities, and improve positioning accuracy and stability.
Smart Images

Figure CN121442388B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the positioning technical field, in particular to a positioning chip baseband processing module interrupt optimization method, device and system. BACKGROUND
[0002] In the working process of a Global Navigation Satellite System (GNSS) positioning chip, a baseband processing module is a core unit for realizing satellite signal capture, tracking and data demodulation, and the interaction efficiency between the baseband processing module and hardware modules (such as capture and tracking hardware modules) directly determines the positioning accuracy and positioning frequency of the chip.
[0003] In the traditional technology, the interaction processing between the baseband processing module and the hardware is completed through an Interrupt Request (IRQ). When the hardware module generates data (such as coherent integration results) or state information (such as data buffer full / empty state and signal locking state), an interrupt request is triggered. After the Interrupt Service Routine (ISR) of the baseband processing module responds to the interrupt, all the data output by the hardware is transmitted to a subsequent processing unit, and a non-real-time task (allocated to different task queues according to priority) completes further processing such as signal capture, signal tracking, signal demodulation, pseudo-range calculation and Doppler calculation.
[0004] However, the above-mentioned method may cause the bandwidth resources of a tracking engine (TE group) to be occupied for a long time, resulting in low multiplexing efficiency of the TE group channel. SUMMARY
[0005] Therefore, it is necessary to provide a positioning chip baseband processing module interrupt optimization method, device and system capable of reducing the amount of interrupt transmission data and improving the multiplexing efficiency of the TE group channel.
[0006] In a first aspect, the present application provides a positioning chip baseband processing module interrupt optimization method, which comprises the following steps:
[0007] When the interrupt triggering condition is met, the data to be transmitted is screened according to a preset data screening mechanism, and is divided into first type data and second type data, the first type data being data that needs to be interacted in real time, and the second type data being data that does not need to be interacted in real time;
[0008] The first type data is transmitted to an external device through a tracking engine channel by an interrupt service routine;
[0009] The priority of the second type data is determined, and the following steps are executed according to the priority of the second type data:
[0010] transmitting the second type of data to the external device through a bus, and / or transmitting the second type of data to the external device through an idle tracking engine channel.
[0011] In one of the embodiments, the data to be transmitted is filtered according to a preset data filtering mechanism, and is divided into the first type of data and the second type of data, including:
[0012] obtaining identification information of the data to be transmitted, the identification information including a data type code;
[0013] dividing the data to be transmitted into the first type of data and the second type of data according to the identification information;
[0014] The first type of data includes at least one of the following: carrier phase data of a satellite signal, timestamp data of a satellite signal, pseudorange observation value, Doppler data, and code phase data.
[0015] In one of the embodiments, the data to be transmitted is filtered according to a preset data filtering mechanism, and is divided into the first type of data and the second type of data, including:
[0016] pre-constructing a data identification library containing a plurality of data that needs real-time interaction and is marked in an artificial or automatic manner;
[0017] If the data to be transmitted belongs to the data marked in the data identification library, the data to be transmitted is marked as the first type of data.
[0018] If the data to be transmitted does not belong to the data marked in the data identification library, the data to be transmitted is marked as the second type of data.
[0019] In one of the embodiments, the second type of data is transmitted to the external device through an idle tracking engine channel, including:
[0020] storing the second type of data in a cache area; if there is an idle tracking engine channel, extracting data from the cache area according to a priority order, and then transmitting the data to the external device based on the idle tracking engine channel;
[0021] The second type of data is transmitted to the external device through a bus, including:
[0022] storing the second type of data in a cache area; if there is no idle tracking engine channel, extracting data from the cache area according to a priority order, and then transmitting the data to the external device based on the bus.
[0023] In one of the embodiments, the interrupt trigger condition comprises at least one of the following:
[0024] The hardware module generates new data, wherein the hardware module refers to a module in the baseband processing module capable of interacting with external devices, and the hardware module at least comprises a tracking engine and / or a capture engine;
[0025] The state information of the hardware module changes, wherein the state information comprises at least one of a data buffer full state, a data buffer empty state and a signal lock state;
[0026] Data requiring real-time interaction is detected.
[0027] In one of the embodiments, before the first type of data is transmitted to external devices through the tracking engine channel by the interrupt service program, the method further comprises:
[0028] Monitoring the load state of each sub-channel in the tracking engine channel;
[0029] Dynamically allocating sub-channels for data transmission for the first type of data according to the load state of each sub-channel.
[0030] In a second aspect, the application further provides a positioning chip baseband processing module interrupt optimization device for implementing the steps of the method of any one of the first aspect, and the device comprises a baseband processing module, wherein the baseband processing module comprises:
[0031] An anti-interference unit for performing anti-interference processing on received radio frequency signals;
[0032] A preprocessing unit for selecting an intermediate frequency signal from the anti-interference processed radio frequency signals according to routing configuration, and performing at least one of down-conversion, down-sampling and filtering on the intermediate frequency signal to obtain preprocessed data;
[0033] A multiplexer for selecting at least one way of data from the preprocessed data to transmit to the tracking engine;
[0034] A tracking engine channel management unit for monitoring the load state of each sub-channel in the tracking engine channel and dynamically allocating sub-channels for data transmission;
[0035] An interrupt control unit for responding to an interrupt request and executing an interrupt service program to transmit the first type of data to external devices through the tracking engine channel, wherein the first type of data is data requiring real-time interaction;
[0036] A non-real-time task processing unit for determining the priority of the second type of data and transmitting the second type of data to external devices through a bus and / or an idle tracking engine channel in priority order, wherein the second type of data is data not requiring real-time interaction.
[0037] Thirdly, this application also provides an interrupt optimization system for a positioning chip baseband processing module, including a radio frequency module and the baseband processing module described in the second aspect;
[0038] The radio frequency module is used to output radio frequency signals;
[0039] The baseband processing module is used to process the radio frequency signal and then transmit it to an external device so that the external device can obtain a positioning result based on the processed radio frequency signal.
[0040] Fourthly, this application also provides a computer device, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to perform the following steps:
[0041] When the interruption triggering condition is met, the data to be transmitted is filtered according to the preset data filtering mechanism and divided into a first type of data and a second type of data. The first type of data is data that requires real-time interaction, and the second type of data is data that does not require real-time interaction.
[0042] The first type of data is transmitted to an external device through the tracking engine channel via the interrupt service routine;
[0043] Determine the priority of the second type of data, and perform the following steps based on the priority of the second type of data:
[0044] The second type of data is transmitted to an external device via a bus, and / or via an idle tracking engine channel.
[0045] Fifthly, this application also provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, performs the following steps:
[0046] When the interruption triggering condition is met, the data to be transmitted is filtered according to the preset data filtering mechanism and divided into a first type of data and a second type of data. The first type of data is data that requires real-time interaction, and the second type of data is data that does not require real-time interaction.
[0047] The first type of data is transmitted to an external device through the tracking engine channel via the interrupt service routine;
[0048] Determine the priority of the second type of data, and perform the following steps based on the priority of the second type of data:
[0049] The second type of data is transmitted to an external device via a bus, and / or via an idle tracking engine channel.
[0050] Sixthly, this application also provides a computer program product, including a computer program that, when executed by a processor, performs the following steps:
[0051] When the interruption triggering condition is met, the data to be transmitted is filtered according to the preset data filtering mechanism and divided into a first type of data and a second type of data. The first type of data is data that requires real-time interaction, and the second type of data is data that does not require real-time interaction.
[0052] The first type of data is transmitted to an external device through the tracking engine channel via the interrupt service routine;
[0053] Determine the priority of the second type of data, and perform the following steps based on the priority of the second type of data:
[0054] The second type of data is transmitted to an external device via a bus, and / or via an idle tracking engine channel.
[0055] The aforementioned method, apparatus, system, computer device, computer-readable storage medium, and computer program product for optimizing interrupts in the positioning chip baseband processing module, by filtering the data to be transmitted according to a preset data filtering mechanism when interrupt triggering conditions are met, and dividing it into a first category of data and a second category of data. The first category of data is data requiring real-time interaction, and the second category of data is data that does not require real-time interaction. This allows for the classification of the data to be transmitted, categorizing it into two types based on real-time requirements, facilitating the use of different transmission strategies and reducing the occupancy rate of redundant non-real-time data on the tracking engine channel resources. The first category of data is transmitted to an external device through the tracking engine channel via an interrupt service routine; the priority of the second category of data is determined, and the following steps are performed according to the priority of the second category of data: transmitting the second category of data to the external device via the bus, and / or transmitting the second category of data to the external device through an idle tracking engine channel. This effectively filters the data for interrupted interactive processing, reduces the amount of data transmitted during interruptions, releases bandwidth resources of the tracking engine channel, and thus improves the multiplexing efficiency of the tracking engine channel. Attached Figure Description
[0056] To more clearly illustrate the technical solutions in the embodiments of this application or related technologies, the drawings used in the description of the embodiments of this application or related technologies will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0057] Figure 1 This is a flowchart illustrating an interrupt optimization method for the baseband processing module of a positioning chip in one embodiment;
[0058] Figure 2 This is a flowchart illustrating the interrupt optimization method for the baseband processing module of the positioning chip in another embodiment;
[0059] Figure 3 This is a structural block diagram of the interrupt optimization device for the baseband processing module of the positioning chip in one embodiment;
[0060] Figure 4 This is a block diagram of the interrupt optimization system for the baseband processing module of the positioning chip in one embodiment;
[0061] Figure 5 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation
[0062] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0063] It should be noted that the terms "first," "second," etc., used in this application can be used to describe various elements, but these elements are not limited by these terms. These terms are only used to distinguish the first element from the second element. The terms "comprising" and "having," and any variations thereof, used in this application, are intended to cover non-exclusive inclusion. The term "multiple" used in this application refers to two or more. The term "and / or" used in this application refers to one of the embodiments, or any combination of multiple embodiments.
[0064] To facilitate understanding of the technical solutions in the various embodiments of this application, the relevant technologies are first briefly described:
[0065] In related technologies, the interaction between the baseband processing module and the hardware is completed through interrupt requests (IRQs). An interrupt request is triggered when the hardware module generates data (such as coherent integration results) or status information (such as a full / empty data buffer or a signal lock state). After the interrupt service routine (ISR) of the baseband processing module responds to the interrupt, it transmits all hardware output data to subsequent processing units. These units are then further processed by non-real-time tasks (assigned to different task queues according to priority), performing signal acquisition, signal tracking, signal demodulation, pseudorange calculation, and Doppler calculation.
[0066] Because the data output by hardware modules (such as the capture engine and tracking engine) contains a large amount of invalid information (such as configuration information, duplicate status indicators, and invalid sampled data of unlocked satellites), when related technologies are used, it is easy to cause the data volume of the interrupt channel to be too large, occupying too much bus bandwidth.
[0067] The tracking engine (TE group) channel is a critical channel in the baseband processing module used to transmit time-sensitive data (such as timestamps of satellite signals, carrier phase data, code phase data, and Doppler data), and its bandwidth resources are limited. Because redundant data from interrupted transmissions occupy part of the TE group channel's bandwidth, this channel cannot simultaneously provide services for more satellite signal tracking channels, resulting in low multiplexing efficiency and thus limiting the chip's multi-satellite concurrent tracking capability.
[0068] Furthermore, the transmission of a large amount of redundant data will prolong the execution time of the interrupt service routine, which may block subsequent high-priority interrupt requests, increase interrupt response latency, affect the baseband processing module's real-time response capability to changes in hardware status, and ultimately reduce the stability of positioning accuracy.
[0069] To address the problems existing in related technologies, this application aims to provide an interrupt optimization method for the baseband processing module of a positioning chip. By effectively filtering the data processed during interrupt interaction in the baseband processing module of the positioning chip, the amount of data transmitted during interruption is reduced, thereby improving the multiplexing efficiency of the TE group channel.
[0070] In one exemplary embodiment, such as Figure 1 As shown, a method for optimizing interrupts in the baseband processing module of a positioning chip is provided. The method in this embodiment may include the following steps S101 to S103. Wherein:
[0071] Step S101: If the interruption triggering condition is met, the data to be transmitted is filtered according to the preset data filtering mechanism and divided into the first type of data and the second type of data.
[0072] In this embodiment, when the interrupt triggering conditions are met, the interrupt control unit in the baseband processing module receives an interrupt request (IRQ) from other hardware modules (such as the tracking engine, capture engine, etc.). Before the interrupt service routine (ISR) responds to the interrupt request, it first filters the data to be transmitted according to a preset data filtering mechanism and divides it into a first type of data and a second type of data. This facilitates the execution of different transmission strategies for the two types of data.
[0073] The interrupt triggering conditions include at least one of the following:
[0074] Scenario 1: The hardware module generates new data. The hardware module refers to the module in the baseband processing module that can interact with external devices (such as the CPU), including the tracking engine and the capture engine.
[0075] In case 1, the hardware module may generate new data that includes coherent integration results.
[0076] Scenario 2: The status information of the hardware module changes.
[0077] In case 2, the status information includes: data cache full, data cache empty, and signal locked.
[0078] Scenario 3: Data requiring real-time interaction is detected.
[0079] In scenario 3, an interrupt request will be triggered when the baseband processing module receives data to be transmitted that includes data that requires real-time interaction.
[0080] It should be understood that the embodiments of this application are not limited to the above three situations, and the conditions for triggering interruption can be flexibly set according to actual application needs.
[0081] The first type of data is data that requires real-time interaction, while the second type of data is data that does not require real-time interaction. For example, the first type of data includes at least one of the following: carrier phase data of satellite signals, timestamp data of satellite signals, pseudorange observations, Doppler data, and code phase data.
[0082] As an optional example, the identification information of the data to be transmitted is obtained, including: data type code; based on the identification information, the data to be transmitted is divided into a first type of data and a second type of data.
[0083] As another alternative example, a data identifier library is pre-built, which contains various types of data that require real-time interaction and are labeled manually or automatically. If the data to be transmitted belongs to the data labeled in the data identifier library, the data to be transmitted is labeled as the first type of data; if the data to be transmitted does not belong to the data labeled in the data identifier library, the data to be transmitted is labeled as the second type of data.
[0084] In this embodiment, by adding a multi-dimensional data filtering mechanism to the interrupted interaction link, the transmission of invalid data can be reduced, the bandwidth resources of the tracking engine channel can be released, and the channel reuse efficiency and the chip's multi-satellite tracking capability can be improved.
[0085] Step S102: The first type of data is transmitted to the external device through the tracking engine channel via the interrupt service routine.
[0086] Interrupt Source Response (ISR) is a special function that is called when a specific hardware event occurs. These events can be timer overflows, external pin status changes, serial port data reception, etc. The main function of the ISR is to respond quickly to these events and perform necessary operations. Optionally, the ISR may include configuring interrupt sources, writing ISR functions, enabling interrupts, and handling the logic after an interrupt.
[0087] In this embodiment, the execution logic of the ISR is used to instruct the first type of data to be transmitted to an external CPU through the tracking engine channel, so that the tracking engine channel can be used to transmit data with real-time requirements.
[0088] Step S103: Determine the priority of the second type of data and transmit it to the external device in priority order via the bus and / or an idle tracking engine channel.
[0089] In this embodiment, the second type of data may include configuration information output by the hardware module, duplicate status identifiers, invalid sampling data of unlocked satellites, etc.
[0090] The three implementation methods included in step S103 will be described below:
[0091] The first method involves determining the priority of the second type of data and then transmitting it to external devices via the bus in priority order. In this method, it is assumed that there are no idle trace engine channels at present, so the second type of data needs to be stored in the buffer first, and then the data is retrieved from the buffer in priority order and transmitted to external devices via the bus (e.g., AHB).
[0092] The second approach involves determining the priority of the second type of data and then transmitting it to the external device through an idle tracking engine channel according to the priority order. In this approach, there may be situations where the number of tracking engine channels is insufficient to meet data transmission requirements. In such cases, the second type of data is first stored in a buffer, and after a busy tracking engine channel switches to an idle state, the data is retrieved from the buffer according to priority and then transmitted to the external device through an idle tracking engine channel.
[0093] The third method involves autonomously selecting either the bus or an idle trace engine channel to transmit the second type of data, based on the actual situation. Because these two methods are independent, they can be executed in parallel. For example, high-priority second-type data can be selected from the buffer and transmitted to the external device using an idle trace engine channel, while low-priority second-type data can be transmitted to the external device using the bus.
[0094] The three methods described above can be understood as follows: When there are enough tracking engine channels, all channels can be used to transmit the second type of data. When there are insufficient tracking engine channels, either of the two methods can be dynamically selected to transmit the second type of data. When all tracking engine channels are busy, the bus can be used to transmit the second type of data.
[0095] In this embodiment, the second type of data after priority filtering is stored in the cache area; if there is an idle tracking engine channel, the data is extracted from the cache area according to the priority order and transmitted to the external device based on the idle tracking engine channel; if there is no idle tracking engine channel, the data is extracted from the cache area according to the priority order and transmitted to the external device based on the Advanced High-performance Bus (AHB).
[0096] In this embodiment, only data requiring real-time interaction with external devices is transmitted to them via interrupt IRQ. Other data is transmitted via AHB, or only when an idle tracking engine channel becomes available is it transmitted. This traffic splitting and filtering mechanism significantly reduces the amount of data transmitted during interrupts, shortens the execution time of interrupt service routines, and prevents high-priority interrupts from being blocked.
[0097] In the aforementioned interrupt optimization method for the baseband processing module of the positioning chip, the data to be transmitted is filtered according to a preset data filtering mechanism when the interrupt triggering conditions are met, and divided into a first category and a second category. The first category is data requiring real-time interaction, and the second category is data that does not require real-time interaction. This allows for the classification of the data to be transmitted, categorizing it into two types based on real-time requirements, facilitating the use of different transmission strategies and reducing the occupancy rate of redundant non-real-time data on the tracking engine channel resources. The first category of data is transmitted to the external device through the tracking engine channel via an interrupt service routine. The priority of the second category of data is determined, and the following steps are performed based on its priority: the second category of data is transmitted to the external device via the bus, and / or, the second category of data is transmitted to the external device via an idle tracking engine channel. This effectively filters the data processed during interrupt interaction, reduces the amount of data transmitted during interruption, releases the bandwidth resources of the tracking engine channel, and thus improves the multiplexing efficiency of the tracking engine channel.
[0098] In one exemplary embodiment, such as Figure 2 As shown, a method for optimizing interrupts in the baseband processing module of a positioning chip is provided. The method in this embodiment may include the following steps S201 to S205. Wherein:
[0099] Step S201: If the interruption triggering condition is met, the data to be transmitted is filtered according to the preset data filtering mechanism and divided into the first type of data and the second type of data.
[0100] The first type of data is data that requires real-time interaction, while the second type of data is data that does not require real-time interaction.
[0101] For the specific implementation process and technical effects of step S201 in this embodiment, please refer to [link / reference]. Figure 1 The relevant descriptions of step S101 in the method embodiment shown will not be repeated here.
[0102] Step S202: Monitor the load status of each sub-channel in the tracking engine channel.
[0103] In this embodiment, the tracking engine channel management unit in the baseband processing module monitors the load status of each channel in real time and then automatically adjusts the task allocation strategy according to the processing pressure. This dynamic management method can not only effectively avoid resource waste, but also promptly identify and resolve potential processing bottlenecks.
[0104] Step S203: Based on the load status of each sub-channel, dynamically allocate sub-channels for data transmission of the first type of data.
[0105] In this embodiment, the tracking engine may include multiple sub-channels, each of which can handle different task requests simultaneously. In a multi-tasking environment, the load status of each sub-channel is dynamically configured based on the monitored load status, which can significantly improve data processing and transmission efficiency and optimize resource utilization.
[0106] Step S204: The first type of data is transmitted to the external device through the tracking engine channel via the interrupt service routine.
[0107] Step S205: Determine the priority of the second type of data and transmit it to the external device in priority order via the bus and / or an idle tracking engine channel.
[0108] For the specific implementation process and technical effects of steps S204-S205 in this embodiment, please refer to [link to documentation]. Figure 1 The relevant descriptions of steps S102 to S103 in the method embodiment shown will not be repeated here.
[0109] In this embodiment, by monitoring the load status of each sub-channel in the tracking engine channel, and dynamically allocating sub-channels for data transmission based on the load status of each sub-channel, resource allocation can be further optimized, so that the load of each sub-channel can be in a relatively balanced state, improving the reuse rate of the tracking engine channel and ensuring the stable operation of the system.
[0110] It should be understood that although the steps in the flowcharts of the above embodiments are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages in other steps. It is understood that the steps in different embodiments can be freely combined as needed, and all non-contradictory solutions formed by such combinations are within the scope of protection of this application.
[0111] Based on the same inventive concept, this application also provides a positioning chip baseband processing module interrupt optimization device for implementing the above-mentioned positioning chip baseband processing module interrupt optimization method. The solution provided by this device is similar to the implementation described in the above method. Therefore, the specific limitations in one or more embodiments of the positioning chip baseband processing module interrupt optimization device provided below can be found in the limitations of the positioning chip baseband processing module interrupt optimization method described above, and will not be repeated here.
[0112] In one exemplary embodiment, such as Figure 3 As shown, a positioning chip baseband processing module interrupt optimization device is provided, including: a baseband processing module 301, the baseband processing module 301 including:
[0113] The anti-interference unit 3011 is used to perform anti-interference processing on the received radio frequency signals;
[0114] The preprocessing unit 3012 is used to select an intermediate frequency signal from the anti-interference processed radio frequency signal according to the routing configuration, and perform at least one of downconversion, downsampling and filtering on the intermediate frequency signal to obtain preprocessed data;
[0115] Multiplexer 3013 is used to select at least one data transmission path from the preprocessed data and send it to the tracking engine;
[0116] The tracking engine channel management unit 3014 is used to monitor the load status of each sub-channel of the tracking engine channel and dynamically allocate sub-channels for data transmission.
[0117] The interrupt control unit 3015 is used to respond to interrupt requests and execute interrupt service routines to transmit the first type of data to external devices through the tracking engine channel. The first type of data is data that needs to be interacted with in real time.
[0118] The non-real-time task processing unit 3016 is used to determine the priority of the second type of data and transmit it to the external device in order of priority via the bus and / or an idle tracking engine channel. The second type of data is data that does not require real-time interaction.
[0119] For example, the preprocessing module 3012 may include a downconversion submodule and an anti-aliasing filter. The downconversion submodule is used to perform frequency conversion on the selected intermediate frequency signal, generate zero intermediate frequency data, and then input it to the anti-aliasing filter for filtering. The anti-aliasing filter is used to perform downsampling and noise filtering on the zero intermediate frequency signal, reduce the data rate, and filter out out-of-band noise.
[0120] The baseband processing module 301 in this embodiment can be used to implement... Figure 1 , Figure 2 The steps in the method embodiment shown.
[0121] Each module in the aforementioned positioning chip baseband processing module interrupt optimization device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in the processor of a computer device in hardware form or independent of it, or stored in the memory of a computer device in software form, so that the processor can call and execute the corresponding operations of each module.
[0122] In one exemplary embodiment, such as Figure 4 As shown, a positioning chip baseband processing module interrupt optimization system is provided, including: a radio frequency module 401 and a baseband processing module 402; wherein:
[0123] RF module 401 is used to output RF signals;
[0124] The baseband processing module 402 is used to process the radio frequency signal and then transmit it to an external device so that the external device can obtain the positioning result based on the processed radio frequency signal.
[0125] Both the radio frequency module 401 and the baseband processing module 402 are connected to external devices for communication. Optionally, the external device will periodically detect the status of the radio frequency module 401 and determine whether the radio frequency module 401 is working properly (open circuit or short circuit) based on the return value.
[0126] The baseband processing module 402 may include: an anti-interference unit, a preprocessing unit, a multiplexer, a tracking engine channel management unit, an interrupt control unit, and a non-real-time task processing unit. Specifically: The preprocessing unit primarily performs down-conversion, downsampling, and filtering on the intermediate frequency signal to reduce noise and out-of-band interference, while simultaneously reducing the data rate to lower data throughput and power consumption. The multiplexer selects one or more signals from multiple inputs to output to the tracking engine through control logic, optimizing hardware resource utilization and implementing complex signal processing flows. The interrupt control unit receives interrupt requests from hardware modules, responds to interrupts, controls the acquisition of raw data, and optimizes the execution logic of the interrupt service routine. The tracking engine channel management unit includes a channel load monitor and a channel allocator, used to monitor the load status of each sub-channel in the tracking engine channel and allocate transmission channels according to data tags, thereby improving channel multiplexing efficiency.
[0127] See Figure 4 As shown, the non-real-time task processing unit can be Figure 4 The capture engine's cache (AE buffer) and capture engine (Acq Engine), including a task priority queue and task executor, are used to process filtered non-real-time data according to priority and transmit it to the external CPU via AHB.
[0128] Combination Figure 4 As shown, when a hardware module experiences a state change or detects data requiring real-time interaction with the CPU, it sends an interrupt request to the interrupt control unit of the baseband processing module 401. After acquiring the data for real-time interaction, it sends this data to the external CPU via the interrupt IRQ. For other data that does not require real-time interaction, it can be sent to the external CPU via the AHB bus.
[0129] Optionally, the data types for real-time interaction may include: satellite signal sampling data, timestamp data, hardware status data, carrier phase, code phase, Doppler, and other time-sensitive data.
[0130] Combination Figure 4 As shown, the baseband processing module 402 also includes a ring buffer, which receives data transmitted from the multiplexer in a First-In-First-Out (FIFO) manner. The tracking engine's TE FIFO queue is used to periodically trigger the tracking engine to process data. Here, Ch0 represents sub-channel 0, Ch1 represents sub-channel 1, Ch2 represents sub-channel 2, and Ch3 represents sub-channel 3; AHB2localbus represents the local bus AHB2, and Irq represents an interrupt request.
[0131] As an optional example, the baseband processing module filters data based on its relevance to the transmission requirements of the tracking engine channel, dividing it into two categories: Category 1 data and Category 2 data. Category 1 data consists of time-sensitive data (such as carrier phase data, timestamp data, pseudorange observations, and Doppler data from satellite signals). The data filtering unit pre-sets a tracking engine-related data identifier library (containing data type codes). If the original data belongs to the tracking engine-related data in the identifier library, it is marked as "TE priority transmission data"; if it does not belong to the tracking engine-related data (such as channel update data), it is marked as "non-TE transmission data". The "non-TE transmission data" is temporarily stored in the temporary buffer of the data filtering unit, waiting to be transmitted when the tracking engine channel is idle, or transmitted through other non-priority channels.
[0132] In this embodiment, for "TE-priority data transmission", data interaction can be performed in a timely manner during an interrupt by triggering an IRQ, thereby ensuring the real-time nature of the data. For "non-TE-transmission data", the tracking engine channel management unit forwards it to the low-priority task queue of the non-real-time task processing unit, where it is processed by a non-real-time task during idle periods, thus avoiding the occupation of bandwidth resources of the tracking engine channel.
[0133] It should be understood that in this embodiment, only data requiring real-time interaction with the CPU is transmitted to the CPU via interrupt IRQ, while other data is transmitted via AHB. This significantly reduces the amount of data transmitted via interrupt, shortens the execution time of interrupt service routines, and avoids blocking high-priority interrupts.
[0134] In this embodiment, by using TE correlation filtering, only time-sensitive data is transmitted to the tracking engine channel, freeing up bandwidth resources occupied by non-TE-related data in that channel. Testing shows that this invention can increase the reuse rate of the tracking engine channel by 40%-70%, supporting simultaneous access from more satellite tracking channels (e.g., increasing from the original 64 channels to 96 channels), thus enhancing the chip's multi-satellite concurrent tracking capability.
[0135] This embodiment reduces interrupt response latency by 15%-30% after reducing invalid data transmission, and enhances the real-time response capability of the baseband processing module to changes in hardware status. At the same time, the stable transmission of the tracking engine channel ensures the accuracy of time-sensitive data, thereby improving the accuracy (e.g., static positioning accuracy is improved from ±0.5m to ±0.3m) and stability of positioning calculation.
[0136] It should be understood that in this embodiment, the filtering of data to be transmitted and the management of each channel of the tracking engine can be achieved by means of hardware logic (such as field-programmable gate array) or software algorithm, without the need for large-scale modification of the hardware architecture of existing GNSS chips. It has strong compatibility and is easy to integrate and promote in existing chip products.
[0137] In one exemplary embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be as follows: Figure 5 As shown, this computer device includes a processor, memory, input / output (I / O) interfaces, and a communication interface. The processor, memory, and I / O interfaces are connected via a system bus, and the communication interface is also connected to the system bus via the I / O interfaces. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system, computer programs, and a database. The internal memory provides the environment for the operating system and computer programs stored in the non-volatile storage media. The database stores data. The I / O interfaces are used for exchanging information between the processor and external devices. The communication interface is used for communicating with external terminals via a network. When the computer program is executed by the processor, it implements an interrupt optimization method for the baseband processing module of a GNSS positioning chip.
[0138] Those skilled in the art will understand that Figure 5 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.
[0139] In one exemplary embodiment, a computer device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to perform the following steps:
[0140] When the interrupt triggering conditions are met, the data to be transmitted is filtered according to a preset data filtering mechanism and divided into a first type of data and a second type of data. The first type of data is data that requires real-time interaction, and the second type of data is data that does not require real-time interaction. The first type of data is transmitted to the external device through the trace engine channel via the interrupt service routine. The priority of the second type of data is determined, and the following steps are performed according to the priority of the second type of data: the second type of data is transmitted to the external device via the bus, and / or, the second type of data is transmitted to the external device via an idle trace engine channel.
[0141] In one embodiment, the processor, when executing a computer program, also performs the following steps:
[0142] Obtain the identification information of the data to be transmitted, which includes: data type code; based on the identification information, divide the data to be transmitted into a first type of data and a second type of data; the first type of data includes at least one of: carrier phase data of satellite signal, timestamp data of satellite signal, pseudorange observation value, Doppler data, and code phase data.
[0143] In one embodiment, the processor, when executing a computer program, also performs the following steps:
[0144] A data identifier library is pre-built, which contains various types of data that require real-time interaction and are marked manually or automatically. If the data to be transmitted belongs to the data marked in the data identifier library, the data to be transmitted is marked as the first type of data. If the data to be transmitted does not belong to the data marked in the data identifier library, the data to be transmitted is marked as the second type of data.
[0145] In one embodiment, the processor, when executing a computer program, also performs the following steps:
[0146] The second type of data is stored in the cache; if there is an idle tracing engine channel, the data is retrieved from the cache according to priority and then transmitted to the external CPU based on the idle tracing engine channel.
[0147] In one embodiment, the processor, when executing a computer program, also performs the following steps:
[0148] The second type of data is stored in the cache. If there is no available tracking engine channel, the data is retrieved from the cache according to priority and then transmitted to the external device via the bus.
[0149] In one embodiment, the interruption triggering condition includes at least one of the following:
[0150] The hardware module generates new data. The hardware module refers to the module in the baseband processing module that can interact with external devices, including the tracking engine and the capture engine.
[0151] The status information of the hardware module changes, including: data buffer full state, data buffer empty state, and signal locked state.
[0152] Data requiring real-time interaction has been detected.
[0153] In one embodiment, the processor, when executing a computer program, also performs the following steps:
[0154] Before transmitting the first type of data to external devices through the tracking engine channel via the interrupt service routine, the load status of each sub-channel in the tracking engine channel is monitored; based on the load status of each sub-channel, a sub-channel is dynamically allocated for data transmission of the first type of data.
[0155] In this embodiment, when the interrupt triggering condition is met, the data to be transmitted is filtered according to a preset data filtering mechanism and divided into a first category and a second category. The first category is data requiring real-time interaction, and the second category is data that does not require real-time interaction. This allows for the classification of the data to be transmitted based on real-time requirements, facilitating the use of different transmission strategies and reducing the resource occupancy of redundant non-real-time data on the tracking engine channel. The first category of data is transmitted to an external device via the tracking engine channel through an interrupt service routine. The priority of the second category of data is determined, and the following steps are performed based on its priority: transmitting the second category of data to the external device via the bus, and / or transmitting the second category of data to the external device via an idle tracking engine channel. This effectively filters the data processed during interrupted interactions, reduces the amount of data transmitted during interruptions, releases bandwidth resources of the tracking engine channel, and improves the reuse efficiency of the tracking engine channel.
[0156] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the method steps of the various embodiments described above.
[0157] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the method steps of the various embodiments described above.
[0158] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium. When executed, the computer program can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, artificial intelligence (AI) processors, etc., and are not limited to these.
[0159] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.
[0160] The above embodiments are merely illustrative of several implementation methods of this application, and their descriptions are relatively specific and detailed. However, they should not be construed as limiting the scope of this application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.
Claims
1. A method for optimizing interrupts in a positioning chip baseband processing module, characterized in that, The method includes: When the interruption triggering condition is met, the data to be transmitted is filtered according to the preset data filtering mechanism and divided into a first type of data and a second type of data. The first type of data is data that requires real-time interaction, and the second type of data is data that does not require real-time interaction. The first type of data is transmitted to an external device through the tracking engine channel via the interrupt service routine; Determine the priority of the second type of data, and perform the following steps based on the priority of the second type of data: The second type of data is transmitted to an external device via a bus, and / or via an idle tracking engine channel; transmitting the second type of data to an external device via an idle tracking engine channel includes: storing the second type of data in a buffer; if an idle tracking engine channel exists, retrieving data from the buffer according to priority and transmitting it to the external device via the idle tracking engine channel; transmitting the second type of data to an external device via a bus includes: storing the second type of data in a buffer; if no idle tracking engine channel exists, retrieving data from the buffer according to priority and transmitting it to the external device via the bus.
2. The method according to claim 1, characterized in that, The process of filtering the data to be transmitted according to a preset data filtering mechanism and dividing it into a first category and a second category includes: Obtain the identification information of the data to be transmitted, the identification information including: data type code; Based on the identification information, the data to be transmitted is divided into a first type of data and a second type of data; The first type of data includes at least one of the following: carrier phase data of satellite signals, timestamp data of satellite signals, pseudorange observations, Doppler data, and code phase data.
3. The method according to claim 1, characterized in that, The process of filtering the data to be transmitted according to a preset data filtering mechanism and dividing it into a first category and a second category includes: A data identifier library is pre-built, which contains various types of data that require real-time interaction and are labeled manually or automatically. If the data to be transmitted belongs to the data marked in the data identifier library, then the data to be transmitted is marked as the first type of data; If the data to be transmitted does not belong to the data marked in the data identifier library, then the data to be transmitted is marked as the second type of data.
4. The method according to claim 1 or 2, characterized in that, The interrupt triggering condition includes at least one of the following: The hardware module generates new data. The hardware module refers to a module in the baseband processing module that can interact with external devices. The hardware module includes at least a tracking engine and / or a capture engine. The status information of the hardware module changes, and the status information includes at least one of the following: data buffer full state, data buffer empty state, and signal lock state. Data requiring real-time interaction has been detected.
5. The method according to claim 1 or 2, characterized in that, Before transmitting the first type of data to an external device via the tracking engine channel through an interrupt service routine, the method further includes: Monitor and track the load status of each sub-channel in the engine channel; Based on the load status of each sub-channel, sub-channels are dynamically allocated for data transmission of the first type of data.
6. An interrupt optimization device for a positioning chip baseband processing module, characterized in that, For implementing the steps of the method according to any one of claims 1 to 5, the apparatus includes a baseband processing module, the baseband processing module comprising: An anti-interference unit is used to perform anti-interference processing on the received radio frequency signals; The preprocessing unit is used to select an intermediate frequency signal from the anti-interference processed radio frequency signal according to the routing configuration, and perform at least one of downconversion, downsampling and filtering on the intermediate frequency signal to obtain preprocessed data; A multiplexer is used to select at least one data transmission path from the preprocessed data and send it to the tracking engine. The tracking engine channel management unit is used to monitor the load status of each sub-channel of the tracking engine channel and dynamically allocate sub-channels for data transmission; The interrupt control unit is used to respond to interrupt requests and execute interrupt service routines to transmit the first type of data to external devices through the tracking engine channel. The first type of data is data that needs to be interacted with in real time. A non-real-time task processing unit is used to determine the priority of the second type of data and transmit it to external devices in order of priority via the bus and / or an idle tracking engine channel. The second type of data is data that does not require real-time interaction.
7. An interrupt optimization system for a positioning chip baseband processing module, characterized in that, Includes the radio frequency module and the baseband processing module as described in claim 6; The radio frequency module is used to output radio frequency signals; The baseband processing module is used to process the radio frequency signal and then transmit it to an external device so that the external device can obtain a positioning result based on the processed radio frequency signal.
8. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 5.
9. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 5.
Citation Information
Patent Citations
ARM9 platform management method and system based on Linux system
CN118689613A
Satellite navigation baseband module optimization method and system
CN118796480A