国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于嵌入式操作系統(tǒng)的伺服軟件開(kāi)發(fā)

2013-12-29 00:00:00宋揚(yáng)朱沛洪岳宏達(dá)牛振
航空兵器 2013年5期

摘 要:為了提高伺服系統(tǒng)的性能,在分析伺服結(jié)構(gòu)的基礎(chǔ)上,分別采用μC/OS-Ⅱ和TI公司的DSP/BIOS嵌入式操作系統(tǒng)進(jìn)行了某無(wú)刷電機(jī)伺服系統(tǒng)的軟件開(kāi)發(fā)。介紹了系統(tǒng)設(shè)計(jì)的硬件組成、軟件結(jié)構(gòu)及運(yùn)行過(guò)程,并對(duì)所設(shè)計(jì)的伺服系統(tǒng)軟件進(jìn)行了測(cè)試,結(jié)果表明,所開(kāi)發(fā)軟件滿足伺服控制要求,并對(duì)這兩種操作系統(tǒng)在設(shè)計(jì)中的使用給出建議。

關(guān)鍵詞:伺服系統(tǒng);無(wú)刷電機(jī);嵌入式操作系統(tǒng);μC/OS-Ⅱ;DSP/BIOS

中圖分類號(hào):TJ765 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1673-5048(2013)05-0045-03

ServoSoftwareDesignBasedonEmbeddedOperationSystem

SONGYang1,ZHUPeihong2,YUEHongda2,NIUZhen2

(1.AviationTechnologyGuaranteeBranchofNED,Beijing100481,China;

2.ChinaAirborneMissileAcademy,Luoyang471009,China)

Abstract:Onthebasisofanalyzingtheconfigrationofservo,respectivelybasedonembeddedoperatingsystemμC/OSⅡandTI’sDSP/BIOS,abrushlessmotorservosystemsoftwaredesignisdonetoimprovesystemperformance.Thisarticlebrieflyintroducesthehardwarecomposition,thesoftwarestructure andoperationprocess.Systemtestresultsshowthecorrectnessofthesoftwaredesign,andsomesuggestionsonhowtousethetwooperatingsystemsindesigningaregivenintheend.

Keywords:servosystem;brushlessmotor;embeddedoperatingsystem;μC/OSⅡ;DSP/BIOS

0 引 言

傳統(tǒng)的空空導(dǎo)彈伺服控制以模擬控制為主,近年來(lái)數(shù)字伺服控制得到了迅速的發(fā)展,無(wú)刷電機(jī)及軟件在導(dǎo)彈伺服系統(tǒng)中的應(yīng)用,提高了伺服系統(tǒng)的性能,是發(fā)展中的主流。由于軟件的引入,也使伺服系統(tǒng)的設(shè)計(jì)增加嵌入式軟件研制的內(nèi)容。

伺服軟件是伺服系統(tǒng)的神經(jīng)中樞,為確保其研制質(zhì)量,除做好軟件的工程化開(kāi)發(fā)和管理外,選擇適當(dāng)?shù)能浖_(kāi)發(fā)環(huán)境也會(huì)取得事半功倍的效果。傳統(tǒng)的嵌入式軟件系統(tǒng)可以稱為前、后臺(tái)系統(tǒng),基于嵌入式系統(tǒng)開(kāi)發(fā)的軟件系統(tǒng)則體現(xiàn)多任務(wù)運(yùn)行的特點(diǎn)。改變傳統(tǒng)開(kāi)發(fā)方式,在嵌入式操作系統(tǒng)下進(jìn)行伺服軟件開(kāi)發(fā)是否具有一定的優(yōu)越性呢?本文以某伺服系統(tǒng)為背景,在嵌入式操作系統(tǒng)下對(duì)伺服系統(tǒng)軟件開(kāi)發(fā)進(jìn)行了一些嘗試,以探索其優(yōu)越性。

1 伺服系統(tǒng)結(jié)構(gòu)

