RS10 gyroscope and its application in angular rate and rotation angle measurement

Publisher:星际穿越Latest update time:2015-08-10 Source: dzsc Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

Micro-electromechanical sensors (MEMS) inertial sensors have developed rapidly in recent years and have been widely used. As an important MEMS, micro-inertial sensors are composed of micro-gyroscopes, micro-accelerometers, application-specific integrated circuits (ASICs), embedded microprocessors and corresponding software. The output can contain a variety of information such as angular velocity, acceleration, and attitude. In addition, they are small in size, highly integrated, and easy to use. They are widely used in military and civilian fields.

CRSl0 is a high-precision MEMS single-axis gyroscope from Silicon Sensing. It has digital output and outputs the angular velocity of the sensor's motion process and the ambient temperature of the sensor's operation.

In terms of angle measurement, the traditional method is to use an angle sensor to measure the angle value at the start time, and then compare it to get the angle of rotation. Here, according to the principle of kinematics, a angular velocity and angle measurement system is designed using the CRSl0 gyroscope. The system is equipped with a data output interface and a liquid crystal display interface.

1 CRS10 Function Introduction and Usage

CRSl0 is a high-precision digital angular rate gyroscope with high integration, wide operating temperature (-40 ~ 80 ℃), high bandwidth and wide frequency range, extremely low angular rate random drift, standard 5 V voltage supply, SPI data output and analog port output 2 output modes to meet the different needs of various applications. The default configuration of CRSl0 is 75 Hz bandwidth, ±375 (°) / s angular rate measurement access. Users can set the angular rate measurement range and bandwidth as needed. For example, the measurement range of ±75 (°) / s can be set, and the bandwidth can also be set to 5, 10, 25, 40, 50, 60 and 100 Hz.

CRSl0 adopts 23 mmx17 mmx10 mm package. It can be surface mounted on PCB either vertically or with horizontal bracket. It is small in size, highly integrated and easy to install. It can be widely used in automotive yaw rate determination, guidance and control, platform stabilization, image stabilization, inertial measurement unit, robotics and navigation.

1.1 CRS10 Function Introduction

Figure 1(a) and Figure 1(b) are the physical diagram and functional block diagram of CRS10 respectively. As shown in Figure 1(b), in CRS10, the MEMS gyroscope first senses the external signal and outputs the signal to the data acquisition ASIC, which then outputs the processed signal to the microcontroller. The microcontroller stores the obtained data result in the output register. Through the SPI bus, the external SPI master controller

The software sends control instructions to CRS10 or reads. CRS10 has control registers set inside, and the registers have default values. By modifying and writing the control registers, the control effects of angular rate measurement range frequency and output bandwidth can be changed.

CRSl0 measures the angular rate parallel to the PCB plane. CLK_N, SPI_IN, SPI_OUT and pins are the SPI interface of the sensor, and pin is the reset pin of the sensor. A-NL_OUT is the analog output port of the angular rate.

The digital output of the CRS10 also includes the temperature of the environment it is operating in. If the gyroscope performs poorly under uncompensated conditions, this temperature can be used for modeling and compensation.

1.2 How to use CRS10

1.2.1 CRS1O Hardware Connection

The connection between the SPI interface of CRS10 and various microprocessor SPI master control devices is shown in Figure 2. The clock frequency of the SPI bus can reach up to 2.5 MHz, and 1 MHz is recommended.

1.2.2 CRS10 data reading, writing and data processing

CRSl0 can be read and written through the SPI bus. The control register value can be set according to the design requirements to achieve the control effect, or the default setting of the register can be used. The control instruction consists of 1 byte status bit, 4 bytes of data bits and 1 byte of check bit, a total of 6 bytes. When writing a control instruction to CRSl0, just send the instruction string to CRSl0 through the SPI bus.

When reading the data output by CRSl0, 6 bytes of data are read from the bus, which are: 1 byte of status bit, 2 bytes of angular rate data bits, 2 bytes of temperature data bits and 1 byte of check bit.

The data formats of the angular rate value (RATE_OUT) and the temperature value (TEMP_OUT) are both 16-bit binary complement codes, which can be solved using formula (1):

In the formula, DATA_VALUE is the output data of the register, VALUE is the actual measured value after conversion, Scale is the smallest unit represented by the minimum value of the register value, and n is the number of data bits of the corresponding register.

