Design of coal feeder control system based on ARM

Publisher:大酉幽华1Latest update time:2012-10-18 Source: 21ic Keywords:ARM  S3C44B0x  mCOS-II Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

Introduction
The coal feeder control system designed in this paper is mainly used in the coal pulverizing system of thermal power plants. It cooperates with the coal pulverizer equipment to undertake the task of quantitatively and evenly supplying coal to the system. It is an important auxiliary equipment of thermal power plants. This system can also be applied to the metering and conveying system of bulk materials in metallurgy, chemical industry and other departments, which is of great significance for saving energy, improving economic benefits and ensuring safety.

Figure 1 Self-tracking power supply circuit

Figure 2 4~20mA current generation circuit

Design of control system hardware
The control system mainly includes the detection of weighing sensor signals, the detection of digital speed sensor signals, the scanning of keyboard input signals, the display of LCD screen, and some alarm devices. Since this design has high requirements for the main controller, Samsung's low-power ARM processor S3C44B0x based on ARM7TDMI-S core is finally used as the main controller of the system.

The acquisition of weighing sensor signals is one of the most important factors affecting the control accuracy of this system. In this design, the sensor bridge is designed to be in the form of four strain gauges under force. At the same time, since the output signal of the strain gauge sensor is very small, the voltage of the bridge is required to be particularly stable, so this system uses a symmetrical power supply with positive and negative pressure self-tracking performance, as shown in Figure 1.

The sensor signal is first amplified and filtered, and then sent to the A/D controller. The S3C44B0x processor integrates an 8-way 10-bit A/D controller, a zero comparator and an internally generated comparison clock signal, and supports software-enabled sleep mode, so the sensor signal can be measured very accurately. And by using this processor, the system does not need to expand the A/D conversion chip, thus reducing the complexity of the system.

The speed sensor detects the speed of the belt. Since the speed of the motor rotation is generally different from the speed of the belt, there is a proportional coefficient. In order to ensure accuracy, this design uses a speed sensor alone. The pulse output of the speed sensor is proportional to the belt speed. By sending the speed signal of the belt and the weight signal of the weighing sensor to the microprocessor for processing, the actual flow rate in tons/hour is obtained. The

required coal feeding amount is input through the keyboard, the actual coal feeding amount and the required coal feeding amount are PID calculated, and the generated control signal is used to control the frequency converter, thereby controlling the speed of the motor. The frequency converter used in this system is Siemens MMV400. This frequency converter is set to 4~20mA current control. The controller compares the user's instructions and the on-site status feedback and sends 4~20mA current to the analog input port of the frequency converter. Then the frequency converter converts the input current signal into the corresponding frequency and outputs it to control the motor. The circuit that generates 4~20mA current is shown in Figure 2. [page]

The control data of the ARM processor is first sent to the D/A controller (TLC5615) through optoelectronic isolation, converted into a 0~2V voltage signal, and then passed through the V/I converter (AD694) to generate a 4~20mA current signal to accurately control the motor speed.

The LCD display screen displays the motor speed, required coal feed, actual coal feed, and belt speed. The S3C44B0x integrates an LCD controller that can transmit the data in the display cache to the external LCD drive circuit and support monochrome, 4 or 16-level grayscale LCD and 256-level color LCD. A large number of I/O ports are used as relay signal outputs. In addition, the S3C44B0x can also communicate with the host computer through the serial port RS-232.

Design of control system software
The coal feeder control system software uses the embedded real-time multi-tasking operating system mC/OS-II. It is a real-time multi-tasking operating system with open source code, portability, curability, scalability, and preemptiveness. Most of its source code is written in ANSI C, which is easy to port and runs stably and reliably. At present, it has been successfully ported on dozens of microprocessors and microcontrollers from 8 bits to 64 bits.

Porting of mC/OS-II on S3C44B0x The porting of
mC/OS-II mainly includes: declaring 3 macros (open interrupt, close interrupt and task switching); setting the growth direction of the stack; declaring 10 compiler-related data types; writing 6 operating system-related functions in C language (OS-CPU-CC task stack initialization and 5 hook functions); writing 4 processor-related functions in assembly language (OS-CPU.ASM). The

4 processor-related functions written in assembly language are as follows.
mC/OS-II needs to disable interrupts before accessing the critical interrupt of the code, and re-enable interrupts after the access. The operating system uses the two functions OS_ENTER_CRITICAL() and OS_EXIT_CRITICAL() to enable and disable interrupts.

In mC/OS-II, OS-STK-GROWTH is used to specify the growth direction of the stack. 0 means growth from low address to high address, and 1 means the opposite. However, the ADS compiler used only supports the growth from high address to low address, so OS-STK-GROWTH should be set to 1.

Then write 4 processor-related functions in assembly language and put them in the function OS-CPU.ASM, which completes the porting of the OS-CPU.ASM file. The upper-level task scheduling part does not require any changes. After completing the above work, mC/OS-II can run normally on the S3C44B0x processor.

