Remote batch online upgrading method for software of pseudo-satellite navigation and positioning system
Through the remote batch online upgrade method, wireless communication module and CRC verification technology are used to solve the problem of long-term upgrade of FPGA equipment, and the rapid and reliable upgrade of multiple equipment is achieved, and maintenance efficiency is improved.
Patent Information
- Application Number
- CN202510333059.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-20
- Publication Date
- 2025-04-18
AI Technical Summary
The upgrade of FPGA equipment in the existing pseudo-satellite navigation and positioning system takes a long time, resulting in low maintenance efficiency.
The remote batch online upgrade method is adopted, and the program version number currently running on the system side is read through the wireless communication module, parsed and specified the FLASH storage area, sent the upgrade program and performed CRC verification, wrote to the specified area, switched the startup program and started the timer to determine that the upgrade was successful.
It realizes the rapid remote upgrade of multiple devices under a public mobile universal network or self-constructed WiFi wireless network, reducing upgrade time, improving maintenance efficiency, and ensuring data reliability.
Smart Images

Figure CN119847575A_ABST
Abstract
Description
Technical Field
[0001] The invention relates to the field of satellite radio positioning systems, and in particular to a method for remote batch online upgrading of pseudo-satellite navigation and positioning system software. Background Art
[0002] As a GNSS backup, pseudo-satellite navigation and positioning systems are widely used in various complex geographical environments such as indoors, underground, in tunnels, and in urban canyons. Field Programmable Gate Arrays (FPGAs) are field programmable, highly flexible, and highly adaptable, and are widely used in pseudo-satellite navigation and positioning systems. In complex geographical environments, FPGA upgrades require on-site power-off and disassembly of installed pseudo-satellite system equipment, and then use the JTAG downloader to upgrade it, and then reinstall and run it. It takes about 1 hour to disassemble and upgrade just one FPGA device. Therefore, it is very time-consuming to update and maintain pseudo-satellite navigation and positioning systems that have a large number of FPGA devices installed. In addition, since FPGA devices are integrated into pseudo-satellite navigation and positioning systems, disassembly and debugging are more difficult and time-consuming, which further reduces maintenance efficiency. Summary of the invention
[0003] In order to overcome the problem that FPGA device upgrade takes a long time, resulting in low maintenance efficiency of pseudo-satellite navigation and positioning system, the present invention provides a remote batch online upgrade method for pseudo-satellite navigation and positioning system software.
[0004] The present invention provides a method for remote batch online upgrading of pseudo-satellite navigation and positioning system software, which adopts the following technical scheme: A method for remote batch online upgrading of pseudo-satellite navigation and positioning system software comprises the following steps: Read the program version number currently running on the system; The user end parses the current running program version number in the storage area of the pseudo satellite navigation and positioning system FLASH, and specifies the FLASH storage area in the upgrade program; The user end sends the upgrade program to the system end in frames through the wireless communication module; The system receives each frame of the upgrade program and performs a CRC check; Write each frame of the upgrade program into the specified FLASH storage area; The system switches the startup program and starts from the FLASH area of the upgrade program; The system starts the timer to set the timing; Determine whether the timer has timed out. If not, it indicates that the upgrade is successful; otherwise, it indicates that the upgrade is unsuccessful and jumps to the current program storage area.
[0005] In a specific possible implementation scheme, when writing the upgrade program into the FLASH storage area, the FLASH storage area where the startup program runs is excluded.
[0006] In a specific possible implementation scheme, after the system receives each frame upgrade program and performs a CRC check, if the check passes, the frame upgrade program is written into DDR3, otherwise, the frame upgrade program is re-acquired.
[0007] In a specific possible implementation scheme, after the system end writes the current frame upgrade program into DDR3, it obtains the next frame upgrade program and performs CRC check.
[0008] In a specific feasible implementation scheme, the method for determining whether the timer has timed out is: the timer measures the start time and compares the start time with a preset time threshold. If the start time is less than the time threshold, it indicates that it has not timed out; otherwise, it indicates that the upgrade has not been successful.
[0009] In a specific possible implementation method, after jumping to the current program storage area, an upgrade failure message is returned to the user end.
[0010] In a specific possible implementation scheme, the system end and the user end perform wireless communication via a wireless communication module, and the wireless communication module is a wireless 4G communication module or a wireless WiFi module.
[0011] In a specific possible implementation method, the version number of the program currently running on the system side is read by reading the version number in the FLASH version number area.
[0012] In a specific implementation scheme, the FLASH storage area includes a version number area, a timing area and a program area. The version number area stores the version number, the timing area stores the timer, and the program area is used to store the upgrade program.
[0013] In summary, the present invention has the following beneficial effects: 1. In the area covered by the public mobile network, users can use devices with 4G communication modules to connect to the 4G communication module in the pseudo-satellite navigation and positioning system through the public mobile network in any office where the public mobile network is available to achieve remote upgrades. In areas not covered by the public mobile network, the user end uses a device that transmits WiFi signals as a WiFi AP end. Within the visible WiFi signal range, the pseudo-satellite navigation and positioning system acts as a STA end and connects to the AP end to build a WiFi signal link to achieve remote upgrades.
[0014] 2. Using public mobile networks and self-built WiFi wireless networks, each device has a wireless communication module and a different terminal number, supporting batch online upgrades of multiple devices at the same time.
[0015] 3. The FLASH storage area of the FPGA running program and the FLASH storage area of the FPGA update do not affect each other, and the upgrade data reception, verification, and writing do not affect the normal use of the device.
[0016] 4. To ensure the reliability of data and verify the problem of retransmission of the entire block of data due to frame loss or individual data errors, the remote batch online upgrade method of the pseudo-satellite navigation and positioning system adopts one check per frame, that is, each frame of the upgraded data is received and written for verification, and the upgrade cannot be successfully rolled back. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] Figure 1 It is a schematic diagram of the remote batch online upgrade method.
[0018] Figure 2 This is a schematic diagram of the remote batch online upgrade process.
[0019] Figure 3 This is a schematic diagram of the FLASH partition.
[0020] Figure 4 This is the flowchart of remote batch online upgrade. DETAILED DESCRIPTION
[0021] The following combination Figure 1-Figure 4 The present invention is described in further detail.
[0022] The method for remote batch online upgrading of pseudo satellite navigation and positioning system software comprises the following steps: S1, the system is waiting for upgrade.
[0023] S2, read the version number of the program currently running on the system.
[0024] Specifically, the user terminal determines the version of the FPGA program by reading the version number in the FLASH version number area.
[0025] S3, the user end parses the storage area of the pseudo-satellite navigation and positioning system FLASH in the version number of the currently running program, and specifies the FLASH storage area in the upgrade program.
[0026] Specifically, by parsing the FLASH storage area where the FPGA program is stored, the upgrade program can be assigned to other FLASH storage areas. The current FPGA program storage area and the update upgrade program storage area are polled and erased or written, so that the data transmission and storage of the update maintenance are completed without affecting the normal operation of the current FPGA.
[0027] For ease of understanding, further explanation is given by taking the current program working in FLASH area 1 and the upgrade program needing to be stored in FLASH area 2 as an example.
[0028] In order to ensure the reliability of the updated data, the FLASH storage area is divided into three different sub-areas, namely the version number area, the timing area and the program area. For easy distinction, the sub-areas of FLASH area 1 are divided into the version number area 1, the timing area 1 and the program area 1; the sub-areas of FLASH area 2 are divided into the version number area 2, the timing area 2 and the program area 3. Timers are stored in both the timing area 1 and the timing area 2.
[0029] After obtaining the version number in step S2, further analysis is performed to obtain that the current program is running in FLASH area 1, indicating that the upgrade program needs to be written into program area 3 of FLASH area 2. The user terminal specifies in the upgrade program that the upgrade program is written into program area 3 of FLASH area 2.
[0030] S4, the user end sends the first frame of the upgrade program to the system end through the wireless communication module.
[0031] The design of checking and writing each frame can ensure the reliability of data and check the problem of retransmission of the entire block of data due to frame loss or individual data errors.
[0032] S5, the system receives the first frame of the upgrade program and performs a CRC check.
[0033] The first frame of the upgrade program is verified by the CRC algorithm. If the CRC verification is passed, it indicates that the first frame of the upgrade program remains complete and accurate during transmission, and is temporarily stored in DDR3 for subsequent operations. If the verification fails, it indicates that the first frame of the upgrade program is damaged or lost during transmission, and the process returns to step S4 to resend the first frame of the upgrade program. This ensures the integrity and accuracy of the first frame of the upgrade program and prevents data transmission errors.
[0034] S6, writing the first frame upgrade program into the designated FLASH storage area.
[0035] That is, the first frame upgrade program in DDR3 is written into the program 3 area of FLASH area 2.
[0036] S7, determine whether the data written into the FLASH storage area of the first frame is correct, if it is correct, execute the subsequent steps, otherwise jump to step S6, and rewrite the first frame upgrade program.
[0037] S8, the user end sends the next frame of upgrade data to the system end.
[0038] S9, the system receives the next frame of the upgrade program and performs a CRC check.
[0039] S10, writing the next frame upgrade program into the designated FLASH storage area.
[0040] S11, determine whether the data written into the FLASH storage area of the next frame is correct, if it is correct, execute the subsequent steps, otherwise jump to step S10, re-write the next frame upgrade program.
[0041] It is easy to understand that the difference between steps S9-S11 and steps S5-S8 is only that the processing objects are different, so they are not described in detail.
[0042] S12, looping steps S9-S11 until the writing of the last frame of the upgrade program is completed on the system side.
[0043] S13, the system side switches the startup program and starts from the FLASH area of the upgrade program.
[0044] It is easy to understand that the boot program is switched from the original FLASH area 1 to the FLASH area 2.
[0045] S14, the system starts the timer to start timing.
[0046] Start the timer in FLASH area 2 to count the startup time.
[0047] S15, determining whether the timer has timed out, if not, indicating that the upgrade is successful; otherwise, indicating that the upgrade is unsuccessful, and executing subsequent steps.
[0048] According to the preset time threshold and the start time measured by the timer, the start time is compared with the time threshold. If the start time is less than the preset time threshold, it indicates that the upgrade is successful and the timer is ignored. If the startup time is greater than or equal to the time threshold, it indicates that the upgrade failed and the subsequent steps are performed.
[0049] Furthermore, the Multiboot function can be enabled through FPGA, and different FLASH areas and timers can be mirrored into an mcs file through TCL scripts, and remote upgrades can be achieved through burning jumps.
[0050] S16, jump to the current program storage area, that is, the program storage area that has not been upgraded, and run this program.
[0051] The startup program switches back to FLASH area 1 for startup.
[0052] S17, returning the upgrade failure information to the user end.
[0053] The system generates upgrade failure information and sends the upgrade failure information to the user via the wireless communication module.
[0054] S18, pseudo-satellite navigation and positioning system is waiting for the next upgrade.
[0055] It is understandable that the FPGA chip on the system side uses the ZYNQ series FPGA. The ZYNQ series FPGA includes a programmable logic controller PL and a signal processor (PS). The PS part includes two ARM processing cores, a DDR controller, an Ethernet MAC controller, etc., and has a FLASH storage interface and a communication interface. The PS part of the ZYNQ series FPGA mainly realizes wireless communication, data reception processing and upgrade guidance. Each pseudo-satellite navigation and positioning system has a wireless 4G communication module and a wireless WiFi module. The wireless 4G communication module and the wireless WiFi module are interconnected with the FPGA through a peripheral interface. Each wireless communication module is equipped with a different device terminal number. The user end upgrades the device through different device terminal numbers. The FLASH memory chip uses the N25Q00AA with a storage capacity of 1Gb. The FLASH memory chip is connected to the FPGA through the SPI interface.
[0056] In the area covered by the public mobile universal network, the user terminal can use a device with a 4G communication module to connect to the wireless communication module in the pseudo-satellite navigation and positioning system through the public mobile universal network to achieve upgraded data transmission. The wireless communication module can be a 4G communication module.
[0057] In areas not covered by the public mobile network, the user uses a device that transmits WiFi signals as a WiFi AP. Within the visible WiFi signal range, the pseudo-satellite navigation and positioning system as the STA connects to the AP to build a WiFi signal link to achieve upgraded data transmission. Regardless of whether a public mobile network or a self-built WiFi wireless network is used, each device has a wireless communication module and a different terminal number, which supports batch online upgrades of multiple devices at the same time.
[0058] The above are all preferred embodiments of the present invention, and are not intended to limit the protection scope of the present invention. Therefore, any equivalent changes made based on the structure, shape, and principle of the present invention should be included in the protection scope of the present invention.
Claims
1. A method for remote batch online upgrading of pseudo-satellite navigation and positioning system software, characterized in that: The steps include: Read the program version number currently running on the system; The user end parses the current running program version number in the storage area of the pseudo satellite navigation and positioning system FLASH, and specifies the FLASH storage area in the upgrade program; The user end sends the upgrade program to the system end in frames through the wireless communication module; The system receives each frame of the upgrade program and performs a CRC check; Write each frame of the upgrade program into the specified FLASH storage area; The system switches the startup program and starts from the FLASH area of the upgrade program; The system starts the timer to set the timing; Determine whether the timer has timed out. If not, it indicates that the upgrade is successful. Otherwise, it indicates that the upgrade is unsuccessful and jumps to the current program storage area.
2. The method for remote batch online upgrade of pseudo-satellite navigation and positioning system software according to claim 1, characterized in that: When writing the upgrade program to the FLASH storage area, exclude the FLASH storage area where the startup program runs.
3. The method for remote batch online upgrading of pseudo-satellite navigation and positioning system software according to claim 1, characterized in that: After the system receives each frame of the upgrade program and performs a CRC check, if the check passes, the frame upgrade program is written into DDR3, otherwise, the frame upgrade program is re-acquired.
4. The method for remote batch online upgrade of pseudo-satellite navigation and positioning system software according to claim 3, characterized in that: After the system end writes the current frame upgrade program into DDR3, it obtains the next frame upgrade program and performs CRC verification.
5. The method for remote batch online upgrade of pseudo-satellite navigation and positioning system software according to claim 1, characterized in that: The method for determining whether the timer has timed out is: the timer measures the start time and compares the start time with a preset time threshold. If the start time is less than the time threshold, it indicates that it has not timed out; otherwise, it indicates that the upgrade has not been successful.
6. The method for remote batch online upgrade of pseudo-satellite navigation and positioning system software according to claim 1, characterized in that: After jumping to the current program storage area, an upgrade failure message is returned to the user end.
7. The method for remote batch online upgrade of pseudo-satellite navigation and positioning system software according to claim 1, characterized in that: The system end and the user end perform wireless communication via a wireless communication module, and the wireless communication module is a wireless 4G communication module or a wireless WiFi module.
8. The method for remote batch online upgrade of pseudo-satellite navigation and positioning system software according to claim 1, characterized in that: By reading the version number in the FLASH version number area, the version number of the program currently running on the system side is read.
9. The method for remote batch online upgrade of pseudo-satellite navigation and positioning system software according to claim 1, characterized in that: The FLASH storage area includes a version number area, a timing area and a program area. The version number area stores the version number, the timing area stores the timer, and the program area is used to store the upgrade program.
Citation Information
Patent Citations
Program upgrading method based on ZYNQ redundant backup
CN114924778A
Program upgrading method based on ZYNQ fool-proof design
CN114968317A
FPGA (Field Programmable Gate Array) online upgrading method supporting version rollback
CN115904427A
System firmware upgrading method and device and server
CN116932010A
Software online upgrading system based on Zynq chip
CN118276907A