【正文】
,王彥,陳文光,:電子工業(yè)出版社 2022. .第六屆電子大賽資料(多謝老師提供).,:。車輛與動力工程學(xué)院課程設(shè)計(jì)說明書圖 圖 正轉(zhuǎn)運(yùn)行波形仿真圖 反轉(zhuǎn)運(yùn)行仿真波形車輛與動力工程學(xué)院課程設(shè)計(jì)說明書第四章 總結(jié)本文介紹了用 VHDL 語言設(shè)計(jì)的一種步進(jìn)電機(jī)控制器,根據(jù)仿真波形的分析,基本達(dá)到了設(shè)計(jì)初的要求,能完成步進(jìn)電機(jī)兩種工作模式的選擇,實(shí)現(xiàn)步進(jìn)電機(jī)正、反、停的要求,可以實(shí)現(xiàn)步進(jìn)電機(jī)頻率的控制。WHEN others=null。WHEN 39。case t ISWHEN 39。 THEN t:=39。step(0)=step2(0) and ss。step2(0)=step1(0) and y1。u6:anjianqd PORT MAP (clk=clk,key=startstop,keyo=startstop1)。u2:bianpinPORTMAP(clk=clk,sub=sub,add=add,count=count1,rst=rst)。END ponent cepin。END ponent ztsd。END ponent step_motor。ponent step_motor IS PORT ( clk,rst : in STD_LOGIC。END ponent anjianqd。 數(shù)碼管位選data_led:out STD_LOGIC_VECTOR(7 DOWNTO 0) )。USE 。END Behavioral。END PROCESS。139。END block。END IF。d0=key。139。END PROCESS。clkk=39。 THEN IF t=2 THEN t:=1。BEGINPROCESS(clk)VARIABLE t:integer range 1 to 256000。ENTITY anjianqd IS PORT (clk,key:in STD_LOGIC。圖 車輛與動力工程學(xué)院課程設(shè)計(jì)說明書圖 /**/按鍵去抖模塊LIBRARY IEEE。 END IF。t1=t1+con。count=39。PROCESS(clk,con,t1,rst) 變頻模塊BEGINIF rst=39。ELSE t:=t+1。EVENT AND clk=39。BEGINIF rst=39。END IF。039。039。ELSIF clkk39。BEGINPROCESS(clkk,add,sub,rst) 加減鍵處理模塊VARIABLE con1:integer range 1 to 100:=50。ARCHITECTURE Behavioral OF bianpin ISSIGNAL con:integer range 1 to 100:=50。USE 。END Behavioral。No SIGNAL。6WHEN0111=data_led=11111000。2WHEN0011=data_led=10110000。END block。t:=00。WHEN 11=shift=0111。 t:=t+1。 data_ledin=d2(3 DOWNTO 0)。 THEN t:=00。END PROCESS。t:=0。BEGINIF rst=39。 THEN d2=count。END block。END IF。 END IF。END IF。IF t(11 DOWNTO 8)9 THEN t(11 DOWNTO 8):=t(11 DOWNTO 8)+1。 IF t(3 DOWNTO 0)9 THENt(3 DOWNTO 0):=t(3 DOWNTO 0)+1。ELSIF rising_edge(clk1) THENIF clkk=39。 THEN t:=(others=39。)。END IF。ELSIF rising_edge(clk) THEN IF t=32022000 THEN clkk=not clkk。BEGINcepin:block 測頻模塊BEGINPROCESS(clk,rst)VARIABLE t:integer range 1 to 32022000。SIGNAL clkkk:STD_LOGIC。 七段數(shù)碼管END cepin。USE 。END Behavioral。END IF。END IF。 ELSIF rising_edge(clkk) THEN IF sel=39。 eight_step(7):= 1001。 eight_step(3):= 0110。VARIABLE eight_step:step。END IF。 THEN IF t=7 THEN clkk=not clkk。 THEN t:=0。車輛與動力工程學(xué)院課程設(shè)計(jì)說明書TYPE step IS array (0 to 7) OF STD_LOGIC_VECTOR(3 DOWNTO 0)。 正反轉(zhuǎn)切換鍵 clkkk:out STD_LOGIC。USE 。END PROCESS。139。END PROCESS。139。y=39。ELSIF key=39。BEGINPROCESS(key,clk,rst) 產(chǎn)生換向延時(shí)秒脈沖VARIABLE t:integer range 0 to 32022000。 系統(tǒng)時(shí)鐘/換向按鍵/復(fù)位信號 y:out STD_LOGIC 。USE 。模塊一接收到按鍵信號,則按鍵去抖部分先對按鍵信號進(jìn)行處理,得到穩(wěn)定的控制信號;如果是變頻信號則變頻部分動作,通過相位累加模型,改變步進(jìn)電機(jī)脈沖頻率,并送給步進(jìn)部分;如果是換向信號,則換向部分動作,為了使電機(jī)降速停止或降到突跳頻率范圍之內(nèi)再換向,先停送驅(qū)動脈沖一秒,再送反向脈沖給步進(jìn)部分,驅(qū)動電機(jī)換向;步進(jìn)部分則是按照送來的脈沖頻率和步進(jìn)順序信號驅(qū)動電機(jī)按預(yù)定的轉(zhuǎn)速和轉(zhuǎn)向轉(zhuǎn)動;測頻部分通過測定所送脈沖頻率,再利用四相電機(jī)八拍運(yùn)行時(shí)步距角為θ=360度/(50*8)=則可以計(jì)算出步進(jìn)電機(jī)的每分鐘轉(zhuǎn)速數(shù)據(jù),再送給顯示模塊顯示。167。總控制模塊其實(shí)質(zhì)是一個(gè)按鍵控制程序,共有reset復(fù)位鍵、add累加鍵、sub遞減鍵、start/stop啟動/停止鍵、shift電機(jī)正反轉(zhuǎn)控制鍵五個(gè)按鍵。以此類推,其余各相亦是如此。車輛與動力工程學(xué)院課程設(shè)計(jì)說明書第二章 總體設(shè)計(jì)167。對于CP脈沖的設(shè)計(jì)主要要求其有一定的脈沖寬度(一般不小于5μs)、脈沖序列的均勻度及高低電平方式. 換向信號起作用的時(shí)刻167。如果按給定工作方式正序換相通電,步進(jìn)電機(jī)正轉(zhuǎn),如果按反序通電換相,則電機(jī)就反轉(zhuǎn)。②保證控制速度的精確性;要從一個(gè)速度準(zhǔn)確達(dá)到另外一個(gè)速度,就要建立一個(gè)校驗(yàn)機(jī)制,以防超過或未達(dá)到所需速度。如圖所示。因此驅(qū)動步進(jìn)電機(jī)時(shí),應(yīng)當(dāng)先計(jì)算出電機(jī)不失步起動的最大頻率,但其計(jì)算過程涉及參量復(fù)雜,鑒于我們對其具體理論了解有限,故不能精確計(jì)算出空載起動頻率,實(shí)際應(yīng)用對起動段的處理是采用按直線擬合