申利燕 ,王紅儉
(山西煤炭職業(yè)技術(shù)學(xué)院,山西太原 030031)
TMS320F2812是美國(guó)TI公司專為數(shù)字電機(jī)控制DMC應(yīng)用最新推出的32位定點(diǎn)DSP控制器,是目前控制領(lǐng)域最先進(jìn)的處理器之一。TMS320F28XX系列的串行通信接口SCI支持CPU與其他采用標(biāo)準(zhǔn)NRZ格式的異步外設(shè)間的數(shù)字通信。異步傳輸模式采用RS-232-C格式終端和打印機(jī)等標(biāo)準(zhǔn)器件,利用DSP中的SCI模塊完成與微機(jī)間的數(shù)據(jù)傳遞,實(shí)現(xiàn)DSP對(duì)異步電動(dòng)機(jī)的變頻控制。Visual Basic6.0是運(yùn)行與Windows上的交互式可視化集成開發(fā)環(huán)境,利用通訊控件可實(shí)現(xiàn)PC機(jī)與DSP間的通信。
計(jì)算機(jī)提供了一個(gè)或多個(gè)符合RS-232標(biāo)準(zhǔn)的串行端口,通過對(duì)串口芯片進(jìn)行編程,可以使串口具有不同的工作方式、不同的波特率和不同的數(shù)據(jù)位數(shù)等。本文提出的異步電動(dòng)機(jī)變頻調(diào)速控制設(shè)計(jì)中的通信是 PC機(jī)發(fā)送數(shù)據(jù)給 DSP,所以用PC機(jī)的COM1的第3針(發(fā)送端子)和DSP的COM1的第2針(接收端子)對(duì)接起來,并把兩個(gè)串口的信號(hào)地第5針對(duì)接起來,就可以實(shí)現(xiàn)PC機(jī)與DSP之間的通信。
如果忽略定子漏阻抗壓降影響,異步電動(dòng)機(jī)定子繞組感應(yīng)電動(dòng)勢(shì)公式為
其中,u1為定子端電壓,E1為定子繞組感應(yīng)電動(dòng)勢(shì)為電源頻率,為定子繞組的匝數(shù)為定子繞組的基波繞組因數(shù),φm為主磁通。當(dāng)運(yùn)行頻率低于額定頻率時(shí),φm近似不變,可采用恒電壓頻率比(u1/f1=c)控制實(shí)現(xiàn)變頻調(diào)速。由于u1/f1為常數(shù),所以只要改變頻率 f1就可控制u1。
本設(shè)計(jì)采用磁通正弦PWM(即空間電壓矢量SVPWM)策略控制功率開關(guān)器件通斷,使逆變器輸出電壓波形盡量接近正弦波。DSP部分通過設(shè)置SCI模塊寄存器,利用SCI的接收中斷讀取從PC機(jī)傳送過來的二進(jìn)制數(shù)據(jù)給變量rf(SVPWM的給定頻率f1),再按照恒電壓頻率比控制方法設(shè)計(jì)的ru(SVPWM 的給定輸出電壓u1),由rf和ru作為輸入信號(hào)生成SVPWM波,再結(jié)合實(shí)驗(yàn)室提供的硬件驅(qū)動(dòng)電路驅(qū)動(dòng)電機(jī)從而實(shí)現(xiàn)變頻調(diào)速;PC機(jī)部分可以利用Visual Basic 6.0提供的ActiveX控件MSComm實(shí)現(xiàn)PC機(jī)發(fā)送二進(jìn)制數(shù)據(jù)給DSP。
DSP的軟件設(shè)計(jì)主要是SC1接收和中斷的處理,分別介紹如下:
(1)SCI接收步驟[1]:①在接收地址塊時(shí),SCI端口喚醒并申請(qǐng)接收中斷,讀取地址塊的第一幀,該幀包含目的處理器的地址;②通過中斷和檢查接收的地址啟動(dòng)軟件歷程,然后比較內(nèi)存中存放的器件地址和接收到數(shù)據(jù)的地址字節(jié);③如果上述地址相吻合,表明地址塊與DSP的地址相符,則CPU清除SLEEP位,并讀取塊中剩余的數(shù)據(jù);否則,退出軟件子程序并保持SLEEP置位,直到下一個(gè)地址塊的開始才接收中斷。
(2)本設(shè)計(jì)中用到了兩個(gè)中斷[1-3],一個(gè)是定時(shí)器1的下溢中斷,另一個(gè)是SCI的接收中斷,中斷優(yōu)先級(jí)為前者高于后者。當(dāng)SVPWM正在計(jì)算比較寄存器的值時(shí),如果突然串口發(fā)數(shù)據(jù)過來,程序不是立即終止計(jì)算進(jìn)入接收中斷,而是等計(jì)算結(jié)束后再進(jìn)入SCI接收中斷,這樣保證了SVPWM 脈沖調(diào)制的正確性。為了使主程序能夠正確進(jìn)入兩個(gè)中斷,在SCI的接收中斷里嵌套定時(shí)器1的下溢中斷,具體程序流程如圖1所示。
PC機(jī)利用Visual Basic6.0提供的ActiveX控件MSComm,實(shí)現(xiàn)與DSP通信,在form窗體中加入一個(gè)通信控件MSComm和一個(gè)定時(shí)器控件Timer1。通信控件用于給DSP發(fā)送數(shù)據(jù),定時(shí)器控件用來實(shí)現(xiàn)數(shù)據(jù)發(fā)送的持續(xù)性。
圖1 DSP部分程序流程圖
MSComm控件工作步驟:①設(shè)置通信對(duì)象、端口號(hào)以及初始化參數(shù)(包括波特率、奇偶校驗(yàn)位、數(shù)據(jù)位和停止位等)和其它相關(guān)屬性;②設(shè)定通信協(xié)議;③打開通信端口,進(jìn)行數(shù)據(jù)傳送;④關(guān)閉通信端口,釋放系統(tǒng)資源。
數(shù)據(jù)進(jìn)行串行通信時(shí),有以下的兩種傳送方式:①字符形式通常以小于ASCII128的字符碼來傳遞,通常用于傳送指令;②二進(jìn)制形式將數(shù)據(jù)以二進(jìn)制編碼的方式傳送,它可能含有ASCII碼128以上的字符碼,通常用來傳送數(shù)據(jù)數(shù)據(jù),用來節(jié)省時(shí)間。
調(diào)試程序可能會(huì)遇到如下問題。
(1)VB編程中數(shù)據(jù)匹配的問題
對(duì)于沒有串口編程經(jīng)驗(yàn)的開發(fā)人員來說,實(shí)際當(dāng)中碰到最棘手的問題可能就是數(shù)據(jù)發(fā)送和接收時(shí)變量類型的匹配問題。無論使用MSComm控件的Input屬性,還是使用其Output屬性,通信過程都可以處理文本和數(shù)據(jù)兩種情況,這兩種情況所采用的方法是不同的。本設(shè)計(jì)中要給DSP發(fā)送給定頻率和給定電壓,所以采用二進(jìn)制形式傳送,Input-Mode屬性設(shè)為1。
(2)VB界面與SCI波特率的一致性
如果二者的波特率不一致則會(huì)導(dǎo)致發(fā)送數(shù)據(jù)錯(cuò)誤,所以在編寫串口通信程序中一定要注意通信雙方的通訊協(xié)議一致,此處波特率為19200。
把繞線式異步電機(jī)接成電動(dòng)機(jī)狀態(tài),用TMS320F2812的串行通信接口支持CPU與PC機(jī)的數(shù)字通信,在恒電壓頻率比的條件下實(shí)現(xiàn)異步電動(dòng)機(jī)的變頻調(diào)速控制。其實(shí)驗(yàn)結(jié)果示于圖3。由圖可見,給定頻率突然增大或減小時(shí),轉(zhuǎn)速也會(huì)隨著頻率的變化而增高或降低,而定子電壓在給定頻率增大時(shí)幅值和頻率都增大。
圖3 變頻調(diào)速轉(zhuǎn)速和定子線電壓波形
本文討論了在Visual Basic6.0可視化集成開發(fā)環(huán)境下利用MSComm控件簡(jiǎn)單方便地實(shí)現(xiàn)PC機(jī)與DSP間的通信,并通過通信實(shí)現(xiàn)異步電動(dòng)機(jī)的變頻調(diào)速控制。其優(yōu)點(diǎn)在于硬件接線簡(jiǎn)單,軟件編程方便可行,但是此方法只適合于近距離通信。
[1] 蘇奎峰等編著.TMS320F2812原理與開發(fā)[M].北京:電子工業(yè)出版社,2005
[2] 王潞剛,陳林康主編.DSP C2000程序員高手進(jìn)階[M].北京:機(jī)械工業(yè)出版社,2004
[3] 王煉紅,章兢.TMS320F2812DSP與PC機(jī)的串口通信設(shè)計(jì)[J].北京:微計(jì)算機(jī)信息,20067-2:173-175
[4] 范逸之,陳立元編著.Visual Basic與 RS-232串行通信控制[M].北京:清華大學(xué)出版社,2005