999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

步進電機定位控制系統的設計

2010-04-12 00:00:00王雁平
現代電子技術 2010年18期

摘 要: 系統基于51單片機控制,以FPGA芯片來實現驅動,步進電機的脈沖分配作為核心電路加以必要的數字模擬輔助電路,形成一個4相8拍步進電機定位控制系統。該系統完成了步進電機的正確脈沖分配并實現了步進電機的方向調節、速度調節及定位控制等功能,由于單片機控制模塊的使用使得FPGA驅動模塊對步進電機的定位控制更加方便,對步進電機的速度控制精度很高,并且更加準確。關鍵詞:步進電機; 定位控制; FPGA;脈沖分配

中圖分類號:TN919-34文獻標識碼:A

文章編號:1004-373X(2010)18-0205-03

Design of Stepper Motor Positioning Control System

WANG Yan-ping

(Automation Institute, Xi’an University of Posts and Telecommunication, Xi’an 710061, China)

Abstract: A 4-phase 8-step stepper motor positioning control system is established based on 51 MCU, whose driver is achieved by adopting FPGA, and pulse allocating of stepper motor is used as kernel circuit supported with necessary digital analog circuit. This system can implement smoothly correct pulse allocating and can adjust the direction of stepper motor, speed and position, etc. Using the MCU control, the FPGA driven module can advance speed control accuracy.Keywords: stepper motor; positioning control; FPGA; pulse allocating

0 引 言

步進電機是一種將電脈沖轉化為角位移的執行機構??梢酝ㄟ^控制脈沖個數來控制步進電機的角位移量,從而達到準確定位的目的,同時可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。傳統的步進電機控制一般都用固定功能的芯片來搭建,電路比較龐大、用戶界面友好度差、也不經濟。

由于大規??删幊唐骷?FPGA)具有體積小、改動靈活方便、性能高、功耗低、效率高的特點,完成數控部分的功能采用FPGA芯片是一種理想的解決方案??梢詮能浖?、硬件兩方面對任務進行分析,搭建系統的硬件平臺以及軟件的控制設計,并逐步進行測試,在整個系統運轉后,可以對系統的性能進行測試,對不足之處通過軟件給予改進。

1 步進電機的工作原理[1-2]

步進電機是將電脈沖信號轉變為角位移或線位移的開環控制元件。在非超載的情況下,電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響,即給電機加一個脈沖信號,電機則轉過一個步距角。這一線性關系的存在,加上步進電機只有周期性的誤差而無累積誤差等特點。使得在速度、位置等控制領域用步進電機來控制變的非常的簡單。下面以三相反應式步進電機為例說明步進電機的工作原理。

電機轉子上均勻分布著很多小齒,其幾何軸線依次分別與轉子齒軸線錯開。0,1/3τ,2/3τ,(相鄰兩轉子齒軸線間的距離為齒距以τ表示),即A與齒1相對齊,B與齒2向右錯開1/3τ,C與齒3向右錯開2/3τ,A′與齒5相對齊(A′就是A,齒5就是齒1),圖1是定轉子的展開圖。

圖1 反應式步進電機的定轉子展開圖

如圖1所示:如A相通電,B,C相不通電時,由于磁場作用,齒1與A對齊,(轉子不受任何力,以下均同)。 如B相通電,A,C相不通電時,齒2應與B對齊,此時轉子向右移過1/3τ,此時齒3與C偏移為1/3τ,齒4與A偏移(τ-1/3τ)=2/3τ。如果不斷地按A,B,C,A…通電,電機就每步(每脈沖)1/3τ,向右旋轉。如按A,C,B,A…通電,電機就反轉。由此可見:電機的位置和速度由導電次數(脈沖數)和頻率成一一對應關系,方向由導電順序決定。

2 系統整體設計[3-6]

系統的設計采取模塊設計的方法,將整個系統分成若干模塊,然后逐個實現各個模塊的功能,最后將各個模塊的預留接口連接在一起即可實現系統的整體功能。根據各個模塊的數據傳輸途徑,系統的整體框圖如圖2所示。

