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

基于ARM和FPGA的多通道步進電機控制系統

2017-05-12 02:16:03楊永清吳學杰
裝備制造技術 2017年3期
關鍵詞:信號系統

楊永清,吳學杰

(西南交通大學牽引動力國家重點實驗室,四川成都610031)

基于ARM和FPGA的多通道步進電機控制系統

楊永清,吳學杰

(西南交通大學牽引動力國家重點實驗室,四川成都610031)

提出了一種基于ARM和FPGA的既能同步又能異步的多通道步進電機控制系統設計方案,并完成系統的軟件及硬件設計。采用STM32F407和FPGA芯片為核心控制器,選用L297+L298組合作為步進電機的驅動器。以C語言和Verilog HDL語言為開發語言對設計的芯片進行實際測試,采用Delphi 7軟件設計控制系統的上位機人機交互界面。

STM32;FPGA;步進電機;Delphi;控制系統

隨著微電子技術和計算機科學突飛猛進的發展,步進電機因簡單和可靠性高越來越多地應用于運動控制系統。步進電機是一種開環控制電機,在自動控制系統中扮演者重要的角色,是其主要執行元件。在非超載的情況下,步進電機的轉速、停止的位置只取決于脈沖信號的頻率和脈沖數,而不受負載變化的影響[1]。傳統的步進電機控制系統多采用單片機和DSP芯片作為其核心,通常以定時器的方式產生控制脈沖[2],因此占用了較為可觀的系統資源,脈沖頻率更是為微控制器所限制,控制系統和驅動電路的設計復雜且昂貴,并在設計完成后很難再作修改或者靈活應用于其他場合,系統的可移植性比較差,并且難以實現人機交互,控制精度低。本文提出的基于ARM和FPGA(現場可編程門陣列)的多通道步進電機控制系統實現了人機交互,參數可配置,具有使用靈活、修改方便、簡單直觀、可靠性高、可移植性強等諸多優點[3]。

1 系統總體方案

多通道步進電機控制系統采用了人機操作界面管理級(PC端上位機)和實時控制級(STM32+FPGA模塊),能夠同時對8臺兩相混合式步進電機進行實時控制,使其同步或異步運行。該控制系統框圖如圖1所示,虛線框Ⅰ中為管理計算機(包括管理軟件和人機交互界面),虛線框Ⅱ中為步進電機的實時控制系統(包括STM32F407控制模塊、FPGA狀態轉換及分頻模塊、步進電機驅動器以及光柵傳感器),虛線框Ⅲ為被控對象,即8臺兩相混合式步進電機。

圖1 多通道步進電機控制系統框圖

在PC端安裝有上位機軟件進行人機交互,軟件開發語言為Delphi7.上位機負責系統參數的定義、管理、監控,并對各步進電機的數據進行顯示和保存等工作,并提供簡便直觀的人機交互界面而不參與步進電機的實時控制。STM32控制模塊與PC端上位機和FPGA狀態轉換及分頻模塊分別進行通信,從而實現它們三者之間數據和命令的傳遞處理。FPGA采用硬件編程語言Verilog-HDL進行編寫,實時控制模塊中的FPGA負責與STM32微控制器進行通信并執行上位機發送過來的相關命令,實現控制脈沖的輸出,從而控制步進電機在啟動、加速、減速等狀態間的轉換。步進電機驅動器中的L297芯片負責將從FPGA輸入的控制脈沖信號按一定規律進行分配,再通過L298芯片進行功率放大,最終實現對8臺步進電機的控制。光柵傳感器將電機的實時運行狀態數據發送給FPGA,并最終傳入STM32,與發送給電機的控制信號進行比較,從而比較精準的控制電機的運行,達到對步進電機進行閉環控制的目的。

2 硬件設計

該系統硬件部分包括STM32與FPGA分頻模塊、步進電機驅動器模塊、光柵傳感器等,步進電機選用了較為常見的兩相混合式步進電機。

2.1 STM32與FPGA的連接

