董 勝, 武廣斌, 耿德旭, 王佳南, 王夢龍
(北華大學(xué) a. 電氣信息工程學(xué)院; b. 工程訓(xùn)練中心, 吉林 吉林 132021)
氣動機(jī)械手控制實(shí)驗(yàn)系統(tǒng)設(shè)計
董 勝a, 武廣斌b, 耿德旭b, 王佳南a, 王夢龍a
(北華大學(xué) a. 電氣信息工程學(xué)院; b. 工程訓(xùn)練中心, 吉林 吉林 132021)
利用TMS320VC5509A和EP2C8Q208設(shè)計實(shí)現(xiàn)了一個氣動機(jī)械手實(shí)驗(yàn)控制系統(tǒng),通過DSP C和FPGA VerilogHDL語言編程取代了體積龐大的PLC控制系統(tǒng),實(shí)現(xiàn)了20路電磁換向閥控制。16路10 bit DAC精確控制比例閥電壓從而控制氣動機(jī)械手指的動作力度,利用8路10 bit ADC采集指端觸感壓力傳感器壓力信號并且完成波形顯示,提供機(jī)械手指的握力反饋信息,提高了機(jī)械手的控制精度和控制速度。
TMS320VC5509A; EP2C8Q208; 氣動機(jī)械手
工業(yè)機(jī)械手是一種在程序指令控制下,模擬人手的抓取、搬運(yùn)等動作而設(shè)計的機(jī)電一體化設(shè)備[1]。氣動機(jī)械手具有操作方便、拆卸簡單,適用于學(xué)生教學(xué)的特點(diǎn)[2]。近年來研究表明,采用氣動柔性關(guān)節(jié)研制的機(jī)械手具有較好的綜合柔性,從仿生角度具備了人手的結(jié)構(gòu)和功能特點(diǎn)[3],但是氣動技術(shù)本身存在一些難以克服的缺點(diǎn),所以采用一般的控制方式,很難實(shí)現(xiàn)氣動機(jī)械手高精度控制[4]。
TMS320VC5509A (DSP)指令周期可達(dá)到5 ns,200 MHz的時鐘頻率,3個多通道緩沖串口,采用指令流水線以及片內(nèi)乘法累加器技術(shù)[5]適用于信號的高速分析與處理,但是I/O端口數(shù)量有限;EP2C8Q208(FPGA)具有36個M4K存儲塊,總RAM bits達(dá)到165 888,可以實(shí)現(xiàn)包括:單端口、雙端口存儲器,F(xiàn)IFO等多種存儲器架構(gòu),芯片外圍引腳多達(dá)208個,除了時鐘、電源等專用引腳外,仍具有相當(dāng)豐富的I/O資源[6-7]。本文將DSP和FPGA兩者有機(jī)結(jié)合,運(yùn)用在氣動機(jī)械手實(shí)驗(yàn)控制系統(tǒng)的設(shè)計中,可以提高控制精度,減小設(shè)備體積。
氣動機(jī)械手控制系統(tǒng)工作原理是通過電磁閥控制機(jī)械手氣動回路,實(shí)現(xiàn)機(jī)械手指的動作,通過控制比例閥控制氣壓的大小,通過指端的壓力傳感器實(shí)時采集手指壓力信息,從而控制手指執(zhí)行動作的力度。指端壓力傳感器采用Honeywell FS系列惠斯頓電橋壓力傳感器FSG015WN[8],通過深圳市捷晟達(dá)科技有限公司生產(chǎn)的JSD系列壓力應(yīng)變橋隔離變送器[9],將壓力信號轉(zhuǎn)換成電壓信號。電磁閥采用SMC公司生產(chǎn)的SYJ系列3通先導(dǎo)式電磁閥,電源電壓直流24 V,功率0.4 W。比例閥采用SMC公司生產(chǎn)的ITV0000系列比例閥ITV0050,電源電壓直流24 V / 0.12 A,輸入控制信號電壓0~5 V。
本文的氣動機(jī)械手控制系統(tǒng)設(shè)計指標(biāo)要求如下:① 輸出20路電磁換向閥控制開關(guān)量。每路輸出+24 V / >20 mA;② 輸出16通道的比例閥控制電壓。比例閥控制電壓0~3 V,比例閥輸入阻抗10 kΩ,要求控制電壓精度不低于10 mV;③ 8個輸入A/D通道。采集8個壓力傳感器輸出的模擬電信號,每個壓力傳感器輸出電壓經(jīng)過處理后為0~3 V/<10 mA,要求A/D電壓分辨率不低于10 mV。
由于機(jī)械手控制關(guān)系復(fù)雜,實(shí)時性要求較高,本文選擇北京精儀達(dá)盛科技有限公司生產(chǎn)的以TMS320VC5509A定點(diǎn)數(shù)字信號處理器(DSP)為核心的Techv-5509 DSP開發(fā)板,完成氣動機(jī)械手控制系統(tǒng)的信息采集與控制指令的發(fā)出[10]。氣動機(jī)械手控制系統(tǒng)硬件結(jié)構(gòu)框圖見圖1。
圖1 氣動機(jī)械手控制系統(tǒng)硬件結(jié)構(gòu)框圖
TLV5631是一個8通道,帶有內(nèi)部電壓基準(zhǔn)的10 bit數(shù)模轉(zhuǎn)換器,可通過編程選擇基準(zhǔn)電壓為1.024 V或者2.048 V,滿量程動態(tài)輸出設(shè)定時間可達(dá)到1 μs,電壓分辨率可達(dá)到2 mV[11],滿足設(shè)計要求,本文通過2片TLV5631實(shí)現(xiàn)16通道D/A。如圖2所示,利用DSP的MCBSP串口1驅(qū)動2片并聯(lián)的TLV5631的幀同步和串行數(shù)據(jù)收發(fā),利用FPGA的DOUTD3、DOUTD5端口通過VerilogHDL編程實(shí)現(xiàn)2個芯片輸出地址區(qū)分,這樣做要比級聯(lián)模式具有更快的控制速度,同時為了防止時鐘輸出相互干擾,通過DSP的XF引腳和FPGA的DOUTD1端口分時關(guān)斷2個D/A轉(zhuǎn)換器的時鐘信號。
圖2 TLV5631與DSP接口電路
TLV1570是一個8通道10 bitA/D轉(zhuǎn)換器,采樣速率 1.25 MS/s,可以通過編程選擇內(nèi)部基準(zhǔn)電壓為:2.3 V或3.8 V[12],電壓分辨率滿足不低于10 mV要求。
本文利用DSP的MCBSP串口0驅(qū)動1片TLV1570,利用FPGA的DOUTD7端口通過VerilogHDL編程實(shí)現(xiàn)芯片的片選地址CS輸出,具體接口電路見圖3。
圖3 TLV1570與DSP的接口電路圖
為了擴(kuò)展8通道10 bit A/D輸入,16路10 bitD/A輸出,以及20路電磁閥控制輸出,本文采用芯驛電子科技(上海)有限公司生產(chǎn)的以CycloneII 系列EP2C8Q208芯片作為主芯片的FPGA核心板[13],其與DSP接口電路設(shè)計見圖4。圖中,DOUTA[7..0]、DOUTB[7..0]、DOUTC[7..0]用于輸出驅(qū)動20路電磁閥的開關(guān)量。
DOUTA [7..0]、DOUTB[7..0]、DOUTC[7..0]用于輸出驅(qū)動20路電磁閥,F(xiàn)PGA驅(qū)動電磁閥電路設(shè)計如圖5所示。由于具有完全相同的電路結(jié)構(gòu),圖5僅畫出其中一路。
圖4 FPGA芯片與DSP接口電路
圖5 FPGA驅(qū)動20路電磁閥電路
根據(jù)設(shè)計要求中的負(fù)載負(fù)荷計算,本文采用高電壓(50 V)、大電流(單路輸出500 mA)7路輸出的達(dá)林頓晶體管陣列ULN2003A控制電磁閥L1[14],1N4148型二極管D1用于反電勢滅弧保護(hù),TLP521-4型4通道光電耦合器U1負(fù)責(zé)隔離控制部分和執(zhí)行部分[15]。
(1) A/D采集壓力與波形顯示程序設(shè)計。
#define A_D_CS_1((*(unsigned int *)(0x040100))|=0x0080)
#define A_D_CS_0((*(unsigned int *)(0x040100))&=0x007F)
#define DA_1_LDAC_1((*(unsigned int *)(0x040100))|=0x0008)
#define DA_1_LDAC_0((*(unsigned int *)(0x040100))&=0x00F7)
#define DA_2_LDAC_1((*(unsigned int *)(0x040100))|=0x0020)
#define DA_2_LDAC_0 ((*(unsigned int *)(0x040100))&=0x00DF)
#define DA_1_SCLK_EN ((*(unsigned int *)(0x040100))|=0x0002)
#define DA_1_SCLK_NO ((*(unsigned int *)(0x040100))&=0x00FD)
static volatile MCBSP_Handle MyMcbsp0;
static volatile ulint writeBuff[TLV1570_BUFF_SIZE];
static MCBSP_Config Tlv1570_Config={ 0x1000, 0x0000, 0x0040, 0x0001, 0x0040, 0x0001, 0x0230, 0x200F, 0x0000, 0x0000, 0x0A08, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000};
初始化串口程序:
void tlv_1570_init(void)
{ A_D_CS_1;
mcbsp0_init();}
void mcbsp0_init(void)
{ MyMcbsp0=MCBSP_open(MCBSP_PORT0,MCBSP_OPEN_RESET);
MCBSP_config (MyMcbsp0,&Tlv1570_Config); }[16]
void mcbsp0_start(void)
{ MCBSP_start(MyMcbsp0,MCBSP_SRGR_START, 0x1000);
MCBSP_start(MyMcbsp0,MCBSP_SRGR_FRAMESYNC,0x1000);
MCBSP_start(MyMcbsp0,MCBSP_XMIT_START|MCBSP_RCV_START,0x3000);}
void mcbsp0_close(void)
{ MCBSP_close(MyMcbsp0);}
void mcbsp0_write(uint data)
{ A_D_CS_1;
delayUs_SYS(5);
A_D_CS_0;
DXR1_0=data;
while ((SPCR2_0 &0x0002)==0);
delayUs_SYS(10);
A_D_CS_1;}
(2) D/A驅(qū)動比例閥程序。
void da_conv_1( unsigned int valueA,unsigned int valueB,unsigned int valueC,unsigned int valueD, unsigned int valueE,unsigned int valueF,unsigned int valueG,unsigned int valueH)
{ int i=0;
unsigned int da_1_value_tem[8];
DA_2_LDAC_1;
DA_1_SCLK_EN;
asm(" bit(st1, 13) = 0" );
delayUs_SYS(20);
da_1_value_tem[0]=valueA;
da_1_value_tem[1]=valueB;
da_1_value_tem[2]=valueC;
da_1_value_tem[3]=valueD;
da_1_value_tem[4]=valueE;
da_1_value_tem[5]=valueF;
da_1_value_tem[6]=valueG;
da_1_value_tem[7]=valueH;
for (i=0;i<8;i++)
{ da_1_value[i]=da_1_value_tem[i]; }
for(i=0;i<8;i++)
{ mcbsp1_write((i<<12)+ da_1_value_tem[i]);
delayUs_SYS(2); }
DA_1_LDAC_0;
delayUs_SYS(200);
DA_1_LDAC_1;
DA_1_SCLK_NO;}
(3) DSP 驅(qū)動FPGA程序。
#define DS_FPGA_WORDA (*(unsigned int *)(0x040800))
#define DS_FPGA_WORDB (*(unsigned int *)(0x040400))
#define DS_FPGA_WORDC (*(unsigned int *)(0x040200))
#define DS_FPGA_WORDD (*(unsigned int *)(0x040100))
extern unsigned int key_flag;
extern unsigned int read_key();
void fpga_io_out()
{ while(1)
{ DS_FPGA_WORDA=0x0080;
DS_FPGA_WORDB=0x0080;
delayMs_SYS(1500);
delayMs_SYS(1500);
DS_FPGA_WORDA=0x0000;
DS_FPGA_WORDB=0x0000;
delayMs_SYS(1500);
delayMs_SYS(1500);
if(key_flag!=0)
if(read_key() == KEY_CANCEL) break;}}
(1) 頂層設(shè)計圖。利用VerilogHDL語句實(shí)現(xiàn)的頂層設(shè)計見圖6。
圖6 VerilogHDL語句實(shí)現(xiàn)的頂層設(shè)計
(2) 核心控制模塊的VerilogHDL程序設(shè)計。
module gongxun(CLK,DIN,AIN,CE0,ARE,AWE,DOUTA,DOUTB,DOUTC,DOUTD);
input[7:0]DIN;
input[4:0]AIN;
input CLK,CE0,ARE,AWE;
output reg [7:0]DOUTA,DOUTB,DOUTC,DOUTD;
reg[7:0]data_temp=0;
reg[4:0]ain_tem=0;
reg [1:0]curent_state,next_state;
parameter st0=0,st1=1,st2=2,st3=3;
always@(posedge CLK)
begin
curent_state=next_state;
end
always@(curent_state or AWE or CE0 )
begin
if((CE0==1)&&(AWE==1))next_state=st0;
else
begin
case (curent_state)
2'b00: begin if((CE0==0)&&(AWE==0))next_state=st1;
else next_state=st0;
end
2'b01: begin if((CE0==0)&&(AWE==1))next_state=st2;
else next_state=st1;
end
2'b10: begin ain_tem <=AIN;
data_temp <=DIN;
next_state=st3;
end
2'b11: begin case (ain_tem)
5'b01000: DOUTA<=data_temp;
5'b00100: DOUTB<=data_temp;
5'b00010: DOUTC<=data_temp;
5'b00001: DOUTD<=data_temp;
default:
begin
DOUTA<=0;
DOUTB<=0;
DOUTC<=0;
DOUTD<=0;
end
endcase
next_state=st0;
end
default: next_state=st0;
endcase
end
end
endmodule
(1) 利用DSP C語言編程驅(qū)動16路D/A輸出不同幅度的方波信號,利用示波器分別跟蹤各個通道的波形及幅度顯示均正常。
(2) 將D/A輸出端連接到比例閥控制輸入端口,在0~3 V范圍內(nèi)改變D/A輸出電壓值,根據(jù)比例閥的參數(shù),控制電壓:0~5 V,對應(yīng)的輸出壓力范圍:0.001~0.9 MPa,D/A轉(zhuǎn)換器10位的分辨率,基準(zhǔn)電壓Uref為2 V,D/A輸入數(shù)值0x200,比例閥輸出氣壓按下式計算:
實(shí)際測試比例閥輸出與給定值之間的誤差滿足設(shè)計要求。根據(jù)實(shí)際需要可以通過選用更高分辨率的D/A,以及調(diào)整基準(zhǔn)電壓值,采取濾波等措施進(jìn)一步提高控制精度。
用手指按壓指端的壓力傳感器,利用示波器分別對每個通道的壓力變送器輸出信號進(jìn)行檢測,波形跟蹤變化顯示正常,同時觀察176×220分辨率的TFT_LCD顯示的單個通道的壓力實(shí)時跟蹤波形正常。
利用DSPC語言編程驅(qū)動FPGA分別控制20路電磁換向閥工作正常。
控制部分實(shí)物見圖7,松手控制結(jié)果見圖8,握拳控制結(jié)果見圖9(說明:由于系統(tǒng)體積較大,實(shí)驗(yàn)調(diào)試過程僅接入了部分電磁閥和比例閥)。
圖7 控制部分實(shí)物圖
圖8 松手控制結(jié)果圖9 握拳控制結(jié)果
本文綜合利用FPGA、DSP實(shí)現(xiàn)了氣動機(jī)械手控制系統(tǒng)教學(xué)案例設(shè)計,替代了體積龐大的PLC控制設(shè)備,提高了控制速度和控制精度,給學(xué)生提供了良好的創(chuàng)新鍛煉平臺,對電子系統(tǒng)設(shè)計、DSP技術(shù)及應(yīng)用、EDA技術(shù)及應(yīng)用、傳感器技術(shù)課程的綜合實(shí)踐教學(xué)起到了積極的促進(jìn)作用。
不足之處,由于顯示屏尺寸較小無法同時顯示8個A/D通道波形,只能分開單獨(dú)顯示,需要將來通過換大屏幕顯示器來改進(jìn)。
[1] 唐少琴. 基于PLC的氣動機(jī)械手控制系統(tǒng)設(shè)計[J]. 機(jī)械設(shè)計與制造工程,2016,45( 5):59-61.
[2] 李 碩,唐勤生,王朝兵. 教學(xué)用氣動機(jī)械手的研制[J]. 科技資訊,2016( 2):39-40.
[3] 劉曉敏,耿德旭,趙云偉,等. 氣動柔性五指機(jī)械手結(jié)構(gòu)設(shè)計及其抓取實(shí)驗(yàn)[J]. 機(jī)床與液壓,2015,43( 7):10-12,70.
[4] 王偉偉,陳冰冰,舒 嫚. 基于比例閥控缸的氣動機(jī)械手柔性定位[J]. 東華大學(xué)學(xué)報(自然科學(xué)版),2016,42( 2):248-252.
[5] TI.TMS320VC5509A Fixed-Point Digital Signal Processor Data Manual. EB/OL].[2008].http://www.ti.com.
[6] ALTERA. Cyclone II Device Handbook, Volume 1. [EB/OL].[2008].http://www.altera.com.
[7] ALTERA. Cyclone II EP2C8 & EP2C8A Device Pin-Out( PT-EP2C8-1.9). [EB/OL].[2008].http://www.ti.com.
[8] Honeywell. FSG系列觸力傳感器[EB/OL].[2016]. https://sensing.honeywell.com.cn/_onelink_/honeywell/en2zh/pdfs/Datasheet_%20FSG_CN.pdf.
[9] JSD. 隔離變送器產(chǎn)品說明.[ EB/OL].[2016]. http://www.jsd-iae.com/Isolation_Transmitter.htm.
[10] Techvshine. TechV-5509使用說明書[EB/OL].[2009].http://www.techshine.com.
[11] TI. SLAS269F -MAY 2000-REVISED NOVEMBER 2008.[ EB/OL].[2008].http://www.ti.com.
[12] TI. SLAS169B - DECEMBER 1997- REVISED OCTOBER 2000[EB/OL].[2000].www.ti.com.
[13] Alinx. FPGA核心模塊.[EB/OL].[2016]. http://www.alinx.cn.
[14] TI. SLRS027O -DECEMBER 1976-REVISED JANUARY 2016[EB/OL].[2016].www.ti.com.
[15] TOSHIBA. TLP521-4.PDF[EB/OL].[2000]. http://www.toshiba.com.cn.
[16] 華 晶,賈 晶,殷 華. 基于DSP的通用語音信號處理系統(tǒng)設(shè)計[J].電腦編程技巧與維護(hù),2012 ( 5):58-59,73.
DesignofPneumaticManipulatorExperimentControlSystem
DONGShenga,WUGuangbinb,GENGDexub,WANGJianana,WANGMenglonga
(a. College of Electrical and Information Engineering; b. Engineering Training Center, Beihua University, Jilin 132021, Jilin, China)
TMS320VC5509A and EP2C8Q208 are used to design a pneumatic manipulator experiment control system. The system uses DSP C and FPGA VerilogHDL languages programing to take the place of big volume PLC control system, and accomplishes the control of 20 channels electromagnetic directional valves. It accurately controls 16 channels proportional valves by using 10 bit DACs, controls the action intensity of manipulators. It also completes acquisition of signals of the tactility pressure on finger tips of manipulators, by 8 channels of 10 bit ADCs and displays waveforms, and provides feedback information of the gripping force of manipulators, the control accuracy and speed are all improved.
TMS320VC5509A; EP2C8Q208; pneumatic manipulator
TP 241.3
A
1006-7167(2017)11-0077-05
2017-03-02
吉林省科技發(fā)展計劃項(xiàng)目(20160418024FG); 吉林省教育廳項(xiàng)目(吉教科合字[2015]第161號); 北華大學(xué)2016年校級教研立項(xiàng)課題 (XJYB2016003)
董 勝 (1972-),男,黑龍江嫩江人,碩士,副教授,研究方向:信號采集與處理。
Tel.:18604497893; E-mail: dswlpdsx@163.com