1 引言 步進(jìn)電機是將電脈沖信號轉變?yōu)榻俏灰苹蚓(xiàn)位移的開(kāi)環(huán)控制元件。在非超載的情況下, 電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響,即給 電機加一個(gè)脈沖信號,電機則轉過(guò)一個(gè)步距角。這一線(xiàn)性關(guān)系的存在,加上步進(jìn)電機只有周 期性的誤差而無(wú)累積誤差,使得在速度、位置等控制領(lǐng)域,用步進(jìn)電機來(lái)控制變的非常的簡(jiǎn) 單。本文設計了一種基于A(yíng)T89S52 單片機和VC++的步進(jìn)電機控制系統,可以實(shí)現對步進(jìn) 電機的基本控制及狀態(tài)實(shí)時(shí)顯示。 2 系統組成 使用、控制步進(jìn)電機必須由環(huán)形脈沖源、功率放大電路等部分組成控制系統,脈沖信號 一般由單片機或CPU產(chǎn)生,一般脈沖信號的占空比為0.3-0.4左右,電機轉速越高,占空比則 越大。功率放大是驅動(dòng)系統最為重要的部分。步進(jìn)電機在一定轉速下的轉矩取決于它的動(dòng)態(tài) 平均電流而非靜態(tài)電流,平均電流越大,電機力矩越大,要達到平均電流大,這就需要驅動(dòng) 系統盡量克服電機的反電勢。因而不同的場(chǎng)合采取不同的驅動(dòng)方式。到目前為止,驅動(dòng)方式 一般有以下幾種:恒壓、恒壓串電阻、高低壓驅動(dòng)、恒流等。 本文設計系統中,脈沖信號由單片機AT89S52產(chǎn)生并分配給步進(jìn)電機各相,功率放大部分由驅動(dòng)電路完成,系統結構框圖如圖1所示。 本文所設計系統中,步進(jìn)電機模塊采用35BY48S03永磁式步進(jìn)電機,用戶(hù)利用4*4鍵盤(pán)或上位機的控制界面實(shí)現指令輸入,采用上位機或1602字符型液晶模塊實(shí)時(shí)顯示運行狀態(tài)。 3 硬件設計 3.1 單片機最小系統電路 單片機的最小系統電路包括時(shí)鐘電路和復位電路。本文所設計系統中,時(shí)鐘電路采用內 部振蕩方式,所得的時(shí)鐘信號比較穩定,實(shí)用電路中使用較多。復位電路作用是使單片機 的片內電路初始化,使單片機從一種確定的狀態(tài)開(kāi)始運行。復位電路采用2種基本形式:上 電復位、開(kāi)關(guān)復位。 3.2 鍵盤(pán)電路 設計P1口接4*4鍵盤(pán),鍵盤(pán)電路圖如圖2所示: 3.3 電機驅動(dòng)電路 35BY48S03型步進(jìn)電機接線(xiàn)圖如圖3所示,從圖中可以看出,電機共有四組線(xiàn)圈,四組線(xiàn)圈的一個(gè)端點(diǎn)連在一起引出,這樣一共有5根引出線(xiàn)。要使步進(jìn)電機轉動(dòng),只要以一定的 次序輪流給各引出端通電即可,加電的方式可以有多種,包括單相驅動(dòng)、雙相驅動(dòng)、單-雙 相驅動(dòng)等,相應步進(jìn)角有整步和半步區分。在本文設計的系統中,采用單相驅動(dòng)和單-雙相 驅動(dòng)兩種加電方式驅動(dòng)步進(jìn)電機運轉。 根據該電機參數,不難設計出驅動(dòng)電路,因其工作電壓為12V,最大電流為0.26A,因 此用一塊開(kāi)路輸出達林頓驅動(dòng)器(ULN2003)作為驅動(dòng),通過(guò)P2.7-P2.4來(lái)控制各線(xiàn)圈的接通與 切斷。如果要改變電機的轉動(dòng)速度只要改變兩次接通之間的時(shí)間,而要改變電機的轉動(dòng)方向, 只要改變各線(xiàn)圈接通的順序。 3.4 串行通信電路 在PC機內接有PC16550(和8250兼容)串行接口、EIA-TTL的電平轉換器和RS-232C連 接器,除鼠標占用一個(gè)串行口外,還留有兩個(gè)串行口給用戶(hù),這就是COM1(地址3F8H-3FFH) 和COM2(地址2F8H-2FFH),通過(guò)這兩個(gè)口,可以連接串行通信設備,如單片機、仿真機 等。由于單片機的串行發(fā)送和接收線(xiàn)TXD和RXD是TTL電平,而PC的COM1或COM2的 RS-232C連接器(D型9針插座)是EIA電平,因此單片機需加接MAX232芯片,通過(guò)串行電 纜線(xiàn)和PC相連接。本文所設計的串行通信電路如圖4所示。 3.5 下位機顯示電路 液晶采用顯示容量為2行16個(gè)字的1602液晶,1602采用標準的16腳接口,內部的字符發(fā) 生存儲器(CGROM)已經(jīng)存儲了160個(gè)不同的點(diǎn)陣字符圖形,每一個(gè)字符都有一個(gè)固定的 代碼。設計電路圖如圖5所示。 4 軟件設計 軟件設計可分為兩個(gè)部分:上位機軟件設計和下位機軟件設計。上位機軟件設計包括: 上位機控制環(huán)境設計、上位機通信程序設計以及上位機程序的封裝發(fā)布;下位機軟件設計包 括:鍵盤(pán)掃描程序、下位機通信程序、主驅動(dòng)程序、測試部分程序、顯示部分程序。 4.1 上位軟件設計 Visual C++設計了一套基礎類(lèi)庫(Microsoft Foundation Class Library, MFC), MFC把編 程規范中的大多數內容封裝成為各種類(lèi),使程序員從繁雜的編程中解脫出來(lái)。根據系統設 計需要,設計一個(gè)基于對話(huà)框的應用程序即可,如圖6所示。 為實(shí)現上位機與下位機通信,利用Microsoft提供的串行通信ActiveX控件。該控件的相 應文件是MSCOMM32.OCX。在基于對話(huà)框的程序中使用控件,需要進(jìn)行以下幾方面操作: 拖動(dòng)控件圖標到窗口上,創(chuàng )建控件ID。在對話(huà)框頭文件中聲明CMSComm類(lèi)的變量及引用控 件類(lèi)頭文件。創(chuàng )建CMSComm類(lèi)的實(shí)例。建立控件事件響應代碼框架。 在電機狀態(tài)改變后,由下位機將代表各狀態(tài)的數據發(fā)送給上位機,上位機接收到后存入 一個(gè)數組內,根據此數組內容刷新各編輯框內容,以達到實(shí)時(shí)顯示的目的。此處共有五個(gè)數 據,放入rxdata數組中,分別代表勵磁狀態(tài)、轉動(dòng)方向、速度、測試1計數、測試2計數。上 位機MSComm控件SetRThreshold屬性設置為5,則當下位機將五個(gè)數據發(fā)送完后,上位機立 即觸發(fā)OnComm事件,進(jìn)行接收。 當我們安裝VC++6.0時(shí),如果選擇了ACtiveX控件項(自定義安裝),MSComm控件就 會(huì )自動(dòng)安裝在計算機上了,并在系統文件夾下多了3個(gè)文件:Mscomm.srg,Mscomm32.ocx, Mscomm32.dep,即MSComm控件已經(jīng)過(guò)授權,但要注意的是,如果程序移植到其它沒(méi)有安 裝VC軟件的PC機上,必須將其使用“執照”License 在注冊表中登記注冊,才可以正常運行。 為了正常運行, 還需要將VC開(kāi)發(fā)的可執行文件與運行所需的三個(gè)動(dòng)態(tài)鏈接文件 MFC42D.DLL,MFCO42D.DLL,MSVCRTD.DLL放在同一個(gè)文件夾中。使用Installshield軟 件進(jìn)行封裝實(shí)現以上要求即可。 4.2 下位機軟件設計 本文所設計系統中,采用單相驅動(dòng)和單-雙相驅動(dòng)兩種加電方式驅動(dòng)步進(jìn)電機運轉,即 單相四拍和單-雙相八拍驅動(dòng),分別為整步和半步運轉,步進(jìn)角分別為7.5度和3.75度,不同 的驅動(dòng)方式其狀態(tài)表不同,兩種驅動(dòng)方式的波形及狀態(tài)表如下,其中1代表高電平,表示驅 動(dòng)的磁極繞組通電;0代表低電平,表示驅動(dòng)的磁極繞組不通電。 按照設計要求改變轉速,則只要改變P2.7-P2.4輪流改變電平的時(shí)間即可達到要求,這個(gè) 時(shí)間不應采用延時(shí)來(lái)實(shí)現,因為會(huì )影響到其他功能的實(shí)現。這里以定時(shí)的方式來(lái)實(shí)現,晶振 頻率為11.0592M,采用T0方式1定時(shí)。主程序流程圖如圖7所示: 系統上電后,首先進(jìn)行初始化,包括液晶屏初始化及將程序所用到的內存單元(開(kāi)關(guān)機 狀態(tài)標志位7FH、正反轉標志位7EH、單相勵磁或單雙相勵磁標志位7DH、測試標志位7CH、 當前速度寄存單元2EH)清零。然后檢測是否開(kāi)啟電機,檢測到開(kāi)信號后,設置狀態(tài)位,7FH=1,7EH=1,7DH=1,2EH=10,代表起始狀態(tài)設置為:?jiǎn)坞p相勵磁正轉,起始速度為10r/m。 設置 T0 相關(guān)參數后,開(kāi)始定時(shí),同時(shí)檢測鍵盤(pán)是否有其它請求發(fā)生,如果有,則改變 相應的狀態(tài)位,并改變單片機輸出波形,控制步進(jìn)電機運行狀態(tài)改變。 串行通信的編程方式有兩種查詢(xún)方式:查T(mén)I 或RI 是否為“1”。中斷方式:如果預先開(kāi) 了中斷,當TI、RI 為“1”,會(huì )自動(dòng)產(chǎn)生中斷。兩種方式中當發(fā)送或接受數據后都要注意清 TI 或RI。本文所設計系統中,下位機采用查詢(xún)及中斷兩種接收方式,接收上位機的控制指 令;發(fā)送采用查詢(xún)方式,將當前電機運行狀態(tài)信息發(fā)給上位機實(shí)時(shí)顯示。 5 功能驗證 利用示波器測量P2.7-P2.4口產(chǎn)生的波形,以測試電機的激勵脈沖是否與理論相符,所測 波形如圖8、9所示。圖8是在單-雙相八拍勵磁方式,轉速為10轉/分的情況下,測量出的P2.7 和P2.5波形,即A,/A的激勵波形。圖9是在單相四拍勵磁方式,轉速為30轉/分的情況下, 測量出的P2.7和P2.6波形,即A,/B的激勵波形。 上位機控制操作和鍵盤(pán)控制操作可以單獨發(fā)出指令,也可以交互發(fā)出指令,該系統應用 環(huán)境較廣。經(jīng)測試,所設計系統可以很好的達到設計要求,可以實(shí)現對步進(jìn)電機的基本控制 及狀態(tài)實(shí)時(shí)顯示。 6 結論 本文設計出的步進(jìn)電機控制系統,可以實(shí)現對步進(jìn)電機的基本控制及運行狀態(tài)的實(shí)時(shí)顯 示。該系統實(shí)用性強,操作方便,經(jīng)測試取得了良好效果。經(jīng)過(guò)一定的技術(shù)改進(jìn)后,可以應 用于包裝機械的物料計量、包裝膜供送、橫封等過(guò)程中,精確控制執行機構的運行速度和運 行位置。利用步進(jìn)電機替代傳統的機械或其它方式,不僅能使包裝機械結構變得簡(jiǎn)單、調節 方便、可靠性增加,而且精度會(huì )得到很大提高。 |