當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于us/OS-II操作系統(tǒng)的斷路器控制器研制

0. 引言

  斷路器的智能操作是斷路器智能化發(fā)展過(guò)程中的一個(gè)全新的概念。智能控制器是實(shí)現(xiàn)智能操作的核心部件[1],其基本任務(wù)是通過(guò)對(duì)電網(wǎng)參數(shù)的采集和處理,給出相應(yīng)的控制信息。此外,智能控制器通過(guò)現(xiàn)場(chǎng)總線可以和計(jì)算機(jī)連接,進(jìn)行遠(yuǎn)程監(jiān)控管理。智能控制器的核心部分是軟件設(shè)計(jì)。目前,我國(guó)的大多數(shù)控制器的軟件設(shè)計(jì)都是采用主循環(huán)程序和中斷服務(wù)程序相配合的設(shè)計(jì)方法。而近年來(lái)嵌入式系統(tǒng)的使用越來(lái)越成熟,其中us/OS-II嵌入式操作系統(tǒng)由于源代碼公開(kāi)化,內(nèi)核體積小,可移植性好等原因,受到廣泛的應(yīng)用。本文采用了TI公司的DSP芯片TMS320LF2407A作為嵌入式系統(tǒng)硬件,將us/OS-II嵌入式操作系統(tǒng)移植到DSP芯片中,提高了系統(tǒng)的運(yùn)行效率和可靠性。

1. us/OS-II嵌入式操作系統(tǒng)

  嵌入式系統(tǒng)是執(zhí)行專用功能并被內(nèi)部計(jì)算機(jī)控制的設(shè)備或系統(tǒng),操作系統(tǒng)以及應(yīng)用軟件集成于計(jì)算機(jī)硬件系統(tǒng)之中,即系統(tǒng)的應(yīng)用軟件和系統(tǒng)的硬件一體化,嵌入式系統(tǒng)具有軟件代碼少,高度自動(dòng)化,響應(yīng)速度快等特點(diǎn),特別是適合于要求實(shí)時(shí)和多任務(wù)處理的情況。

  us/OS-II嵌入式操作系統(tǒng)是一個(gè)完整的、源代碼公開(kāi)的、可移植的、固化的、可裁剪的占先式實(shí)時(shí)多任務(wù)內(nèi)核,它是一種不可剝奪型內(nèi)核,所以在任務(wù)調(diào)度是必須先設(shè)定任務(wù)的優(yōu)先級(jí)。us/OS-II包括以下幾個(gè)部分:內(nèi)核管理、任務(wù)管理、時(shí)間管理、事件控制塊、信號(hào)量管理、郵箱管理等。

  us/OS-II中創(chuàng)建的任務(wù)有5種狀態(tài)[2],分別是:睡眠態(tài)、等待態(tài)、就緒態(tài)、運(yùn)行態(tài)、中斷服務(wù)態(tài)。us/OS-II是占先式內(nèi)核,每個(gè)任務(wù)都要設(shè)置優(yōu)先級(jí),優(yōu)先級(jí)最高的任務(wù)可以先進(jìn)入CPU運(yùn)行,其它任務(wù)只能先在就緒狀態(tài)中等待。us/OS-II最多可以創(chuàng)建多達(dá)64個(gè)任務(wù)(實(shí)際可以使用的是56個(gè),因?yàn)榍?個(gè)和后4個(gè)任務(wù)優(yōu)先級(jí)被保留做系統(tǒng)升級(jí)用)。

