999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于嵌入式操作系統(tǒng)的伺服軟件開發(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)行了某無刷電機(jī)伺服系統(tǒng)的軟件開發(fā)。介紹了系統(tǒng)設(shè)計(jì)的硬件組成、軟件結(jié)構(gòu)及運(yùn)行過程,并對所設(shè)計(jì)的伺服系統(tǒng)軟件進(jìn)行了測試,結(jié)果表明,所開發(fā)軟件滿足伺服控制要求,并對這兩種操作系統(tǒng)在設(shè)計(jì)中的使用給出建議。

關(guān)鍵詞:伺服系統(tǒng);無刷電機(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)彈伺服控制以模擬控制為主,近年來數(shù)字伺服控制得到了迅速的發(fā)展,無刷電機(jī)及軟件在導(dǎo)彈伺服系統(tǒng)中的應(yīng)用,提高了伺服系統(tǒng)的性能,是發(fā)展中的主流。由于軟件的引入,也使伺服系統(tǒng)的設(shè)計(jì)增加嵌入式軟件研制的內(nèi)容。

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

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

某伺服系統(tǒng)由主要TMS320F2812、組合邏輯電路、三相橋功率變換電路、電流采樣及角位置檢測電路、點(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)通過F2812的SCI接口接收控制指令;通過位置采樣獲得通道位置信息,輸出的PWM和DIR信號(hào)控制各功率管有序?qū)ㄊ篃o刷電機(jī)旋轉(zhuǎn);輸出點(diǎn)火、轉(zhuǎn)級(jí)控制信號(hào)使能點(diǎn)火、轉(zhuǎn)級(jí)控制電路;通過SCI接口反饋系統(tǒng)狀態(tài)信息。

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

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

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

μC/OS-Ⅱ是多任務(wù)、可剝奪型的實(shí)時(shí)操作系統(tǒng),其內(nèi)核只有任務(wù)管理和任務(wù)調(diào)度,無文件系統(tǒng)、界面系統(tǒng)、外設(shè)管理等。常用的μC/OS-Ⅱ能管理64個(gè)任務(wù),并提供任務(wù)調(diào)度與管理、內(nèi)存管理、任務(wù)間同步與通信、時(shí)間管理和中斷服務(wù)等功能,具有執(zhí)行效率高、占用空間小、實(shí)時(shí)性能優(yōu)良和移植簡單等特點(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)場,然后將準(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è)簡易的嵌入式操作系統(tǒng),是DSP集成開發(fā)環(huán)境CCS提供的一套工具,無需移植即可直接應(yīng)用。DSP/BIOS主要包括以下組成部分:

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

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

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

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

應(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的軟件開發(fā)過程如下:

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

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

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

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

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

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

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

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

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

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

(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í),對不需要在運(yùn)行中掛起的任務(wù)選擇了軟件中斷線程。

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

基于DSP/BIOS的軟件通常采用仿真器在RAM中開發(fā)調(diào)試,最終脫離開發(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開始)外,其余配置到Flash;CompilerSections卡除CVariables Section(.bss)、(.ebss),DataSection(.Cio)3項(xiàng)配置到RAM外,其余配置到Flash;LoadAddress卡所有項(xiàng)配置到Flash;

(2)將.hwi_vec段從加載地址拷貝到運(yùn)行地址。拷貝過程放在Main()中,DSP/BIOS會(huì)生成一些全局符號(hào)幫助確定加載地址、運(yùn)行地址和.hwi_vec段的長度。編譯器運(yùn)行支持庫包含一個(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,對應(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í)間,對本軟件一些切換時(shí)間進(jìn)行了粗略的測試和估計(jì)。本系統(tǒng)CPU時(shí)鐘為100MHz,測試結(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頁)

6 結(jié)論與建議

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

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

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

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

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

主站蜘蛛池模板: 欧美日韩免费观看| 国产成人综合在线视频| 亚洲天堂久久| 亚洲欧美一区二区三区图片| 国产理论一区| 国产日韩精品一区在线不卡| 毛片久久网站小视频| 成人免费网站久久久| 国产第一页第二页| 92午夜福利影院一区二区三区| 国产欧美日韩精品综合在线| 激情無極限的亚洲一区免费| 亚洲成aⅴ人片在线影院八| 青青青国产精品国产精品美女| 色综合狠狠操| jizz国产视频| 欧美日本一区二区三区免费| 波多野结衣第一页| 国产精品高清国产三级囯产AV| 无码中字出轨中文人妻中文中| 亚洲日韩在线满18点击进入| 国产麻豆福利av在线播放| 怡红院美国分院一区二区| 亚洲青涩在线| 国产香蕉97碰碰视频VA碰碰看| 国产福利在线免费观看| 国产乱人免费视频| a网站在线观看| 国内丰满少妇猛烈精品播| 日韩欧美视频第一区在线观看| 亚洲欧洲日产无码AV| 一级高清毛片免费a级高清毛片| 午夜国产精品视频| 少妇高潮惨叫久久久久久| 久久一色本道亚洲| 久久综合色天堂av| 亚洲国产成人精品无码区性色| 2020国产精品视频| 日韩精品免费在线视频| 波多野结衣久久高清免费| 亚洲最新在线| 久久a级片| 国产综合在线观看视频| 亚洲无码四虎黄色网站| 日韩欧美在线观看| a在线亚洲男人的天堂试看| 成人欧美日韩| 亚洲国产成人久久77| 久久综合干| 亚洲资源站av无码网址| 视频在线观看一区二区| 国产福利影院在线观看| 久久99国产综合精品女同| 国产日韩欧美精品区性色| 日韩欧美网址| 麻豆精品在线播放| 谁有在线观看日韩亚洲最新视频| 亚洲欧美日韩另类| 欧美激情视频二区| 日韩在线网址| 亚洲国产精品一区二区第一页免 | 免费在线一区| 亚洲天堂免费在线视频| 国产在线一二三区| 一级福利视频| 亚洲欧美自拍中文| 国产成人精品视频一区二区电影 | 久久婷婷国产综合尤物精品| 亚洲成人77777| 婷婷六月在线| 国产永久无码观看在线| 亚洲男人天堂网址| 国产靠逼视频| 久久国产精品嫖妓| 无码专区在线观看| 国产精鲁鲁网在线视频| 国产激情无码一区二区免费| 视频一区视频二区中文精品| 四虎永久在线精品影院| а∨天堂一区中文字幕| 免费欧美一级| 国产精品冒白浆免费视频|