Division and scheduling of system tasks
The tasks in the embedded real-time system are different from the subroutine modules in the front-end and back-end systems. Generally, a task corresponds to an independent main program, which can call subroutines and use various system resources such as interrupts. The task division of embedded systems is to divide the things to be processed in the system into relatively independent task modules, establish tasks one by one in sequence, and assign different priorities. In the main program, what needs to be done is to establish the tasks of these modules, and then execute the task with the highest priority in the ready task queue each time. According to the characteristics of this control system, the tasks can be divided as follows: keyboard scanning, sensor signal detection, motor speed
slowdown, motor speed increase, and LCD display tasks.

The task scheduling of mC/OS-II is based on priority, so different priorities must be assigned to each task, among which 0, 1, 2, 3, OS_LOWEST_PRIO-3, OS_LOWEST_PRIO-2, OS_LOWEST_PRIO-1, OS_LOWEST_PRIO, these priorities are used by the system, so they must be retained. According to the

real-time requirements and importance of each task, the priorities of the above tasks are assigned as follows: 12, 6, 7, 8 and 13, etc. The lower the task priority number, the higher the priority.

When the coal feeder control system is started, if everything is normal, the coal delivery task will be carried out. During operation, if the sensor signal detects that the amount of coal fed is too much, a signal is sent to the motor slowing task, otherwise, a signal is sent to the motor acceleration task. In addition, when there are some faults or dangers, a signal is sent to the shutdown task. In short, in the control system, signals and messages are continuously transmitted, so that each task is continuously switched and operated, so that the entire system can work normally and continuously.

Conclusion
Based on the introduction of the structure of the coal feeder, this paper introduces the hardware principle and software design of its control system. After multiple on-site commissioning and operation, this control system can well complete the coal feeding task of the power plant.

References:

[1]. S3C44B0x datasheet http://www.dzsc.com/datasheet/S3C44B0x_589522.html.
[2]. ARM7TDMI-S datasheet http://www.dzsc.com/datasheet/ARM7TDMI-S_1231795.html.
[3 ]. RS-232 datasheet http://www.dzsc.com/datasheet/RS-232_584855.html.

Keywords:ARM  S3C44B0x  mCOS-II Reference address:Design of coal feeder control system based on ARM

Previous article:Digital Home Media Center System Designed with IXP Network Processor
Next article:Hardware Design of Frequency Hopping Radio Central Control Unit and Frequency Hopping Unit

Recommended ReadingLatest update time:2024-11-16 16:37

Unaligned access in C programming under arm
Seeing this title, you think I am going to talk about the byte alignment of the structure in the program, then you are wrong, I am going to talk about the access to non-aligned data under ARM. This problem has troubled me for a whole day! Without further ado, let me post a test code first. If you have an ARM developme
[Microcontroller]
Overview of the instruction set of ARM microprocessors (Part 2) - Detailed notes on ARM application system development
A jump instruction         Jump instructions are used to implement program flow jumps. There are two ways to implement program flow jumps in ARM programs:                 — Use dedicated jump instructions.                 — Directly write the jump address value to the program counter PC.         The jump instructions
[Microcontroller]
Tips for getting started with ARM and embedded Linux
Since many people always ask this question, here is a summary document for your reference. It must be explained here that the following steps are all for Linux systems, not WinCE. You may notice that among people working on embedded systems, there are far more people doing Linux research than WinCE, and many materials
[Microcontroller]
Application of ARM core board in traceability scale
 What have you overlooked about the cow's origin?   "If you want to capture her heart, you must first capture her stomach." For the sake of her long-admired lover, Xiao E painstakingly studied many secret dishes, including the secret sauce beef. When Xiao E came to the meat and vegetable market to select ingredient
[Microcontroller]
Application of ARM core board in traceability scale
ARM assembly programming - data movement
I only knew one MOV instruction, but I didn't know there was another MOVS. I looked it up in the book and found that there was only MOV transfer instruction. num EQU 20; define a constant num with a value of 20   ;--------------------------------------------------------------------------------------------------- ;AR
[Microcontroller]
ARM exception handling summary
An exception is an instruction being executed that is interrupted due to various software or hardware failures, such as a failure to access memory when reading data or instructions, or an external hardware interrupt. When these situations occur, in the ARM system, the exception and interrupt handler will make correspo
[Microcontroller]
Arm mini2440 video remote monitoring based on v4l2 ffmpeg x264
The mini2440-based camera surveillance that is popular on the Internet is generally based on MJPEG-Streamer. This method uses the underlying driver of V4L2, and then cooperates with the streaming transmission of the mjpeg format, and then browses the video and controls it through the browser. The following is a so
[Microcontroller]
Position-Independent Programming for ARM Processors
ARM processors support position-independent programming, which means that programs loaded into any address space of the memory can run normally. Its design method plays an important role in the development of embedded application systems, especially in the development of Bootloader programs and kernel initialization
[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号