微控制器選用了意法半導體公司推出的STM32F407ZGT6,FPGA芯片則選用Altera公司的EP2C8Q208C8.STM32微控制器與FPGA進行通信,用到了圖2所示的幾個I/O口,PC6、PC8、PC7、PD5和PD4為五個控制信號端口,分別代表系統復位信號(reset)、鎖存信號(lock)、使能信號(en)、寫信號(rw)和讀信號(rd).PF[0..5]和PF[12..13]為八位地址線,負責發送命令至FPGA從而對相應的步進電機進行控制。八位地址線前3位為步進電機通道號,其余5位為控制號。第1~8臺步進電機依次對應通道號0~7,控制號為:1~發送,2~復位,3~停機,4~頻率調整,5~步數調整等。如果0x71(即二進制11 100 001),意思是發送第8臺步進電機的控制命令,如啟動速度、加速度、目標速度等參數。圖2所示其余雙向數據I/O口供STM32與FPGA進行通信。當rw=1時,STM32向FPGA寫入啟動頻率、穩定頻率、停止頻率等數據;當rd=1時,STM32從FPGA讀取當前步數、當前速度分頻計數值等數據,利用這些數據,STM32可以計算出步進電機的當前速度。

圖2STM32與FPGA接口電路圖

2.2 步進電機驅動器模塊

步進電機驅動器模塊硬件部分包括光電耦合器及L297+L298組合,其中光電耦合器的型號為LPCL2531.L297+L298組合是一種價格低廉并且相當成熟的步進電機驅動方案,可以驅動一臺步進電機的運行。L297是一種包含有環形分配器的步進電機控制器,而環形分配器的作用就是把控制環節產生并發送來的脈沖序列按照一定的規律進行分配,再由功率放大器放大加到電機啟動電源的輸入端來驅動電機轉動。在本文提出的這個控制系統中,FPGA為環形分配器提供脈沖序列。步進電機驅動器模塊如3所示。

圖3 步進電機驅動器模塊

L297適用于雙極性兩相和單極性四相步進電機的控制,它的輸出信號能夠控制L298(雙全橋驅動器)。L297+L298所組成的驅動器能夠驅動工作電壓為46 V、每相電流不高于2.5 A的步進電機。L297有半步、整步和波狀三種驅動模式[4],雙極性兩相步進電機有兩相單四拍、兩相八拍、兩相雙四拍三種工作模式,這里采用L297的半步驅動模式,兩相步進電機采用兩相八拍的工作模式,電機通電換相的順序。2.3光柵傳感器工作原理

光柵位移傳感器又叫作光柵尺,通常應用于直線位移或者角位移的檢測,是一種高精度位移測量元件,在自動控制領域發揮著重要作用[5]。光柵傳感器的柵距τ與其在測量過程中的分辨率成反比關系,是衡量光柵傳感器性能的重要參數。相比于其他檢測元件,在對精度有較高要求的反饋控制系統中光柵傳感器有著更好的性能。

光柵傳感器被旋轉的步進電機帶動而沿絲杠移動時,會產生黑白相間的摩爾條紋。經光電轉換作用,摩爾條紋信息被輸出為相位依次0°、90°、180°和270°的4路正弦信號,再由比較電路輸出兩路相位相差為90°的數字方波信號:A相和B相信號。將A相和B相信號進行對比,將它們的邊沿變化情況記錄并進行計數,就可以得到步進電機的相對位移量和位移方向。

圖4 光柵尺測量時序

3 軟件總體設計

3.1 時鐘分頻模塊

本系統中的步進電機的轉動方向由STM32進行控制,而其脈沖控制信號則由FPGA生成。在這個控制系統中步進電機需要的運行速度范圍是1~16 777 216步/秒,選用的FPGA的時鐘頻率則是50 MHz,所以要對芯片時鐘分頻處理。本系統共需要四個時鐘,分別是clk_50m、clk_1m、clk_1k、out.

時鐘分頻的基本原理比較簡單,利用計數器進行計數就能夠實現。在50 MHz基頻的驅動下,計數器不停計數,達到系統設定值之后,將輸出信號進行翻轉,同時計數器清零,開始重新從零計數,將上述過程重復就可以實現分頻。如果基頻為F,系統設定值為N(STM32計算而得,然后發送給FPGA),則合成頻率為的方波。當系統需要1 MHz的時鐘頻率,可以用如下程序實現:

always@(posedge clk_50m)//遇到芯片時鐘上跳沿;

begin

if(clk_div==8h32)//達到系統設定值;

clk_div=1;//將計數值置1;

else clk_div=clk_div+1;//否則,計數值加1;

end

assign clk_1m=(clk_div==8h32);//達到系統設定值,輸出信號翻轉。

3.2 FPGA與STM32之間的通信