某伺服系統(tǒng)由主要TMS320F2812、組合邏輯電路、三相橋功率變換電路、電流采樣及角位置檢測(cè)電路、點(diǎn)火、轉(zhuǎn)級(jí)控制電路及傳動(dòng)機(jī)構(gòu)等構(gòu)成。系統(tǒng)有兩個(gè)獨(dú)立運(yùn)動(dòng)的通道,兩個(gè)通道的結(jié)構(gòu)相同,由一片F(xiàn)2812進(jìn)行控制,系統(tǒng)主要硬件結(jié)構(gòu)如圖1所示。系統(tǒng)通過(guò)F2812的SCI接口接收控制指令;通過(guò)位置采樣獲得通道位置信息,輸出的PWM和DIR信號(hào)控制各功率管有序?qū)ㄊ篃o(wú)刷電機(jī)旋轉(zhuǎn);輸出點(diǎn)火、轉(zhuǎn)級(jí)控制信號(hào)使能點(diǎn)火、轉(zhuǎn)級(jí)控制電路;通過(guò)SCI接口反饋系統(tǒng)狀態(tài)信息。

2 嵌入式操作系統(tǒng)

常用的嵌入式實(shí)時(shí)操作系統(tǒng)有μC/OS-Ⅱ、VxWorks、Real-TimeLinux等,TI公司在其DSP集成開(kāi)發(fā)環(huán)境CCS中也提供了一種簡(jiǎn)易嵌入式操作系統(tǒng)DSP/BIOS。由于本文設(shè)計(jì)系統(tǒng)的微處理器采用的是F2812且未配置片外存儲(chǔ)器,考慮到資源情況和移植的難易程度,使用μC/OS-Ⅱ和DSP/BIOS進(jìn)行了伺服軟件開(kāi)發(fā)的嘗試。

2.1 μC/OS-Ⅱ操作系統(tǒng)及移植

μC/OS-Ⅱ是多任務(wù)、可剝奪型的實(shí)時(shí)操作系統(tǒng),其內(nèi)核只有任務(wù)管理和任務(wù)調(diào)度,無(wú)文件系統(tǒng)、界面系統(tǒng)、外設(shè)管理等。常用的μC/OS-Ⅱ能管理64個(gè)任務(wù),并提供任務(wù)調(diào)度與管理、內(nèi)存管理、任務(wù)間同步與通信、時(shí)間管理和中斷服務(wù)等功能,具有執(zhí)行效率高、占用空間小、實(shí)時(shí)性能優(yōu)良和移植簡(jiǎn)單等特點(diǎn)。

在F2812上應(yīng)用μC/OS-Ⅱ,需要進(jìn)行系統(tǒng)移植,移植的主要難點(diǎn)是編寫任務(wù)切換函數(shù)。常用的任務(wù)切換函數(shù)是一個(gè)中斷處理函數(shù),該函數(shù)首先將要被掛起任務(wù)的CPU寄存器及程序返回地址推入任務(wù)棧,保存現(xiàn)場(chǎng),然后將準(zhǔn)備就緒的最高優(yōu)先級(jí)任務(wù)寄存器值從任務(wù)棧中恢復(fù)到寄存器中,使其進(jìn)入運(yùn)行態(tài)。任務(wù)切換函數(shù)可以用F2812的陷阱中斷TRAP指令觸發(fā)調(diào)用。F2812 CPU有近20個(gè)寄存器,TRAP指令觸發(fā)的中斷及中斷退出時(shí)會(huì)自動(dòng)保存和恢復(fù)ST0,AL,AH,PL,PH,AR0,AR1,ST1,DP,IER,DBGSTAT寄存器和程序返回地址。按照任務(wù)切換的要求,還需手工保存和恢復(fù)RPC,AR1H,AR0H,XAR2~XAR7,XT,ST1寄存器。任務(wù)級(jí)的任務(wù)切換示意性代碼如下:

_OSCtxSw:

將RPC,AR1H,AR0H,XAR2~XAR7,XT,ST1推入當(dāng)前堆棧