2. 嵌入式系統(tǒng)的硬件設(shè)計(jì)

  2.1 智能控制器總體結(jié)構(gòu)及工作原理

  智能控制器硬件系統(tǒng)的總體結(jié)構(gòu)如圖1所示。該控制器的主要任務(wù)是采集電網(wǎng)上的電流和電壓信號(hào),經(jīng)過(guò)信號(hào)處理電路的調(diào)理后,使信號(hào)變換成DSP的輸入標(biāo)準(zhǔn)電壓0到3.3V,DSP控制器通過(guò)對(duì)采集來(lái)的信號(hào)進(jìn)行分析,正確的發(fā)出動(dòng)作指令,并通過(guò)CAN總線向監(jiān)控計(jì)算機(jī)發(fā)送相關(guān)數(shù)據(jù),實(shí)現(xiàn)遠(yuǎn)程監(jiān)控管理。系統(tǒng)構(gòu)成主要包括DSP及其外圍電路所構(gòu)成的最小系統(tǒng)、A/D信號(hào)采集與處理電路,液晶顯示電路,電源,脫扣電路等部分。DSP的外圍電路包括晶振、濾波回路和片外RAM連接選擇存儲(chǔ)空間時(shí)使用的一些門電路。

2.2 TMS320LF2407A芯片及其開(kāi)發(fā)環(huán)境CCS2.2簡(jiǎn)介

  TMS320LF2407A是專為基于控制的應(yīng)用而設(shè)計(jì)的,它將高性能的DSP內(nèi)核和豐富的微控制器的外設(shè)集成于單片中,從而成為傳統(tǒng)的微控制器的理想替代。TMS320LF2407A DSP控制器的外設(shè)包括[3]:①事件管理器②CAN接口③A/D通道模數(shù)轉(zhuǎn)換④SPI串行外設(shè)接口⑤SCI串行通信接口⑥通用雙向I/O引腳。CCS2.2是CCS系列中的最新版本,有很多既方便又強(qiáng)大的功能。主要包括:①支持同時(shí)載入多個(gè)工程文件②增加了單步調(diào)試命令③編譯器有所加強(qiáng),對(duì)語(yǔ)法的檢查更加嚴(yán)格④通過(guò)建立庫(kù)工程,支持編譯函數(shù)文件成為庫(kù)文件

