基于DSP與FPGA的跟蹤伺服運(yùn)動(dòng)控制
摘 要: 在分析光電跟蹤伺服系統(tǒng)特點(diǎn)的基礎(chǔ)上,以TI公司DSP芯片TMS320F2812作為主控制芯片,采用FPGA進(jìn)行邏輯時(shí)序控制,設(shè)計(jì)了基于DSP和FPGA的多軸伺服運(yùn)動(dòng)控制器。給出了該控制器的功能和硬件結(jié)構(gòu)以及軟件流程設(shè)計(jì)。實(shí)驗(yàn)結(jié)果表明,該控制器具有高集成度、靈活性、實(shí)時(shí)性、模塊化的特點(diǎn),完全滿足了在復(fù)雜環(huán)境下對(duì)伺服系統(tǒng)控制的要求。
關(guān)鍵詞: 伺服控制; DSP; FPGA; 閉環(huán)控制
在高速光電跟蹤系統(tǒng)中,對(duì)伺服系統(tǒng)的高速性、精確度和穩(wěn)定性都有很高的要求。為了提高跟蹤精度,越來越多的控制算法被應(yīng)用于伺服系統(tǒng)中,因此要求控制器能在很短的時(shí)間內(nèi)完成大量的運(yùn)算[1]。DSP具有較強(qiáng)的運(yùn)算能力,而FPGA具有高度靈活的可配置性和邏輯時(shí)序控制能力[2]。因此在很多伺服控制器中,“DSP+FPGA”結(jié)構(gòu)得到了廣泛的應(yīng)用。
實(shí)際應(yīng)用環(huán)境一般比較復(fù)雜,有大量的信息傳遞,并且需要對(duì)電機(jī)轉(zhuǎn)速實(shí)行精確控制,因此對(duì)伺服控制器的多路通信能力,快速運(yùn)算能力和抗干擾能力都有較高的要求。為了解決這一問題,提供一個(gè)較好的實(shí)驗(yàn)平臺(tái),本文結(jié)合光電跟蹤伺服系統(tǒng)的特點(diǎn),提出一種以TI公司的32位定點(diǎn)數(shù)字信號(hào)處理器TMS320F2812為核心,以Altera公司CycloneⅡ系列FPGA為輔助處理器結(jié)構(gòu)的跟蹤伺服控制器,并綜合闡述了該控制器的功能、硬件設(shè)計(jì)和軟件流程。該控制器采用單+5 V供電,具有6路模擬信號(hào)輸入、4路模擬信號(hào)輸出、多路PWM輸出、1路CAN總線、2路RS422和1路RS232串行通信口,具有較強(qiáng)的運(yùn)算能力和數(shù)據(jù)通信能力,是良好的數(shù)字控制系統(tǒng)實(shí)驗(yàn)平臺(tái)。
1 總體結(jié)構(gòu)設(shè)計(jì)
TMS320F2812作為一款專為電機(jī)控制所設(shè)計(jì)的芯片,不僅具有運(yùn)算速度快的特點(diǎn),而且集成了豐富的片內(nèi)外設(shè)資源[3]。設(shè)計(jì)時(shí)綜合考慮DSP片上資源的充分利用、系統(tǒng)的模塊化和可移植性等特點(diǎn),將整個(gè)控制器大體分為4個(gè)部分:DSP模塊、FPGA模塊、D/A轉(zhuǎn)換模塊和通信接口模塊。控制器的總體硬件結(jié)構(gòu)如圖1所示。
從圖1中可以看出,DSP通過CAN總線接收上位機(jī)指令;位置信號(hào)通過兩路RS422通信口傳給DSP作相應(yīng)處理;速度信號(hào)是由DSP片上集成的QEP電路對(duì)電機(jī)產(chǎn)生的正交編碼脈沖信號(hào)進(jìn)行解碼獲得;DSP輸出的PWM信號(hào)與FPGA相連,通過FPGA內(nèi)部的保護(hù)模塊后經(jīng)光電隔離輸出到功率放大模塊。外部中斷經(jīng)FPGA片內(nèi)中斷控制邏輯后輸出到DSP外部中斷管腳上;DSP與FPGA之間的數(shù)據(jù)交換通過DSP片上的多通道緩沖串口(Mcbsp)來實(shí)現(xiàn);D/A轉(zhuǎn)換器控制由FPGA內(nèi)部的D/A轉(zhuǎn)換接口模塊接收DSP傳來的數(shù)字量并控制邏輯時(shí)序;計(jì)算機(jī)調(diào)試接口采用RS232。
2 硬件電路設(shè)計(jì)
2.1 DSP模塊
32位定點(diǎn)數(shù)字信號(hào)處理器TMS320F2812整合了DSP和微控制器的最佳性能,能夠在一個(gè)周期內(nèi)完成32×32 bit的乘法運(yùn)算,或2個(gè)16×16 bit乘法累加運(yùn)算,處理速度最高可達(dá)150 MIPS。它采用高性能靜態(tài)CMOS技術(shù),內(nèi)核電壓為1.8 V@135 MHz,1.9 V@150 MHz, I/O端口電壓3.3 V[4,5]。其先進(jìn)的內(nèi)部和外設(shè)結(jié)構(gòu)使得該處理器特別適合電機(jī)及其他運(yùn)動(dòng)控制應(yīng)用,能夠真正實(shí)現(xiàn)單片控制,為電機(jī)的伺服控制提供了良好的控制功能[6]。[!--empirenews.page--]
DSP的功能主要通過軟件實(shí)現(xiàn),在此主要實(shí)現(xiàn)接收上位機(jī)指令,完成位置環(huán)和速度環(huán)反饋的雙閉環(huán)控制算法,以及速度的PID調(diào)節(jié),產(chǎn)生PWM輸出。由于實(shí)際工作環(huán)境較為復(fù)雜,所以選用了抗干擾能力強(qiáng)的CAN總線作為與上位機(jī)的通信方式,TMS320F2812內(nèi)部集成了一個(gè)eCAN模塊,只需增加相應(yīng)的CAN收發(fā)器外圍電路就可以實(shí)現(xiàn)通信。根據(jù)系統(tǒng)采樣頻率調(diào)整事件管理器的定時(shí)器,控制寄存器的控制字來設(shè)定PWM工作方式和頻率,通過調(diào)整比較寄存器的數(shù)值來改變PWM的占空比,根據(jù)功率驅(qū)動(dòng)電路的驅(qū)動(dòng)芯片來設(shè)置死區(qū)控制寄存器的數(shù)值來調(diào)整死區(qū)時(shí)間,通過專用的PWM輸出口輸出占空比可調(diào)的帶有死區(qū)的PWM信號(hào)[7]。
將DSP片上集成的多通道緩沖串口配置成SPI模式,與FPGA內(nèi)部的SPI模塊完成數(shù)據(jù)交換,從而完成DSP對(duì)FPGA的控制。此時(shí)DSP上的Mcbsp為SPI通信的主機(jī),F(xiàn)PGA內(nèi)部的SPI模塊為從機(jī),從FPGA讀取數(shù)據(jù)時(shí),只需向從機(jī)發(fā)送偽數(shù)據(jù)。這種通信方式避免了占用大量的DSP I/O口資源,速度快,出錯(cuò)率小。
由于TMS320F2812內(nèi)部集成的12位高速A/D轉(zhuǎn)換器只能輸入電壓范圍在0~3 V以內(nèi)的模擬信號(hào),因此需要對(duì)輸入的雙極性電壓信號(hào)進(jìn)行處理,具體電路如圖2所示。為了提高A/D采樣精度,需要進(jìn)行軟件校準(zhǔn),基本思想是通過采樣已知電壓信號(hào)來確定偏差。
2.2 FPGA模塊
FPGA選型時(shí)綜合考慮片上邏輯單元、用戶I/O口數(shù)量以及功能擴(kuò)展的需要,根據(jù)前期仿真結(jié)果選用Altera公司的CycloneⅡ系列的EP2C8Q208C8,它具有8 256個(gè)邏輯單元,138個(gè)用戶I/O,36個(gè)M4KRAM和2個(gè)鎖相環(huán),內(nèi)核電壓只有1.2 V,具有低成本、低功耗的特點(diǎn)[8,9]。由于FPGA具有高速并行處理能力,所以保證了系統(tǒng)的同步性[10]。它的I/O口支持3.3 V LVTTL電平,與DSP管腳電平兼容,因此不用進(jìn)行電平轉(zhuǎn)換,可直接連接,使用方便。
FPGA模塊主要完成伺服控制器的邏輯接口功能,并可以擴(kuò)展通用I/O口數(shù)量,方便功能擴(kuò)展。在此主要實(shí)現(xiàn)4個(gè)模塊:串行通信接口模塊、SPI模塊、D/A接口模塊和中斷控制模塊。其中SPI模塊配置成從機(jī)工作模式,與DSP的Mcbsp配合完成DSP與FPGA的數(shù)據(jù)交換。各模塊獨(dú)立并行工作,并由頂層控制模塊統(tǒng)一協(xié)調(diào)控制,具有速度快、可移植性好的特點(diǎn)。
2.3 D/A轉(zhuǎn)換器模塊
根據(jù)轉(zhuǎn)換通道數(shù)、精度和轉(zhuǎn)換速度,D/A轉(zhuǎn)換芯片選擇BURR-BROWN公司的DAC7614。它是12位串行數(shù)模轉(zhuǎn)換器,4路模擬輸出,功耗只有20 mW,單次轉(zhuǎn)換建立時(shí)間10 μs[10]。[!--empirenews.page--]
使用單極性輸出時(shí),采用+5 V供電;雙極性輸出時(shí),采用±5 V供電。在此需要用到雙極性輸出,基準(zhǔn)電壓源選用LM336-2.5,負(fù)電壓基準(zhǔn)采用反相放大方式產(chǎn)生。為避免外電路對(duì)板內(nèi)數(shù)字電路的干擾,需要對(duì)數(shù)字部分進(jìn)行光電隔離。具體電路如圖3所示。
2.4 其他模塊
其他模塊主要包括電源模塊和通信接口模塊。由于該控制器采用單+5 V供電,因此在內(nèi)部需要進(jìn)行電壓轉(zhuǎn)換,主要包括3.3 V、1.9 V和1.2 V以及-5 V和±12 V。其中3.3 V、1.9 V和1.2 V采用的是一般的LDO電壓轉(zhuǎn)換芯片,而-5 V和±12 V則采用開關(guān)電源MC34063。由于DSP要求3.3 V上電在1.9 V之前,在這里選用通過3.3 V轉(zhuǎn)1.9 V的方法,既保證了上電順序,又能提高電源的轉(zhuǎn)換效率。
通信接口模塊包括1路CAN總線,1路RS232和2路RS422。設(shè)計(jì)時(shí)主要保證與系統(tǒng)的其他部分匹配,一般都采用通常的工業(yè)標(biāo)準(zhǔn)。
3 軟件流程
為了提高控制的精度和響應(yīng)速度,在硬件電路基礎(chǔ)上增加位置環(huán)和速度環(huán)。其中位置和位置增量數(shù)據(jù)通過RS422從外部編碼器傳入,速度值數(shù)據(jù)通過由QEP電路產(chǎn)生。此外豐富的模擬信號(hào)輸入通道還可以增加電流環(huán)和其他反饋量,進(jìn)一步提高系統(tǒng)的響應(yīng)速度和穩(wěn)定性?;拒浖鞒虉D如圖4所示。
系統(tǒng)上電后自動(dòng)初始化各端口和相關(guān)變量,并等待接收上位機(jī)開始指令,接收到開始指令后進(jìn)入準(zhǔn)備狀態(tài)。因?yàn)檎麄€(gè)跟蹤系統(tǒng)需要同步工作才能產(chǎn)生有效的數(shù)據(jù),所以需要等待外部同步脈沖信號(hào),在這里以外部中斷的形式接收。然后逐步完成控制算法。當(dāng)收到結(jié)束指令時(shí)完成所有工作。
本文給出了一種基于DSP和FPGA的光電跟蹤系統(tǒng)伺服控制器的硬件結(jié)構(gòu)和軟件流程。實(shí)驗(yàn)證明,這種結(jié)構(gòu)緊湊靈活,控制算法完全由控制器完成,使用CAN總線方式傳輸上位機(jī)指令,安全可靠,使計(jì)算機(jī)完全從工作現(xiàn)場解脫出來。