關(guān) 閉

新聞中心

EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于STM32和FPGA的CAN總線運(yùn)動(dòng)控制器的設(shè)計(jì)

基于STM32和FPGA的CAN總線運(yùn)動(dòng)控制器的設(shè)計(jì)

作者: 時(shí)間:2016-10-15 來源:網(wǎng)絡(luò) 收藏

摘要:運(yùn)用低功耗COrtex—M3微控制器F103VBT6和芯片設(shè)計(jì)一種基于器。介紹系統(tǒng)的體系結(jié)構(gòu)、主要硬件設(shè)計(jì)和軟件結(jié)構(gòu)。利用高速處理能力實(shí)現(xiàn)控制算法,與外界通信采用技術(shù),系統(tǒng)穩(wěn)定可靠,另外,將設(shè)計(jì)好的程序或是C程序進(jìn)行封裝,系統(tǒng)的可移植性強(qiáng)。
關(guān)鍵詞:;FPGA;;

如今,正朝著高速度、高精度、開放式的方向發(fā)展,從而對(duì)執(zhí)行部件提出了更高的要求。過去的運(yùn)動(dòng)控制器主要是基于單片機(jī)或者PLC加上分立數(shù)字電路設(shè)計(jì),受制于器件本身的性能,導(dǎo)致電路執(zhí)行速度慢、體積龐大、集成程度低,升級(jí)難度大。而采用微處理器、DSP、FPGA等現(xiàn)代手段構(gòu)成的只能控制系統(tǒng)是新一代運(yùn)動(dòng)控制發(fā)展的方向。本文對(duì)基于FPGA的嵌入式運(yùn)動(dòng)控制器進(jìn)行了研究,并應(yīng)用了CAN總線,使硬件接口簡單、實(shí)時(shí)性強(qiáng)、靈活度高,有很強(qiáng)的實(shí)用價(jià)值。

1 總體方案設(shè)計(jì)策略
本系統(tǒng)以意法半導(dǎo)體體公司生產(chǎn)的基于Cortex—M3處理器STM32F103VBT6芯片核心進(jìn)行通信、數(shù)據(jù)的存儲(chǔ)以及鍵盤掃描和LCD顯示,它集成了CAN、SPI、USB、USART控制器,滿足系統(tǒng)的設(shè)計(jì)要求,簡化的系統(tǒng)的實(shí)現(xiàn)過程,豐富的函數(shù)庫大大縮短了用戶的開發(fā)周期。而FPGA作為系統(tǒng)主要的執(zhí)行機(jī)構(gòu),利用其高速性進(jìn)行算法實(shí)現(xiàn)、速度控制和位置控制,系統(tǒng)的整體構(gòu)造如圖1所示。

本文引用地址:http://butianyuan.cn/article/201610/306828.htm

a.jpg



2 運(yùn)動(dòng)控制器的功能模塊設(shè)計(jì)
為了滿足整個(gè)系統(tǒng)的運(yùn)轉(zhuǎn),運(yùn)動(dòng)控制主要由通信和數(shù)據(jù)處理兩部分構(gòu)成,通信和數(shù)據(jù)存儲(chǔ)由STM32負(fù)責(zé)進(jìn)行,出于數(shù)據(jù)運(yùn)算的復(fù)雜性和實(shí)時(shí)性,F(xiàn)PGA處理算法的實(shí)現(xiàn)。本設(shè)計(jì)相對(duì)龐大,模塊不一一介紹。
2.1 CAN通信模塊的設(shè)計(jì)
2.1.1 硬件設(shè)計(jì)
bxCAN是STM32內(nèi)置的CAN控制器,支持2.0A和2.0B CAN協(xié)議,波特率最高可達(dá)可達(dá)到1 Mbit/s,包含3個(gè)發(fā)送郵箱,3級(jí)深度的2個(gè)接收FIFO,14個(gè)可變位寬的過濾器組,支持時(shí)間觸發(fā)通信模式,它的設(shè)計(jì)目標(biāo)是以最小的CPU負(fù)荷來高效處理大量收到的報(bào)文,它也支持報(bào)文發(fā)送的優(yōu)先級(jí)要求(優(yōu)先級(jí)特性可軟件配置)。CAN硬件設(shè)計(jì)如圖2所示。

b.jpg


