Implementation of GPS Navigation Information Processing Software Based on WinCE

Abstract: GPS OEM boards generally provide navigation messages in the original binary format. In order to obtain the final positioning result, the message needs to be decoded, the relevant measurement quantity and satellite parameters are obtained, and then the calculation equations are solved. This paper proposes a software implementation scheme of GPS navigation information processing in WinCE environment, describes the connection mode and serial communication method of embedded processor and GPS OEM board, analyzes the format of GPS navigation message, and finally designs navigation. Solve the software flow and give a display of the results of the calculation. This design has been applied in the development of the car navigation type GPS receiver, and the work is stable and meets the accuracy requirements.

This article refers to the address: http://

0 Preface

After the signal from the satellite passes through the GPS receiver baseband processing program, the original satellite ephemeris and pseudorange, pseudorange law, carrier phase, Doppler shift and other primitive observations can be obtained. How to use this information to solve the receiver's calculation Location, speed, time and other positioning information is the main purpose of the positioning solution.

This paper mainly introduces the acquisition of GPS navigation receiver's original navigation information, GPS message decoding and position speed calculation.

1 platform design

The operating system used by the system is WinCE. WinCE is a multi-tasking, fully preemptive 32-bit embedded operating system that supports WinCEMFC, ATL, WinCE API and some additional programming interfaces and various communication technologies. The development tool uses eVC. eVC (embedded visualC+ +) is the mainstream development tool on Windows CE, which encapsulates the underlying communication of the network, COM interoperability, RAPI, and so on. eVC supports a subset of the MFC class libraries, allowing VC programs on the Win32 platform to be easily migrated to the WinCE platform.

The hardware platform uses an embedded system based on the xscale PXA255 processor. The NOVAT EL OEM4 receiver is used to obtain the original GPS navigation data. The two platforms use the serial port for communication.

1. 1 serial communication settings

There are two limitations of eVC in implementing serial data communication: First, eVC does not support serial communication control MScomm. In addition, WinCE does not support overlapping I/O operations. Therefore, the underlying development of data serial communication is to be carried out using WinCE A PI function and multi-threading technology.

The operation of the serial port is mapped to the operation of the file. Therefore, reading the data of the serial port is equivalent to reading the data of the file. In the eVC environment, set the read and write mode by calling the CreateFile function to open the serial port:


Because WinCE does not support overlapping I/O, the sixth parameter of CreateFile cannot be set to:

FILE_FLAG_OVER_LAPPED, otherwise serial communication processing will be blocked by system information.

After opening the serial port, you can configure various serial port parameters such as baud rate, parity check method, data bit and stop bit number through the serial port initialization function SetCommStat e( ).

1. 2 thread synchronization

WinCE's API does not support overlapping I/O operations, so it is difficult to solve the problem of reading and writing large amounts of data in multi-thread mode. When the main thread is busy, a separate thread can be used to process the serial port, which is the asynchronous I/O mode.

In order to ensure that the variables passed when the data read thread passes data to the main thread are not covered by the new serial data, the mutex technique can be used. Create a mutex with the following code:

H ANDL ECreateMutex ( LPSECU RITY _ AT T RIBU T ESlpMutexAt tr ibutes, BOOL bInitialOwner , LPCTSTR lpN ame) .

The thread obtains the ownership of the mutex through a wait function. The thread of the mutex is not blocked. After the data is processed, the function needs to call the function to release the mutex. You can use the following function:

BOOL ReleaseMutex( HANDLE hMutex)

2 GPS navigation message decoding

2. 1 Navigation message format

The navigation message sent by the satellite is the basic data that the user uses to locate and navigate. The navigation message generally includes satellite ephemeris and almanac data, working state, clock correction, ionospheric delay correction, atmospheric refraction correction, and corresponding observation information. The message also includes parity information for verifying message reception. The correctness. The function of the message processing module is to receive the navigation message obtained from the baseband processing module and perform parity check to determine the integrity of the message, and then parse the binary message according to the message format to obtain the navigation information in the message.