3. 嵌入式系統(tǒng)的軟件設(shè)計(jì)

  3.1 us/OS-II在2407上的移植

  us/OS-II在2407上的實(shí)現(xiàn)移植是嵌入式系統(tǒng)軟件設(shè)計(jì)的關(guān)鍵所在,主要工作是對(duì)移植相關(guān)的OS_CPU.H,OS_CPU_A.ASM,OS_CPU_C.C三個(gè)文件的編寫以及對(duì)OS_CFG.H配置的正確設(shè)定。

  在對(duì)OS_CFG.H配置中根據(jù)嵌入式實(shí)時(shí)系統(tǒng)的實(shí)際需要,對(duì)最低優(yōu)先級(jí)OS_LOWEST_PRIO、最多任務(wù)控制塊OS_MAX_EVENTS、最多任務(wù)數(shù)OS_MAX_TASKS進(jìn)行設(shè)置,對(duì)需要使用的功能進(jìn)行選擇置位。[!--empirenews.page--]

  對(duì)OS_CPU.H文件的編寫主要包括對(duì)以下4個(gè)宏進(jìn)行設(shè)置:

 ?、?OS_ENTER_CRITICAL()

 ?、?OS_EXIT_ CRITICAL()

 ?、?OS_STK_GROWTH

 ?、?OS_TASK_SW()

  其中,OS_ENTER_CRITICAL()和OS_EXIT_ CRITICAL()是關(guān)于關(guān)中斷和開(kāi)中斷的設(shè)置,由于在TMS320LF2407A中C編譯器可以嵌入?yún)R編語(yǔ)言,所以本文設(shè)置:

  #define OS_ENTER_CRITICAL() asm(" SETC INTM") //關(guān)中斷

  #define OS_EXIT_CRITICAL() asm(" CLRC INTM") //開(kāi)中斷

  OS_STK_GROWTH是關(guān)于堆棧的使用方式,由于TMS320LF2407A中堆棧是從低地址向高地址遞增的,所以本文設(shè)置:

  #define OS_STK_GROWTH 0

  OS_TASK_SW()是在任務(wù)切換中使用的,任務(wù)切換其實(shí)就是將原來(lái)任務(wù)的相關(guān)寄存器值入棧保存,以便以后這個(gè)任務(wù)被再次調(diào)用時(shí)可以恢復(fù)原先的相關(guān)寄存器值。本文設(shè)置OS_TASK_SW()作為中斷調(diào)用軟中斷指令OSCtxSw。

  對(duì)OS_CPU_C.C文件的編寫包括編寫以下10個(gè)C語(yǔ)言函數(shù):

  ① OSTaskStkInit()② OSTaskCreatHook()③ OSTaskDelHook()④ OSTaskSwHook()

 ?、?OSTaskIdleHook()⑥ OSTaskStatHook()⑦ OSTimeTickHook()⑧ OSIintHookBegin()

 ?、?OSInitHookEnd()⑩ OSTCBInitHook()

  在本文的實(shí)時(shí)嵌入式系統(tǒng)設(shè)計(jì)中,只對(duì)OSTaskStkInit()函數(shù)進(jìn)行了編寫,OSTaskStkInit()函數(shù)的作用是初始化任務(wù)的棧結(jié)構(gòu),將任務(wù)所有寄存器的值都保存到堆棧中。OSTaskStkInit()函數(shù)的示意性代碼如下所示。

  OS_STK *OSTaskStkInit(void (*task)(void *pd),

  void *pdata,

  OS_STK *ptos,

  INT16U opt)

  {

  opt = opt;

 ?。猵tos++ = (OS_STK)pdata; /* augument */

 ?。猵tos++ = (OS_STK)0; /* blank */

  *ptos++ = (OS_STK)0x27FC;/* ST1 */

 ?。猵tos++ = (OS_STK)0x2600;/* ST0 */

 ?。猵tos++ = (OS_STK)0; /* ACCH */

 ?。猵tos++ = (OS_STK)0; /* ACCL */

  *ptos++ = (OS_STK)0; /* PH */

 ?。猵tos++ = (OS_STK)0; /* PL */

 ?。猵tos++ = (OS_STK)0; /* T */

 ?。猵tos++ = (OS_STK)0; /* AR0 */

  *ptos++ = (OS_STK)0; /* AR2 */

 ?。猵tos++ = (OS_STK)0; /* AR3 */

  *ptos++ = (OS_STK)0; /* AR4 */

 ?。猵tos++ = (OS_STK)0; /* AR5 */[!--empirenews.page--]

 ?。猵tos++ = (OS_STK)0; /* AR6 */

 ?。猵tos++ = (OS_STK)0; /* AR7 */

  … … …

  return ptos;

 ?。?/p>

  其余9個(gè)C語(yǔ)言函數(shù)只進(jìn)行了聲明,沒(méi)有包含代碼或者為了防止C編譯器誤發(fā)警告只編寫了簡(jiǎn)單的指針自我賦值程序。

  對(duì)OS_CPU_A.ASM文件的編寫包括編寫以下4個(gè)匯編語(yǔ)言函數(shù):

  ① OSStartHighRdy()② OSCtxSw()③ OSIntCtxSw()④ OSTickISR()

  其中,調(diào)用OSStartHighRdy()是用來(lái)使就緒態(tài)任務(wù)中優(yōu)先級(jí)最高的任務(wù)開(kāi)始運(yùn)行。OSCtxSw()是用來(lái)實(shí)現(xiàn)任務(wù)切換,中斷服務(wù)子程序、陷阱或異常處理的向量地址必須指向OSCtxSw()。OSIntCtxSw()也是用來(lái)實(shí)現(xiàn)任務(wù)切換的,所不同的是OSIntCtxSw()是在中斷服務(wù)程序中實(shí)現(xiàn)任務(wù)切換。OSTickISR()是用來(lái)實(shí)現(xiàn)時(shí)鐘節(jié)拍功能。

  將以上這些函數(shù)編寫好以后,如果能編譯通過(guò)并且裝載入2407或外部RAM中,則說(shuō)明us/OS-II在2407上移植成功。移植成功以后就要進(jìn)行測(cè)試,可以編寫例如點(diǎn)亮指示燈這樣的小程序作為任務(wù),裝載入DSP運(yùn)行,如果運(yùn)行成功,就在此程序基礎(chǔ)上進(jìn)行嵌入式系統(tǒng)的軟件開(kāi)發(fā)。

  3.2 智能控制器軟件設(shè)計(jì)

  本文在進(jìn)行軟件設(shè)計(jì)時(shí)根據(jù)需要,編寫了以下幾個(gè)功能程序,主要包括液晶顯示程序、A/D采樣轉(zhuǎn)換程序、保護(hù)算法、瞬動(dòng)判斷保護(hù)程序、濾波算法及有效值計(jì)算、CAN通信的發(fā)送和接受等[4]。在各個(gè)功能程序編寫好以后,創(chuàng)建多個(gè)任務(wù),每個(gè)任務(wù)包含一個(gè)功能程序。對(duì)各個(gè)任務(wù)要根據(jù)不同的實(shí)際情況賦予不同的優(yōu)先級(jí),其中A/D采樣轉(zhuǎn)換和瞬動(dòng)判斷保護(hù)由于對(duì)實(shí)時(shí)性的要求比較高,應(yīng)賦予較高的優(yōu)先權(quán),液晶顯示由于為了人們讀取的視覺(jué)需要,延時(shí)時(shí)間比較長(zhǎng),賦予的優(yōu)先權(quán)最低。任務(wù)優(yōu)先級(jí)的安排如下:

  A/D采樣轉(zhuǎn)換程序 > 瞬動(dòng)判斷保護(hù)程序 > 濾波算法及有效值計(jì)算 > 保護(hù)算法> CAN通信的發(fā)送和接受 > 液晶顯示

  任務(wù)通過(guò)函數(shù)OSTaskCreateExt()來(lái)創(chuàng)建,創(chuàng)建一個(gè)任務(wù)的示例代碼如下:

  //創(chuàng)建任務(wù):

  INT8U OSTaskCreate (void (*task) (void *pd), void *pdata, OS_STK *ptos, INT8U prio)

  其中task是指向任務(wù)代碼的指針;pdata是任務(wù)開(kāi)始執(zhí)行時(shí),傳遞給任務(wù)的參數(shù)指針;ptos是分配給任務(wù)的堆棧的棧頂指針;prio是分配給任務(wù)的優(yōu)先級(jí)。

  //任務(wù)示例代碼:

  void Task (void *pdata)

 ?。?While (1)

 ?。?***根據(jù)實(shí)際功能編寫的代碼**/

  OSTimeDly(INT16U ticks); //任務(wù)延時(shí)

 ?。?/p>

 ?。?/p>

  當(dāng)任務(wù)被剝奪CPU的使用后,us/OS-II用任務(wù)控制塊OS_TCB來(lái)保存該任務(wù)的狀態(tài)。

4. 實(shí)驗(yàn)

  本文設(shè)計(jì)的實(shí)驗(yàn)樣機(jī)首先在實(shí)驗(yàn)室進(jìn)行調(diào)試,然后再到企業(yè)試驗(yàn)站進(jìn)行現(xiàn)場(chǎng)調(diào)試。主要試驗(yàn)項(xiàng)目包括液晶顯示、測(cè)量、保護(hù)特性測(cè)試、上位機(jī)和控制器之間的CAN總線通信等。試驗(yàn)結(jié)果表明:本文設(shè)計(jì)的智能控制器實(shí)現(xiàn)了測(cè)量、保護(hù)、通信和監(jiān)控等功能,實(shí)時(shí)性好,指標(biāo)達(dá)到預(yù)期要求。

5. 結(jié)束語(yǔ)

  本文為了實(shí)現(xiàn)低壓斷路器的可通信與智能化,研制了一種基于DSP和嵌入式實(shí)時(shí)操作系統(tǒng)us/OS-II的新型智能控制器,不僅實(shí)現(xiàn)了斷路器的基本功能,而且由于采用了us/OS-II嵌入式實(shí)時(shí)操作系統(tǒng),提高了DSP的運(yùn)行效率和控制器的可靠性。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