基于STM32的機(jī)器人伺服控制器設(shè)計(jì)
目前,機(jī)器人控制系統(tǒng)的研究重點(diǎn)在開(kāi)放式、模塊化控制系統(tǒng)等方面,機(jī)器人控制器的標(biāo)準(zhǔn)化和網(wǎng)絡(luò)化已成為研究熱點(diǎn);同時(shí),機(jī)器人伺服控制器的研究也具有很大的應(yīng)用價(jià)值。在伺服通信方面,傳統(tǒng)的基于模擬信號(hào)傳輸?shù)募⒖刂葡到y(tǒng)需采用數(shù)/模轉(zhuǎn)換器,系統(tǒng)構(gòu)成復(fù)雜、分辨率低、可靠性得不到保障且難以擴(kuò)展。為了解決此問(wèn)題,本系統(tǒng)采用實(shí)時(shí)工業(yè)以太網(wǎng)EtherCAT協(xié)議作為機(jī)器人伺服系統(tǒng)的底層協(xié)議,同時(shí)構(gòu)建伺服從站控制器。實(shí)時(shí)以太網(wǎng)技術(shù)簡(jiǎn)化了一般總線的互操作性和實(shí)時(shí)性等方面的問(wèn)題,能滿足控制網(wǎng)絡(luò)傳輸?shù)膶?shí)時(shí)性要求,EtherCAT工業(yè)以太網(wǎng)技術(shù)以其網(wǎng)絡(luò)實(shí)時(shí)性高、速度快、拓?fù)浣Y(jié)構(gòu)靈活等優(yōu)點(diǎn)得到廣泛關(guān)注。本控制器采用德國(guó)赫優(yōu)訊公司開(kāi)發(fā)的嵌入式實(shí)時(shí)以太網(wǎng)模塊COMX來(lái)完成EtherCAT通信的功能,采用STM32系列單片機(jī)(以下簡(jiǎn)稱STM32)為主控制器,由STM32來(lái)控制電機(jī)和COMX的工作流程。
1 COMX介紹
嵌入式實(shí)時(shí)以太網(wǎng)模塊COMX-CA-RE是德國(guó)赫優(yōu)訊公司開(kāi)發(fā)的特殊網(wǎng)卡,支持所有主流的實(shí)時(shí)工業(yè)以太網(wǎng)協(xié)議(EtherCAT、PROFINET IO、Ethernet/IP、Power-Link、Sereos III、Modbus TCP等)。其協(xié)議棧設(shè)計(jì)成可裝載的固件存儲(chǔ)在Flash中;在系統(tǒng)啟動(dòng)時(shí),COMX模塊會(huì)自動(dòng)裝載保存在Flash中的協(xié)議固件。COMX模塊使用netX500網(wǎng)絡(luò)控制芯片,主機(jī)通過(guò)雙端口內(nèi)存DPM接口來(lái)進(jìn)行數(shù)據(jù)交互,通過(guò)對(duì)DPM讀和寫(xiě)來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)通信及模塊控制。COMX結(jié)構(gòu)框圖如圖1所示。
COMX模塊與主機(jī)交互的接口是雙端口內(nèi)存DPM,DPM是netX500控制器和主機(jī)之間共享的存儲(chǔ)區(qū),應(yīng)用程序通過(guò)DPM來(lái)實(shí)現(xiàn)EtherCAT數(shù)據(jù)通信、netX系統(tǒng)配置和診斷信息的獲取。在使用COMX模塊進(jìn)行通信時(shí),主要完成主機(jī)對(duì)DPM操作程序的編寫(xiě)以及握手標(biāo)記的設(shè)置等。EtherCAT網(wǎng)絡(luò)上的數(shù)據(jù)是實(shí)時(shí)地映射到DPM的,同時(shí)應(yīng)用程序通過(guò)DPM來(lái)發(fā)送和接收數(shù)據(jù),整個(gè)DPM區(qū)域是16 KB的地址空間。
2 硬件設(shè)計(jì)
本伺服控制器主要用于機(jī)器人伺服節(jié)點(diǎn)通信、關(guān)節(jié)電機(jī)的控制、I/O控制,以及傳感信息的采集。主要硬件由COMX和STM32來(lái)組成。其中COMX負(fù)責(zé)EtherCAT通信,STM32采用FSMC機(jī)制來(lái)讀寫(xiě)COMX。STM32是從站的伺服控制器主控芯片,主要進(jìn)行電機(jī)控制和A/D、D/A轉(zhuǎn)換模塊的控制,以及負(fù)責(zé)管理COMX模塊的運(yùn)行流程。其中,伺服通信功能是基于EtherCAT協(xié)議進(jìn)行組網(wǎng)來(lái)達(dá)到各模塊互聯(lián)和數(shù)據(jù)交換的目的,這樣便于伺服節(jié)點(diǎn)的擴(kuò)展和硬件結(jié)構(gòu)的設(shè)計(jì);電機(jī)控制方面,采用RS485接口控制SR518數(shù)字舵機(jī);STM32的I/O口用于基本的輸入/輸出功能;A/D通道可以連接傳感設(shè)備用于機(jī)器人的感知,D/A通道用于對(duì)語(yǔ)音、電流等模擬量的輸出;RS232是開(kāi)發(fā)過(guò)程中的調(diào)試接口。其硬件結(jié)構(gòu)框圖如圖2所示。
STM32采用FSMC機(jī)制控制COMX,將COMX映射到STM32的內(nèi)存空間中,對(duì)COMX的讀寫(xiě)方式與讀寫(xiě)SRAM相同。嵌入式模塊COMX通過(guò)一個(gè)50引腳插槽來(lái)連接主控芯片,插槽包含了與主機(jī)通信必備的控制線總線、16位數(shù)據(jù)總線和14位地址總線等。COMX與STM32的硬件電路如圖3所示。CO MX內(nèi)存映射到FSMC的第一個(gè)存儲(chǔ)塊的第4個(gè)分區(qū)中,起始地址為0x6C000000,并且采用8位數(shù)據(jù)寬度來(lái)讀寫(xiě)DPM存儲(chǔ)區(qū)。
評(píng)論