陳慶其 李全會(huì)
?
基于RTX-51 Tiny多任務(wù)直流電動(dòng)推桿控制系統(tǒng)
陳慶其1李全會(huì)2
(1.東莞科學(xué)館 2.東莞市工程師協(xié)會(huì))
針對(duì)地動(dòng)儀模型在傳動(dòng)機(jī)構(gòu)設(shè)計(jì)中存在響應(yīng)速度慢、運(yùn)行不穩(wěn)定等問題,設(shè)計(jì)一個(gè)多任務(wù)直流電動(dòng)推桿控制系統(tǒng)。采用H橋電機(jī)驅(qū)動(dòng)電路,通過光電開關(guān)進(jìn)行位置檢測(cè);采用接近開關(guān)作為狀態(tài)燈檢測(cè)電路;基于時(shí)間片輪詢的多任務(wù)調(diào)度算法開發(fā)軟件系統(tǒng),通過合理調(diào)用系統(tǒng)各資源,實(shí)現(xiàn)4個(gè)電動(dòng)推桿機(jī)構(gòu)獨(dú)立、實(shí)時(shí)工作。經(jīng)測(cè)試,系統(tǒng)穩(wěn)定性有較大提高,響應(yīng)時(shí)間縮短。
RTX-51 Tiny;直流電動(dòng)推桿;H橋電機(jī)驅(qū)動(dòng)電路;多任務(wù)調(diào)度算法
隨著電子技術(shù)的發(fā)展和用戶需求的不斷提高,嵌入式系統(tǒng)設(shè)計(jì)已引入操作系統(tǒng)[1]。沒有引入操作系統(tǒng)時(shí),程序采用簡(jiǎn)單的時(shí)間片輪轉(zhuǎn),即多個(gè)應(yīng)用函數(shù)簡(jiǎn)單地循環(huán)運(yùn)行,系統(tǒng)實(shí)時(shí)反應(yīng)慢,需要等待上一個(gè)函數(shù)運(yùn)行完畢,才能響應(yīng)用戶的操作,系統(tǒng)資源使用率較低[2-5]。RTX-51 Tiny是針對(duì)8051系列單片機(jī)開發(fā)的小型實(shí)時(shí)操作系統(tǒng),具有運(yùn)行速度快、占用資源少、使用方便等特點(diǎn),廣泛應(yīng)用于各種嵌入式系統(tǒng)[6]。
本文針對(duì)我館地震展廳地動(dòng)儀模型在傳動(dòng)機(jī)構(gòu)設(shè)計(jì)中存在響應(yīng)速度慢、運(yùn)行不穩(wěn)定等問題[7-8],對(duì)其結(jié)構(gòu)及硬件電路進(jìn)行改進(jìn),并基于RTX-51 Tiny系統(tǒng),采用時(shí)間片輪詢的多任務(wù)調(diào)度算法改進(jìn)軟件系統(tǒng),取得較好效果。
1.1機(jī)械結(jié)構(gòu)改進(jìn)
1)地動(dòng)儀模型原有傳動(dòng)機(jī)構(gòu)中沒有位置檢測(cè)裝置,系統(tǒng)的運(yùn)行狀態(tài)不清晰,穩(wěn)定性較差。本文使用光電傳感器,檢測(cè)推桿每次運(yùn)動(dòng)是否正確到達(dá)關(guān)鍵位置,確保推桿每一步動(dòng)作的精準(zhǔn)。
2)原有機(jī)構(gòu)使用螺桿式傳輸機(jī)構(gòu)運(yùn)輸金屬球,而且是一根螺桿負(fù)責(zé)運(yùn)輸4個(gè)球,傳輸速度慢。本文選用獨(dú)立的傳輸管道,通過電動(dòng)推桿實(shí)現(xiàn)球由下而上的運(yùn)輸,提高傳輸速度。
1.2硬件電路改進(jìn)
直流電動(dòng)推桿控制系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示,其硬件系統(tǒng)由單片機(jī)及其外圍電路、電機(jī)驅(qū)動(dòng)電路(H橋電路)、光電傳感器電路、按鍵檢測(cè)電路和指示燈電路等構(gòu)成。
單片機(jī)系統(tǒng)電路圖如圖2所示,除了必備的振蕩電路和重啟電路外,還增加了ISP在線編程接口。利用此接口,開發(fā)人員可通過ISP燒錄線,直接在板上下載程序到單片機(jī),不用拔插單片機(jī),簡(jiǎn)化開發(fā)流程,提高工作效率。
1)基于H橋的電機(jī)驅(qū)動(dòng)電路
原使用機(jī)械式繼電器,存在反應(yīng)慢、體積大和額定最大通過電流小的問題。當(dāng)額定最大通過電流小,且電機(jī)啟動(dòng)或負(fù)載較大時(shí),容易燒觸點(diǎn)。本文采用由4個(gè)場(chǎng)效應(yīng)管組成的H橋電路,以IRF4905作為上橋,以IRF3205為下橋,如圖3所示。
①當(dāng)A1輸入端為高電平、A2輸入端為低電平時(shí),Q2、Q3導(dǎo)通,Q1、Q4截止,電流由Q2流向Q3,直流電機(jī)正轉(zhuǎn)。
圖2 單片機(jī)及其外圍電路
圖3 H橋電機(jī)驅(qū)動(dòng)電路
②當(dāng)A1端為低電平、A2為高電平時(shí),Q2、Q3截止,Q1、Q4導(dǎo)通,電流由Q1流向Q4,直流電機(jī)反轉(zhuǎn)。
③當(dāng)A1和A2同時(shí)為高電平或者低電平時(shí),Q1、Q2、Q3、Q4不構(gòu)成回路,沒有電流流過電機(jī),電機(jī)不工作。邏輯電平狀態(tài)如表1所示。
2)基于光電開關(guān)的位置檢測(cè)
本文選用光電開關(guān)HPJ-E21、HPJ-R21進(jìn)行位置檢測(cè),如圖4所示。此開關(guān)成對(duì)使用,其中連接黑色導(dǎo)線的為HPJ-E21,作為光源的發(fā)射管;連接白色線為HPJ-R21。將光電開關(guān)安裝在傳動(dòng)機(jī)構(gòu)的對(duì)應(yīng)位置,測(cè)試電動(dòng)推桿是否到達(dá)相應(yīng)位置??刂葡到y(tǒng)通過3個(gè)相應(yīng)的光電開關(guān)來確認(rèn)推桿的運(yùn)動(dòng)位置。
3)踏板開關(guān)與狀態(tài)燈檢測(cè)電路
本文中選用NPN型接近開關(guān),如圖5所示,踏板開關(guān)外形如圖6所示。當(dāng)觸發(fā)開關(guān)時(shí),輸出低電平。單片機(jī)相關(guān)引腳增加上拉電阻,當(dāng)觸發(fā)開關(guān)時(shí),單片機(jī)檢測(cè)到引腳電平由高變?yōu)榈停到y(tǒng)認(rèn)為,有人踩踏踏板,啟動(dòng)對(duì)應(yīng)位置的電動(dòng)推桿,推出小球。踏板安裝在四角裝有彈簧的木框上,踏板背面貼有金屬片。當(dāng)踩動(dòng)踏板,金屬片靠近接近開關(guān),從而觸發(fā)開關(guān)。
表1 H橋的邏輯電平狀態(tài)
圖4 HPJ-E21/HPJ-R21光電開關(guān)
圖5 接近開關(guān)
圖6 踏板開關(guān)的外形
指示燈電路如圖7所示,踏板指示燈只有紅燈亮和綠燈亮2種狀態(tài)。紅燈亮表示推桿正在運(yùn)行,不用踩踏板。綠燈亮表示一切準(zhǔn)備好,系統(tǒng)處于待觸發(fā)狀態(tài),可以踩踏踏板。當(dāng)單片機(jī)輸出一個(gè)高電平時(shí),Q2導(dǎo)通,Q1截止,紅燈亮。當(dāng)輸出一個(gè)低電平時(shí),Q2截止,Q1導(dǎo)通,綠燈亮。通過1根信號(hào)線,控制2盞指示燈的交替亮滅。
圖7 指示燈電路
本文基于RTX-51 Tiny實(shí)時(shí)操作系統(tǒng),采用基于時(shí)間片輪詢的任務(wù)調(diào)度算法,最多定義16個(gè)任務(wù),各個(gè)任務(wù)都處于就緒狀態(tài)。對(duì)于實(shí)時(shí)性要求較強(qiáng)的任務(wù),RTX-51 Tiny是一個(gè)較好的解決方案。另外RTX-51 Tiny對(duì)硬件資源要求小,8051系列單片機(jī)使用片內(nèi)集成硬件資源即可部署,不用擴(kuò)展外部RAM。軟件系統(tǒng)總體流程圖如圖8所示。
圖8 軟件系統(tǒng)總體流程圖(1.3版本帶光電傳感器,2.3版本屏蔽了光電傳感器)
2.1按鍵檢測(cè)程序
當(dāng)按鍵沒有按下時(shí),任務(wù)不斷地檢測(cè)按鍵。當(dāng)這個(gè)時(shí)間片耗盡時(shí),系統(tǒng)會(huì)將此任務(wù)轉(zhuǎn)變?yōu)榫途w狀態(tài),切換到另一個(gè)任務(wù),不會(huì)出現(xiàn)任務(wù)互斥的現(xiàn)象。當(dāng)有按鍵按下時(shí),任務(wù)延時(shí)很短時(shí)間,再檢測(cè)按鍵是否按下,排除電平抖動(dòng)等干擾。然后程序跳出循環(huán)檢測(cè)按鍵的子程序,執(zhí)行電動(dòng)推桿的動(dòng)作。
While(1)
{
if((A_key==0)&&(flay_A==1)) //檢測(cè)推桿是否處于準(zhǔn)備狀態(tài)
{
delay(1);
if((A_key==0)&&(flay_A==1))
break;
}
}
2.2任務(wù)創(chuàng)建函數(shù)
在任務(wù)函數(shù)中,先創(chuàng)建任務(wù)task0。任務(wù)task0的主要功能是創(chuàng)建4個(gè)推桿的任務(wù)函數(shù)后,將自己刪除,以減少硬件資源的消耗。
在實(shí)時(shí)操作系統(tǒng)中,要做好資源的合理分配。在應(yīng)用程序編寫之前,應(yīng)該清楚了解各種硬件資源的調(diào)用情況,極力避免出現(xiàn)任務(wù)互斥。由任務(wù)task0創(chuàng)建的task1、task2、task3和task4 是4個(gè)推桿的驅(qū)動(dòng)函數(shù),各自負(fù)責(zé)不同推桿的運(yùn)行。由于每個(gè)進(jìn)程所用到的硬件資源都是經(jīng)過嚴(yán)格劃分,每個(gè)函數(shù)各自調(diào)用自身的獨(dú)占硬件IO資源,所以不存在資源搶占的情況,不會(huì)出現(xiàn)任務(wù)互斥。
#include
#include
void job0(void) _task_ 0 \ 任務(wù)0:創(chuàng)建4個(gè)推桿的驅(qū)動(dòng)任務(wù)
{
os_create_task(1); \ 推桿1的任務(wù)
os_create_task(2); \ 推桿2的任務(wù)
os_create_task(3); \ 推桿3的任務(wù)
os_create_task(4); \ 推桿4的任務(wù)
os_delete_task(0); \創(chuàng)建完成,掛起任務(wù),以后不再執(zhí)行
}
void job1(void) _task_1
{
while(1)
{
run_A(); \ 推桿1的驅(qū)動(dòng)函數(shù)
}
}
……
本文采用H橋電機(jī)驅(qū)動(dòng)電路,相對(duì)于原來使用繼電器的電機(jī)驅(qū)動(dòng)電路,動(dòng)作響應(yīng)較快,能夠快速地切換直流電機(jī)的正反轉(zhuǎn)。使用場(chǎng)效應(yīng)管作驅(qū)動(dòng)管,其中IRF4905在25℃時(shí),源極與漏極之間的最大電流達(dá)74 A,最大電壓為55 V。IRF3205在同溫下,源極與漏極之間的最大電流達(dá)98 A,最大電壓為55 V,即此H橋電路的額定最大電流為74 A。相對(duì)于10 A的繼電器,H橋電路的驅(qū)動(dòng)能力有較大提高。經(jīng)測(cè)量,推桿的工作電流約為0.8 A,當(dāng)電機(jī)啟動(dòng)時(shí),啟動(dòng)電流約為正常電流的3~6倍,約為2.4 A~5 A,H橋驅(qū)動(dòng)電路能滿足設(shè)計(jì)要求。電路中的F1為自恢復(fù)保險(xiǎn)絲,根據(jù)實(shí)際使用環(huán)境,選用10 A的額定電流。本文通過重新設(shè)計(jì)控制系統(tǒng),提高系統(tǒng)的穩(wěn)定性和反應(yīng)速度,達(dá)到最初需求分析階段提出的功能要求。硬件方面,使用了場(chǎng)效應(yīng)管組成的H橋驅(qū)動(dòng)電路和光電開關(guān)等改進(jìn),提高了電路的驅(qū)動(dòng)能力和推桿運(yùn)行的精度。軟件方面,引入實(shí)時(shí)操作系統(tǒng)RTX-51 Tiny,簡(jiǎn)化開發(fā)流程,縮短系統(tǒng)響應(yīng)時(shí)間,提高系統(tǒng)實(shí)時(shí)性。
[1] 任慰.以實(shí)時(shí)操作系統(tǒng)為中心的嵌入式系統(tǒng)平臺(tái)化設(shè)計(jì)研究[D].武漢:華中科技大學(xué),2013.
[2] 余錫存,曹國(guó)華.單片機(jī)原理及接口技術(shù)[M].西安:西安電子科技大學(xué)出版社,2005.
[3] 陳忠平.基于Proteus的AVR單片機(jī)C語言程序設(shè)計(jì)與仿真[M].北京:電子工業(yè)出版社,2011.
[4] 戴佳,戴衛(wèi)恒.51單片機(jī)C語言應(yīng)用程序設(shè)計(jì)實(shí)例精講[M].北京:電子工業(yè)出版社,2006.
[5] 謝曉娜.嵌入式實(shí)時(shí)系統(tǒng)節(jié)能和可靠性優(yōu)化算法研究[D].成都:電子科技大學(xué),2014.
[6] 張紅兵.實(shí)時(shí)多任務(wù)操作系統(tǒng)RTX-51TINY的應(yīng)用[J].咸寧學(xué)院學(xué)報(bào),2004,24(6):30-33.
[7] 李其昌.基于等待時(shí)間的多任務(wù)調(diào)度算法的研究與設(shè)計(jì)[J]. 計(jì)算機(jī)與數(shù)字工程,2011,39(12):23-26.
[8] 陳東生.雙驅(qū)動(dòng)電動(dòng)推桿加載同步控制技術(shù)[J].機(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年生,工程師,主要從事科普展品的電子控制系統(tǒng)研發(fā)工作。
李全會(huì),男,1982年生,本科,主要從事網(wǎng)絡(luò)管理等方面工作。