基于RTX51實(shí)時(shí)操作系統(tǒng)的交通燈控制系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:相對(duì)與傳統(tǒng)的開發(fā)方式而言,用實(shí)時(shí)操作系統(tǒng)進(jìn)行開發(fā)是一種效率更高的方式。現(xiàn)以道路交通燈控制系統(tǒng)為例。具體介紹了基于小型多任務(wù)實(shí)時(shí)操作系統(tǒng)RTX51開發(fā)軟件系統(tǒng)的方法和步驟,給出了系統(tǒng)的硬件電路及軟件設(shè)計(jì)方案。實(shí)踐測(cè)量表明,基于RTX51開發(fā)的軟件系統(tǒng),系統(tǒng)在實(shí)時(shí)性、穩(wěn)定性和可靠性等方面都得到了提高。
關(guān)鍵詞:交通燈控制系統(tǒng);實(shí)時(shí)操作系統(tǒng);RTX51
O 引言
一個(gè)高效的單片機(jī)智能控制系統(tǒng),不僅要求系統(tǒng)能夠同時(shí)執(zhí)行多個(gè)任務(wù),對(duì)每個(gè)任務(wù)作出實(shí)時(shí)響應(yīng),而且要求系統(tǒng)能夠及時(shí)響應(yīng)隨機(jī)發(fā)生的外部事件,并對(duì)其作出快速處理。對(duì)于這樣的系統(tǒng)應(yīng)用,采用實(shí)時(shí)操作系統(tǒng)RTOS(Real-time-Operating System)作為系統(tǒng)軟件設(shè)計(jì)平臺(tái)是一個(gè)良好的選擇,它可以靈活地安排系統(tǒng)資源,簡(jiǎn)化復(fù)雜的軟件設(shè)計(jì),加快軟件的開發(fā)效率,大大縮短了項(xiàng)目的開發(fā)周期。道路交通燈是最常見的一種多任務(wù)控制系統(tǒng),本文以此為倒,詳細(xì)闡述了51嵌入式實(shí)時(shí)操作系統(tǒng)RTX51開發(fā)軟件的方法和步驟。
1 系統(tǒng)硬件電路設(shè)計(jì)
交通信號(hào)燈控制系統(tǒng)主要實(shí)現(xiàn)以下三個(gè)功能:
(1)信號(hào)燈指示,即完成十字路口紅、黃、綠交通信號(hào)燈的控制。
(2)時(shí)間顯示,各個(gè)信號(hào)燈持續(xù)的時(shí)間顯示。
(3)緊急情況響應(yīng),當(dāng)系統(tǒng)出現(xiàn)故障或者有緊急情況是能夠及時(shí)響應(yīng)。
根據(jù)以上功能要求,完整的交通燈控制系統(tǒng)硬件電路如圖l所示,主要由三部分模塊組成:?jiǎn)纹瑱C(jī)最小系統(tǒng)模塊、紅綠色顯示模塊、倒計(jì)時(shí)顯示模塊、緊急中斷模塊。
(1)單片機(jī)最小系統(tǒng):包括時(shí)鐘電路和開關(guān)復(fù)位電路。單片機(jī)選用具有成本低廉且具有串口ISP下載功能的STC89C52單片機(jī),晶振選用12 MHz。
(2)信號(hào)燈指示電路:東西南北四個(gè)方向分別有紅、綠、黃三個(gè)狀態(tài)指示的燈,其中南北方向的紅綠黃發(fā)光二極管分別連接到P1.O~P1.2,東西方向的紅綠黃發(fā)光二極管分別連接到P1.3~P1.5。
(3)倒計(jì)時(shí)顯示:每個(gè)交通燈狀態(tài)倒計(jì)時(shí)時(shí)間由兩位共陽數(shù)碼管顯示,八位段碼分別連接到P0.0~P2.7,兩位位選通過反向器分別連接到P3.4、P3.5。
(4)緊急中斷:開關(guān)K1為緊急中斷開關(guān),當(dāng)有特殊情況時(shí)按下K1,K1連接到單片機(jī)P3.2外部中斷O輸入端。
2 基于RTX51的軟件設(shè)計(jì)
近年來,利用嵌入式實(shí)時(shí)操作系統(tǒng)來開發(fā)嵌入式系統(tǒng)的軟件已是大勢(shì)所趨。這是因?yàn)閭鹘y(tǒng)的這類設(shè)計(jì)中,大多采用了中斷結(jié)合單任務(wù)的順序機(jī)制進(jìn)行,這種設(shè)計(jì)方法雖然比較直觀,但是也帶來了諸如穩(wěn)定性差、不便于調(diào)試等問題。尤其是當(dāng)系統(tǒng)比較復(fù)雜、實(shí)時(shí)性要求比較高時(shí),這種單任務(wù)機(jī)制的缺陷更為明顯。利用嵌入式實(shí)時(shí)操作系統(tǒng),程序開發(fā)者可以將復(fù)雜的系統(tǒng)分成多個(gè)相對(duì)獨(dú)立的任務(wù),從而分而治之,降低了系統(tǒng)的復(fù)雜性;通過對(duì)不同的任務(wù)賦以不同的優(yōu)先級(jí),從而能夠保證系統(tǒng)的實(shí)時(shí)性;同時(shí),由于軟件系統(tǒng)有多個(gè)任務(wù)組成,所以其模塊化程度好。提高了系統(tǒng)的可維護(hù)性。因此,這里利用實(shí)時(shí)操作系統(tǒng)RTX51來進(jìn)行軟件系統(tǒng)的設(shè)計(jì)。
2.1 RTX51實(shí)時(shí)操作系統(tǒng)介紹
RTX51是美國(guó)Keil公司開發(fā)的一種運(yùn)行于8051單片機(jī)環(huán)境中的實(shí)時(shí)多任務(wù)操作系統(tǒng)(RTOS),其常用于處理復(fù)雜的多任務(wù)控制系統(tǒng)。8051單片機(jī)支持典型的RTX-51Tiny和RTX-51 Full實(shí)時(shí)多任務(wù)操作系統(tǒng)。在Keil μVison3集成開發(fā)環(huán)境中提供了RTX-51實(shí)時(shí)操作系統(tǒng)的編譯和仿真調(diào)試支持。
在多任務(wù)嵌入式系統(tǒng)中,合理的任務(wù)調(diào)度必不可少。單純通過提高處理器速度無法達(dá)到目的,這樣就要求嵌入式系統(tǒng)的軟件必須具有多任務(wù)調(diào)度能力。在微控制器應(yīng)用系統(tǒng)中通??梢苑纸鉃槎鄠€(gè)相互獨(dú)立的功能模塊,在RTX51嵌入式實(shí)時(shí)操作系統(tǒng)中將這些模塊劃分為任務(wù),引入多任務(wù)機(jī)制管理。依據(jù)系統(tǒng)功能優(yōu)先級(jí)分配不同的任務(wù),多個(gè)任務(wù)分別在各自的時(shí)間片內(nèi)訪問CPU,從而產(chǎn)生了微觀上輪流運(yùn)行、宏觀上并行運(yùn)行的多任務(wù)效果,保證了對(duì)外界的信息足夠快的速度進(jìn)行響應(yīng)處理,又能并行運(yùn)行多個(gè)任務(wù),因此能很好完成對(duì)多個(gè)信息的實(shí)時(shí)測(cè)量、處理并進(jìn)行響應(yīng)的多個(gè)實(shí)時(shí)控制。
2.2 任務(wù)分配
在本系統(tǒng)中,依據(jù)交通燈控制系統(tǒng)功能的分析,將整個(gè)軟件系統(tǒng)分解為以下三個(gè)任務(wù),系統(tǒng)初始化、紅綠黃燈顯示、倒計(jì)時(shí)顯示。具體情況如下:
任務(wù)0:用于系統(tǒng)初始化,開外部中斷0;啟動(dòng)任務(wù)1和任務(wù)2。
任務(wù)1:紅綠黃信號(hào)指示燈控制,實(shí)現(xiàn)紅綠黃燈的五種狀態(tài)控制。狀態(tài)0:東西方向紅燈亮,同時(shí)南北方向綠燈亮,亮的時(shí)間為30 S;狀態(tài)1:東西方向紅燈亮,南北方向黃燈閃爍,時(shí)間為3 S;狀態(tài)2:東西方向綠燈亮,同時(shí)南北方向紅燈亮,時(shí)間為30 S;狀態(tài)3:東西方向黃燈閃爍,南北方向紅燈亮,時(shí)間為3 S;狀態(tài)4:當(dāng)緊急開關(guān)按下時(shí),響應(yīng)緊急狀況或者故障狀態(tài),東西南北四個(gè)方向紅燈均亮,時(shí)間為10S。
任務(wù)2:各個(gè)狀態(tài)指示燈倒計(jì)時(shí)顯示。兩個(gè)數(shù)碼管采用動(dòng)態(tài)掃描顯示,實(shí)時(shí)顯示當(dāng)前交通指示燈狀態(tài)的倒計(jì)時(shí)時(shí)間。
2.3 程序設(shè)計(jì)
依據(jù)任務(wù)分配,將三個(gè)任務(wù)分別規(guī)劃為_task_0,_task_1,_task_2,由于完整的程序較大,這里不便給出,只給出部分代碼,如下所示。
3 結(jié)束語
本文以道路交通燈控制系統(tǒng)為例,詳細(xì)介紹了RTX51實(shí)時(shí)操作系統(tǒng)在單片機(jī)程序設(shè)計(jì)中的應(yīng)用。系統(tǒng)實(shí)際運(yùn)行結(jié)果表明,RTX51實(shí)時(shí)操作系統(tǒng)既能保證對(duì)外界的信息以足夠快的速度進(jìn)行處理,又能并行運(yùn)行多個(gè)任務(wù),具有實(shí)時(shí)性和并行性的特點(diǎn),因此能很好地完成對(duì)多個(gè)信息的實(shí)時(shí)測(cè)量、處理和進(jìn)行相應(yīng)的多個(gè)實(shí)時(shí)控制。此外,使用RTX51實(shí)時(shí)操作系統(tǒng),降低了軟件編寫的復(fù)雜度,提高了產(chǎn)品的開發(fā)效率,方便了系統(tǒng)的維護(hù)和功能擴(kuò)展。