圖2 系統硬件框圖

如硬件框圖2所示:其中鍵盤和顯示模塊采用4個按鍵、4個七段LED顯示,電機驅動模塊用FPGA芯片通過編程來實現,電流放大部分采用了集成芯片ULN2803來實現,此芯片的最大輸出電流為500 mA,采用此芯片來完成驅動電流模塊也是比較適宜的。步進電機模塊則采用了4相42BYGH-107型號的步進電機。

FPGA模塊是本系統設計的重點,此模塊的主要功能是通過VHDL編程利用FPGA芯片來實現對步進電機的控制功能,并能接收由單片機發送來的控制數據,功能包括:步進電機的正向轉動、反向轉動、步進電機的定位功能以及調速功能。

由步進電機的工作原理,可以得出步進電機的8拍運行模式下的脈沖時序:

A-AB-B-BC-C-CD-D-DA-A 。

轉化成二進制代碼便是:

DCBA:0001-0011-0010-0110-0100-1100-1000-1001-0001。

下面便基于圖3和FPGA要實現的各個功能,給出VHDL語言的描述和理論分析。

2.1 數據接收模塊

本模塊定義了單片機和FPGA芯片之間的數據通信接口,即dclk, dload和ddata,以及接收到的數據送至輸出端口交給下一個模塊,本程序用的是移位寄存語句,把接收到的每一個數據通過移位寄存模式,把所有數據讀入后再將其通過輸出端口交給下一個模塊。

程序如下:

if dclk′event and dclk = ′1′ then

if dload = ′0′ then

pdata(0) := ddata;

pdata(29 downto 1) := pdata(28 downto 0);

elsif dload = ′1′ then

oangle(9 downto 0) <= pdata(29 downto 20);

ovv(19 downto 0) <= pdata(19 downto 0);

end if;

end if

其中pdata為移位寄存器,通過不斷地分頻脈沖進行計數,從而把所需數據不斷地移位寫到pdata變量中,到所有數據寫完(即dload=1 時),將數據分開寫入oangle和ovv中,成為下一模塊所用到的相位和速度控制字。

2.2 電機轉速調節模塊[7-10]

本模塊實現的功能是調節FPGA芯片來準確地對步進電機的轉速進行控制,通過改變2個脈沖之間的延時來改變脈沖的輸出頻率很顯然對于精確調速來說是十分有限的。于是引入了一種在波形合成中的被廣泛使用的方法:DDS技術。

DDS技術的核心是相位累加器,它類似一個計數器。每來一個時鐘信號,相位累加器的輸出就增加一個步長的相位增加量,相位增加量的大小由頻率控制字確定。相位累加器進行線性相位累加,累加至滿量時產生一次計數溢出,這個溢出的速率即為輸出信號的頻率。頻率控制字的相位增加量越大,相位累加器的溢出率越高,輸出信號的頻率越高。

FPGA的工作頻率為24 MHz,經分頻計分頻后為4 MHz。而相位累加器的長度為N位即為2N。

電機的轉動頻率為:

f=4×106×82N×c(1)

因為一個相位溢出為8拍,所以頻率值乘了一個8,其中N為我們的相位累加器的位數,c為頻率控制字。由于步進電機轉一圈需要360/0.9=400個脈沖,當選取N=23時,所以電機的轉速為:

n=4×106×8223×400×c=104220×c(2)

則頻率控制字:

c=22010 000×n=104.857 6×n(3)

式中:n為電機的轉速。通過單片機計算好控制字,本模塊則是利用接收來的控制字進行累加送出生成步進電機的驅動脈沖。

程序如下,它主要做的就是對相位累加器進行累加:

if clk6′event and clk6 = ′1′ then

phase(22 downto 0) := phase(22 downto 0) + invv(19 downto 0);

cconter <= phase(22 downto 20);--輸出計時器

clkcter <= phase(19);

end if