FPGA與STM32通過雙向I/O口實現兩者之間數據的讀寫。在通信前,應當先定義該I/O口的方向。這個程序中,通過以下語句來來定義端口的方向:

其中data為要輸入或者輸出的數據,rw_stm32為寫信號(高電平有效),en為FPGA使能信號,databuff為數據輸出時所使用的數據寄存器。該語句表示在FPGA使能時,I/O口數據傳輸方向由rw_stm32決定。當rw_stm32=1時,data=databuff.數據從FPGA輸出,寫入STM32;否則,data為高阻態。I/O口為輸入狀態。

本系統需要將個步進電機相關數據發送至STM32并在上位機中實時顯示出來,方便操作人員隨時監測各步進電機的運行情況。為了將FPGA的數據準確的發送出去,需對當前以下數據進行鎖存:步數計數值、當前分頻值、當前狀態值以及光柵計數值。數據鎖存時,將數據鎖存信號lock置于高電平,即將lock置1.程序鎖存流程圖如圖5所示。

圖5 程序鎖存流程圖

在完成對數據的鎖存之后,便可以選擇是否要對相關數據進行發送。在rd_stm32為高電平(即rd_stm32=1)時,FPGA將鎖存數據存儲到數據寄存器中,等候STM32讀取。由于STM32和FPGA通信時,使用的是8位數據線,而步數計數器鎖存器、當前分頻值鎖存器和光柵計數器鎖存器均為24位寄存器,因此這3個寄存器中的數據將會被分為3個字節進行存儲。輸出寄存器databuff存儲數據地址則是由8位地址線中的低五位表示。FPGA向STM32寫入數據如圖6所示。

圖6FPGA向STM32寫入數據

3.3 同步/異步控制模塊

本文提出的控制系統通過上位機與下位機的協調作用,能夠同時實時控制1~8臺步進電機的運行。以同時啟動通道號1和通道號3所對應的步進電機為例,在PC端上位機人機交互界面對通道號進行選擇后,打開串口設置,完成對串口的設置,并對所控電機的相應參數進行設置后,點擊發送按鈕。上位機將選擇的通道號信息和各步進電機的參數信息通過串口傳送給STM32,然后STM32把接收到的通道號信息和步進電機參數信息進行分析和處理,將這些參數寫入總線中,等候FPGA讀取。程序代碼如下:

case 0x07://全啟動控制命令

Control_Flag_Down=7;

Start_Motor=Receive_Data[1];

Writedata(0x14,Start_Motor);

FPGA從總線中讀取通道號信息和步進電機參數信息,然后把它們存儲在寄存器start_motor中。start_motor與8臺步進電機的啟動位相連接,負責啟動8臺電機。它是一個8位二進制寄存器,當各步進電機所對應的位被置1時,步進電機啟動。程序代碼如下:

always@(posedge clk)

begin

if(rd)

begin

