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