其中,phase為相位累加器,它要做的任務只是本身不斷的累加,然后將自身的高三位傳給cconter計數器,溢出時便將溢出位拋棄,然后繼續累加。

invv(19 downto 0)為單片機傳過來的頻率控制字,cconter為內部計數器,它把計數脈沖送到譯碼器進行譯碼輸出。

仿真波形如圖3、圖4所示。

圖3 步進電機調速控制仿真時序圖(1 000 n/s)

圖4 步進電機調速控制仿真時序圖(500 n/s)

如上圖所示,當改變了圖中的單片機送過來的頻率控制字,從而改變了步進電機的控制脈沖的輸出頻率,而且達到了準備定速的目的,當然需要注意的是在本模塊中的仿真中使用了較大值的頻率控制字,目的是仿真的直觀性,而在實際應用中要根據所使用的電機的實際轉速進行有效的設置。

2.3 電機轉向調節模塊

轉向控制模塊是相對簡單的一個模塊,要做的只是判斷處部的輸入控制信號來對輸出信號進行設置后譯碼輸出即可,判斷外部轉向信號,如果是正向那只需簡單的譯碼,如果外部轉向信號為反向,只需把計數器的值進行求反后再進行譯碼輸出即可。

程序如下:

if clk6′event and clk6 = ′1′ then

if dir = ′0′ then con <= cconter;

else con <= \"111\" - cconter;

end if;

end if

其中inangle為外部相位定相位信號,當此值為0時,將不進行定位,電機將一直轉動。Dir信號為外部轉向控制信號,當此信號為0時,轉向為正,反之,轉向為反向。仿真圖如圖5、圖6所示。

仿真結果如上圖所示,當dir信號為0時,得到的con計數信號為正向累加,反之當dir信號為1時,得到的con計數信號為反向遞減。

2.4 定位模塊

定位模塊所要完成的功能是通過編寫程序使FPGA芯片來控制步進電機按照想要設定的步數來進行轉動。一旦設定的步數到達,那步進電機的動作也就結束了,用一個計數器來實現這一個功能,當然也就是對計數器在給定步數內進行不斷的累加,當該計數器到達了設定的步數后,便可通過這個計數器來斷開該模塊程序的動作。使得驅動輸出的停止,以求達到準確定位的目的。

圖5 步進電機方向控制仿真時序圖(dir = 0正向)

圖6 步進電機方向控制仿真時序圖(dir = 1反向)

程序段如下:

if clkcter′event and clkcter = ′1′ then

if inangle > 0 then

if conter < inangle then conter <= conter + 1;

end if;

end if;

end if

其中inangle是設定的步進電機的運動步數,當然這個值也是通過單片機來設定后通過串行通信口由單片機傳送過來的,然后由FPGA部分把這個值來設定為計數器計數的個數,當到達計數個數時計數器就停止計數,也就是停止FPGA部分的運行,從而使步進電機停止轉動。

仿真時序圖如圖7所示。

圖7 步進電機定位仿真時序圖(10個脈沖度數9°)

在上面的2個仿真圖中,取了inangle為10的時候,也就是9°的情況來驗證這個模塊的可行性,通過上圖可以清晰的看到在設定了inangle的值之后,FPGA芯片所輸出的驅動脈沖只會計數到設定值,而不再全速運行下去了。由圖可以很明顯地得出,此模塊運行良好。

3 結 語

步進電機的使用涉及到工業生產以及日常生活的方方面面,在此介紹的步進電機定位控制系統,放棄了比較傳統的利用單片機以實現電機驅動的方案,而是采用時下比較流行的FPGA芯片來實現這一功能,利用FPGA芯片的可編程性能和基于硬件的特性,完全可以將本文所設計的系統很容易的做成集成電路芯片,作為一個專用芯片來用。 由于采用了單片機控制,使得FPGA芯片免去處理大數據的不便,使得FPGA芯片的其他功能得以很好地體現。

參考文獻

[1]周宏甫.機電傳動控制[M].北京:化學工業出版社,2006.

[2]張邦成.機電一體化控制技術[M].長春:東北師范大學出版社,2006.

