李立明 ,柴曉冬 ,方 宇
(1.上海工程技術(shù)大學(xué) 城市軌道交通學(xué)院,上海201620;2.上海工程技術(shù)大學(xué) 汽車工程學(xué)院,上海201620)
步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移或直線位移的執(zhí)行機(jī)構(gòu)。由于步進(jìn)電機(jī)具有控制簡(jiǎn)便、定位準(zhǔn)確等特點(diǎn),因而廣泛應(yīng)用于如機(jī)器人手臂運(yùn)動(dòng)等各種自動(dòng)化控制系統(tǒng)和機(jī)械設(shè)備中。隨著無線通信技術(shù)的發(fā)展,遠(yuǎn)程無線控制受到廣泛關(guān)注。本文介紹了一種基于PTR2000的步進(jìn)電機(jī)無線控制系統(tǒng),該系統(tǒng)實(shí)現(xiàn)了電路板級(jí)通信,實(shí)現(xiàn)了同時(shí)對(duì)4臺(tái)步進(jìn)電機(jī)的無線控制,系統(tǒng)采用模型車輛作為步進(jìn)電機(jī)的載體。
本系統(tǒng)主要由上位PC機(jī)、AT89C51單片機(jī)、驅(qū)動(dòng)電路模塊、PTR2000無線通信模塊和步進(jìn)電機(jī)組成,其系統(tǒng)結(jié)構(gòu)圖如圖1所示。其中,上位機(jī)是PC機(jī),采用C++實(shí)現(xiàn)用戶界面,并利用串口通過PTR2000實(shí)現(xiàn)用戶與步進(jìn)電機(jī)控制模塊的指令傳輸,實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的遠(yuǎn)程無接觸控制。
PTR2000[1-2]工作頻率為國(guó)際通用的數(shù)據(jù)傳輸頻率段433 MHz,采用抗干擾能力較強(qiáng)的頻移鍵控(FSK)調(diào)制/解調(diào)方式,擴(kuò)展能力強(qiáng),特別適合工業(yè)控制場(chǎng)合;使用DDS+PLL頻率合成技術(shù),頻率穩(wěn)定性好;低工作電壓2.7 V,功耗小,接收待機(jī)狀態(tài)僅為8 μA,具有兩個(gè)頻道,特別適合需要多信道工作的特殊場(chǎng)合;工作速率最高可達(dá)到20 kb/s(也可在如4 800 b/s、9 600 b/s低速率下工作);可直接連接 CPU串口,也可以接計(jì)算機(jī)PS232接口,軟件編程方便;由于采用低發(fā)射功率(+10 dBm),高接收靈敏度(-105 dBm)的設(shè)計(jì),無需申請(qǐng)使用許可證;標(biāo)準(zhǔn)DIP引腳間距,更適合嵌入式設(shè)備。在空曠地帶有效范圍可達(dá)300 m。
PC機(jī)與PTR2000之間連接,必須經(jīng)過電平轉(zhuǎn)換,將TTL電平利用MAX232轉(zhuǎn)換成RS-232C電平。PTR2000與PC機(jī)串口連接電路如圖2所示。
PTR2000直接與單片機(jī)的串口TxD、RxD相連接。PTR2000無線Modem的DI接單片機(jī)的串口發(fā)送,PTR2000無線Modem的DO接單片機(jī)串口的接收。
步進(jìn)電機(jī)的控制電路硬件框圖如圖3所示。
圖3 步進(jìn)電機(jī)控制框圖
采用可編程定時(shí)計(jì)數(shù)器8253實(shí)現(xiàn)單片機(jī)對(duì)步進(jìn)電機(jī)的通電換向即脈沖分配,由于單片機(jī)的本身驅(qū)動(dòng)能力有限,系統(tǒng)采用L297[3]與UM2003組成步進(jìn)電機(jī)驅(qū)動(dòng)電路。L297為步進(jìn)電機(jī)控制集成芯片適用與雙極性兩相步進(jìn)電機(jī)或單極性四相步進(jìn)電機(jī)的控制。ULN2003為高電壓大電流的達(dá)林頓管。
通過PTR2000建立PC機(jī)與單片機(jī)之間無線通信網(wǎng)絡(luò),實(shí)現(xiàn)PC機(jī)與單片機(jī)的異步通信。PC機(jī)與單片機(jī)采用查詢方式發(fā)送和接收數(shù)據(jù),為確保數(shù)據(jù)的準(zhǔn)確性,系統(tǒng)制定了PC機(jī)與單片機(jī)的通信協(xié)議。制定無線通信協(xié)議的第一任務(wù)是要能識(shí)別數(shù)據(jù)傳送過程中的干擾噪聲和有效數(shù)據(jù),為保證數(shù)據(jù)通信的可靠性,通信協(xié)議如下:
(1)PC機(jī)與AT89C51單片機(jī)都可以發(fā)送和接收;
(2)PC機(jī)與AT89C51單片機(jī)的通信波特率為9 600 b/s。其中單片機(jī)采用的晶振為11.059 2 MHz,采用串口方式1,設(shè)定單片機(jī)工作模式為:TMOD=0X20,TH1=0XFD,TL1=0XFD,SCON=0X50;
(3)握手信號(hào):長(zhǎng)度為3個(gè)字節(jié),格式為:0XFF+0X00+0XFF。其中的第2個(gè)字節(jié)“0X00”代表步進(jìn)電機(jī)的序號(hào),實(shí)際工作中用 01、02、03和 04代表本系統(tǒng)中的 4臺(tái)步進(jìn)電機(jī),確保每臺(tái)步進(jìn)電機(jī)接收指令的準(zhǔn)確性;
(4)PC機(jī)的指令為:握手信號(hào)+指令+奇偶效驗(yàn)位;
(5)AT89C51單片機(jī)的發(fā)送數(shù)據(jù)格式為:握手信號(hào)+車號(hào)+數(shù)據(jù)+奇偶校驗(yàn)位。其中數(shù)據(jù)為3個(gè)字節(jié)長(zhǎng)度,在系統(tǒng)中代表地址碼。
圖4中顯示的上位機(jī)接收到下位機(jī)發(fā)送的信號(hào),在上位機(jī)監(jiān)控界面中只顯示車號(hào)和地址數(shù)據(jù)碼。如第一行數(shù)據(jù)中的“02 00 00 00”表示 2號(hào)步進(jìn)電機(jī)剛接到啟動(dòng)指令開始運(yùn)動(dòng);在工作過程中,下位機(jī)實(shí)時(shí)向上位機(jī)傳輸步進(jìn)電機(jī)的地址碼,從而上位機(jī)地址碼可以判斷出車輛的實(shí)時(shí)位置;當(dāng)下位機(jī)收到停止指令后,步進(jìn)電機(jī)停止工作。圖4中當(dāng)下位機(jī)收到停止指令后,步進(jìn)電機(jī)停止工作,發(fā)送數(shù)據(jù)保持不變,代表車輛停在某一位置。如圖4中的02 15 56 AE。
步進(jìn)電機(jī)[4]的加減速有嚴(yán)格的控制要求,就是保證在不失步和過沖的前提下,用最快的速度和最短的時(shí)間移動(dòng)到指定位置。步進(jìn)電機(jī)控制算法有按斜率線控制、指數(shù)曲線控制、拋物線控制[5-6]等。
本系統(tǒng)采用步進(jìn)電機(jī)的指數(shù)曲線控制方式。指數(shù)線控制是指在加速或減速時(shí),步進(jìn)電機(jī)的速度呈指數(shù)線變化。給步進(jìn)電機(jī)一個(gè)脈沖信號(hào),步進(jìn)電機(jī)就轉(zhuǎn)動(dòng)一個(gè)角度或前進(jìn)一步。設(shè)輸入的脈沖數(shù)為N,輸出轉(zhuǎn)角為θ,則θ=θSN(θS為步距角)。 步進(jìn)電機(jī)的動(dòng)力方程為:
式中,T為電機(jī)輸出力矩或產(chǎn)生力矩,J為轉(zhuǎn)子轉(zhuǎn)動(dòng)慣量,B為摩擦系數(shù),TL為負(fù)載轉(zhuǎn)矩,θ為轉(zhuǎn)子位置。設(shè)ω為電機(jī)的轉(zhuǎn)子速度,令,驅(qū)動(dòng)脈沖的頻率用f表示,則 ω=θSf,而式(1)又可表示為:
如果要求電機(jī)盡可能快地加速,則在所有頻率下都必須產(chǎn)生最大轉(zhuǎn)矩,則式(2)步進(jìn)電機(jī)的運(yùn)動(dòng)一定滿足如式(3)所示條件:
式中,TM為步進(jìn)電機(jī)輸出力矩,通過電機(jī)的矩頻特性曲線,假設(shè)該曲線是線性下降的,電機(jī)的輸出力矩可表示為:
式中,TMA為最大轉(zhuǎn)矩,k為假定輸出轉(zhuǎn)矩按直線變化時(shí)的斜率。 聯(lián)立式(3)、式(4),得式(5)為:
在 t=0,f=0時(shí)解得:
將升速過程均勻離散為 n段,整個(gè)上升時(shí)間為t,則相鄰的時(shí)間間隔為:
式中,n為階梯升速的分檔數(shù),則每一檔頻率為:
通過每檔頻率可以計(jì)算出上升各檔持續(xù)的脈沖數(shù)N(t)和上升檔定時(shí)器初值T(k)。降速可看作升速的逆過程。
系統(tǒng)采用硬件定時(shí),使用單片機(jī)的定時(shí)/計(jì)數(shù)器T0或T1。首先根據(jù)定時(shí)的時(shí)間長(zhǎng)短設(shè)置定時(shí)器的工作模式,然后輸入定時(shí)器的定時(shí)常數(shù),則定時(shí)器就會(huì)定時(shí)溢出,單片機(jī)就會(huì)每溢出一次就產(chǎn)生一個(gè)脈沖信號(hào)控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。硬件定時(shí)的方法既需要硬件(定時(shí)/計(jì)數(shù)器T0或T1),又需要軟件來產(chǎn)生所需頻率的脈沖信號(hào),是一種軟硬結(jié)合的方法。雖然占用了一個(gè)定時(shí)器,但是提高了CPU的利用率,CPU在定時(shí)器沒產(chǎn)生溢出時(shí)運(yùn)行其他程序。圖5中顯示了4臺(tái)步進(jìn)電機(jī)按上位機(jī)指令分別在不同位置啟動(dòng)、運(yùn)行和停止的實(shí)時(shí)速度曲線,電機(jī)加減速按指數(shù)曲線控制。
該系統(tǒng)實(shí)現(xiàn)了利用無線通信方式對(duì)步進(jìn)電機(jī)遠(yuǎn)程無線的控制,在實(shí)際操作環(huán)境中步進(jìn)電機(jī)的加減速并為嚴(yán)格按照指數(shù)曲線控制。另外當(dāng)受到實(shí)際環(huán)境空間電磁波的干擾時(shí),PTR2000的通信距離達(dá)不到300 m,因而系統(tǒng)抗干擾能力還有待提高。該系統(tǒng)為進(jìn)一步可靠應(yīng)用步進(jìn)電機(jī)提供了一種參考。
[1]郝小江,張小平.基于PTR2000的單片機(jī)無線數(shù)據(jù)傳輸[J].攀枝花學(xué)院學(xué)報(bào),2006,23(6):83-86.
[2]曹俊,汪濱琦.用 PTR2000實(shí)現(xiàn)單片機(jī)與PC機(jī)間的無線數(shù)據(jù)通信[J].微計(jì)算機(jī)信息,2002,23(2):117-120.
[3]潘海燕,姚朝霞.基于L297的兩相步進(jìn)電機(jī)驅(qū)動(dòng)器[J].機(jī)電工程,2007,24(4):86-88.
[4]程憲平.機(jī)電傳動(dòng)與控制[M].武漢:華中理工大學(xué)出版社,1997.
[5]李曉貞,王福志,王忠舉,等.基于單片機(jī)的步進(jìn)電機(jī)調(diào)速研究[J].農(nóng)業(yè)裝備與車輛工程,2008,(5):22-24.
[6]李會(huì)燕,胡榮強(qiáng).基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)[J].自動(dòng)化技術(shù)與應(yīng)用,2007,26(11):75-77.