if(addr==5'b10100)//啟動步進電機

begin

start_motor<=data;

end

end

else

start_motor<=start_motor;

end

上述控制方法,能夠實現控制多臺電機的同步和異步運行,同步運行不會產生相位差,異步運行也可以精確控制。

4 調試

連接系統各部分之后,打開上位機軟件,在上位機人機交互操作界面上選中1至4通道,對控制系統進行調試。將4臺電機的初始速度設置為1 000步/秒,目標速度設置為5 000步/秒,停止速度設置為2 000步/秒。繼續在操作界面點擊“串口設置”,設置串口信息,打開串口,發送,4臺電機開始運行。當電機加速至設定的目標速度后,各步進電機開始穩定運行。在電機穩定運行狀態下,上位機人機交互操作界面顯示信息如圖7所示。

圖7 穩定運行狀態

5 結束語

本文提出的基于ARM和FPGA的多通道步進電機控制系統實現了對多臺電機速度和位置的快速準確控制。在PC端安裝的上位機軟件可以在其人機交互操作界面上直觀地顯示出各步進電機的實時運行狀態和具體參數,通過配置各步進電機的參數又可以方便的調整各步進電機的運行狀態,控制簡單方便,性能良好,滿足了用戶對以步進電機為執行元件的檢測設備高效率工作的需求,并且節約了硬件部分的成本。系統硬件部分各元件性價比較高,下位機軟件部分采用C語言和Verilog-HDL語言編寫測試,具有很好的可移植性。系統整體性能穩定,具有良好的實用價值和推廣價值。

[1]劉征東,吳學杰,彭波.基于FPGA的步進電機控制芯片設計[J].工業控制計算機,2011,24(4):71-72.

[2]方旭,吳學杰,黃鴻國.多通道步進電機控制系統的設計[J].儀器儀表與分析檢測,2014(3):1-4.

[3]顧瑞娟,王宇,張善從.基于FPGA的步進電機驅動控制系統設計[J].計算機工程與設計,2012(1):111-115.

[4]孟英紅,齊婉玉,段學鋒.用L297,L298組成步進電機驅動電路[J].儀器儀表學報,2003(4):573-574.

[5]劉雪超,吳志勇.基于TMS320F28335的步進電機控制模塊設計[J].儀表技術與傳感器,2011(10):78-80.

Multi-channel Stepper Motor Control Systerm Based on ARM and FPGA

YANG Yong-qing,WU Xue-jie
(State Key Laboratory of Traction Power,Southwest Jiaotong University,Chengdu Sichuan 610031,China)

This paper describes a kind of both synchronous and asynchronous multi-channel stepping motor control system based on ARM and FPGA,and completes the design of hardware and software of the system.The system uses STM32F407 and FPGA chip as the core controller,and chooses a combination of classic L297+L298 as the stepper motor driver.The system is tested with software based on C program language and Verilog HDL hardware description language.Delphi 7 software is used to design human-computer interaction interface of the control system.

STM32;FPGA;stepping motor;Delphi;control system

TM383.6

A

1672-545X(2017)03-0177-04

2016-12-04

楊永清(1990-),男,河南開封人,碩士研究生在讀,研究方向為智能儀器、自動控制;吳學杰(1964-),男,四川樂山人,博士,研究員,研究方向為儀器儀表、自動化技術。

猜你喜歡
信號系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
完形填空二則
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
孩子停止長個的信號
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
基于LabVIEW的力加載信號采集與PID控制
主站蜘蛛池模板: 亚洲欧美日韩色图| 国产精品99一区不卡| 无套av在线| 精品久久久久成人码免费动漫| 亚洲色图欧美在线| 无码aaa视频| 日本伊人色综合网| 91视频国产高清| 2020精品极品国产色在线观看| 日韩欧美国产中文| 亚洲欧美一区二区三区麻豆| 四虎成人精品| 91网站国产| 国产日韩欧美一区二区三区在线| 欧美激情福利| 国产中文一区二区苍井空| 国产91精品调教在线播放| 欧美人与性动交a欧美精品| 午夜影院a级片| 久久永久精品免费视频| 国产成人a毛片在线| 自慰网址在线观看| 久久综合色视频| 欧美不卡视频一区发布| 2021国产精品自产拍在线| 女人爽到高潮免费视频大全| 国产微拍精品| a级毛片免费网站| 亚洲有无码中文网| 国产日产欧美精品| 色偷偷一区二区三区| 色亚洲成人| 特级精品毛片免费观看| 尤物午夜福利视频| 亚洲天天更新| 日本一本在线视频| 99伊人精品| 在线观看免费黄色网址| 久久精品欧美一区二区| 亚洲首页在线观看| 久久婷婷色综合老司机| 欧美97欧美综合色伦图| 亚洲国内精品自在自线官| 亚洲人成影院在线观看| 色吊丝av中文字幕| 精品国产电影久久九九| 国产91小视频| 亚洲成a人片| 国产成人做受免费视频| 欧美日韩91| 国产精品美女网站| 91成人免费观看| 九九免费观看全部免费视频| 国产一区二区三区日韩精品 | 激情成人综合网| 亚洲毛片一级带毛片基地| 欧洲在线免费视频| 丁香六月综合网| AV老司机AV天堂| 亚洲第一精品福利| 精品国产香蕉在线播出| 自拍偷拍一区| 欧美国产综合视频| 激情亚洲天堂| 久久黄色小视频| 国产综合欧美| 午夜福利视频一区| 再看日本中文字幕在线观看| 97视频在线精品国自产拍| 秋霞国产在线| 亚洲中文字幕av无码区| 亚洲男人的天堂久久香蕉网| 91久久国产成人免费观看| 欧美日本视频在线观看| 亚洲成网777777国产精品| 国产成人免费视频精品一区二区| 国产成本人片免费a∨短片| 亚洲精品成人7777在线观看| 久久综合九色综合97婷婷| 久久亚洲天堂| 国产91久久久久久| 永久免费无码成人网站|