基于μC/OS-II的基站監(jiān)控終端的設計與實現(xiàn)
摘要:為提高通信基站監(jiān)控終端的可靠性和事件處理能力,本文介紹采用 16位 RISC架構嵌入式微處理器 R8800實現(xiàn)基站監(jiān)控終端的設計。利用 Paradigm C++ 5.1集成環(huán)境編寫監(jiān)控終端控制程序,實現(xiàn)μC/OS-II在 R8800上的移植。通過實裝調試,設計的任務程序能在硬件環(huán)境和操作系統(tǒng)下穩(wěn)定工作,實現(xiàn)了監(jiān)控終端對環(huán)境模擬量和開關量信息的采集,對智能電源、空調設備和通風系統(tǒng)的通信與控制,與區(qū)域監(jiān)控中心進行遠程通信。
本文引用地址:http://m.butianyuan.cn/article/148654.htm近年來,隨著移動通信業(yè)務的迅猛發(fā)展,尤其是 3G通信網(wǎng)建設的進行,通信基站的建設數(shù)量與日俱增。通信運營商對快速建站、降低基站綜合成本和運營維護成本的要求更加迫切?;颈O(jiān)控終端,可做到基站無人值守、遠程監(jiān)控,給基站內設備提供一個穩(wěn)定可靠的工作環(huán)境,能夠明顯降低運營商的維護和管理成本,具有很高的應用價值。設計基站監(jiān)控系統(tǒng)的核心問題在于如何保證各功能模塊和監(jiān)控模塊自身的正常運行,對于各種異常和故障如何及時做出準確的報警,以及面向使用者的人性化設計等方面。
1 監(jiān)控終端硬件設計
1.1 功能描述基站監(jiān)控終端主要有 3個要求:門禁功能(對進入基站的人員進行身份驗證)、環(huán)境控制功能(為設備提供安全合適的環(huán)境)、報警功能(對各種故障和異常及時做出報警)。
本監(jiān)控終端的硬件結構如圖 1所示。基站內智能電源、空調和通風系統(tǒng),通過標準數(shù)據(jù)通信接口與本監(jiān)控終端傳輸設備和控制信息。智能電源能夠自動管理和切換市電和蓄電池,為站內設備提供穩(wěn)定的-48V電源,空調系統(tǒng)使用專用的空調柜機及工業(yè)級控制模塊,可以改善站內溫濕度環(huán)境,這兩者與終端采用 RS485連接。通風系統(tǒng)由風機和百葉窗組成,相對空調系統(tǒng)而言的結構簡單,可靠性高,且較為省電,是優(yōu)先使用的溫度控制手段,通風系統(tǒng)與終端采用 RS232連接。監(jiān)控終端需要采集交直流電源電壓電流數(shù)據(jù),溫濕度等模擬量數(shù)據(jù),采集水浸、煙感和與門禁相關的干結點開關信號,監(jiān)控終端具有本級顯示和鍵盤輸入功能。監(jiān)控終端通過時隙提取設備、撥號 MODEM、外置 GSM MODEM 3種手段向區(qū)域監(jiān)控中心傳送基站狀態(tài)參數(shù)和報警數(shù)據(jù),本終端設計了與這 3種通信設備硬件接口和軟件協(xié)議。
1.2硬件設計
監(jiān)控終端選擇 RDC公司的 R8800作為 CPU。R8800微控制器是 16位 RISC嵌入式微處理器,指令集與 x86兼容, R8800可以與 AM186EM相互替換,昀高工作頻率達到 40MHz。 R8800具有 1M的尋址空間, 32個 PIO管腳,7個內部中斷,6個外部中斷,3個定時器, 1個 Uart,WDT看門狗,100QFP/LQFP封裝[3]。本終端采用兩塊 128K × 8-bit Flash ROM,兩塊 128K × 8-bit Static RAM,滿足 1M的尋址空間。
利用現(xiàn)場可編程門陣列( FPGA)設計 CPU外設的譯碼電路,本終端采用 Xilinx XCS20芯片,該芯片具有 2萬門,160個 IO端口,具有 JTAG調試端口,芯片不必脫離線路板就可以更新設計并下載邏輯電路程序。FPGA除了對 16C554的片選、多路選擇開關、數(shù)模轉換、FLASH芯片的譯碼外,還負責鍵盤輸入、水浸、門狀態(tài)、鎖芯狀態(tài)、出門按鈕、紅外、煙感信號的干結點開關信號輸入,液晶顯示輸出,門鎖和照明的控制,與實時時鐘 HT1380的串行通信。
本終端通過兩個異步通信芯片 16C554外擴 6個收發(fā)單元, 3個 RS232端口,連接通風系統(tǒng)、時隙提取設備和 GSM MODEM,2個 RS485端口,連接工業(yè)空調和智能電源,還有 1個獨立的收發(fā)控制電路與撥號 MODEM接口。16C554內含 4個 16C550異步通信單元,每個單元獨立控制發(fā)送與接收,且具有 16字節(jié) FIFO以減少中斷請求次數(shù),波特率發(fā)生器可編程。本終端用了 6個 16C550單元,這六路通信中斷接至 R8800的六個外部中斷端口上,實現(xiàn)通信接收信息中斷。
表征各種環(huán)境參量的傳感器的輸出信號經(jīng)過預處理輸出一系列的模擬信號,模擬信號經(jīng)過多路選擇開關送給 A/D轉換芯片,A/D轉換芯片把轉換后的數(shù)據(jù)送入 FLASH芯片進行存儲。
鍵盤選用通用 4×4按鈕鍵盤,包括: 10個數(shù)字鍵、上下鍵、確認鍵、返回鍵。選擇 8279芯片作為鍵盤接口芯片,它能自動完成鍵盤的掃描輸入,能自動清除按鍵抖動,并實現(xiàn)多鍵同時按下的保護,減輕軟件負擔。液晶顯示器件選擇了帶有接口芯片 ST7920的圖形點陣式液晶顯示模塊 LCM12864,顯示分辨率為 128×64,它具有多種接口方式和三種顯示方式(圖形方式、文本方式及圖形和文本合成方式),內部具有字符發(fā)生器,可管理 64K顯示緩沖區(qū)及字符發(fā)生器,允許隨時訪問顯示緩沖區(qū)。
2 監(jiān)控終端的軟件設計
2.1軟件任務模塊軟件部分由 R8800控制程序和 FPGA程序組成。由于篇幅的限制,本文主要討論基于 μC/OS-II的監(jiān)控終端軟件設計。
本系統(tǒng)采用μC/OS-II面向中小型的嵌入式操作系統(tǒng)。采用 μC/OS-II實時系統(tǒng)之后,程序的結構變得非常清晰,根據(jù)程序的功能劃分出各個任務(task),系統(tǒng)任務示意如圖 2所示,利用μC/OS-II提供的信號量、郵箱等進行各個任務之間的同步、數(shù)據(jù)交換以及對共享資源進行保護[4]。
系統(tǒng)設計了開機任務,中斷服務,用戶任務。
(1)開機任務( TaskStart)。系統(tǒng)進行自檢,按程序規(guī)定的流程檢測所有設備是否正常工作。自檢成功后,命令系統(tǒng)進入主程序啟動多任務環(huán)境,運行所有默認系統(tǒng)任務和用戶任務。開機任務完成后進行自我刪除。
(2)中斷服務程序( Inttask0~Inttask5)。中斷服務程序主要是 R8800響應 16C554串口擴展芯片的接收信息的中斷請求,進入相應的處理程序(幀接受任務 TaskUart0Receive~ TaskUart5Receive),首先對幀信息的完整性與正確性做出判斷,對接收到的命令幀進行判斷,調用系統(tǒng)相應模塊或任務,并回應主叫命令 (幀處理任務 TaskUart0Handle~ TaskUart5Handle)。
(3)用戶任務。該軟件系統(tǒng)擁有 16個任務,數(shù)據(jù)處理和鍵盤處理任務通過判斷后進行任務切換。主要用戶任務如下:
A.鍵盤掃描任務 (TaskUser0_KeyBoard),采用任務循環(huán),對鍵盤信息(鍵盤由 FPGA進行掃描,將鍵盤信息存在 FPGA的 RAM中)進行動態(tài)掃描,當?shù)玫叫碌暮戏⊕呙璐a時,就向鍵盤郵箱(KeyBoardMailbox)發(fā)送帶有鍵盤掃描碼信息的消息。
B.數(shù)據(jù)采集任務( TaskUser1_DataCollection),采用任務循環(huán),數(shù)據(jù)采集任務包括模擬量和干結點開關量的數(shù)據(jù)采集,模擬量的采集由 FPGA譯碼控制,將模數(shù)轉換數(shù)據(jù)存入 Flash,開關量的采集由 FPGA負責采集,也存入 Flash中。CPU將 Flash中的模擬量和開關量數(shù)據(jù)進行分析處理,在模擬量數(shù)據(jù)處理上采用去極值求平均法去噪,即對一個檢測點采集多個值去掉昀大值和昀小值然后求平均,這個平均值就作為該點的數(shù)據(jù)值,對數(shù)字量也采用多采集幾次的方法增加可靠性。這樣可以消除突發(fā)脈沖、隨機噪聲的干擾,從而進一步提高了系統(tǒng)的抗干擾性和穩(wěn)定性。
C.溫度控制任務( TaskUser2_TemperatureControl),根據(jù)數(shù)據(jù)采集任務中獲得室內外的溫度狀況,在兼顧考慮節(jié)能等要求的情況下,決定控制環(huán)境的策略(采用通風系統(tǒng)還是空調系統(tǒng),還是兩者都采用)。
D.門禁控制任務( TaskUser3_DoorGuard),根據(jù)數(shù)字量(門磁、鎖芯和紅外傳感器)信號,如果同時有門磁告警和紅外告警判定為人員入侵,啟動報警任務進行報警。
E.報警任務( TaskUser4_Alarm),從通信、數(shù)據(jù)采集任務和門禁控制任務等處獲得系統(tǒng)的異常和故障情況,及時調用幀發(fā)送任務向監(jiān)控中心和維護人員報警,報警信息包括基站識別號、告警類型及屬性值、告警時間等。
此外,還有中斷服務程序中提到的幀處理任務,幀發(fā)送任務,鍵盤處理任務,顯示任務,查詢任務(供查詢歷史數(shù)據(jù)),設置任務(設置系統(tǒng)運行參數(shù))。
2.2 Paradigm C++集成環(huán)境下程序的編寫 監(jiān)控終端軟件基于μC/OS-II嵌入式操作系統(tǒng),由上述各程序模塊組成,在 Paradigm C++
5.1集成環(huán)境下編譯和調試通過( Paradigm C++是美國 Devtools公司開發(fā)的 80x86集成開發(fā)環(huán)境)。Paradigm C++ IDE帶有可視化助理 (Visual Assist)的編輯器(Editor)、編譯器 (Compiler/Assembler)、連接工具 (Linker)、定位器 (Locater)、Lint工具和集成調試器(Integrated debugger)。Paradigm的集成調試器屏蔽了硬件特殊性,提供了一個標準的軟件接口,主機上的 Paradigm調試器通過 RS232串口與本終端目標板建立通信連接,進行軟件調試 [5][6]。
通常移植μC/OS-II需要注意的兩點問題:
(1)與硬件有關問題,由于 R8800與 x86指令兼容,所以 μC/OS-II的移植根據(jù)參考文獻 4和 R8800說明文檔編寫與處理器相關的代碼,系統(tǒng)采用 40MHz的晶振,由于定時器與時鐘節(jié)拍有關,修改定時器相關的設置。
(2)與編譯器有關問題,由于 Paradigm C++集成開發(fā)環(huán)境包括的編譯器和匯編器與 Borland兼容,所以 μC/OS-II移植代碼基本與參考文獻 4一致。
3 結束語
本基站監(jiān)控終端是基于 16位微處理器和實時操作系統(tǒng) μC/OS-II的設計,在可靠性和對事件的處理能力、特別是通信能力上明顯優(yōu)于八位機處理系統(tǒng)。在實驗中,實現(xiàn)了區(qū)域監(jiān)控中心對基站設備運行狀態(tài)和環(huán)境參量的監(jiān)控。監(jiān)控終端能夠記錄和存儲相關的重要數(shù)據(jù),顯示運行情況。實現(xiàn)了集成化、智能化、網(wǎng)絡化的集中監(jiān)控,實現(xiàn)了基站的無人值守,節(jié)約了人力資源成本。
評論