μC/OS-II在數(shù)字微波監(jiān)控系統(tǒng)中的應用
隨著嵌入式系統(tǒng)開發(fā)的普及和深入,在更加復雜的應用中傳統(tǒng)軟件開發(fā)手段難以滿足需求,嵌入式操作系統(tǒng)在開發(fā)中扮演著越來越重要的角色,已經(jīng)被廣泛應用于手機、移動計算機設備、網(wǎng)絡設備和工控仿真等領域。嵌入式操作系統(tǒng)μC/OS-II源碼是公開的,而且它是可移植、可固化、可裁減及可剝奪型的多任務實時內核,可用于各類8位、16位和32位單片機和DSP,目前得到廣泛應用。本文給出一種數(shù)字微波設備監(jiān)控系統(tǒng)的設計,該系統(tǒng)引入μC/OS-II之后,系統(tǒng)的開發(fā)效率得到提高,整個系統(tǒng)的健壯性得到增強,文中對軟件設計應用中遇到的關鍵問題作了深入討論并給出了相應的解決方案。
1 數(shù)字微波設備監(jiān)控系統(tǒng)的設計
微波通信是一種利用微波傳輸信息的通信手段,數(shù)字微波采用數(shù)字信號處理技術,利用微波信道傳輸數(shù)字信號,以下給出一種數(shù)字微波通信系統(tǒng)中監(jiān)控系統(tǒng)的設計。由兩個端站組成一條微波鏈路,每個端站含一個室內單元IDU(In-Door Unit)、一個室外單元ODU(Out-Door Unit)、連接室內單元和室外單元的同軸電纜、以及微波天線。本文主要討論IDU監(jiān)控部分CPU相關內容的軟硬件設計。
1.1 微波監(jiān)控IDU部分硬件設計
IDU組成框圖如圖1所示,主要由業(yè)務接口、輔助業(yè)務、復分接、微波幀分復接、中頻調制解調、中頻分合路器、電源、CPU及相關接口組成。
主業(yè)務數(shù)據(jù)通過業(yè)務接口電路復接后,與公務、輔助數(shù)據(jù)信號等一起進入微波幀復接模塊,復接成微波幀信號,由調制模塊完成調制,通過中頻分合路器送往ODU。從ODU送來的中頻信號經(jīng)過中頻分合路器送往解調模塊解調出數(shù)據(jù),送到微波幀分接電路,分接出主業(yè)務、公務以及輔助數(shù)據(jù)信息,通過主業(yè)務接口電路分接出各支路主業(yè)務數(shù)據(jù)。CPU對所傳輸?shù)臉I(yè)務數(shù)據(jù)進行監(jiān)視和控制,監(jiān)視所傳數(shù)據(jù)的狀態(tài)、性能等信息,可設置所傳數(shù)據(jù)的各種參數(shù),通過輔助業(yè)務接口可提取和插入各種控制信息。
CPU采用PHILIPS公司的32位ARM芯片LPC2214,該芯片接口豐富,硬件設計時CPU相關接口完成功能如下:輸入接口提供按鍵設置掃描電路,輸出接口通過液晶、告警燈及蜂鳴器輸出信息,通過I2C接口CPU可實現(xiàn)對串行E2PROM、時鐘芯片的存取,CPU本身提供SPI接口,通過該接口實現(xiàn)本端與遠端控制信息的交換。串行接口提供一種監(jiān)控手段,可實現(xiàn)CPU與PC機的通信,完成狀態(tài)讀取和各種命令的設置,以太網(wǎng)接口通過擴展以太網(wǎng)接口芯片實現(xiàn),通過以太網(wǎng)接口建立與網(wǎng)管中心的通信,可實現(xiàn)網(wǎng)絡化的管理。OOK(On/Off—Keying)調制解調電路完成IDU與ODU之間的通信,通過該電路,IDU可對ODU進行設置發(fā)功率、收發(fā)頻率、監(jiān)視ODU的工作狀態(tài)等。
1.2 軟件結構
軟件總體分為應用程序和μC/OS-II兩部分,應用程序是用戶代碼部分,采用C語言編寫,完成對整個系統(tǒng)的監(jiān)控;μC/OS-II為一種嵌入式多任務實時操作系統(tǒng),其大部分程序使用C語言編寫,還有一小部分和處理器密切相關的代碼使用匯編語言編寫,μC/OS-II包括了三部分,即μC/OS-II核心代碼、配置代碼和移植代碼。
其中,核心代碼:包括10個C程序文件和一個頭文件,主要實現(xiàn)了系統(tǒng)調度、任務管理、內存管理、信號量、消息郵箱和消息隊列等系統(tǒng)功能,而這些功能的實現(xiàn)與處理器類型無關。
配置代碼:包括2個頭文件,用于裁剪和配置μC/OS-II,這部分代碼根據(jù)用戶的實際需求來配置μC/OS-II系統(tǒng)。
移植代碼:這部分主要包括1個匯編文件、1個C程序文件和一個頭文件,這部分根據(jù)具體的處理器移植μC/OS-II系統(tǒng)的需要修改,它和處理器關系密切。
2 μC/OS-II在微波監(jiān)控系統(tǒng)中的應用
2.1 應用程序中任務的設計與劃分
根據(jù)實際的需要,應用軟件劃分為7個任務:液晶顯示、按鍵接收和告警、時間標志處理、遠端信息處理、數(shù)據(jù)處理、串口任務處理,如圖2所示。
圖2 應用程序中任務的劃分
(1) Task_LCD_OP:主要是處理菜單的顯示,根據(jù)不同的菜單顯示設備的相關信息,并且完成將設置數(shù)據(jù)保存到公共變量中。
(2) Task_KEY:主要完成外部按鍵信號的掃描,按照不同的按鍵轉換為不同的編碼,并把其值保存到公共變量中。
(3) Task_TIME_FLG:實現(xiàn)設置時間標志,以使其它任務完成定時任務,因為有許多的定時任務,所以設立了一個單獨的任務來設置或取消時間標志。
評論