摘 要: 本文以五軸機械手的設(shè)計實現(xiàn)為背景,提出了一種基于以Cortex-M4為內(nèi)核的微處理器STM32F407構(gòu)成的嵌入式運動控制器。本設(shè)計方案引入現(xiàn)場總線的通信方式,利用其高可靠性和高通用性的特點,使得運動控制器具有高開放性和模塊化的特點。文中提供的以CAN總線控制多個私服電機的設(shè)計方法,使得硬件電路的設(shè)計大大簡化,也使得通信的效率和可靠性大幅提升。測試表明,控制器的性能穩(wěn)定可靠,能夠滿足機械手控制的需求,同時本設(shè)計對工業(yè)控制領(lǐng)域有著實際的應(yīng)用指導(dǎo)意義。
關(guān)鍵詞: CAN;多電機系統(tǒng)控制;現(xiàn)場總線
0 引言
現(xiàn)代科學技術(shù)的不斷發(fā)展,極大地推動了不同學科的交叉與滲透,導(dǎo)致了工程領(lǐng)域的技術(shù)革命與改造。機械手是近代自動控制領(lǐng)域出現(xiàn)的一項新技術(shù),并已成為現(xiàn)代機械制造生產(chǎn)系統(tǒng)中的一個重要組成部分。運動控制技術(shù)作為其中的核心組成部分,得到長足的發(fā)展,目前已成為自動化技術(shù)的一個重要分支[1]。隨著現(xiàn)代控制技術(shù)的提高,運動控制器的出現(xiàn)在某種意義上滿足了新型數(shù)控系統(tǒng)的標準化、開放性的要求,為各種工業(yè)設(shè)備、國防設(shè)備以及智能醫(yī)療裝置自動化控制系統(tǒng)的研制和改造提供了一個統(tǒng)一的硬件平臺。運動控制器是運動控制技術(shù)中最具代表性的產(chǎn)品,其性能優(yōu)劣直接關(guān)系到生產(chǎn)的效率和質(zhì)量[2]。在此背景下,本文設(shè)計了一種基于STM32F407,采用以太網(wǎng)、CAN總線通信方式的五軸機械手運動控制器。
1 機械手運動控制器總體方案
目前市場上的運動控制器依據(jù)不同的原則有不同的分類。按照運動控制器的核心技術(shù)方案,主要有基于模擬電路型、基于微控制單元型、基于可編程邏輯(FPGA/CLPD)型、基于數(shù)字信號處理(DSP)型等;按照運動控制器的系統(tǒng)結(jié)構(gòu),可分為基于總線的運動控制器和獨立應(yīng)用的運動控制器以及混合型的運動控制器[3]。本設(shè)計方案采用基于微控制單元型和現(xiàn)場總線的設(shè)計方案,機械手運動控制器的系統(tǒng)結(jié)構(gòu)如圖1所示。
由上圖可以看出該系統(tǒng)主要是由手持器、控制電路、電機驅(qū)動器及電機等幾部分組成。本文主要討論其中的控制電路的設(shè)計,其運行過程大致是手持器通過以太網(wǎng)接口把相應(yīng)的動作指令發(fā)給控制電路,該過程采用LWIP協(xié)議。然后控制電路在接收到指令之后,開始解析指令,再通過CAN接口給伺服電機驅(qū)動器發(fā)送指令,該過程采用CANopen協(xié)議。伺服驅(qū)動器在得到指令后開始驅(qū)動電機,在電機到達指定位置后停止。在整個系統(tǒng)運行過程中,如何實現(xiàn)對五個電機的實時控制是整個系統(tǒng)的關(guān)鍵。為了保證數(shù)據(jù)在傳輸過程中的可靠性和實時性,系統(tǒng)在設(shè)計時采用了CAN接口和以太網(wǎng)接口。
2 運動控制器的硬件電路設(shè)計
由于本設(shè)計采用現(xiàn)場總線進行通信,所以硬件電路得到很大簡化。本設(shè)計主要以STM32F407VGT6為處理中心,通過以太網(wǎng)與手持器通信,以CAN總線與電機驅(qū)動器通信。由圖2可以看出,CANopen通信是在控制電路和電機驅(qū)動器之間實現(xiàn)的。STM32F407VGT6基于高性能ARM CortexTM-M432位RISC內(nèi)核,可在高達168 MHz的頻率下工作。Cortex-M4內(nèi)核采用單一精密浮點單元(FPU),支持所有ARM單一精密數(shù)據(jù)處理指令和數(shù)據(jù)類型。該系列還能執(zhí)行全套DSP指令,執(zhí)行存儲保護單元(MPU),用以加強應(yīng)用安全性[4]。以太網(wǎng)采用的是PHY控制器DP83848,DP83848是一個強大的、功能齊全的單端口10/100物理層設(shè)備,提供低功耗管理,包括幾個智能功率下降狀態(tài)。這些低功耗模式可以提高整體產(chǎn)品的可靠性,減少功耗。CAN的硬件實現(xiàn)包括兩個部分:與OSI模型中數(shù)據(jù)鏈路層和物理層分別對應(yīng)的CAN控制器和CAN收發(fā)器。本文采用基于Cortex-M4內(nèi)核的STM32系列芯片作為控制電路的MCU,該芯片內(nèi)有CAN控制器,并且完全支持CAN 2.0協(xié)議。CAN收發(fā)器選用CTM1050T,其內(nèi)部集成了CAN隔離及收發(fā)器件,將CAN控制器的邏輯電平轉(zhuǎn)換為CAN總線的差分電平,同時具有隔離功能機ESD保護作用。運動控制器硬件結(jié)構(gòu)示意圖如圖2所示[5]。
3 運動控制器程序設(shè)計
運動控制器的程序部分主要分為兩個模塊:控制模塊和通信模塊。控制模塊完成系統(tǒng)控制參數(shù)的計算和控制量的輸出;通信模塊一方面通過以太網(wǎng)接收手持器發(fā)送的動作命令,另一方面根據(jù)命令通過CAN總線來控制電機運動。運動控制器程序是整個控制系統(tǒng)的核心,首先調(diào)用?滋C/OS-II操作系統(tǒng)中的函數(shù)完成任務(wù)調(diào)度和內(nèi)存管理,然后根據(jù)移植的LWIP協(xié)議完成以太網(wǎng)通信,最后是CAN總線和其他I/O的硬件配置。整個程序主要分為三個任務(wù):以太網(wǎng)通信、數(shù)據(jù)處理和CAN通信。以太網(wǎng)任務(wù)主要完成與手持器的通信,接收上面發(fā)送的數(shù)據(jù)與指令,采用查詢方式來完成數(shù)據(jù)的接收。數(shù)據(jù)處理任務(wù)根據(jù)以太網(wǎng)傳送過來的數(shù)據(jù)和指令選擇不同的數(shù)據(jù)處理子函數(shù),通過這些子函數(shù)來執(zhí)行相應(yīng)的動作。CAN通信任務(wù)主要是與電機驅(qū)動器進行通信,把數(shù)據(jù)處理任務(wù)傳送過來的動作指令轉(zhuǎn)換成CANopen協(xié)議的指令形式進行通信。在這三個任務(wù)中,數(shù)據(jù)處理任務(wù)是最為核心部分,其流程圖如圖3所示。
上圖中的模式是指機械手的運動模式,其任務(wù)就是根據(jù)以太網(wǎng)中的指令來判斷機械手需要在什么模式中運行,然后調(diào)用子函數(shù)運行以太網(wǎng)傳遞下來的數(shù)據(jù),再通過CAN向驅(qū)動器發(fā)送指令。
4 結(jié)束語
本文討論了多軸運動控制器的設(shè)計,給出了基于ARM和現(xiàn)場總線相結(jié)合的控制方案。現(xiàn)場總線集數(shù)字通信、微機技術(shù)、網(wǎng)絡(luò)技術(shù)于一身,從根本上突破了傳統(tǒng)的點對點式的模擬信號或數(shù)字-模擬信號控制的局限,為真正的分散式控制集中式管理提供了技術(shù)保證。ARM處理器具有高性能、低功耗、體積小等特點,兩者的結(jié)合可以縮短研發(fā)時間,提高研發(fā)效率,應(yīng)用前景十分廣泛。
參考文獻
[1] 郗志剛,周宏甫.運動控制器的發(fā)展與現(xiàn)狀[J].電氣傳動自動化,2005,27(3):10-14.
[2] 李澄,趙輝,聶保錢.基于CANopen協(xié)議實現(xiàn)多電機系統(tǒng)實時控制[J].微電機,2009(9):53-56.
[3] 張峰.嵌入式多軸運動控制器的研究與開發(fā)[D].青島:山東科技大學,2008.
[4] 吳世名.基于ARM的三軸機械手控制系統(tǒng)研究與設(shè)計[D].杭州:浙江工業(yè)大學,2013
[5] 王峰.基于嵌入式系統(tǒng)的CANopen協(xié)議分析研究[D].天津:天津理工大學,2010.