摘 要:本文論述了以單片機AT89C51為控制器的步進電機的控制系統,內容主要包括該系統的硬件組成,步進電機運行過程的詳細分析,PC機與AT89C51單片機之間的串行通信以及AT89C51單片機對步進電機的控制程序流程圖等。關鍵字:單片機; 通信; 步進電動機
1 引言
平為TTL電平,為了取得壹致的傳輸信號,因此需要采用電平轉換在電氣時代的今天,電動機壹直在現代化的生產和生活中起芯片MAX485。根據實際需求選用AT89C51單片機,但由於其數著十分重要的作用。無論是在工農業生產還是在日常生活中的家據存儲區只有256個單元,需要擴展片外數據存儲器6264。此外用電器,都大量地使用著各種各樣的電動機。因此對電動機的控采用脈沖分配器CH250實現單片機對步進電動機的通電換向即脈制變得越來越重要了。電動機的控制技術的發展得力於微電子技沖分配,通過光電耦合器4N25實現步進電動機與單片機的電氣隔術、電力電子技術、傳感器技術、永磁材料技術、自動控制技術、離,由於單片機本身的驅動能力有限,因此需要采用專門的驅動電微機應用技術的最新發展成就。正是這些技術的進步使電動機控路單電壓驅動來實現功率放大,從而為電動機提供足夠大的電流。制技術在近二十多年內發生了翻天覆地的變化。其中電動機的控總體的硬件方框圖如圖1所示:制部分已由模擬控制逐漸讓位於以單片機為主的微處理器控制。本文采用硬件和軟件相結合的辦法實現單片機對步進電動機的運動控制。
2 硬件部分
[2]
PC機與AT89C51單片機 之間的串行通信在硬件上是由轉換器ATC-106和電平轉換芯片MAX485來完成的。由於PC機圖1 總體的硬件框圖采用的是RS-232C接口標準,根據項目要求與生產中的實際情況,需要采用傳輸距離較遠的RS-485,因此需要采用RS-232C
3 軟件部分
收稿日期:2007-05-18
通過軟件實現PC機與單片機間的異步串行通信。PC機采用查詢的方式發送和接收數據,單片機采用中斷的方式接收PC機 T —— 步進電動機運行第 +1 步時所用的時間
N
1+N
1
1
傳送的信息,從而確定步進電動機的旋轉方向,走的總的脈沖數; 即勻速運行每壹步所需要的時間采用軟件延時法控制脈沖的分配,從而控制步進電動機的整個運 由於采用軟件延時的方法來控制單片機發出脈沖的時間間行過程。 隔即通過改變脈沖的頻率來改變步進電動機的運行速度。在步進電動機勻加速運行階段,只需按電動機每走壹步所需要的時間
3.1 步進電動機運行的分析
[4]
來調用延時子程序即可。根據步進電動機 的加減速要有嚴格的控制要求,那就是保證在
-VV
1-
ii
不失步和過沖的前提下,用最快的速度和最短的時間移動到指定
=a
(6)
+
TT
1-
ii
位置。本設計要求步進電動機的速度按圖2所示運行。
—— 步進電動機勻加速運行階段走第i步時的速度
V
i
—— 步進電動機勻加速運行階段走第i步時所用的時間
T
i
由於步進電動機在勻加速運行階段走最後壹步時的速度與勻速運行時的速度V相同
V
N
1
L
L
=V= 又因為 = 將其代入
=
且
V V
V
V
N
1+N
1
1
1-i
i
T
T
i
1-i
(2-6)
TL
TL
-
1-ii
整理得到
a=
+TT
-1ii
2
2
+
+
(7)
TaT
0=LT
TaTL
( )
-
1-ii
i
1-ii
圖2 步進電動機的運行過程
通過軟件調用壹個開平方函數就可以求得首先令i=
N
1
由圖可知勻加速階段與勻減速階段的加速度和減速度大小等直到 、T ,這樣就可以求出步進電動機勻
、
、
T
1
T
T
T
2
1-N
3-N
2-N
1
1
1
相同,方向相反,加減速的時間相同,因此只需算出加速段走的步加速運行階段從靜止開始每走壹步所用的時間。電動機在升速數就可以知道減速時所走的步數,二者是壹樣的。計算過程如下:過程中所走的總的步數即脈沖數為 ,從靜止開始步進電動機
N
1
首先,恒速運行時的速度V是由用戶設置的,因此是壹個已在勻加速階段每走壹步,升速階段的總步數就減1,通過軟件延時知量。加速度a,壹個脈沖走過的距離L,整個運行過程所走的步的方法來控制走每壹步所用的時間,加速階段的延時時間是逐漸數即總的脈沖數P也都是給定值。運行方向是根據用戶的要求,這樣進行下
、
直到 、 、
變短的,依次為 、
T
T
T
T
T
T
1
3-N
2
2-N
1
N
1-N
1
1
1
由軟件確定的。去,直到 =0,加速過程結束,進入恒速運行階段。步進電動機
N
1
接著計算步進電動機運行時間
N
在恒速過程中走的總步數為 ,從恒速運行開始,電動機每走壹
3
—— 為步進電動機勻加速運行時所用
根據
tatV =1 1
步,恒速總步數就減1,因為恒速運行時走每壹步用的時間都是相的時間同的,因此軟件延時的時間均為 ,直到恒速總步數減為0,恒
T
V
1+N
1
可以求出t =
(1)
1
a
速過程結束,進入減速運行階段。由於勻減速運行的過程是加速由於勻加速階段與勻減速階段的加速度大小相同,因此勻過程的逆過程,在勻加速運行階段,步進電動機走的總的步數為
t
加速運行階段所用的時間t 與勻減速運行時所用的時間 是相
2
1
,且 =N ,減速階段電動機每走壹步,減速總步數就減1,
N
N
1
1
2
2
2
at
。因為是勻加速運行,所以S=同的,即t =
,由a和t
t
1
1
1
2
2
軟件延時的時間是逐漸變常的,依次為 、
、 、 直
T
T
T T
N
1-N
2-N 3-N
1
1
1 1
求出步進電動機勻加速運行階段走過的總的距離,通過
2
到 、 ,減速總步數減為0,減速過程結束,電動機停止運行。
T
S
T
at
21
2
1
1
N
=
(2)
=
1
L
L 3.2 通信軟件的設計
可以求出勻加速運行階段步進電動機走的總步數即脈沖
[5]
PC機與AT89C51的串行通信程序 由兩部分組成:壹部分數。由於步進電動機勻減速運行階段是勻加速運行階段的逆過是PC機的通信程序,另壹部分是AT89C51的通信程序。PC機程,因此勻減速運行階段所走的步數與勻加速運行階段所走
N
2
發送時,AT89C51單片機壹定接收;PC機接收時,AT89C51單片的步數 是相同的,即 = ,由P、 和 可以求出步進電
N N N
N N
1
1
2
1 2
機肯定發送。而且對應發送和接收的字符要相同,否則不能達到動機勻速運行階段走的總步數即脈沖數為 ,即
N
3
正常通信的目的。此次設計PC機采用8086/8088匯編語言編
N=P- - =P-2
(3)
N
N
N 1
3 1
2
寫,AT89C51單片機端采用MCS-51語言編寫。為了保證數據步進電動機勻速運行時走每壹步即每壹個脈沖所需要的時通信的可靠性,制定通信協議如下:間是相同的,根據
① PC機與AT89C51單片機都可以發送和接收
L
(4)
V=
② PC機與AT89C51單片機的通信波特率為9600bps,采
T
1+N
1
L
(5)
因此
T
=
用的晶振頻率為24MHZ,定時器T1工作在模式2,SMOD設置
為1,TH1的預設值為0CH,TL1的預設值為00H。
③ PC機與AT89C51單片機均采用串行口方式3。
④ 幀格式為:1位起始位,8位數據位,1位偶效驗位,1位停止位。
⑤ PC機發送的數據幀為:
表1 PC機發送數據幀表
幀起始標誌為 02H,假設電動機的運行標號為5號,對應的ASCII碼值為30H,35H兩個字節表示。若命令為傳送命令MOV則用0表示,其對應的ASCII碼值為30H,用壹個字節表示。D表示步進電動機運行的方向標誌,若為0則表示電動機正轉,其對應的ASCII碼值為30H;若為1,則表示電動機反轉,其對應的ASCII碼值為31H。P表示PC機傳送給單片機的總的走的脈沖數。若傳送的命令為設置命令SET則用1表示,其對應的ASCII碼值為31H,用壹個字節表示。需要單片機設置的參數有:a, V和 L;為了便於PC機與AT89C51的通信編程,數據的長度取6個字節。傳送的數據只有5個字節,剩余的1個字節均用ASCII碼值30H補足,對應的為0。這樣做不影響效驗和。若為傳送命令幀,則效驗和定義為方向信號D與總的脈沖數P的十六進制之和再轉換為相對應的ASCII碼值。若為設置命令幀,則效驗和定義為a、V與L的十六進制之和再轉換為D對應的ASCII碼值。幀結束標誌為03H。
⑥ PC機采用查詢的方式發送和接收數據,AT89C51單片機采用串行口中斷的方式接收和發送數據。
3.3 控制軟件的設計控制步進電動機勻加速、恒速、勻減速運行的程序流程圖如圖2。圖2 控制步進電機的程序流程圖
4 結束語
參考文獻:
[1] 韓全立。單片機控制技術及應用[M]。北京:電子工業出采用本方案可以很好的實現對步進電動機的控制。目前此版社,2004方案已經成功應用於電機控制的工廠等並取得了良好的效益,並
[2] 求是科技。單片機典型模塊設計實例導航[M]。北京:人正試圖將其進壹步完善以應用於壓縮機、洗衣機等日常設備中。民郵電出版社,2004
[3] 胡漢才,單片機原理及系統設計[M]。北京:清華大學出當然,隨著控制產品與控制技術的發展,步進電機的控制也會得到版社,2002進壹步完善。
[4] 王曉明。電動機的單片機控制[M]。北京:北京航天航空大學出版社,2002
[5] 楊金巖,鄭應強,張振仁。8051單片機數據傳輸接口擴展技術與應用實例[M]。北京:人民郵電出版社,2005