OSTCBCur->OSTCBStkPtr=SP OSTCBCur=OSTCBHighRdy OSPrioCur=OSPrioHighRdy

SP=OSTCBHighRdy->OSTCBStkPtr將RPC,AR1H,AR0H,XAR2~XAR7,XT,ST1從新堆棧中彈出IRET

2.2 DSP/BIOS操作系統(tǒng)

DSP/BIOS是一個(gè)簡(jiǎn)易的嵌入式操作系統(tǒng),是DSP集成開(kāi)發(fā)環(huán)境CCS提供的一套工具,無(wú)需移植即可直接應(yīng)用。DSP/BIOS主要包括以下組成部分:

(1)DSP/BIOS配置工具。該工具可用來(lái)創(chuàng)建和配置在應(yīng)用程序中使用的DSP/BIOS內(nèi)核對(duì)象、存儲(chǔ)器、線程及優(yōu)先權(quán);

(2)DSP/BIOS系統(tǒng)分析工具。系統(tǒng)分析工具可以對(duì)應(yīng)用程序進(jìn)行各種類型的實(shí)時(shí)跟蹤,以了解應(yīng)用程序的運(yùn)行狀態(tài)和時(shí)間;

(3)DSP/BIOS實(shí)時(shí)內(nèi)核與API,通過(guò)調(diào)用API函數(shù)應(yīng)用程序?qū)崿F(xiàn)多任務(wù)調(diào)度和運(yùn)行;

(4)芯片支持庫(kù)。用于簡(jiǎn)化片上外設(shè)的配置和管理。遺憾的是,各版本的DSP/BIOS并未為F2812提供芯片支持庫(kù)。

應(yīng)用DSP/BIOS編制的程序主要特點(diǎn)是多線程調(diào)度及運(yùn)行。DSP/BIOS支持4種不同優(yōu)先級(jí)的線程:硬件中斷(HWI)、軟件中斷(SWI)、任務(wù)線程(TSK)、后臺(tái)線程(IDL)。它們的優(yōu)先級(jí)即實(shí)時(shí)性依次從高到低。任務(wù)線程與軟件中斷的區(qū)別在于每個(gè)任務(wù)線程都有自己的堆棧,因而占用存儲(chǔ)容量較多;任務(wù)間支持同步和通訊,一個(gè)任務(wù)可以掛起,直到必需的條件得到滿足,才得以繼續(xù)運(yùn)行,軟件中斷則做不到這一點(diǎn)。

基于DSP/BIOS的軟件開(kāi)發(fā)過(guò)程如下:

(1)用配置工具建立應(yīng)用程序要用到的對(duì)象,如硬件中斷、軟件中斷和任務(wù)等;

(2)保存配置文件,系統(tǒng)會(huì)生成編譯和鏈接應(yīng)用程序時(shí)需要的庫(kù)文件;

(3)創(chuàng)建一個(gè)新的cmd文件,定義需要附加連接的段,DSP/BIOS允許在一個(gè)工程中有多個(gè)cmd文件;

(4)編寫應(yīng)用程序,可以使用C、C++、匯編語(yǔ)言;

(5)在CCS環(huán)境下編譯并鏈接程序;

(6)使用仿真器和DSP/BIOS分析工具來(lái)測(cè)試應(yīng)用程序;

(7)軟件開(kāi)發(fā)好后,修改配置文件以支持硬件,并進(jìn)行測(cè)試。

3 基于操作系統(tǒng)的軟件設(shè)計(jì)實(shí)現(xiàn)

依據(jù)需求分析,本伺服系統(tǒng)軟件須具備的功能有:接收指令并解碼;位置采樣,對(duì)系統(tǒng)輸出位置進(jìn)行控制;依據(jù)指令要求,完成3種類型的自檢及點(diǎn)火、轉(zhuǎn)級(jí)控制;編碼系統(tǒng)狀態(tài)信息并輸出。分解相關(guān)要求形成如表1所示任務(wù)線程表,并編寫對(duì)應(yīng)的程序。

伺服系統(tǒng)軟件運(yùn)行過(guò)程為:

(1)系統(tǒng)初始化后,各任務(wù)處于掛起態(tài);

(2)500μs的位置控制中斷輸出上一周期運(yùn)算得到的PWM、DIR信號(hào)、采樣位置,并計(jì)算本次的PWM及DIR值,發(fā)出啟動(dòng)接收指令、解碼任務(wù)線程的消息;

(3)接收指令、解碼任務(wù)線程經(jīng)SCI接收指令并進(jìn)行解碼,獲得各通道位置要求值,并依據(jù)不同的指令要求,向?qū)?yīng)任務(wù)發(fā)出消息;

(4)各任務(wù)收到消息后,由掛起態(tài)轉(zhuǎn)入運(yùn)行態(tài),執(zhí)行任務(wù)。

因?yàn)镈SP/BIOS中的硬、軟件線程實(shí)時(shí)性要高于任務(wù),因此,采用DSP/BIOS操作系統(tǒng)時(shí),對(duì)不需要在運(yùn)行中掛起的任務(wù)選擇了軟件中斷線程。

4 軟件在片內(nèi)Flash運(yùn)行的配置

基于DSP/BIOS的軟件通常采用仿真器在RAM中開(kāi)發(fā)調(diào)試,最終脫離開(kāi)發(fā)環(huán)境駐留在Flash運(yùn)行時(shí)需要調(diào)整一些配置。

(1)MEM-MemorySectionManager屬性的5個(gè)選項(xiàng)卡應(yīng)配置如下:General卡各項(xiàng)配置到RAM;BIOSData卡除DSP/BIOSInitTables(.gblinit)項(xiàng)配置到Flash外,其余配置到RAM;BIOS Code卡除InterruptServiceTableMemory(.hwi_vec)項(xiàng)配置到PIEVECTRAM(0xd00開(kāi)始)外,其余配置到Flash;CompilerSections卡除CVariables Section(.bss)、(.ebss),DataSection(.Cio)3項(xiàng)配置到RAM外,其余配置到Flash;LoadAddress卡所有項(xiàng)配置到Flash;

(2)將.hwi_vec段從加載地址拷貝到運(yùn)行地址??截愡^(guò)程放在Main()中,DSP/BIOS會(huì)生成一些全局符號(hào)幫助確定加載地址、運(yùn)行地址和.hwi_vec段的長(zhǎng)度。編譯器運(yùn)行支持庫(kù)包含一個(gè)內(nèi)存拷貝函數(shù)memcpy(),可以完成這個(gè)任務(wù)。具體程序如下:

EALLOW;

memcpy(&hwi_vec_run_start,&hwi_vec_run_loadstart,&hwi_vec_run_loadend-&hwi_vec_run_loadstart);

EDIS;

(3)將.trcdata段從加載地址拷貝到運(yùn)行地址。與.hwi_vec段不同,拷貝.trcdata段必須在main()之前進(jìn)行。為在main()之前執(zhí)行拷貝和DSP/BIOS初始化,配置工具提供了一個(gè)初始化函數(shù),在System_GlobalSettings的Properties中選擇CallUserInitFunction,并在UserInitFunction輸入框內(nèi)輸入U(xiǎn)serInit,對(duì)應(yīng)的拷貝程序如下:

VoidUserInit(void)

{

memcpy(&trcdata_runstart,&trcdata_loadstart,&trcdata_loadend-&trcdata_loadstart)

}

(4)在新的cmd文件中設(shè)置需要在RAM中運(yùn)行的程序段加載地址和運(yùn)行地址的鏈接命令。

5 切換時(shí)間的比較