Here is a little trick. Since the data is a 16-bit binary complement type, you can use the data type of integer (int) to store the data, which can also omit the data processing process.

2 Angular rate and rotation angle measurement system design

Here the principle and design of the inclination measurement system based on LMS8962 and CRSl0 are given.

2.1 Principle of rotation angle measurement

CRSl0 measures the angular velocity of the PCB plane. According to the principle of kinematics, the angle is equal to the integral of the angular velocity over time. Therefore, the relationship between the angle and the angular velocity can be obtained:

Where θ is the current angle, θo is the initial angle at the beginning of the motion, ω is the angular velocity, to is the initial time, and t is the current time.

In digital systems, the discrete equation is used:

Wherein, θ, θo, and ω have the same meanings as in equation (2), and △t represents the time interval of sampling data.

According to the above principle, the angle measurement system is designed using CRS10. It only needs to ensure that the sampling frequency is fast enough, the angle platform is stable, and the noise is small.

2.2 Hardware Circuit Design

The inclination measurement system is built using LMS8962 and CRS10. LMS8962 is a high-performance 32-bit Cortex-M3 core microprocessor. It has rich on-chip peripherals, such as analog-to-digital conversion (ADC), PWM, CAN and serial bus (SSI), etc. It is powerful and easy to integrate.

The hardware design block diagram of the angular rate and angle measurement system composed of LMS8962 and CRS10 is shown in Figure 3. LMS8962 communicates with CRS10 through the SSI bus. The collected data is stored in the SD card, and the calculated results are displayed in real time on the LCD module. The data storage of the SD card provides a good data acquisition platform for future data analysis. SSI is a serial communication bus, which is compatible with the SPI bus.

2.3 Software Design

Figure 4 is the software design flow of the system. The program starts to enter the system initialization, then writes control instructions to CRSl0 to set CRSl0 to work in the required mode, then reads the returned data and performs calculations, and finally stores the data in the SD card and displays it on the LCD module.

3 Test results

In order to verify the effectiveness of the system in measuring angular rate and angle, the attitude and heading reference system AHRS500GA-226 sensor was used as a reference for testing. AHRS500GA-226 is a high-precision IMU from Crossbow Technology. The two systems were fixedly installed on the same platform so that the angular rate plane measured by CRSl0 was consistent with the YAW plane (the heading angular rate and heading angle measurement plane) of AHRS. The angular rate and angle data output by the two systems were compared, and the results shown in Figure 5 were obtained.

As can be seen from Figure 5, the angular rate measured by CRSl0 is consistent with the trend of the angular rate movement measured by AHRS, and the result of AHRS is relatively smooth. CRSl0 is noisy and locally steep. When stationary and moving at a small angular rate, the measurement results of the two are basically consistent, with an error of about 0.1 (°)/s. When moving at a large angle and rotating rapidly, the coincidence effect of the two is not good, and the error is large, reaching 7 (°)/s. This is because the data obtained by AHRS is filtered and fused. The trend of angle measurement is consistent, and the local coincidence is relatively good. However, the error of angle measurement is relatively large. The reason lies in the angle calculation method used in this article: 1) The original angular rate data is used, the angular rate is not filtered, the noise is large, and the deviation obtained by integrating and superimposing on the angle is also large; 2) A simple integral is used to calculate the angle, without compensation and smoothing. In summary, the angular rate measurement effect is relatively good, the angle measurement is feasible, but the algorithm needs to be improved.

4 Conclusion

The angular rate and rotation angle measurement system based on LMS8962 ARM microprocessor and CRSl0 gyroscope has an average angular rate measurement error of 0.550 (°)/s and a maximum of 7 (°)/s, which is better when measuring small angular rates. The average rotation angle measurement error is 2.5°, and the measurement accuracy needs to be further improved. The main reason for the angle measurement error is that the obtained angular rate is not filtered and the data is not fused. The use and improvement of filtering algorithms and fusion algorithms are the main tasks to be improved in the future. Judging from the measurement results, it is feasible to improve the accuracy of the system as long as the filtering and fusion processing are done well.

Reference address:RS10 gyroscope and its application in angular rate and rotation angle measurement

Previous article:Design of smart home terminals in smart grid
Next article:STM32 MCU GPIO register

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号