俞 洪
(北京聯(lián)合大學(xué),中國(guó) 北京100011)
在工業(yè)自動(dòng)化領(lǐng)域中,電動(dòng)機(jī)控制是特別重要的一部分,現(xiàn)代電動(dòng)機(jī)控制技術(shù)變得特別重要的原因,也就是因?yàn)?,電?dòng)機(jī)控制產(chǎn)品在工業(yè)控制領(lǐng)域需要的越來(lái)越大,而微處理器在電動(dòng)機(jī)控制領(lǐng)域中用途也是越來(lái)越廣泛。 然而,基于單片機(jī)的傳統(tǒng)的控制策略不能滿足需要的原因,也正是增加的處理數(shù)據(jù)量對(duì)實(shí)時(shí)性要求的提高。 隨著數(shù)字信號(hào)處理器(DSP)的迅速發(fā)展及性?xún)r(jià)比的不斷提高,數(shù)字信號(hào)處理器應(yīng)用于電動(dòng)機(jī)控制領(lǐng)域已經(jīng)成為一種趨勢(shì)。 本文闡述了一種以TMS320LF2407 為主處理的DSP 芯片作為控制核心的步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)。
系統(tǒng)使用DSP 芯片, 并使用軟件程序驅(qū)動(dòng)步進(jìn)電機(jī)的這種步進(jìn)電機(jī)控制系統(tǒng),步進(jìn)電機(jī)的轉(zhuǎn)速、轉(zhuǎn)動(dòng)的角度以及轉(zhuǎn)動(dòng)的次數(shù)等可以在一定范圍內(nèi)自由設(shè)定,是通過(guò)軟件編程的方法得以實(shí)現(xiàn),方便靈活地控制步進(jìn)電機(jī)的運(yùn)行狀態(tài)也可以使用這種方式,這樣就可以滿足不同用戶(hù)的要求。步進(jìn)電機(jī)控制系統(tǒng)采用TMS320LF2407 為硬件電路設(shè)計(jì)的核心,通過(guò)通信電路將接收到的數(shù)據(jù)來(lái)控制電機(jī)的運(yùn)行。 硬件電路主要包括步進(jìn)電機(jī)驅(qū)動(dòng)器、鍵盤(pán)顯示電路。 整個(gè)系統(tǒng)分為五個(gè)部分組成:TMS320LF2407 DSP 中央控制器, 反相器74LS06, 光電隔離器4N25,驅(qū)動(dòng)芯片ULN2003A 和步進(jìn)電動(dòng)機(jī),系統(tǒng)主要原理框圖如圖1所示:
圖1
CCS,(Code Composer Studio 代碼生成室) 是TI 公司DSP 產(chǎn)品的軟件開(kāi)發(fā)工具的集成環(huán)境,這一開(kāi)發(fā)工具軟件將編輯、編譯、鏈接和調(diào)試及圖形、圖像顯示等多功能于一體。 軟件仿真和硬件仿真是兩種不同的開(kāi)發(fā)環(huán)境。不同的開(kāi)發(fā)環(huán)境,具有不同的功能。軟件仿真使用CCS軟件,在DSP 芯片上運(yùn)行模擬程序。
CCS 有幾個(gè)版本,現(xiàn)在最新到V3.1,一般使用V2.1 或V2.2。 另外,根據(jù)TI 的DSP 分為C2000、C5000 和C6000 系列,則CCS 也相應(yīng)有對(duì)應(yīng)的版本。 本系統(tǒng)使用的是CCS 2(C2000)這一版本。
CCS 完成了系統(tǒng)軟件的開(kāi)發(fā)和調(diào)試。它提供了一套編程,維護(hù),編譯,調(diào)試環(huán)境可以編譯連接生成COFF(通用對(duì)象文件)格式的可執(zhí)行文件的匯編語(yǔ)言和C 語(yǔ)言程序, 并且可以把程序下載到目標(biāo)DSP 上運(yùn)行調(diào)試。 CCS 開(kāi)發(fā)流程如圖2 所示。
圖2
系統(tǒng)軟件設(shè)計(jì)之前,必須先按照應(yīng)用系統(tǒng)的目標(biāo)與確定信號(hào)處理的要求和系統(tǒng)的性能指標(biāo),描述一般使用數(shù)學(xué)運(yùn)算序列、數(shù)據(jù)流圖、自然語(yǔ)言或正式的符號(hào)。
根據(jù)高級(jí)語(yǔ)言編寫(xiě)的系統(tǒng)仿真的要求。 一般情況下,會(huì)對(duì)輸入信號(hào)適當(dāng)?shù)奶幚?,目的是?shí)現(xiàn)該系統(tǒng)的最終目標(biāo),不同的方法導(dǎo)致不同的系統(tǒng)性能。 要得到最佳的系統(tǒng)性能,就必須在這一步確定最佳的處理方法,即數(shù)字信號(hào)處理的算法(Algorithm),因此這一步也稱(chēng)算法模擬階段。
因?yàn)橄到y(tǒng)軟件是建立在硬件基礎(chǔ)上的,所以接下來(lái)就要根據(jù)硬件來(lái)設(shè)計(jì)最佳的軟件系統(tǒng)。軟件設(shè)計(jì)和編程主要根據(jù)系統(tǒng)要求和所選的DSP 芯片編寫(xiě)相應(yīng)的C 語(yǔ)言程序。
系統(tǒng)的軟件設(shè)計(jì)完成后,就需要軟件的調(diào)試。 軟件的調(diào)試一般借助于DSP 開(kāi)發(fā)工具,如軟件模擬器、DSP 開(kāi)發(fā)系統(tǒng)或仿真器等。 調(diào)試DSP 算法時(shí)一般采用比較實(shí)時(shí)結(jié)果與模擬結(jié)果的方法,如果實(shí)時(shí)程序和模擬程序的輸入相同,則兩者的輸出應(yīng)該一致。 應(yīng)用系統(tǒng)的其他軟件可以根據(jù)實(shí)際情況進(jìn)行調(diào)試。 系統(tǒng)的軟件調(diào)試完成后,就可以將軟件脫離開(kāi)發(fā)系統(tǒng)而直接在應(yīng)用系統(tǒng)上運(yùn)行。當(dāng)然,DSP 系統(tǒng)的開(kāi)發(fā),特別是軟件開(kāi)發(fā)是一個(gè)需要反復(fù)進(jìn)行的過(guò)程,雖然通過(guò)算法模擬基本上可以知道實(shí)時(shí)系統(tǒng)的性能,但實(shí)際上模擬環(huán)境不可能做到與實(shí)時(shí)系統(tǒng)環(huán)境完全一致,而且將模擬算法移植到實(shí)時(shí)系統(tǒng)時(shí)必須考慮算法是否能夠?qū)崟r(shí)運(yùn)行的問(wèn)題。 如果算法運(yùn)算量太大不能在硬件上實(shí)時(shí)運(yùn)行,則必須重新修改或簡(jiǎn)化算法。
2.3.1 主程序流程圖
DSP 在系統(tǒng)中處于從屬地位,它必須根據(jù)PC 機(jī)或者是鍵盤(pán)的操作和指令來(lái)決定自己下一步動(dòng)作。主程序主要用來(lái)對(duì)下位機(jī)系統(tǒng)包括鍵盤(pán)控制芯片、液晶進(jìn)行初始化。初始化程序執(zhí)行完后開(kāi)啟中斷,等待中斷的到來(lái),并對(duì)鍵盤(pán)掃描,判斷是否有鍵按下。之后根據(jù)送來(lái)的操作命令進(jìn)入某個(gè)子程序。以后如果工作正常,將循環(huán)進(jìn)行上述操作。主程序流程圖如圖3 所示:
圖3
2.3.2 PWM 波生成程序設(shè)計(jì)
一個(gè)PWM 信號(hào)是一串不同寬度的脈沖序列。 這些脈沖被均勻地分布在固定長(zhǎng)度的循環(huán)周期,因此,在每個(gè)周期中有一個(gè)脈沖。 PWM(載波)周期是這個(gè)固定長(zhǎng)度的時(shí)間間隔也就是周期,PWM(載波)頻率是它的倒數(shù)。 另外一個(gè)具有所期望值的調(diào)制信號(hào)決定或調(diào)制PWM脈沖寬度。
比較單元和相關(guān)電路所有三種PWM 波形的產(chǎn)生,需要對(duì)相同的事件管理寄存器進(jìn)行配置。 TMS320LF2407 總共有12 路PWM 輸出,在這里使用EVA 模塊,輸出四路即PWM1-PWM4。 在PWM1-PWM4引腳上輸出占空比不同的方波, 采用EVA 模塊中的通用定時(shí)器1 產(chǎn)生比較時(shí)鐘。
2.3.3 鍵盤(pán)掃描程序設(shè)計(jì)
鍵盤(pán)的掃描碼由DSP 的I/O 擴(kuò)展地址0x8001 給出, 當(dāng)有鍵盤(pán)輸入時(shí),讀此端口得到掃描碼,當(dāng)無(wú)鍵被按下時(shí)讀此端口的結(jié)果為0。
DSP 對(duì)按鍵有效輸出端進(jìn)行檢測(cè),當(dāng)有鍵按下時(shí),發(fā)送讀鍵盤(pán)數(shù)據(jù)指令讀取鍵值。 程序?qū)γ總€(gè)鍵值的功能都預(yù)先作了設(shè)定,根據(jù)讀取的鍵值判斷下一步將要執(zhí)行的功能。
2.3.4 步進(jìn)電動(dòng)機(jī)DSP 位置控制設(shè)計(jì)
對(duì)步進(jìn)電機(jī)的位置進(jìn)行控制是最重要用途。步進(jìn)電機(jī)位置控制手段來(lái)控制步進(jìn)電機(jī)驅(qū)動(dòng)執(zhí)行機(jī)構(gòu)運(yùn)行從一個(gè)位置到另一個(gè)位置。步進(jìn)電機(jī)的位置控制是步進(jìn)電機(jī)一大優(yōu)勢(shì)。位置控制子程序框圖如圖4 所示:
圖4
2.3.5 步進(jìn)電動(dòng)機(jī)的正反轉(zhuǎn)設(shè)計(jì)
通過(guò)脈沖分配實(shí)現(xiàn)步進(jìn)電動(dòng)機(jī)的正反轉(zhuǎn):按照給定的通電換相順序,通過(guò)DSP 的PWM 輸出口向驅(qū)動(dòng)電路發(fā)出控制脈沖。 利用DSP 的PWM1-PWM4 如圖所示, 即DSP 芯片的IOPA6 (56)、IOPA7(54)、IOPB0(52)和IOPB1(47)引腳,向四相步進(jìn)電動(dòng)機(jī)各相傳送控制信號(hào)。此次設(shè)計(jì)采用步進(jìn)電動(dòng)機(jī)的四相四拍工作方式, 通電換相為AB→BC→CD→DA→AB。
圖5
2.3.6 步進(jìn)電動(dòng)機(jī)的加減速設(shè)計(jì)
步進(jìn)電動(dòng)機(jī)的最主要用途就是實(shí)現(xiàn)位置控制??刂撇竭M(jìn)電動(dòng)機(jī)帶動(dòng)執(zhí)行機(jī)構(gòu)從一個(gè)位置運(yùn)行到另一個(gè)位置叫做步進(jìn)電動(dòng)機(jī)的位置控制。 步進(jìn)電機(jī)的優(yōu)勢(shì)是步進(jìn)電機(jī)的位置控制。
步進(jìn)電機(jī)的位置控制的做法:步進(jìn)電機(jī)的每一步,步數(shù)就減1,如果不丟失,當(dāng)?shù)竭_(dá)目標(biāo)位置時(shí),執(zhí)行機(jī)構(gòu)的步數(shù)減為0。 因此,步數(shù)為等于0,以確定是否移動(dòng)到目標(biāo)位置的信號(hào),步進(jìn)電機(jī)停止運(yùn)行。
步進(jìn)電機(jī)驅(qū)動(dòng)執(zhí)行機(jī)構(gòu)進(jìn)行加速,恒速和減速。如果啟動(dòng)時(shí)間,速度上升到設(shè)定的步伐, 發(fā)生的現(xiàn)象將是由于超過(guò)限制的起始頻率,步進(jìn)電機(jī)發(fā)生失步,從而無(wú)法正常啟動(dòng)。到終點(diǎn)突然停了下來(lái),步進(jìn)電機(jī)過(guò)沖,原因是慣性的作用。如果要使步進(jìn)電機(jī)不產(chǎn)生失步和過(guò)沖現(xiàn)象,就要非常緩慢的加速和減速,但這樣會(huì)影響執(zhí)行機(jī)構(gòu)的工作效率。 步進(jìn)電機(jī)的加速和減速有嚴(yán)格的要求,就是要用最快的速度(或最短的時(shí)間),確保移動(dòng)到指定的位置,并且不會(huì)失步和過(guò)沖的前提下。
最簡(jiǎn)單的是勻加速和勻減速曲線,減速曲線是一條直線,所以容易編程得以實(shí)現(xiàn)。直線加速時(shí),加速度為常數(shù),因此要求扭矩應(yīng)該是相同的。然而,當(dāng)步進(jìn)電機(jī)的轉(zhuǎn)速的增加,感應(yīng)電動(dòng)勢(shì)和繞組的電感的作用,繞組的電流將逐漸減小的電磁轉(zhuǎn)矩隨轉(zhuǎn)速的增加而減小,因此,實(shí)際加速度隨著頻率的增加而減小。
為了滿足加減速的要求,步進(jìn)電動(dòng)機(jī)運(yùn)行通常按照加減速曲線進(jìn)行。本程序設(shè)計(jì)以10 個(gè)定時(shí)器計(jì)數(shù)時(shí)鐘的速度作為級(jí)差。如果想使步進(jìn)脈沖的周期越長(zhǎng), 速度越慢就要把定時(shí)器的周期寄存器的值變大。因此,在加速時(shí),速度每提升一級(jí)時(shí),應(yīng)該將定時(shí)器的周期值減10;反之,在減速時(shí),速度每下降一級(jí),應(yīng)該將定時(shí)器的周期值加10。
在計(jì)算機(jī)上安裝編譯軟件CCS 2 后,在計(jì)算機(jī)桌面上將出現(xiàn)兩個(gè)快捷 方 式 圖標(biāo), 一個(gè) 是Setup CCS 2 (C2000), 另 一 個(gè)是CCS 2(C2000)。 Setup CCS 2(C2000)是用來(lái)對(duì)改編譯器的運(yùn)行環(huán)境進(jìn)行配置;CCS 2(C2000)為程序仿真調(diào)試集成環(huán)境軟件。 CCS 集成開(kāi)發(fā)環(huán)境不能直接將匯編源代碼或C 語(yǔ)言源代碼文件Build 生成DSP 可執(zhí)行代碼。 必須使用項(xiàng)目(Project)來(lái)管理整個(gè)設(shè)計(jì)和調(diào)試過(guò)程。 項(xiàng)目保存為*.pjt 文件。
1)雙擊桌面上的Setup CCS 2(C2000)圖標(biāo),進(jìn)入CCS 設(shè)置窗口,“Import Configuration”。
2)在出現(xiàn)的窗口中進(jìn)行設(shè)置:
圖6
3)設(shè)置完成后,自動(dòng)打開(kāi)CCS 軟件。
4)按照步驟建立工程文件,將已編寫(xiě)好的程序拷到DSP 芯片中,進(jìn)行下載、編譯、運(yùn)行。 如圖7 所示。
圖7
反復(fù)這個(gè)過(guò)程直到程序完成預(yù)期的功能。
[1]劉和平,等.基于TMS320LF240X 系列DSP 原理及電機(jī)控制應(yīng)用[M].北京航空航天大學(xué)出版社,2006,10.
[2]萬(wàn)達(dá)淳,代作曉,華建文.基于DSP 的多路四相步進(jìn)電機(jī)控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2008,4(8):1994-1997.
[3]哈爾濱工業(yè)大學(xué),成都電機(jī)廠,編著.步進(jìn)電動(dòng)機(jī)[M].北京:科學(xué)出版社.1979.
[4]黃詩(shī)涌,王曉初,廖永進(jìn),徐震,易理告.一種高性能的步進(jìn)電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006(6-1).