多任務(wù)切換及運(yùn)行的缺點(diǎn)主要是需占用一定的存儲(chǔ)器和CPU資源,為比較μC/OS-Ⅱ和DSP/BIOS在任務(wù)切換時(shí)所需的時(shí)間,對(duì)本軟件一些切換時(shí)間進(jìn)行了粗略的測(cè)試和估計(jì)。本系統(tǒng)CPU時(shí)鐘為100MHz,測(cè)試結(jié)果為μC/OS-Ⅱ任務(wù)間切換時(shí)間約為2.4μs(程序在RAM中運(yùn)行)或3.2μs(程序在Flash中運(yùn)行);DSP/BIOS由硬件中斷切換到軟件中斷3.97μs,軟件中斷切換到軟件中斷7.35μs,任務(wù)線程切換到軟件中斷10.03μs(DSP/BIOS內(nèi)核在ROM中運(yùn)行)。(下轉(zhuǎn)第57頁(yè))

6 結(jié)論與建議

對(duì)所開(kāi)發(fā)的實(shí)際系統(tǒng)進(jìn)行了要求項(xiàng)目的功能和性能測(cè)試,測(cè)試結(jié)果表明系統(tǒng)功能及時(shí)域和頻域性能指標(biāo)均處在要求的范圍內(nèi),由此認(rèn)為,基于嵌入式操作系統(tǒng)開(kāi)發(fā)的伺服系統(tǒng)軟件可以滿足系統(tǒng)的控制要求。

傳統(tǒng)的前、后臺(tái)軟件開(kāi)發(fā)方式完全可以滿足伺服系統(tǒng)軟件的開(kāi)發(fā)且運(yùn)行效率較高,但在操作系統(tǒng)下開(kāi)發(fā)軟件可以提高開(kāi)發(fā)效率,特別是復(fù)雜的應(yīng)用程序,將整個(gè)軟件分解成多個(gè)任務(wù)線程分別開(kāi)發(fā)時(shí)不必考慮其他任務(wù)線程的影響,符合軟件工程的解耦原則。同時(shí),軟件的結(jié)構(gòu)清晰,易于維護(hù)和管理。主要缺點(diǎn)是增加了額外的系統(tǒng)存儲(chǔ)資源和CPU負(fù)荷。對(duì)F2812而言,由于DSP/BIOS不必移植,操作系統(tǒng)的API函數(shù)均作為庫(kù)函數(shù)提供,因而具有高的可靠性,無(wú)特殊要求時(shí)應(yīng)優(yōu)先采用,當(dāng)對(duì)實(shí)時(shí)性有較高要求時(shí)則可采用μC/OS-

Ⅱ。如DSP/BIOS的內(nèi)核API函數(shù)也能在RAM中運(yùn)行時(shí),最好選擇DSP/BIOS。

參考文獻(xiàn):

[1]吳永忠,程文娟,鄭淑麗,等.嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ教程[M].西安:西安電子科技大學(xué)出版社,2007.

[2]LabrosseJJ.嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ[M].2版.邵貝貝,等譯.北京:北京航空航天大學(xué)出版社,2003.

[3]彭啟琮,管慶.DSP集成開(kāi)發(fā)環(huán)境—CCS及DSP/BIOS的原理與應(yīng)用[M].北京:電子工業(yè)出版社,2004.

[4]AlterMD.RunninganApplicationfromInternalFlash MemoryontheTMS320F28xxxDSP[M].TISPRA958H,2008.

[5]蘇奎峰,呂強(qiáng),常天慶,等.TMS320X281xDSP原理及C程序開(kāi)發(fā)[M].北京:北京航空航天大學(xué)出版社,2008.

[6]曹磊范彩霞.基于DSP/BIOS的門禁系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)時(shí)代,2010(6):26-28.

阜新| 舞阳县| 柞水县| 板桥市| 田阳县| 永安市| 门源| 阳信县| 兴安县| 巨鹿县| 赫章县| 于田县| 江城| 南汇区| 慈溪市| 尉氏县| 政和县| 乐清市| 嘉荫县| 健康| 乌鲁木齐市| 高州市| 崇阳县| 济阳县| 分宜县| 友谊县| 临洮县| 安化县| 宁武县| 比如县| 章丘市| 湟中县| 浪卡子县| 利津县| 德令哈市| 三门峡市| 台中市| 辛集市| 延吉市| 锦州市| 辽阳县|