以CTM8251作為收發(fā)芯片,它不僅能完成收發(fā)功能,還具有DC2500V的隔離功能,使系統(tǒng)與外界隔離開來,簡化了CAN外圍的硬件設(shè)計(jì),提高了系統(tǒng)的性價(jià)比,圖中120 Ω的電阻為可選用的終端匹配電阻,假如網(wǎng)絡(luò)中已經(jīng)存在一對(duì)匹配電阻,則該電阻可以不使用,其中B82790是個(gè)共模扼流線圈,作用是抑制共模干擾平衡差分信號(hào)的傳輸;本設(shè)計(jì)中采用比較常用的撥碼開關(guān)電路設(shè)置CAN網(wǎng)絡(luò)的ID地址和波特率;LED作為通信狀態(tài)指示。
2.1.2 軟件設(shè)計(jì)
針對(duì)STM32對(duì)外設(shè)的設(shè)置,我們只需要對(duì)相應(yīng)的參數(shù)進(jìn)行適當(dāng)?shù)呐渲镁湍軡M足設(shè)計(jì)的要求,軟件部分主要任務(wù)只要進(jìn)行CAN初始化和數(shù)據(jù)發(fā)送即可。本設(shè)計(jì)初始化模塊中只需要對(duì)CAN工作方式進(jìn)行配置,而不需要對(duì)過濾器進(jìn)行特殊的配置,部分初始化程序如下:
c.jpg
工作方式配置中最主要的是波特率的配置,本設(shè)計(jì)中采用AHB1作為CAN時(shí)鐘為36 MHz,所以要得到1 Mbit/s的波特率進(jìn)行了以上的設(shè)置,即SJW=tq,BS1=3tq,BS2=5tq,CAN_Prescaler=4,所以波特率的計(jì)算如下:
d.jpg
e.jpg
2.2 FPGA電路的設(shè)計(jì)
FPGA電路主要實(shí)現(xiàn)運(yùn)動(dòng)控制的相關(guān)算法,包括加減速算法、檢測裝置算法、插補(bǔ)算法等算法的實(shí)現(xiàn),是整個(gè)設(shè)計(jì)的關(guān)鍵部分,硬件設(shè)計(jì)主要包括FPGA的供電電路、時(shí)鐘電路和配置電路,都是相對(duì)比較常規(guī)的電路,在這里不做介紹,文中主要介紹相關(guān)算法的實(shí)現(xiàn)。
2.2.1 加減速模塊
為了在電機(jī)啟動(dòng)時(shí)為了在電機(jī)啟動(dòng)時(shí),避免電機(jī)在運(yùn)行以及換速的過程中產(chǎn)生沖擊、超程、失步和振蕩等一些我們不想見到的現(xiàn)象。為了使執(zhí)行機(jī)構(gòu)能夠平穩(wěn)和準(zhǔn)確的定位,這就要求電機(jī)在開機(jī)到電機(jī)的速度達(dá)到給定的進(jìn)給速度的過程中有一個(gè)加減速的過程,使其能夠平滑的過渡。避免速度的突變給電機(jī)帶來損傷。
S型曲線加減速是比較理想的控制加減速方法,但如何保證構(gòu)造的曲線平滑、精確成為很多算法工程師研究的重點(diǎn)。如圖3所示,在加速的過程中,有3個(gè)不同的加速度區(qū)域。在開始階段,加速度是按線性方式以一定的加速度率K從0增加到固定的加速度值A(chǔ)。也就是說,這時(shí)驅(qū)動(dòng)速度在a區(qū)域是按拋物線的方式增長;接著在b區(qū)域中,驅(qū)動(dòng)速度是以一個(gè)恒定的加速度增長;最后,在c區(qū)域中,加速度則按照加速度率K線性減少到0。這樣,S曲線的加速度過程就可以看作是由a,b,c 3個(gè)區(qū)域構(gòu)成的。在減速的過程中,同加速過程一樣,d,e,f區(qū)域中也是按拋物線的方式減速。

f.jpg


基于此本設(shè)計(jì)構(gòu)造的速度、加速度、時(shí)間的對(duì)應(yīng)函數(shù)如下:
g.jpg
S加減速在FPGA中的實(shí)現(xiàn),如圖4所示。在已知給定加速度A、加速度率K、初速度V0、以及進(jìn)給速度V和總的pwm脈沖數(shù)的情況下,就可以得到S加減速曲線。

h.jpg


圖5為本設(shè)計(jì)在Quartus II中的仿真波形,為了加快仿真的速度,特意在仿真而前對(duì)某些參數(shù)進(jìn)行了修改。

i.jpg


本系統(tǒng)的加減速模塊的構(gòu)造滿足速度和加速度曲線的構(gòu)造滿足速度變化平穩(wěn),加速連續(xù)等條件,起始和終止速度與要求速度一致,加速度為0,加速度率K可以根據(jù)實(shí)際需要隨時(shí)調(diào)整,通用性很好。
2.2.2 光電編碼器模塊
本系統(tǒng)采用的閉環(huán)控制,反饋信號(hào)的精度直接影響定位、測速,在此采用增量是編碼器進(jìn)行定位控制,增量式編碼器主要是利用兩個(gè)相差90度的方波信號(hào)A和B,和零位脈沖信號(hào)Z進(jìn)行角位移和方向判斷(如圖6所示),從而達(dá)到了檢測位置的目的,此外,我們將A或B信號(hào)四倍頻,則計(jì)數(shù)脈沖的周期將減小到T/4,從而使角位移測量精度提高4倍。四倍頻后的編碼器信號(hào),需經(jīng)計(jì)數(shù)器計(jì)數(shù)后,才能轉(zhuǎn)化為相對(duì)位置。由兩個(gè)與非門、一個(gè)非門邏輯、D觸發(fā)器組成傳統(tǒng)的波形轉(zhuǎn)換電路,通過它來將A相、B相脈沖轉(zhuǎn)換成正向計(jì)數(shù)信號(hào)dz、反向計(jì)數(shù)信號(hào)df和方向(dir)信號(hào),通過正反方向的數(shù)字信號(hào)加減完成最終的計(jì)數(shù),最終的仿真數(shù)據(jù)如圖7所示。

j.jpg

k.jpg



3 結(jié)束語
本課題研究是基于某品牌雕刻機(jī)控制系統(tǒng)設(shè)計(jì)進(jìn)行的總結(jié),旨在建立一種通用的運(yùn)動(dòng)控制器,通過該運(yùn)動(dòng)控制器以及系統(tǒng)其它部分的協(xié)同工作,整個(gè)控制系統(tǒng)實(shí)時(shí)性、可靠性好,滿足了控制要求。通信非常穩(wěn)定,相關(guān)算法還有待優(yōu)化。

  • STM32單片機(jī)中文官網(wǎng)
  • STM32單片機(jī)官方開發(fā)工具
  • STM32單片機(jī)參考設(shè)計(jì)


評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