亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        雙足機器人多電機協(xié)同控制系統(tǒng)設(shè)計

        2020-01-03 01:24:28
        計算機測量與控制 2019年12期
        關(guān)鍵詞:命令上位芯片

        (湖北大學(xué) 計算機與信息工程學(xué)院,武漢 430062)

        0 引言

        雙足機器人是機器人研究領(lǐng)域最活躍的研究熱點之一,運動控制系統(tǒng)作為雙足機器人研究的核心內(nèi)容,它直接決定了機器人性能的優(yōu)劣[1-2]。它不僅控制機器人的啟動、運行和停止,而且對控制速度和精度提出了嚴格的要求,同時要求對機器人中多個電機的控制要能達到協(xié)同的效果,從而使機器人完成難度較大、更加接近人的動作。因此在雙足機器人的控制中,對多路步進電機進行協(xié)同控制是核心[3-4]。

        要實現(xiàn)對步進電機的控制,一般采用單片機控制,但單片機的單時鐘系統(tǒng)滿足不了多個電機協(xié)同控制的需求,通常會運用多個單片機芯片控制,但是多個CPU同時控制就會面對資源浪費、相互干擾而穩(wěn)定性差、系統(tǒng)設(shè)計困難等問題;采用專用芯片控制法,控制精確、協(xié)同性強,但是可移植性差;采用DSP控制方法設(shè)計復(fù)雜,技術(shù)要求較高,較少采用;FPGA的控制能力很強大,但是單純采用FPGA芯片控制時,需要高性能的FPGA芯片,這種芯片價格昂貴,因此其應(yīng)用范圍受到一定限制[5-7]。對于雙足機器人控制系統(tǒng),其多路電機的控制精度與速度要求并不算很高,為了節(jié)省成本,需要設(shè)計出既能同時協(xié)同控制多路電機,而且控制精確、性價比高的控制方案[8-10]。

        本文采用“ARM+FPGA”的雙芯片異構(gòu)控制方案。結(jié)合ARM控制能力強、成本低、操作簡單的優(yōu)點和FPGA多通道控制的優(yōu)點,以ARM芯片為主控芯片,控制所有命令的發(fā)出與執(zhí)行;FPGA用來做輔控芯片,在接到命令之后,發(fā)揮自己并行處理的能力去控制電機的運行狀態(tài),在ARM和PPGA的分工協(xié)作下完成對多個電機的協(xié)同控制。

        1 多電機協(xié)同控制系統(tǒng)總體設(shè)計

        雙足機器人ARM+FPGA多電機協(xié)同控制系統(tǒng)包含有人機交互控制系統(tǒng),實時控制系統(tǒng),電機控制系統(tǒng)三大部分組成。人機交互系統(tǒng)在PC端完成,主要是接受人的命令,使用者按照自己的需要去給系統(tǒng)發(fā)送命令從而控制電機;實時控制系統(tǒng)就是負責(zé)指令的執(zhí)行,這也是控制系統(tǒng)的關(guān)鍵;電機控制系統(tǒng)則是最后命令的實行者,可以完成對多臺電機的同時控制。ARM+FPGA多電機協(xié)同控制系統(tǒng)的具體模塊如圖1所示。

        圖1 多電機協(xié)同控制系統(tǒng)的具體功能模塊框圖

        1.1 上位機

        在上位機上裝有軟件用于人機交互,人機交互界面采用 C#開發(fā)語言設(shè)計。上位機采用一般的PC機主要負責(zé)具體命令的設(shè)置,我們通過PC機給電機設(shè)置一系列的動作,讓電機工作。同時PC機也需要把電機運行的數(shù)據(jù),比如每個電機運行的位置,以及運行的時間顯示出來。PC機還需要保存數(shù)據(jù)并與ARM芯片雙向通信,把命令傳給ARM去執(zhí)行,并把ARM上的信息顯示出來。PC機主要起人與系統(tǒng)的交互作用,它包括參數(shù)的設(shè)置,狀態(tài)的顯示還有通信。參數(shù)設(shè)置主要是對多臺電機通道的選擇以及電機的動作、頻率和步數(shù)的設(shè)置;狀態(tài)的顯示包括命令發(fā)出的狀況以及FPGA芯片傳回命令的情況,還有機器運轉(zhuǎn)的情況等等;通信模塊的主要功能就是上位機與ARM系統(tǒng)的通信,主要負責(zé)PC機接受到的命令的輸送,由于需要實時控制所以采用網(wǎng)口通信的方式,通過網(wǎng)線將PC和ARM控制器鏈接起來。

        1.2 ARM控制器

        ARM 控制器是整個控制系統(tǒng)的核心,主要用于電機驅(qū)動算法的實現(xiàn),與上位機和FPGA 進行通信,以及控制輸出PWM脈沖信號。ARM控制器采用STM32F103ZET6芯片,它包含JTAG下載模塊、通信模塊、I/O接口模塊、與FPGA通信模塊等。JTAG下載模塊的功能是將在PC端軟件上編譯好的程序下載到ARM控制器里面,從而STM32F103芯片才能對系統(tǒng)進行控制;通信模塊則是ARM控制器與上位機PC的聯(lián)系通道;I/O 接口模塊則是ARM系統(tǒng)對外界的控制,比如指示燈、紅外線以及一些參數(shù)的設(shè)計等等,通過I/O口來實現(xiàn)對外接設(shè)備的控制;與FPGA的通信模塊則與FPGA相連,將主控命令傳送給STM32F103芯片。ARM控制器與PC端上位機以及FPGA進行雙向通信,傳遞數(shù)據(jù)和控制命令。

        1.3 FPGA控制器

        在該電機控制系統(tǒng)中,FPGA控制器起上傳下達的作用,它首先接收ARM的指令,通過輸出脈沖指令,將指令傳送到電機控制系統(tǒng),由電機控制系統(tǒng)去具體執(zhí)行控制電機運行,還接收電機傳回來的數(shù)據(jù),并根據(jù)返回信號控制脈沖輸出。FPGA功能模塊采用EP2C35F672C8N芯片,它包含有JTAG下載模塊,I/O 接口模塊,與ARM系統(tǒng)通信模塊,還有與電機控制系統(tǒng)連接的脈沖輸出模塊。JTAG下載模塊把PC端軟件上編譯好的程序下載到芯片,I/O接口模塊與電機的控制系統(tǒng)相連,控制電機的運行,EP2C35F672C8N芯片需要對主頻進行分頻,通過I/O 接口輸出多路頻率來控制多路電機;它的通信模塊與ARM系統(tǒng)相連接,負責(zé)接收ARM系統(tǒng)的命令并返回相應(yīng)的狀態(tài)。

        ARM與FPGA之間是雙向通信,ARM控制器傳送上位機命令給FPGA,同時FPGA也要把運行狀態(tài)信息傳給ARM,主控ARM芯片總攬大局,實時控制整個運行過程,實時控制模塊FPGA芯片則是命令的傳送者,傳給步進電機驅(qū)動器去執(zhí)行。

        1.4 步進電機驅(qū)動器與光柵傳感

        步進電機驅(qū)動器的作用是由于芯片產(chǎn)生的波形PWM信號都比較小,不足以驅(qū)動電機,因此還需要在控制電路后面加上電機控制系統(tǒng),步進電機驅(qū)動器如圖2所示。

        圖2 步進電機驅(qū)動器結(jié)構(gòu)框圖

        步進電機驅(qū)動器包括信號產(chǎn)生源、步進控制器及功率放大器等。此系統(tǒng)接受FPGA控制器產(chǎn)生的脈沖信號,接著步進控制器把脈沖信號轉(zhuǎn)換成環(huán)形脈沖,這樣才能控制步進電機正轉(zhuǎn)和反轉(zhuǎn)。由于脈沖信號太弱而不能驅(qū)動電機,這時候就需要功率放大器把環(huán)型脈沖信號放大。光柵傳感器把電機相關(guān)信息(速度、位置或扭矩)傳給FPGA再傳給ARM來與控制信號作對比,實現(xiàn)比較精確的閉環(huán)控制。

        2 控制系統(tǒng)的ARM+FPGA設(shè)計實現(xiàn)

        2.1 控制系統(tǒng)架構(gòu)設(shè)計

        根據(jù)任務(wù)要求,ARM控制芯片選用ST系列的STM32F103ZET6芯片,STM32F103使用的是高性能的ARM CortexTM-M3 32位的RISC內(nèi)核,工作頻率高達72 MHz,內(nèi)置高速存儲器,有144個端口,有2個12位的ADC和3個通用16位定時器以及1個PWM定時器,還有標準和先進的通信接口,以及USART接口和CAN接口。FPGA控制芯片使用Altera公司經(jīng)濟型的Cyclone系列的EP2C35F672C8N芯片,具有豐富的邏輯單元和I/O接口,價格低,可滿足本控制系統(tǒng)的設(shè)計需求。在本電機控制系統(tǒng)中,兩部分的主控芯片ARM和FPGA還需要相互的交換數(shù)據(jù),來達到協(xié)同控制的目的。因此在ARM和FPGA之間的通信方式也是關(guān)鍵,此系統(tǒng)中我們選擇FSMC(Flexible StaticMemory Controller,可變靜態(tài)存儲控制器)的通信方式,把FPGA當(dāng)作ARM的一個SRAM來使用,針對兩個控制芯片的特點,我們設(shè)計了如圖3的通信電路,采用 SRAM 的方式連接。PB3~7是5個控制信號端口,8位地址線負責(zé)發(fā)送命令到FPGA來具體控制6個電機的運行,8個數(shù)據(jù)通信線路是ARM與FPGA的通信通道,wr=1時寫數(shù)據(jù),STM32給FPGA發(fā)命令,rd=1時讀取6路電機各個電機運行的狀態(tài)是否正常。

        圖3 STM32 與 FPGA 的通信連接圖

        ARM+FPGA控制系統(tǒng)中,F(xiàn)PGA把各臺電機的運行狀態(tài)信息傳送給STM32,并最終在上位機人機交互操作界面上實時顯示。在控制過程中,數(shù)據(jù)刷新速度特別快,F(xiàn)PGA要把數(shù)據(jù)準確地傳送給STM32,則需要對當(dāng)前狀態(tài)值等數(shù)據(jù)給以鎖存,用鎖存信號lock對數(shù)據(jù)進行鎖存,數(shù)據(jù)鎖存以后,就可以傳送數(shù)據(jù)了。如果rd_stm32是高電平,就把鎖存的數(shù)據(jù)保存至寄存器,等候STM32進行讀取。FPGA需要從STM32獲取在上位機人機交互操作界面設(shè)定的各電機的運行參數(shù)與控制命令,在FPGA需要從STM32讀取的數(shù)據(jù)時,通過FPGA端口的控制線與地址線,把數(shù)據(jù)保存至寄存器。

        2.2 STM32軟件設(shè)計

        STM32軟件所要完成的主要任務(wù)是將上位機傳來的數(shù)據(jù)指令進行相應(yīng)的處理與轉(zhuǎn)化,然后發(fā)送給FPGA芯片,同時從FPGA芯片讀取電機的實時運行狀態(tài),并且做相應(yīng)的數(shù)據(jù)處理再返回到上位機顯示出來,還需要接收光柵傳感器發(fā)來的數(shù)據(jù)并與控制命令對比,通過模糊PID控制修正參數(shù),再進行電機的閉環(huán)控制。

        STM32控制程序的設(shè)計是通過模糊PID算法控制電機的運行,模糊PID算法主要是在STM32里面實現(xiàn)的,STM32的開發(fā)平臺是Keil MDK,Keil是美國Keil Soft公司開發(fā)的微處理器軟件開發(fā)平臺,是目前ARM內(nèi)核單片機開發(fā)的主流工具,Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和仿真調(diào)試器[6],在Win10系統(tǒng)上運行。本文開發(fā)用的是2013年發(fā)布的最新版本Keil uVision5。

        2.2.1 STM32主程序

        STM32的電機控制程序功能是由主程序和中斷程序配合協(xié)調(diào)共同完成,主程序包括系統(tǒng)初始化程序,主循環(huán)程序。軟件首先必須對整個系統(tǒng)和設(shè)備初始化,包括時鐘的初始化、GPIO口的初始化配置、定時器的配置、PWM波的配置、ADC的配置初始化以及中斷變量的設(shè)置。在整個系統(tǒng)初始完成之后還需要進入不斷的循環(huán)之中,這就包括對上位機傳來的命令的接收執(zhí)行,對設(shè)備傳感器傳來的轉(zhuǎn)速,加速度進行計算比較并在程序中做相應(yīng)的算法處理,以及設(shè)備故障檢測、電壓電流檢測、工作狀態(tài)檢測等來不斷判斷機器是否正常運行以及給機器提供正常運行的指令。主要的程序流程圖如圖4所示。

        圖4 STM32主要程序流程圖

        2.2.2 STM32子程序

        主程序是框架,而子程序則是系統(tǒng)的核心和主要部分,由他們來保證系統(tǒng)功能的正常實現(xiàn),在子程序中,PWM波的產(chǎn)生是主線,通過對光耦傳感器傳來的速度,以及采集的電流進行算法分析,對PWM信號進行計算修正,再輸出新的信號,從而完成對電流、轉(zhuǎn)速和位置的三環(huán)控制,ADC程序中斷為輔以完成電機速度位置的某些轉(zhuǎn)換。主要程序包括位置檢測程序、電流檢測程序、模糊PID算法程序、UART通信程序、電流current換相中斷函數(shù)等,其流程圖如圖5所示。

        圖5 STM32子程序流程圖

        2.2.3 STM32與FPGA的通信

        STM32與FPGA的通信有兩個方面:一方面是STM32把上位機的命令通過轉(zhuǎn)化發(fā)送給FPGA;另一方面FPGA也需要把自己運行產(chǎn)生信號的信息返回給STM32,考慮到靈活性、及時性以及雙向性,我們采用FSMC(Flexible Static Memory Controller)可變靜態(tài)存儲控制器的通信方式,它是STM32系列中內(nèi)部集成的256KB以上的Flash,支持多種靜態(tài)存儲器類型,而且可以同步突發(fā)訪問。

        2.3 控制系統(tǒng)的FPGA設(shè)計

        2.3.1 系統(tǒng)硬件設(shè)計

        FPGA控制系統(tǒng)主要的任務(wù)是對50 MHz的頻率進行分頻,獲得各通道的時鐘頻率;傳達各步進電機的啟動、停止、運行等命令;對各步進電機的運行狀態(tài)鎖定,并且將狀態(tài)發(fā)送給上位機;接收STM32發(fā)來的指令信息并且轉(zhuǎn)化處理之后傳給電機控制系統(tǒng)。根據(jù)FPGA在系統(tǒng)的功能,F(xiàn)PGA的功能電路模塊主要包括:電源模塊、下載模塊、與電機通信模塊和與STM32的通訊模塊。FPGA的主要功能模塊電路如圖6所示。

        圖6 FPGA功能模塊電路圖

        2.3.2 基于IP核的FPGA設(shè)計

        設(shè)計平臺采用Quartus II,它是Altera公司的綜合性CPLD/FPGA開發(fā)軟件,該軟件支持原理圖、VHDL、Verilong等多種設(shè)計輸入,而且自帶有仿真器,可以完成從設(shè)計、仿真、適配到最后形成最終電路的完整過程而不需要其他的平臺。此外,在QuartusII上面提供了免費的LPM調(diào)試模塊,比如計數(shù)器、加法器、乘法器等,而且還有特制的有償IP核供使用。本文基于系統(tǒng)提供的鎖相環(huán)IP核模塊進行設(shè)計,通過對PLL模塊例化,并且把整個IP核模塊和PLL模塊添加到頂層電路圖中去,整個頂層設(shè)計如圖7所示。

        圖7 FPGA完整的頂層設(shè)計原理圖

        3 實驗結(jié)果及分析

        要檢驗控制系統(tǒng)最終達到的控制效果,需構(gòu)建一個測試平臺進行系統(tǒng)調(diào)試。首先進行散件電機的檢驗,再組建成真正的雙足機器人,從觀察機器人的運動狀態(tài),用示波器檢測,以及上位機顯示的機器人的運行數(shù)據(jù)三個方面來驗證系統(tǒng)的真實可行性。通過觀察實物電機和機器人的運動、分析示波器的波形以及上位機顯示的運動數(shù)據(jù)三個方面來說明本套控制系統(tǒng)的可行性。

        要對系統(tǒng)調(diào)試必須要對系統(tǒng)進行控制,這就必須要有人機交互界面,人機交互界面部分所要完成的任務(wù)主要有:與用戶進行數(shù)據(jù)交換,人們根據(jù)需要把動作通過人機交互界面下達給控制系統(tǒng),然后交給步進電機去執(zhí)行。人機交互界面是由C#寫成的,在windows 系統(tǒng)上都可使用,借用的平臺是 Visualstudio 2013,利用.NET Framework2.0 庫中I/O口和串口控件設(shè)計而成的,通過設(shè)置串口通信所需的參數(shù),打開串口便可以進行數(shù)據(jù)傳輸,達到控制的目的。

        上位機與系統(tǒng)板的通信采用改進串口協(xié)議,協(xié)議有幀頭、數(shù)據(jù)長度、指令和參數(shù)構(gòu)成,協(xié)議以0x55開頭,表示有數(shù)據(jù)到達,接著是數(shù)據(jù)長度,用來校驗數(shù)據(jù),然后是指令,對串口的數(shù)據(jù)進行操作,包括要控制的電機號,程序下載的電機號以及動作等。在上位機頁面設(shè)置了6路電機的操作模式來驗證系統(tǒng)控制電機的同時性。多電機協(xié)同控制系統(tǒng)的重點是完成對多臺電機的同步控制,所以應(yīng)當(dāng)對多臺電機控制的同步性進行檢測。

        我們把 6 路電機用作雙足機器人的腿上的 6 個關(guān)節(jié),來驗證雙足機器人中多路電機協(xié)同控制的性能,每條腿用三個電機相當(dāng)于人腿上的三個關(guān)節(jié),即從上到下依次是髖關(guān)節(jié)、膝關(guān)節(jié)和足關(guān)節(jié)。人的腿上的一系列動作需要各個關(guān)節(jié)協(xié)同起來才能完成,機器人腿上的動作則需要各個電機協(xié)同工作才能完成。觀察分析 6 路電機在前進動作完成期間的數(shù)據(jù),數(shù)據(jù)如表1所示。

        表1 機器人前進的各電機數(shù)據(jù)表

        從表中數(shù)據(jù)來看,控制非常精確,可以達到0.14度的精確度,而且在150 ms甚至更短的時間內(nèi),六路電機可以同時運行,并且各個電機可以有不同的動作,來共同協(xié)調(diào)完成一系列完整的動作。通過系統(tǒng)的運行狀態(tài),可以得出控制系統(tǒng)達到了良好的控制效果。

        4 結(jié)論

        根據(jù)觀察機器人的運動狀態(tài)和分析上位機顯示的數(shù)據(jù),可以很明確的看出該控制系統(tǒng)是能夠同步、協(xié)同而精確控制雙足機器人中多路電機的。本設(shè)計證明了以ARM+FPGA為核心的控制系統(tǒng)的可行性,硬件和軟件的完美結(jié)合共同構(gòu)成雙足機器人多電機協(xié)同控制系統(tǒng),該系統(tǒng)具有良好的應(yīng)用價值。

        猜你喜歡
        命令上位芯片
        只聽主人的命令
        特斯拉 風(fēng)云之老阿姨上位
        車迷(2018年12期)2018-07-26 00:42:22
        移防命令下達后
        “三扶”齊上位 決戰(zhàn)必打贏
        基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
        芯片測試
        這是人民的命令
        多通道采樣芯片ADS8556在光伏并網(wǎng)中的應(yīng)用
        以新思路促推現(xiàn)代農(nóng)業(yè)上位
        74HC164芯片的應(yīng)用
        河南科技(2014年10期)2014-02-27 14:09:18
        欧美乱妇高清无乱码免费| 久久久久久一级毛片免费无遮挡| 8090成人午夜精品无码| 天堂影院久久精品国产午夜18禁| 亚洲最大免费福利视频网| 国产ww久久久久久久久久| 亚洲av之男人的天堂| 无码人妻丰满熟妇区免费| 丝袜美腿亚洲综合第一页| (无码视频)在线观看| 亚洲国产无套无码av电影| 精品欧美久久99久久久另类专区| 国产一区二区在三区在线观看| 午夜视频在线观看一区二区小| 小荡货奶真大水真多紧视频| 中日韩欧美在线观看| 中文字幕中文一区中文字幕| 国产区女主播一区在线| 欧美私人情侣网站| 狠狠狠色丁香婷婷综合激情| 久久精品网站免费观看| 亚洲av综合国产av日韩| 永久免费观看国产裸体美女| 久久和欧洲码一码二码三码| 亚洲国产欧美日韩一区二区| 国产丝袜在线福利观看| 亚洲欧洲免费无码| 国产大陆亚洲精品国产| 波多野结衣视频网址| 一区二区三区在线蜜桃| 日本一区二区视频高清| 性高朝大尺度少妇大屁股| 国产精品无需播放器| 日韩在线中文字幕一区二区三区| 免费亚洲老熟熟女熟女熟女| 精品国产一区二区三区香蕉| 精品一区二区av天堂| 永久免费看黄网站性色| 国产成人精品亚洲日本在线观看 | 日韩欧群交p片内射中文| 福利视频一二区|