The format of the navigation message is the main frame, sub-frame, word code and page number, as shown in Figure 1. The length of each main frame message is 1 500 b, and the transmission rate is 50 b/s, so it takes 30 s to broadcast a frame of text.


Figure 1 Navigation message frame structure

Each frame of the navigation message includes 5 sub-frames, each of which is 6 s long and has a total of 300 b. The first, second, and third sub-frames each have 10 words. The contents of these 3 sub-frames are repeated every 30 s and updated every hour. The 4th and 5th subframes each have 25 pages, a total of 15 000 b. A complete frame of text has a total of 37 500 b.

2. 2 Contents of the navigation message

The contents of the navigation message include the telemetry code, the conversion code, the 1st data block, the 2nd data block, and the 3rd data block 5 parts:

The 3rd to 10th words of the 1st subframe are the 1st data block. Its main contents are: logo code, data age, satellite clock correction coefficient, satellite ranging accuracy, and atmospheric propagation delay correction.

The second data block consists of the 2nd and 3rd subframes, which carry the ephemeris of the satellite and are used to calculate the position of the satellite.

The third data block is composed of the 4th and 5th sub-frames, which provides the almanac data of the GPS satellite. When the receiver captures a certain satellite, the information of the third data block can be used to obtain data such as the summary ephemeris, clock correction, code division address, and satellite status of other satellites. Based on the satellite almanac and its location, the user can calculate the satellites that can be observed at that time and their azimuths and elevation angles, and select them for fast capture and positioning.

3 Software development

After receiving the GPS navigation message through the serial port and after parity verification and decoding, the ephemeris and observation information of the GPS satellite can be obtained, including pseudorange, carrier phase, and Doppler shift. Using the satellite's ephemeris, you can calculate the coordinates of the currently visible satellite and the speed at which it is running. In general, the number of visible satellites is greater than the number of satellites required for solution. In order to obtain optimal positioning accuracy, the currently visible satellites should be selected. In this system, the minimum GDOP method is used for star selection, and the satellite information of the selected optimal constellation is combined with the observation. After the pseudorange correction is performed by the error correction program, the solution equations of the receiver position can be constructed. Solving this system of equations gives you the current position and speed of the receiver as well as the receiver clock.

The basic software flow is shown in Figure 2.


Figure 2 Software main process

4 test results

On July 4, 2006, the system was tested in Beihang. After testing, the system works normally and the solution results are spread over a small range. The results are shown in Figures 3 to 5.


Figure 3 Satellite position map and positioning results


Figure 4 Satellite information display


Figure 5 calculation result output

5 Conclusion

The GPS navigation information processing scheme based on embedded WinCE has been applied in the development of a navigation receiver. The system works stably and can meet the requirements of reliability and real-time performance to achieve the expected results.


Surface Mounted Led Profile

Surface Mounted Led Profile Light have flexible size, it is a economical choice and low maintenance cost, usually have 9.6W/M  Led Ribbon /strip inside. The PCB width has 10mm, 12mm, 3.5mm.

Specification of Surface Mounted LED Profile Light

Product Name: Surface Mounted Led Profile Light

Size: Flexible

Maximum PCB Width: 3.5mm/10mm/12mm

Materials: Bar material: 6063 aluminum, with oxide surface

         Cover Material: PC

         End cap material: PC

Surface Mounted LED Profile Light



Q1. How do you ship the goods and how long does it take to arrive?
A: We usually ship by DHL, UPS, FedEx or TNT. It usually takes 3-5 days to arrive. Airline  and sea shipping also optional.

Q2. How to proceed an order for led light?

A: Firstly let us know your requirements or application.
Secondly We quote according to your requirements or our suggestions.
Thirdly customer confirms the samples and places deposit for formal order.
Fourthly We arrange the production.

Q3. Is it OK to print my logo on led light product?

A: Yes. Please inform us formally before our production and confirm the design firstly based on our sample.

Q4: Do you offer guarantee for the products?

A: Yes, we offer 2-5 years warranty to our products.

Surface Mounted LED Profile Light

Surface Mounted Led Profile Light,Profile Light,Surface Mounted Led Profile,Led Surface Mount Light

Shenzhen Jedver Smart Lighting Co., Ltd. ,