[3]趙亮.單片機C語言編程與實例[M].北京:人民郵電出版社,2008.

[4]陳興文,劉燕.基于FPGA 實現步進電機脈沖信號控制器設計[J].機械設計與制造,2006(2):32-35.

[5]黃任等.AVR單片機與CPLD/FPGA綜合應用入門[M].北京:北京航空航天大學出版社,2004.

[6]段穎妮,呂虹.基于FPGA 的儀表用步進電機控制器設計[J].電測與儀表,2006,43(1):72-75.

[7]Analog Devices Inc.. CMOS 125 MHz complete DDS synthesizer[R]. USA: Analog Devices Inc., 2003.

[8]侯伯亨,顧新.VHDL硬件描述語言與數字邏輯電路設計[M].西安:西安電子科技大學出版社,2005.

[9]褚振勇.FPGA設計及應用[M].西安:西安電子科技大學出版社,2003.

[10]任愛鋒.基于FPGA的嵌入式系統設計[M].西安:西安電子科技大學出版社,2006.

作者簡介: 王雁平 男,1973年出生,云南曲靖人,助教,碩士研究生。主要從事檢測技術與智能控制方面的研究。

主站蜘蛛池模板: 99在线观看免费视频| 九九免费观看全部免费视频| 伊人网址在线| 日韩精品成人网页视频在线| 亚洲v日韩v欧美在线观看| 在线视频97| 久久久亚洲国产美女国产盗摄| 国内精品伊人久久久久7777人| 中文字幕久久波多野结衣| 久久精品国产国语对白| 国产欧美精品午夜在线播放| 国产麻豆精品在线观看| 久久美女精品| 国产成人综合久久| 免费人成网站在线观看欧美| 白丝美女办公室高潮喷水视频| 国产在线八区| 国产chinese男男gay视频网| 亚洲A∨无码精品午夜在线观看| 国产在线一二三区| 99re精彩视频| 在线色国产| 58av国产精品| 国产精品人成在线播放| 亚洲综合亚洲国产尤物| 国产不卡一级毛片视频| 国产精品太粉嫩高中在线观看 | 亚洲精品手机在线| 网友自拍视频精品区| 免费国产高清精品一区在线| 亚洲国产精品一区二区第一页免| 国产欧美日韩va另类在线播放| 日韩在线播放中文字幕| 国产精品自在自线免费观看| 自慰网址在线观看| 久久人午夜亚洲精品无码区| 国产成人夜色91| 性激烈欧美三级在线播放| 欧美日韩国产在线观看一区二区三区| 福利国产微拍广场一区视频在线 | 国产在线精彩视频论坛| 中文一区二区视频| 99青青青精品视频在线| 全色黄大色大片免费久久老太| 国产激情无码一区二区APP| 国产青榴视频| 亚洲日韩精品欧美中文字幕 | jijzzizz老师出水喷水喷出| 国产一级毛片在线| 一级看片免费视频| 日韩精品一区二区三区大桥未久 | 国产高清在线丝袜精品一区| 国产第八页| 久久黄色影院| 无码福利日韩神码福利片| 亚洲综合精品第一页| 亚国产欧美在线人成| 国产亚洲男人的天堂在线观看 | 国产系列在线| 理论片一区| 乱人伦中文视频在线观看免费| 国产成人精品视频一区视频二区| 国产成熟女人性满足视频| 全部免费毛片免费播放| 欧美一区精品| 波多野结衣无码AV在线| 色爽网免费视频| 国产噜噜噜| 蜜臀AV在线播放| 熟女成人国产精品视频| 一级毛片不卡片免费观看| 亚洲综合精品香蕉久久网| 中文字幕 91| 色香蕉网站| 久久久久久久97| 亚洲 欧美 偷自乱 图片| 2021国产精品自产拍在线| 色偷偷综合网| 亚洲码在线中文在线观看| julia中文字幕久久亚洲| 久久精品人妻中文视频| 日韩 欧美 小说 综合网 另类|