With the accelerating degree of urbanization in China, more and more people and institutions live and work in a “narrow” range. The rapid “expansion” of the city directly leads to the increasing complexity of the traffic network, and the increasingly frequent flow of people also makes everyone more dependent on spatial information. People are more concerned about “where am I now?” “where is the destination?” “how to get there?”. The digital geographic integration application scheme based on embedded system can effectively solve these contradictions. In this context, this paper presents an embedded solution based on arm.
2. Hardware implementation
The hardware core of the embedded GPS navigation system is the 16 / 32-bit RISC processor s3c2410a chip in Samsung ARM9 series. The chip’s powerful real-time processing ability and rich peripheral interfaces are very suitable for the development of embedded system. The system is designed based on these characteristics of the chip. The system block diagram is shown in Figure 1.
The system takes s3c2410a microprocessor as the core, and forms a minimum system with two pieces of 32m SDRAM (hy57v561620ct) and one piece of 64M NAND flash (k9f1208u0b). A GPS module for receiving GPS signals, a liquid crystal panel for display and a sound chip of UDA1341TS are added externally. In addition, for the convenience of debugging, we also added a 10m network card chip of CS8900A.
Figure 1 system block diagram
3. Establishment of system platform
The establishment of system platform mainly includes two parts: the selection of operating system on host computer (PC) and the establishment of cross compiler tool chain.
There are many options for the operating system on the PC: installing the Linux distribution, using the virtual machine under windows, or using cygwin. Since Microsoft Windows now dominates more than half of the world’s PCs (Windows accounts for nearly 90% in China), many developers begin to use virtual machines and other means to develop embedded Linux on the windows platform, but these methods will bring some compatibility problems more or less. The best choice for developing embedded Linux is to install Linux distribution on PC, because it has nothing to do with windows, can occupy all the resources of the system, and has the highest performance and best compatibility of the system.
In establishing the cross compiler tool chain, we must pay attention to the selection of C runtime. The C runtime libraries available now include glibc, uclibc and newlib. Glibc is a standard C runtime provided by GNU Project. It is designed for PC applications. It is large, but it can provide the best compatibility. Uclibc can be selected for general embedded development. Uclibc was originally a C language library in the development process of uClinux. Now it has been independent of the uClinux project and further improved. It rewrites most functions of glibc, and the target is embedded, so it is much smaller than glibc. In addition, because its functions are consistent with glibc, many software originally developed based on glibc can be compiled and run with uclibc without change, so that it occupies less memory and disk space on the embedded system. However, because it is not a standard C runtime after all, uclibc has some compatibility problems.
The system selects Fedora Core 5 as the host (PC) operating system, and uses buildroot and crosstool to establish two cross compiler tool chains with different C runtime libraries. Because our system development needs to use the TFTP function of u-boot to download the Linux kernel and the NFS network file system of Linux, we first need to set up TFTP and NFS for Fedora Core 5, and then need to set up a serial communication software to interact with the development board. Kermit is selected for this system.
The main reason for using two cross compiler tool chains with different C runtime libraries is that our navigation application has compatibility problems with uclibc, so we have to use glibc. In order to reduce the occupation of resources, we still use uclibc for u-boot, Linux kernel and busybox.
The main environment settings of this subject are as follows:
4. Development of application software
After the establishment of the system platform, the Linux operating system provides the underlying operations, including file system management, memory allocation and basic flash burning and reading, but does not provide a friendly display interface. At the same time, in order to realize the display and navigation of geographic data, it is necessary to put graphical user interface support system and geographic information development platform into the operating system. For this purpose, we chose MiniGUI and MGIS respectively.
Fig. 3 is a flowchart of the application software
The whole software system realizes various functions by responding to events sent by different windows or controls. After the main window is established, register the MGIS control, which can easily realize some common map operations. After the main window is established, many sub windows will be created for displaying longitude and latitude information and time. Speed static box, toolbar for fast and convenient operation, menu bar for closing GPS function and loading map data.
Figure 4 flow chart of GPS receiving module
5. Summary and Prospect
After the initial design, implementation and application test, the “find my way” embedded mobile map navigation system has basic functions and can initially meet the needs of personal mobile navigation information system. It can load, zoom, drag, search, simple navigation, ranging, GPS function opening and closing and other functions of digital map. At the same time, we have also explored a set of feasible vector map making methods, which can quickly complete the making of map data sources and the addition of relevant information according to different occasions, and has a certain expansion ability. Of course, due to the limited time and capacity, this product also has some shortcomings, which is worthy of further in-depth research. For example, after opening the GPS receiving module, the response speed of the system will decrease significantly. Although the Linux core and compiler have been properly optimized, the situation has not been significantly improved. The problem may be that the processing speed and callable resources of the hardware platform are limited, or the program structure on the software receiving is unreasonable and nested too much. Sometimes the GPS received signal will be unstable, and the signal offset will exceed the nominal error value. The problem may be that the layout of data signal lines in the design circuit of the development platform does not make the signal lines equidistant, nor set a reasonable signal isolation and protection belt, resulting in undue errors in the end. However, from the perspective of software, how to correct such errors is also a direction worthy of study. In this subject, we only realize the navigation of fixed points, and can not complete the navigation from any point to any point. The navigation function can be further studied from the aspect of software, including the selection of map format. These are all things worth perfecting in the future.
Figure 5 hardware platform
Fig. 6 final effect drawing
Responsible editor: GT