關于μC/OS-II系列軟件版權的說明
本文給出了在蓄電池化成工藝過程控制系統(tǒng)設計中,將嵌入式操作系統(tǒng)μC/OS-II用于系統(tǒng)軟件設計,并將系統(tǒng)各功能模塊劃分成不同優(yōu)先級的任務由系統(tǒng)內(nèi)核進行調(diào)度,從而通過人機操作界面顯示系統(tǒng)任務的具體方法。
工業(yè)以太網(wǎng)具有比現(xiàn)場總線更好的性能,正處于不斷發(fā)展完善當中,因此研制基于工業(yè)以太網(wǎng)的設備具有很好的市場前景。本文設計的嵌入式控制器采用了基于ARM7TDMIS的微控制器LPC2292[12]??刂破鞯牡讓优c現(xiàn)場總線CAN相連,向上與Ethernet/IP工業(yè)以太網(wǎng)相連。為提高可靠性,應用了冗余控制技術,備有一個一模一樣的冗余控制器。通過LVDS接口,控制器與冗余控制器相連,并相互在線監(jiān)測。同時,本文采用了嵌入式實時操作系統(tǒng)μC/OS-II[3]。
文章首先介紹了uC/OS-II在ARM上的移植。在此基礎上,根據(jù)以太網(wǎng)控制器ENC28J60的特點,設計了該系統(tǒng)的硬件結(jié)構。闡述了如何在嵌入式實時操作系統(tǒng)μC/OS-II上移植實現(xiàn)LwIP這套TCP/IP協(xié)議棧,并詳細地描述了ENC28J60網(wǎng)卡驅(qū)動的軟件流程,給μC/OS-II加上了網(wǎng)絡支持。
自嵌入式系統(tǒng)開發(fā)以來,很長時間都采用前后臺系統(tǒng)軟件設計模式:主程序為一個無限循環(huán),單任務順序執(zhí)行。通過設置一個或多個中斷 來處理異步事件。這種系統(tǒng)對于簡單的應用是可以的,但對于實時性要求比較高的、處理任務較多的應用,就會暴露出實時性差、系統(tǒng)可靠性低、穩(wěn)定性差等缺點。μC/OS-II 是一種基于優(yōu)先級的搶占式多 任務實時操作系統(tǒng), 包含了實時內(nèi)核、任務管理、時間管理、任務間通信同步(信號量,郵箱,消息 隊列)和內(nèi)存管理等功能。它可以使各個任務獨立工作,互不干涉,很容易實現(xiàn)準時而且無誤執(zhí)行,使實時應用程序的設
在μC/OS-II平臺下開發(fā)程序,首先要掌握內(nèi)核。通過上述移植過程,能夠?qū)θ蝿斩褩?,任務調(diào)度有深刻理解。作為一種開放源代碼的操作系統(tǒng),以其優(yōu)越的性能在嵌入式系統(tǒng)應用領域占據(jù)了非常廣泛的發(fā)展空間。移植結(jié)果表明,經(jīng)過裁剪的μC/OS-II在S3C44B0X上的移植是成功的。
μC/OS 和μC/OS-II 是專門為計算機的嵌入式應用設計的, 絕大部分代碼是用C語言編寫的。CPU 硬件相關部分是用匯編語言編寫的、總量約200行的匯編語言部分被壓縮到最低限度,為的是便于移植到任何一種其它的CPU 上。
μC/OS-Ⅱ是一種多任務實時源代碼的公開操作系統(tǒng),內(nèi)核精簡,移植性較強,非常適合用于一些小型控制和實驗系統(tǒng)的開發(fā)。
軟件定時器是常用于內(nèi)核設計和應用程序設計的一項基礎軟件措施。本文對μC/OS-II V2.86中新增的用于管理軟件定時器的定時器輪進行了重新規(guī)劃,并對處理算法進行了重新設計,有效提高了軟件定時器的到期命中率,驗證表明,新改進的算法在同等負載下可降低CPU的負載率約9%左右。
如果用戶任務運行在“用戶級+PSP”狀態(tài)下,而調(diào)用操作系統(tǒng)函數(shù)時運行在“特權級+MSP”狀態(tài)下,再配合MPU的使用,可以使系統(tǒng)的安全性與穩(wěn)定性得到很大的提高。
介紹了實時操作系統(tǒng)μC/OS-II的特點和內(nèi)核結(jié)構,并首次實現(xiàn)了μC/OS-II在摩托羅拉處理器MPC555上的移植,介紹了移植后OS的應用方法。
針對目前RFID讀寫器無法隨身攜帶,實現(xiàn)遠程的IC卡讀寫操作的問題,采用GPRS無線網(wǎng)絡作為數(shù)據(jù)傳輸?shù)妮d體,實現(xiàn)了無線RFID讀寫器的開發(fā)。采用μC/OS-Ⅱ嵌入式實時操作系統(tǒng)作為讀寫器終端的軟件平臺,在ARM7系列微處理器LPC2148上實現(xiàn)了對IC卡的發(fā)行、加值、消費、操作記錄查詢與匯總、數(shù)據(jù)采集以及無線傳輸。采用動態(tài)密鑰加密算法很好地保證了IC卡的數(shù)據(jù)安全。
為了使嵌入式操作系統(tǒng)μC/OS-Ⅱ更加適合數(shù)控系統(tǒng)的應用,對μC/OS-Ⅱ的任務分類和任務調(diào)度做了改進。將任務分為普通任務和搶占式任務。搶占式任務不通過調(diào)度器調(diào)度運行,而在中斷處理中直接運行。搶占式任務對應數(shù)控系統(tǒng)中執(zhí)行頻率高,執(zhí)行時間短的任務。實驗證明,改進后的μC/OS-Ⅱ更適合數(shù)控系統(tǒng)任務的添加。
本文設計了實時系統(tǒng)加速RTA(Real-Time Acceleration)模塊,對任務調(diào)度和系統(tǒng)時間管理進行硬件化,降低了任務中斷時間,并對最終的測量數(shù)據(jù)進行對比,得出結(jié)論。
μc/Os-Ⅱ的就緒表設置、清除、查找算法,是高效的、跨平臺的程序。它使用了兩個查找數(shù)組OSMapTbl[8]和OSUnMapTbl[256],以提高查找就緒表的速度,盡快獲取就緒任務的最高優(yōu)先級。
多窗口顯示屏控制采用μC/OS-II實時操作系統(tǒng)的多任務管理運行模式,各窗口視頻數(shù)據(jù)由線程管理,Nios II 32位處理器作為顯示屏控制器硬件系統(tǒng)的核心,軟件系統(tǒng)控制多窗口任意顯示。在1片F(xiàn)PGA上實現(xiàn)顯示屏控制器的硬件系統(tǒng),利用SOPC Builder軟件定制系統(tǒng)所需的IP核,外擴存儲設備實現(xiàn)視頻數(shù)據(jù)的海量存儲,解決了FPGA內(nèi)部資源相對不足的問題。通過重構視頻數(shù)據(jù),合理組織數(shù)據(jù)的存儲方式,解決視頻數(shù)據(jù)的灰度控制問題,減少數(shù)據(jù)處理過程,降低了控制系統(tǒng)的復雜度。
本文的創(chuàng)新之處在于針對μC/OSII在內(nèi)存管理可靠性不高、內(nèi)存塊分配不夠靈活的特點,借鑒Buddy算法思想,對其進行改進,形成了一種基于Buddy算法思想、高可靠性的內(nèi)存管理策略。實驗表明,新方案一次創(chuàng)建內(nèi)存區(qū),即可滿足內(nèi)存塊大小需求不均勻的場合,既提高內(nèi)存分配的靈活性,避免了大量內(nèi)碎片的產(chǎn)生,又增強了內(nèi)存分配的可靠性。因此,新方案在可靠性要求高的嵌入式系統(tǒng)中可以得到更好的應用。
構建以FPGA為核心的通信處理模塊,內(nèi)置一個32位處理器,加載uCLinux操作系統(tǒng),驅(qū)動兩個CMOS接口、一個SPI射頻接口、一個以太網(wǎng)接口、一塊液晶顯示器;硬件加速定位、圖像預處理、編碼等算法;開發(fā)良好人機交互接口。