Design and implementation of logistics terminal positioning function based on ARM9

Publisher:创意旅程Latest update time:2013-01-04 Source: 维库开发网Keywords:ARM9 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
introduction

The selection of logistics positioning solutions and technologies has an important impact on improving the efficiency of modern logistics distribution management and reducing operating costs. Logistics terminal positioning requires high positioning accuracy, can provide all-weather continuous positioning information support, and can meet the positioning needs of complex terrain conditions.

This paper analyzes the demand for terminal positioning function in the current logistics industry, proposes a corresponding implementation plan for logistics terminal positioning function based on the current status of positioning technology, and preliminarily implements the terminal positioning function on a logistics information terminal platform based on embedded Linux and ARM9 hardware core.

System Implementation Solution

Analysis of the current status of mobile positioning technology At present, mobile positioning technology has become very mature, and its wide applications can be divided into two categories. One is positioning technology such as GPS that uses satellites for rear intersection; the other is positioning technology that uses mobile communication network technology to provide location services. Commonly used ones include: positioning technology based on Cell-ID; positioning technology based on AFLT (Advanced Forward Link Trilateration); GPS positioning technology; GPS assisted positioning technology (A-GPS), etc.

GPS is one of the most widely studied positioning technologies in logistics informatization. However, when GPS terminals are located in densely built areas or in tunnels and other geographical locations where positioning signals are difficult to receive, it is often difficult to obtain effective positioning information. Moreover, the GPS positioning function cannot meet the needs of high-precision positioning in places such as warehousing, and corresponding supplements and improvements are needed.

Implementation plan of this system

Based on the overall situation of existing network construction and the analysis of the demand for positioning data in the logistics management process, and taking into account the development status, technical maturity, and implementation cost of various positioning technologies, it is planned to use the positioning technology of GPS-assisted positioning system (GPS+Cell-ID+RFID+graphic road matching) in the logistics distribution network. The main considerations are as follows:

1) Make full use of existing hardware resources. GPS, GSM, and RFID modules are the hardware platforms that have been planned for this logistics information terminal project. In addition to GPS serving the positioning function, GSM and RFID modules also have the functions of communication and tag information collection. Without expanding hardware resources, the service quality of the positioning function can be maximized.

2) Cell-ID positioning. Ensure that the terminal maintains the minimum positioning information when the GPS positioning signal is lost. The Cell-ID method can provide relatively high accuracy in cities and densely populated areas, which is a good complement to the reduced performance of GPS in urban high-rise buildings, boulevards, underground tunnels and other shielding conditions. Since GSM has a smaller cell radius than CDMA, it has a relatively high Cell-ID positioning accuracy. In this solution, the GSM CELLID positioning method is proposed.

3) RFID positioning. The positioning information is obtained by reading the tag data used to identify the geographic coordinates. Its positioning accuracy depends only on the accuracy of the positioning information stored in the tag, and in theory it can achieve any high accuracy. It can be used in places such as warehouses and docks that require high-precision positioning information to provide positioning information and other auxiliary functions.

4) Graphic road matching. Currently, logistics transportation is mainly carried out on fixed routes by means of transportation such as cars. When the route is basically determined, the positioning information can be appropriately corrected through graphic road matching. However, this is generally applicable to areas where the roads are not too dense or the routes are fixed. It can be provided as an optional functional module in this solution and is suitable for occasions such as railways and highways where the road information is clear, especially for railway transportation. [page]

Principles of software and hardware system design

The CPU of the system hardware development board uses Samsung's S3C2410 chip with an internally integrated ARM920T processor core. The GPS module provides satellite positioning signals; the GSM/GPRS module provides communication and CELLID positioning information acquisition; the RFIDS module provides tag information collection and RFID positioning functions. The terminal establishes a connection with the logistics information control center through the GSM/GPRS communication network, submits relevant data collection information and receives instructions from the logistics information control center.

The system software adopts embedded Linux operating system, transplants QT/Embedded 3.3.4 and SQLITE database, and uses QT embedded programming to implement corresponding functions.

Software system design

The software system design in this paper is mainly based on the S3C2410 platform, which will analyze and process the positioning information extracted from the GPS module, GSM/GPRS module, and RFID module to complete the navigation and positioning function of the logistics information terminal.

Establishment of host development environment Due to the limited resources of the target platform, a cross-compilation environment needs to be built. The platforms used in the development of this system are as follows:

Host: RED HAT 9.0; QT/Embedded 3.3.4;SQLITE 2.8.16;cross-2.95.3.tar.bz2 Target: Linux Kernel 2.4.18;QT/Embedded 3.3.4;SQLITE 2.8.16 In order to correctly cross-compile QT/Embedded, it is necessary to ensure that the header files and library files required by QT, such as UUID, ZLIB, JPEG, GIF, PNG, and SQLITE, are correctly installed before cross-compiling, and transplant the corresponding library files to the target machine. Correctly set the environment variables before cross-compiling QT/Embedded 3.3.4. The cross-compile options of QT/Embedded 3.3.4 in this system are: ./configure -embedded arm -shared -debug -no-cups -thread -plugin-sql-sqlite -no-ipv6 -qt-mouse-Linuxtp, which can be reduced accordingly according to the actual situation.

Software key technology analysis

1) Extraction of GPS positioning information

Currently, the commonly used GPS-OEM modules all support the data format of NMEA-0183. NMEA-0183 sends data in sentences, and each sentence is relatively independent and has complete meaning. The sentence contains several fields composed of ASCII text characters. Each sentence starts with "$" and ends with a carriage return and line feed. The data is contained in the field, and the fields are separated by commas. The first field of each sentence indicates the meaning of the sentence. In the standard sentence, the two characters after "$" are "talkerID", which indicates the device sending the data, such as GP for GPS; the next three characters are "sentenceID", which indicates the type of the sentence, such as GGA, RMC, etc. The meaning of each field in the sentence depends on the sentence type. The last field of the sentence is the checksum, which consists of "*" and two hexadecimal digits and a carriage return and line feed. The checksum is the logical XOR operation result of all the characters between "$" and "*", which is used to check and confirm whether the data transmission is correct.

For terminal navigation, the "$GPRMC" frame format can meet most requirements, and its frame length is relatively short, which is convenient for information processing. Therefore, in this system, the "$GPRMC" frame is selected for positioning information extraction. The system receives positioning data from the GPS-OEM module through the RS232 serial port, and extracts time, longitude and latitude, speed, azimuth and other positioning and navigation information from the "$GPRMC" frame in the received data. The main structure of its program module is as follows:

//Judge whether it is a $GPRMC frame header and mark it

