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控制
主站蜘蛛池模板: 天天激情综合| 香蕉eeww99国产精选播放| 国产精品亚洲一区二区在线观看| 欧美精品成人| 亚洲国产成人超福利久久精品| 午夜免费小视频| 亚洲国产日韩在线成人蜜芽| 精品国产免费观看| 亚洲天堂网2014| 久久久久无码精品| 成人福利在线观看| 亚洲女同欧美在线| 国产精品视频导航| 国产在线专区| 欧美午夜视频在线| 欧美性爱精品一区二区三区 | 欧美日韩精品综合在线一区| 人妻熟妇日韩AV在线播放| 亚洲欧美不卡| 欧美第一页在线| 无码日韩精品91超碰| 欧美一级在线| 亚洲婷婷六月| 中字无码av在线电影| 日韩在线第三页| 国产无码精品在线播放| 凹凸精品免费精品视频| av在线手机播放| 色悠久久综合| 国产剧情一区二区| 日韩欧美国产中文| 国产精品亚洲精品爽爽| 午夜福利亚洲精品| 91免费精品国偷自产在线在线| 亚洲91精品视频| 五月综合色婷婷| 久久综合色88| 亚洲无码高清视频在线观看| 国产人人干| 国产理论精品| 国产在线第二页| 亚洲无码精品在线播放| 成人国产精品视频频| 天天婬欲婬香婬色婬视频播放| 日本高清视频在线www色| 成年A级毛片| 亚洲全网成人资源在线观看| 日韩欧美国产成人| 国产国模一区二区三区四区| 亚洲三级电影在线播放| 国产在线一区二区视频| 国产高清无码麻豆精品| 午夜在线不卡| 特级做a爰片毛片免费69| 欧美曰批视频免费播放免费| 五月婷婷丁香综合| 国产免费高清无需播放器| 国产福利微拍精品一区二区| 国产91蝌蚪窝| 在线日韩日本国产亚洲| P尤物久久99国产综合精品| 凹凸精品免费精品视频| 精品国产成人av免费| 亚洲综合精品第一页| 免费亚洲成人| 亚洲精品无码不卡在线播放| 91美女视频在线观看| 久久女人网| 中文字幕久久亚洲一区| 一本大道AV人久久综合| 中文字幕免费视频| 日日拍夜夜操| 91色在线观看| 久久情精品国产品免费| 亚洲欧美日韩另类| 亚洲天堂色色人体| 国产三级成人| 国产福利免费观看| 国产sm重味一区二区三区| 国产欧美日韩精品第二区| 日韩高清中文字幕| 人妻熟妇日韩AV在线播放|