白 濤,吳 振,陳若謎(哈爾濱工程大學(xué) 自動(dòng)化學(xué)院,黑龍江 哈爾濱 150001)
基于單片機(jī)的伺服電機(jī)控制系統(tǒng)設(shè)計(jì)
白 濤,吳 振,陳若謎
(哈爾濱工程大學(xué) 自動(dòng)化學(xué)院,黑龍江 哈爾濱 150001)
通過(guò)對(duì)BE系列伺服電機(jī)工作原理的分析,利用STC89C52單片機(jī)設(shè)計(jì)了一種電機(jī)控制器。通過(guò)單片機(jī)I/O口向TLC5618數(shù)模轉(zhuǎn)換芯片發(fā)送數(shù)據(jù),輸出電壓信號(hào)經(jīng)運(yùn)放加法電路放大控制轉(zhuǎn)速。運(yùn)放輸出末端放置一雙刀雙擲繼電器,驅(qū)動(dòng)芯片為ULN2003,改變輸出電壓正負(fù)極性可實(shí)現(xiàn)轉(zhuǎn)向控制,并通過(guò)USB轉(zhuǎn)串口與上位機(jī)通信。最后,將驅(qū)動(dòng)器反饋的方波信號(hào)頻率、轉(zhuǎn)速和轉(zhuǎn)向顯示在液晶屏上。該設(shè)計(jì)可以實(shí)現(xiàn)伺服電機(jī)的平穩(wěn)控制和精確調(diào)速,能夠滿足工業(yè)現(xiàn)場(chǎng)的需要。
單片機(jī);伺服電機(jī);轉(zhuǎn)向控制;精確調(diào)速
伺服電機(jī)的定位精度相當(dāng)高,現(xiàn)代位置控制系統(tǒng)已越來(lái)越多地采用交流伺服電機(jī)作為主要部件[1]。本設(shè)計(jì)采用的BE系列伺服電機(jī)以其體積小、驅(qū)動(dòng)能力強(qiáng)、應(yīng)用廣泛成為了多種場(chǎng)合的通用驅(qū)動(dòng)設(shè)備,也是學(xué)習(xí)伺服電機(jī)控制的良好對(duì)象。但與其配套的控制器價(jià)格較高,并不適合一般小型試驗(yàn)的需求。本文給出了一種低成本的控制方案,使其在52單片機(jī)的控制下也能充分發(fā)揮其功能。
本設(shè)計(jì)以STC89C52RC單片機(jī)作為控制器,充分利用其價(jià)格低廉、編程方便、技術(shù)成熟等優(yōu)點(diǎn),并以TLC5618作為模擬信號(hào)輸出芯片,經(jīng) OP07運(yùn)放搭建的加法電路,使DA芯片的雙路輸出電壓相加,最大值可達(dá)到10 V,精度為0.002 4 V。設(shè)計(jì)出一款轉(zhuǎn)速調(diào)節(jié)精度高、轉(zhuǎn)向可控、成本較低的伺服電機(jī)控制器,可以顯示實(shí)時(shí)采集的轉(zhuǎn)速數(shù)和轉(zhuǎn)向,并能夠?qū)⒉杉降姆讲ㄐ盘?hào)頻率轉(zhuǎn)化為十進(jìn)制數(shù)一同顯示在液晶屏上。此外,本系統(tǒng)還利用 CH340G芯片連接USB線,通過(guò)上位機(jī)軟件對(duì)BE系列伺服電機(jī)進(jìn)行轉(zhuǎn)速轉(zhuǎn)向的控制,實(shí)現(xiàn)了上下位機(jī)通信、數(shù)模轉(zhuǎn)換、電壓放大、電機(jī)精確調(diào)速、數(shù)據(jù)顯示等一系列功能和過(guò)程。
本設(shè)計(jì)采用STC89C52RC單片機(jī)構(gòu)建了一個(gè)最小系統(tǒng),通過(guò)數(shù)模轉(zhuǎn)換、運(yùn)放、轉(zhuǎn)向控制和隔離繼電器等模塊實(shí)現(xiàn)電機(jī)正反轉(zhuǎn)智能切換,而且實(shí)現(xiàn)了伺服電機(jī)的精確調(diào)速控制[2]。其控制系統(tǒng)組成如圖 1所示。
圖1 控制系統(tǒng)框圖
通過(guò)LCD1602顯示模塊將轉(zhuǎn)速、轉(zhuǎn)向以及脈沖頻率顯示在液晶屏上;利用串口通信模塊接收上位機(jī)發(fā)送的數(shù)據(jù),并將該數(shù)據(jù)發(fā)送給DA轉(zhuǎn)換輸出模塊;轉(zhuǎn)換后的模擬電壓通過(guò)運(yùn)算放大器將輸出電壓放大,用來(lái)控制電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向。
2.1 單片機(jī)最小系統(tǒng)電路設(shè)計(jì)
系統(tǒng)采用STC89C52RC單片機(jī),5 V電源供電[3]。兩個(gè)外圍電路分別為復(fù)位電路和晶振電路,晶振頻率為11.0592 MHz,電容 30 pF。晶振兩端與單片機(jī) XTAL1、XTAL2連接,使其產(chǎn)生一個(gè)周期固定的交流電流,單片機(jī)可以根據(jù)這個(gè)電流的周期來(lái)確定工作周期。最小系統(tǒng)原理圖如圖2所示。
圖2 單片機(jī)最小系統(tǒng)
2.2 液晶顯示模塊
這里L(fēng)CD1602只需進(jìn)行寫操作不需要讀操作,故直接將RW腳接地,VEE是液晶顯示偏壓信號(hào),即調(diào)節(jié)液晶屏幕顯示的對(duì)比度,將其接到滑動(dòng)變阻器上,實(shí)現(xiàn)液晶顯示的對(duì)比度調(diào)節(jié)。RS是數(shù)據(jù)命令選擇端,即在程序中選擇給顯示屏發(fā)送命令或是發(fā)送數(shù)據(jù)[4]。寫指令時(shí) RS為低電平,寫數(shù)據(jù)時(shí)RS為高電平。余下的DB0~DB7與單片機(jī)P0口連接,BLA和BLK是液晶顯示屏背光供電端口,分別接5 V電源和地。其具體電路如圖3所示。
2.3 串口通信模塊
根據(jù)方案設(shè)計(jì)思路,單片機(jī)需要接收上位機(jī)發(fā)送的數(shù)據(jù),那么需要一個(gè)串口通信模塊來(lái)實(shí)現(xiàn)上下位機(jī)之間的通信。STC89C52RC單片機(jī)要接收數(shù)據(jù)需要從RXD和TXD腳接收TTL電平,采用CH340G能將USB口發(fā)送的數(shù)據(jù)轉(zhuǎn)換成TTL電平,送到單片機(jī)SBUF寄存器中。單片機(jī)程序只需調(diào)取SBUF中的數(shù)值就可以實(shí)現(xiàn)對(duì)I/O口的控制。
圖3 液晶顯示模塊原理圖
單片機(jī)與上位機(jī)通信的波特率為9600 b/s,無(wú)校驗(yàn)。其具體電路如圖4所示。
圖4 CH340外接電路以及管腳圖
2.4 D/A轉(zhuǎn)換輸出模塊
由 TLC5618性質(zhì)和原理可知,首先將 TLC5618的GND端接到系統(tǒng)模擬地,實(shí)現(xiàn)最佳的接地連接[5]。同時(shí)在VDD與GND之間應(yīng)接0.1μF的獨(dú)立旁路電容,濾除電源與地之間的高頻干擾。此外,基準(zhǔn)電壓一定要保證精度,且在基準(zhǔn)電壓輸出端接 0.1μF的瓷片電容,以降低系統(tǒng)噪聲對(duì)轉(zhuǎn)換精度的影響。分別將 CS接 P2.2、SCLK接P2.1、DIN接 P2.0,兩個(gè) DAC模擬輸出即可完成對(duì)DA轉(zhuǎn)換芯片的控制。
2.5 運(yùn)放輸出模塊
運(yùn)放模塊用到OP07芯片,它是一種低噪聲,非斬波穩(wěn)零的雙極性運(yùn)算放大器集成電路。OP07具有非常低的輸入失調(diào)電壓,一般不需要額外的調(diào)零措施。OP07同時(shí)具有輸入偏置電流低和開環(huán)增益高的特點(diǎn),這種低失調(diào)、高開環(huán)增益的特性使得OP07特別適合于高增益的測(cè)量設(shè)備和放大傳感器的微弱信號(hào)等方面。經(jīng)運(yùn)放放大輸出的電壓最大值可達(dá)到10 V,精度可達(dá)0.002 4 V,從而實(shí)現(xiàn)電機(jī)轉(zhuǎn)速精準(zhǔn)控制[6]。其具體電路如圖 5所示。
圖5 運(yùn)放模塊外接電路
2.6 轉(zhuǎn)向控制模塊
單片機(jī)I/O口輸出電流無(wú)法使繼電器工作,設(shè)計(jì)中采用ULN2003來(lái)提高帶載能力。ULN2003屬于高壓大電流達(dá)林頓晶體管陣列系列產(chǎn)品,其電流增益和工作電壓都很高且溫度范圍寬,帶載能力強(qiáng),而且輸入端只需和單片機(jī)I/O口相連接,5 V供電無(wú)需外接電路。這里用P2.5口控制繼電器的工作與否,P2.5輸出一個(gè)高電平,ULN2003接收到該高電平就可以驅(qū)動(dòng)繼電器工作,改變輸出電壓極性。其具體電路如圖6所示。
圖6 轉(zhuǎn)向控制模塊外接電路
針對(duì)上述硬件各個(gè)模塊功能編寫各模塊需要子程序,主程序部分注意使用的P1.0的引腳功能,頭文件包含 regx52.h,其對(duì) T2CON寄存器有定義,否則無(wú)法完成程序的編譯[7]。此外,還需定義變量的類型、名稱及相關(guān)延時(shí)函數(shù);顯示模塊程序需要對(duì)其進(jìn)行初始化設(shè)置,寫出命令輸入子程序、數(shù)據(jù)輸入子程序、數(shù)字字符轉(zhuǎn)換程序;串口通信模塊程序需要對(duì)其進(jìn)行初始化設(shè)置,采用T2定時(shí)器作為波特率發(fā)生器,編寫一串口中斷函數(shù),將SBUF的值賦予各個(gè)變量;方波采集程序?qū)0和 T1進(jìn)行初始化設(shè)置,其中T0計(jì)時(shí),T1計(jì)數(shù)。定義一中斷函數(shù)重新給T0、T1賦值;D/A轉(zhuǎn)換輸出模塊程序需要用單片機(jī)的I/O口對(duì)其寫入16 bit的數(shù)據(jù),分兩次發(fā)送,先發(fā)送高字節(jié),后發(fā)送低字節(jié)。最先發(fā)送的D12~D15位為可編程位控制字,用以確定數(shù)據(jù)的傳送方式。在片選信號(hào)的上升沿把數(shù)據(jù)送到DAC寄存器開始D/A轉(zhuǎn)換。
3.1 系統(tǒng)主程序
主程序內(nèi)需聲明各個(gè)變量名稱和類型,直接調(diào)用子程序即可。然后定義一個(gè)while循環(huán)等待中斷發(fā)生。其主函數(shù)如下:
3.2 串口通信子模塊
寄存器T2CON的TCLK和RCLK位允許從定時(shí)器1或定時(shí)器2獲得串行口發(fā)送和接收的波特率。當(dāng)TCLK= 0時(shí),定時(shí)器1作為串行口發(fā)送波特率發(fā)生器;當(dāng)TCLK=1時(shí),定時(shí)器2作為串行口發(fā)送波特率發(fā)生器。RCLK對(duì)串行口接收波特率有同樣的作用。模式1和模式 3的波特率=振蕩器頻率/32×[65636-(RCAP2H,RACP2L)],式中(RCAP2H,RCAP2L)是 RCAP2H和RCAP2L中的 16位無(wú)符號(hào)數(shù)。故T2CON寄存器中的數(shù)為00110100B,即16進(jìn)制數(shù)0x34。其部分程序如下:
3.3 方波頻率采集模塊
定時(shí)器1負(fù)責(zé)計(jì)數(shù),定時(shí)器0負(fù)責(zé)定時(shí)。單片機(jī)在使用定時(shí)器或計(jì)數(shù)器功能時(shí),通常需要設(shè)置兩個(gè)與定時(shí)器有關(guān)的寄存器分別為定時(shí)器/計(jì)數(shù)器工作方式寄存器TMOD和定時(shí)器/計(jì)數(shù)器控制寄存器TCON[8]。設(shè)計(jì)中T1選擇計(jì)數(shù)方式C/T=1,故該系統(tǒng)的TMOD=0×51,由于需要設(shè)定一個(gè)50 ms的計(jì)時(shí)中斷,要給TH0、TH1寄存器賦予初值。初值的計(jì)算方法是:THX=(65 536-N)/256,TLX=(65 536-N)%256,其中N=t/T,T是機(jī)器周期,即12×(1/11 059 200)≈1.09μs。所以 TH0=(65 536-46 081)/ 256,TL0=(65 536-46 081)%256。其部分程序如下所示:
Research on control system of serve motor based on single-chip microcom puter
Bai Tao,Wu Zhen,Chen Ruomi
(Automation Institute,Harbin Engineering University,Harbin 150009,China)
In this paper,a motor controller is designed by using STC89C52 single-chip microcomputer through the analysis of the working principle of the BE series servo motor.Data is transmited to TLC5618 analog-to-digital converter through I/O port of the single-chip microcontroller.And output voltage is amplified by op-amp addition circuit to adding control speed.There is a double pole double throw relay placed at the end of the operational amplifier output,and the drive chip is ULN2003.By changing the positive and negative polarity of the output voltage,the motor controller can realize steering control.It also can communicate to upper conputer through the serial port of the USB.At last,the signal frequency of the square wave,rotate speed and turn of the feedback of the driver are displayed on the LCD screen.This design can realize the servo motor stable control and precise speed control.The motor controller can meet the needs of the industrial scene.
single-chip microcomputer;servo motor;steering control;precise speed control
TP23
A
1674-7720(2015)24-0001-03
白濤,吳振,陳若謎.基于單片機(jī)的伺服電機(jī)控制系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2015,34(24):1-3,7.