if(Data[i]==\'$\' && Data[i+3]==\'R\')……

//Judge whether it is the end of the frame. The end of the frame is represented by a line feed character, and the value is 10 \' \'

if(Data[i]==10 && SectionID==13)

{ ...id_check=m*16+n; //Get the INT type of the check data

if(chk_result!=id_check) //Compare the XOR operation result with the check data to see if they are consistent

…… if( Data[i]==\'*\' && SectionID==12 ) //XOR operation result

// Perform XOR operation on the characters between $ and * to get the result chk_result

for( ; Data[n]!=\'*"; n++) chk_result^=Data[n]; //Judge the comma, distinguish the identification data, and distinguish the *, distinguish the verification data

if(Data[i]==\',\'||(Data[i]==\'*\' && SectionID==12) )SectionID++;

else

{ switch(SectionID){ case 1: //Extract time m_sTime[a++]=Data[i];break;case 2: //Receive and determine validity data A is valid, V is invalid...case 3: //Extract latitude...//Extract longitude, speed, azimuth, verification data and other information.

[page]

2) Linux serial communication programming

The embedded Linux operating system uses the termios interface of the interface standard POSIX to control the behavior of the serial port. In the Linux system, serial ports and other devices are treated as files, and the main body of the program module is implemented as follows:

int fd="open"("/dev/ttyS1",O_RDWRIO_NOCTTY);//Open the serial port

……new_options.c_cflag &=~PARENB; //No parity check

new_options.c_cflag &=~CSIZE; //Do not hide data bits

new_options.c_cflag &=~CSTOP8; //No stop bit

new_options.c_cflag |=CS8; //8 data bits

cfsetispeed(&new_options,B4800); //Set baud rate

4800bit/scfsetospeed(&new_options,B4800);

tcflush(fd,TCIOFLUSH);

tcsetattr(fd,TCSANOW,&new_options);//Set a new device mode After completing the serial port settings, you can use the read() and write() functions to operate the serial port. It should be noted that the serial port is blocked by default. When no data arrives, it will be blocked and suspended. At this time, you can adjust and control it through multi-threaded programming, serial port timeout setting, or select polling. This system mainly uses multi-threaded programming to achieve the control of serial port blocking, using QT's Qthread class, or you can directly use Linux's own multi-threaded functions for operation.

3) QT/Embedded programming

Qt/Embedded is a framebuffer-based Qt version for embedded systems that is being developed by TrollTech, a famous Qt library developer. It is widely used because of its object-oriented, cross-platform and convenient and beautiful interface design.

This design uses QT/Embedded 3.3.4 version, which supports SQLITE database driver and is convenient for database operation and programming. The design mainly uses QTE's canvas module, SQL module and network module. In the canvas module, QCanvas library is a highly optimized two-dimensional drawing library. When used in combination with other canvas modules, it can easily realize the display, zooming, roaming and eagle eye functions of the navigation map. The SQL module and network module can easily realize database programming and network communication functions, greatly shortening the program development cycle and improving development efficiency.

The initial positioning error mainly depends on the positioning accuracy of the GPS-OEM module. Experiments show that this system can initially meet the positioning function requirements of logistics information terminals.

Conclusion

Experiments have proved that the system has accurate positioning data, a friendly interface, strong system scalability, and has completed the terminal positioning function of logistics informationization. This system can be used for logistics terminal positioning and navigation, and can also be applied to other occasions that require positioning and navigation services. It has a relatively general applicability and reference value.

References:

[1]. ARM920T datasheet http://www.dzsc.com/datasheet/ARM920T_139814.html.
[2]. RS232 datasheet http://www.dzsc.com/datasheet/RS232_585128.html.
[3]. CS8 datasheet http://www.dzsc.com/datasheet/CS8_2332280.html.

Keywords:ARM9 Reference address:Design and implementation of logistics terminal positioning function based on ARM9

Previous article:ARM Intelligent Traffic Light System
Next article:Design of embedded wireless video acquisition system based on ARM

Recommended ReadingLatest update time:2024-11-16 21:42

Design of fingerprint identification system based on ARM9 embedded processor
In order to adapt to the needs of fingerprint collection sensor devices and fingerprint identification systems developing in the direction of miniaturization and embeddedness, this article proposes an embedded fingerprint identification system based on the CPU chip S3C2440A of the ARM9 processor architecture (the fing
[Microcontroller]
Design of fingerprint identification system based on ARM9 embedded processor
Linux 2.6.32 porting to arm9 (s3c2440) platform 2 -- Kconfig and Makefile (2)
After make menuconfig, first read linux-2.6.32.2/arch/arm/Kconfig ??? sudu vi linux-2.6.32.2/arch/arm/Kconfig (1) Find the line "mainmenu" at the beginning of the "Linux Kernel Configuration" source ". This is the root of the entire Configure tree. This line matches the last "line with the word endmenu". Then find t
[Microcontroller]
Feelings about choosing a system in embedded teaching
Embedded technology is the most popular new technology today, and it has a broad space for development. At present, many universities in China are carrying out and planning to carry out embedded courses. When many teachers first come into contact with embedded technology, they still have many doubts about what kind of
[Microcontroller]
Design of Embedded Audio System Based on ARM9 Processor
1 Introduction With the rapid development of Internet technology and multimedia technology, voice communication technology is becoming more and more widely used and more and more valued . Today's embedded devices are becoming more and more complex, with more functions and higher performance than before. In a va
[Microcontroller]
Design of Embedded Audio System Based on ARM9 Processor
Ethernet interface circuit design with ARM9 chip and S3C2440 embedded system as the core
1 Introduction With the development of microelectronics technology and computer technology, embedded technology has developed widely and has become the development direction of modern industrial control, communication and consumer products. Ethernet's excellent performance in real-time operation, reliable transmission
[Microcontroller]
Ethernet interface circuit design with ARM9 chip and S3C2440 embedded system as the core
ARM9 interrupt handling process
The interrupt vector in 2440test is somewhat hidden and goes around in circles. No wonder it is so difficult to understand. Let 's unravel it and see what the process is. Interrupt vector b HandlerIRQ ;handler for IRQ interrupt is very natural, because all microcontrollers are like that, the interrupt vector is usual
[Microcontroller]
Atmel AT91SAM9x5 series ARM9
Atmel's latest AT91SAM9x5 series includes five models of low-power ARM926EJ-S processors. Common features: 400MHz ARM926EJ-S core / 16KB Data/Instruction Cache / DDR2 / MLC NAND / 3xHS USB HOST 1xHS USB DEVICE / HS SDIO SD MMC / Software Modem / BGA217 Differentiated peripherals are mainly targeted at different
[Microcontroller]
Atmel AT91SAM9x5 series ARM9
Analysis of LDR SP , = 4*1024 / LDR SP , = 0x34000000 in ARM9
reset:                      ldr sp, = 4*1024 @ SP=4096, set the stack pointer, the C function will be called later, and the stack needs to be set before calling C     bl disable_watch_dog @ Turn off WATCHDOG, otherwise the CPU will reset continuously         bl clock_init @ Set MPLL, change FCLK, HCLK, PCLK         bl
[Microcontroller]
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号