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