陈庆其 李全会
基于RTX-51 Tiny多任务直流电动推杆控制系统
陈庆其1李全会2
(1.东莞科学馆 2.东莞市工程师协会)
针对地动仪模型在传动机构设计中存在响应速度慢、运行不稳定等问题,设计一个多任务直流电动推杆控制系统。采用H桥电机驱动电路,通过光电开关进行位置检测;采用接近开关作为状态灯检测电路;基于时间片轮询的多任务调度算法开发软件系统,通过合理调用系统各资源,实现4个电动推杆机构独立、实时工作。经测试,系统稳定性有较大提高,响应时间缩短。
RTX-51 Tiny;直流电动推杆;H桥电机驱动电路;多任务调度算法
随着电子技术的发展和用户需求的不断提高,嵌入式系统设计已引入操作系统[1]。没有引入操作系统时,程序采用简单的时间片轮转,即多个应用函数简单地循环运行,系统实时反应慢,需要等待上一个函数运行完毕,才能响应用户的操作,系统资源使用率较低[2-5]。RTX-51 Tiny是针对8051系列单片机开发的小型实时操作系统,具有运行速度快、占用资源少、使用方便等特点,广泛应用于各种嵌入式系统[6]。
本文针对我馆地震展厅地动仪模型在传动机构设计中存在响应速度慢、运行不稳定等问题[7-8],对其结构及硬件电路进行改进,并基于RTX-51 Tiny系统,采用时间片轮询的多任务调度算法改进软件系统,取得较好效果。
1.1机械结构改进
1)地动仪模型原有传动机构中没有位置检测装置,系统的运行状态不清晰,稳定性较差。本文使用光电传感器,检测推杆每次运动是否正确到达关键位置,确保推杆每一步动作的精准。
2)原有机构使用螺杆式传输机构运输金属球,而且是一根螺杆负责运输4个球,传输速度慢。本文选用独立的传输管道,通过电动推杆实现球由下而上的运输,提高传输速度。
1.2硬件电路改进
直流电动推杆控制系统总体结构框图如图1所示,其硬件系统由单片机及其外围电路、电机驱动电路(H桥电路)、光电传感器电路、按键检测电路和指示灯电路等构成。
单片机系统电路图如图2所示,除了必备的振荡电路和重启电路外,还增加了ISP在线编程接口。利用此接口,开发人员可通过ISP烧录线,直接在板上下载程序到单片机,不用拔插单片机,简化开发流程,提高工作效率。
1)基于H桥的电机驱动电路
原使用机械式继电器,存在反应慢、体积大和额定最大通过电流小的问题。当额定最大通过电流小,且电机启动或负载较大时,容易烧触点。本文采用由4个场效应管组成的H桥电路,以IRF4905作为上桥,以IRF3205为下桥,如图3所示。
①当A1输入端为高电平、A2输入端为低电平时,Q2、Q3导通,Q1、Q4截止,电流由Q2流向Q3,直流电机正转。
图2 单片机及其外围电路
图3 H桥电机驱动电路
②当A1端为低电平、A2为高电平时,Q2、Q3截止,Q1、Q4导通,电流由Q1流向Q4,直流电机反转。
③当A1和A2同时为高电平或者低电平时,Q1、Q2、Q3、Q4不构成回路,没有电流流过电机,电机不工作。逻辑电平状态如表1所示。
2)基于光电开关的位置检测
本文选用光电开关HPJ-E21、HPJ-R21进行位置检测,如图4所示。此开关成对使用,其中连接黑色导线的为HPJ-E21,作为光源的发射管;连接白色线为HPJ-R21。将光电开关安装在传动机构的对应位置,测试电动推杆是否到达相应位置。控制系统通过3个相应的光电开关来确认推杆的运动位置。
3)踏板开关与状态灯检测电路
本文中选用NPN型接近开关,如图5所示,踏板开关外形如图6所示。当触发开关时,输出低电平。单片机相关引脚增加上拉电阻,当触发开关时,单片机检测到引脚电平由高变为低,系统认为,有人踩踏踏板,启动对应位置的电动推杆,推出小球。踏板安装在四角装有弹簧的木框上,踏板背面贴有金属片。当踩动踏板,金属片靠近接近开关,从而触发开关。
表1 H桥的逻辑电平状态
图4 HPJ-E21/HPJ-R21光电开关
图5 接近开关
图6 踏板开关的外形
指示灯电路如图7所示,踏板指示灯只有红灯亮和绿灯亮2种状态。红灯亮表示推杆正在运行,不用踩踏板。绿灯亮表示一切准备好,系统处于待触发状态,可以踩踏踏板。当单片机输出一个高电平时,Q2导通,Q1截止,红灯亮。当输出一个低电平时,Q2截止,Q1导通,绿灯亮。通过1根信号线,控制2盏指示灯的交替亮灭。
图7 指示灯电路
本文基于RTX-51 Tiny实时操作系统,采用基于时间片轮询的任务调度算法,最多定义16个任务,各个任务都处于就绪状态。对于实时性要求较强的任务,RTX-51 Tiny是一个较好的解决方案。另外RTX-51 Tiny对硬件资源要求小,8051系列单片机使用片内集成硬件资源即可部署,不用扩展外部RAM。软件系统总体流程图如图8所示。
图8 软件系统总体流程图(1.3版本带光电传感器,2.3版本屏蔽了光电传感器)
2.1按键检测程序
当按键没有按下时,任务不断地检测按键。当这个时间片耗尽时,系统会将此任务转变为就绪状态,切换到另一个任务,不会出现任务互斥的现象。当有按键按下时,任务延时很短时间,再检测按键是否按下,排除电平抖动等干扰。然后程序跳出循环检测按键的子程序,执行电动推杆的动作。
While(1)
{
if((A_key==0)&&(flay_A==1)) //检测推杆是否处于准备状态
{
delay(1);
if((A_key==0)&&(flay_A==1))
break;
}
}
2.2任务创建函数
在任务函数中,先创建任务task0。任务task0的主要功能是创建4个推杆的任务函数后,将自己删除,以减少硬件资源的消耗。
在实时操作系统中,要做好资源的合理分配。在应用程序编写之前,应该清楚了解各种硬件资源的调用情况,极力避免出现任务互斥。由任务task0创建的task1、task2、task3和task4 是4个推杆的驱动函数,各自负责不同推杆的运行。由于每个进程所用到的硬件资源都是经过严格划分,每个函数各自调用自身的独占硬件IO资源,所以不存在资源抢占的情况,不会出现任务互斥。
#include
#include
void job0(void) _task_ 0 \ 任务0:创建4个推杆的驱动任务
{
os_create_task(1); \ 推杆1的任务
os_create_task(2); \ 推杆2的任务
os_create_task(3); \ 推杆3的任务
os_create_task(4); \ 推杆4的任务
os_delete_task(0); \创建完成,挂起任务,以后不再执行
}
void job1(void) _task_1
{
while(1)
{
run_A(); \ 推杆1的驱动函数
}
}
……
本文采用H桥电机驱动电路,相对于原来使用继电器的电机驱动电路,动作响应较快,能够快速地切换直流电机的正反转。使用场效应管作驱动管,其中IRF4905在25℃时,源极与漏极之间的最大电流达74 A,最大电压为55 V。IRF3205在同温下,源极与漏极之间的最大电流达98 A,最大电压为55 V,即此H桥电路的额定最大电流为74 A。相对于10 A的继电器,H桥电路的驱动能力有较大提高。经测量,推杆的工作电流约为0.8 A,当电机启动时,启动电流约为正常电流的3~6倍,约为2.4 A~5 A,H桥驱动电路能满足设计要求。电路中的F1为自恢复保险丝,根据实际使用环境,选用10 A的额定电流。本文通过重新设计控制系统,提高系统的稳定性和反应速度,达到最初需求分析阶段提出的功能要求。硬件方面,使用了场效应管组成的H桥驱动电路和光电开关等改进,提高了电路的驱动能力和推杆运行的精度。软件方面,引入实时操作系统RTX-51 Tiny,简化开发流程,缩短系统响应时间,提高系统实时性。
[1] 任慰.以实时操作系统为中心的嵌入式系统平台化设计研究[D].武汉:华中科技大学,2013.
[2] 余锡存,曹国华.单片机原理及接口技术[M].西安:西安电子科技大学出版社,2005.
[3] 陈忠平.基于Proteus的AVR单片机C语言程序设计与仿真[M].北京:电子工业出版社,2011.
[4] 戴佳,戴卫恒.51单片机C语言应用程序设计实例精讲[M].北京:电子工业出版社,2006.
[5] 谢晓娜.嵌入式实时系统节能和可靠性优化算法研究[D].成都:电子科技大学,2014.
[6] 张红兵.实时多任务操作系统RTX-51TINY的应用[J].咸宁学院学报,2004,24(6):30-33.
[7] 李其昌.基于等待时间的多任务调度算法的研究与设计[J]. 计算机与数字工程,2011,39(12):23-26.
[8] 陈东生.双驱动电动推杆加载同步控制技术[J].机床与液压,2013,41(10):127-129,136.
Control System of Multi-Tasking DC Electric Actuator Based on RTX-51 Tiny
Chen Qingqi1Li Quanhui2
(1. Dongguan Science Museum 2. Engineers Association of Dongguan)
In order to solve the problem that the transmission mechanism is slow in response and unstable in operation, a multi-task DC electric actuator is designed. H-bridge motor drive circuit is applied, while using photoelectric switch to detect position and the use of proximity switches as status light detection circuit. The multi-task scheduling algorithm based on time-slice polling is used to develop the application software system. By means of the resources of the system, the four electric push-rods can work independently and in real time. The improved results show that the stability of the system is greatly improved and the response time of the system is shortened.
RTX-51 Tiny; DC Electric Actuator; H-Bridge Motor Drive Circuit; Multitask Scheduling Algorithm
陈庆其,男,1984年生,工程师,主要从事科普展品的电子控制系统研发工作。
李全会,男,1982年生,本科,主要从事网络管理等方面工作。