μC/OSⅡ的分布式應(yīng)急電源控制系統(tǒng)設(shè)計(jì)
(2)在OS_CPU_A.ASM中修改以下幾個(gè)匯編函數(shù):OSStartHighRdy、OSCtxSw, OS1ntCtxSw,、OSTickISR。OSStarthighRdy的功能是運(yùn)行優(yōu)先級(jí)最高的就緒任務(wù),該函數(shù)由OSStartp函數(shù)調(diào)用,OSStart()的調(diào)用是建立在OSInit()的調(diào)用并且至少已經(jīng)建立一個(gè)任務(wù)的墓礎(chǔ)上的;OSCtxSw是一個(gè)任務(wù)級(jí)的任務(wù)切換函數(shù),該函數(shù)在任務(wù)中調(diào)用;OSIntCtxSw是一個(gè)中斷級(jí)的任務(wù)切換函數(shù);OSCtxSw為時(shí)鐘中斷服務(wù)函數(shù),時(shí)鐘中斷程序負(fù)責(zé)處理所有與定時(shí)相關(guān)的工作,如任務(wù)的延時(shí)、等待等,在時(shí)鐘中斷中將查詢處于等待狀態(tài)的任務(wù),判斷是否延時(shí)結(jié)束,則將重新進(jìn)行任務(wù)調(diào)度。
(3)在主頭文件INCLUDES.H中增加OS_CPU.H , OS_CPU_C.C和OS_ CPU_A.ASM。因?yàn)镮NCLUDES.H是主頭文件,它將被所有后級(jí)名為.C的文件所包含。在移植時(shí),需要對(duì)該文件進(jìn)行改寫,在文件末尾增加以下頭文件:
#include
#include
#include
(4)在配置文件OS_CFG.H中,定義最大事件數(shù),最多內(nèi)存分塊數(shù),最多消息隊(duì)列數(shù),最多任務(wù)數(shù),最低任務(wù)優(yōu)先級(jí),是否允許信號(hào)使能,是否允許郵箱使能,是否允許消息隊(duì)列使能,時(shí)鐘節(jié)拍數(shù)以及其他的一些配置。通過(guò)修改這些設(shè)置,可對(duì)uC/OS- II進(jìn)行裁剪,使之適應(yīng)本系統(tǒng)的具體需要?!?P> 系統(tǒng)采用中斷方式接收上位機(jī)的指令,采用查詢方式發(fā)送。當(dāng)上位機(jī)發(fā)出讀數(shù)、啟動(dòng)或停止操作命令后,嵌入式系統(tǒng)將產(chǎn)生中斷,并發(fā)送應(yīng)答信號(hào),然后根據(jù)收到的命令類型進(jìn)行相應(yīng)操作?!?P> 5 功率變換算法
本系統(tǒng)脈沖寬度計(jì)算采用規(guī)則采樣法,計(jì)算公式如式(1):
(1)
其中Usm為正弦波的幅值,Utm為三角波的幅值,N為載波比。[1]
交變電源的高次諧波幅值為:
(2)
由(2)式可以看出N越大,高次諧波幅值越小?;贗GBT的器件特性,N不能無(wú)限大,取N=400, 則高次諧波幅值Um(n)很容易被濾波器濾去。考慮到處于開(kāi)關(guān)工作狀態(tài)中的IGBT管從開(kāi)通轉(zhuǎn)為截止?fàn)顟B(tài)時(shí),容易產(chǎn)生較長(zhǎng)的“拖尾”現(xiàn)象,并進(jìn)而導(dǎo)致IGBT因瞬時(shí)功耗偏大而影響EPS逆變器的可靠性,因此,在用公式(1)計(jì)算方波的脈寬時(shí),,在系統(tǒng)中加入了反饋環(huán)節(jié),把實(shí)際輸出的電壓經(jīng)采樣送回控制器,用PI調(diào)節(jié)消除系統(tǒng)的靜態(tài)誤差,增加系統(tǒng)的穩(wěn)定性?!?P> 6 結(jié)論
本文結(jié)合TMS320LF2407芯片和μC/OS-II實(shí)時(shí)操作系統(tǒng)內(nèi)核的優(yōu)點(diǎn),設(shè)計(jì)出基于DSP和μC/OS-II的應(yīng)急電源控制系統(tǒng)。通過(guò)在DSP 上移植μC/OS-II,系統(tǒng)設(shè)計(jì)的周期得以減少,軟件的可讀性得以提高,從而節(jié)省了系統(tǒng)開(kāi)發(fā)和維護(hù)的費(fèi)用。目前,該系統(tǒng)工程樣機(jī)運(yùn)行平穩(wěn)可靠。
評(píng)論