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