姚 慶, 倪驍驊
(1. 江蘇大學(xué) 機(jī)械工程學(xué)院,鎮(zhèn)江 212013;2. 鹽城工學(xué)院 機(jī)械工程學(xué)院,鹽城 224051)
裝配機(jī)器手是用于裝配生產(chǎn)線上對(duì)零件或部件進(jìn)行裝配作業(yè)的工業(yè)機(jī)器人的一種。由于裝配操作的多樣性,復(fù)雜性,單機(jī)操作的獨(dú)立性,多機(jī)操作的協(xié)同性等特點(diǎn),除了機(jī)器手本體機(jī)械部分設(shè)計(jì)外,裝配機(jī)器手控制系統(tǒng)的硬軟件設(shè)計(jì)等方面均有較高的要求[1]。為了滿足多種類型的裝配要求,并便于工人的現(xiàn)場(chǎng)調(diào)整操作,故要求控制系統(tǒng)能夠針對(duì)不同的裝配要求自由選擇電機(jī)、處理器和軟件模塊等,實(shí)現(xiàn)模塊化的控制系統(tǒng)設(shè)計(jì),從而縮短設(shè)計(jì)周期,改變系統(tǒng)“一種工況要求,一次重新設(shè)計(jì)”的設(shè)計(jì)方法,滿足多種工況下的控制要求,以便真正提高產(chǎn)品的性價(jià)比。
FPGA(Field Programmable Gate Array)技術(shù)為解決上述控制系統(tǒng)設(shè)計(jì)中的問題提供了相應(yīng)的技術(shù)手段。FPGA的顯著特點(diǎn)是可重復(fù)利用并且研發(fā)周期短,用戶只需要用硬件描述語言編寫系統(tǒng)功能由EDA工具轉(zhuǎn)化成為BitStream下載文件,下載到FPGA中即可實(shí)現(xiàn)該系統(tǒng)功能[2]。如果要實(shí)現(xiàn)其他電路功能,只要修改源程序重新產(chǎn)生下載文件,從而達(dá)到在外圍電路不變的情況下用不同的硬件電路實(shí)現(xiàn)各異的功能。
其關(guān)鍵是在實(shí)際工作時(shí)由相關(guān)可重配置處理器對(duì)FPGA進(jìn)行再配置,構(gòu)造出相應(yīng)的硬件功能滿足模塊化的控制要求。這種可進(jìn)化硬件結(jié)構(gòu)和可重配置處理器設(shè)計(jì)高度集成整個(gè)系統(tǒng),實(shí)現(xiàn)SOPC設(shè)計(jì),滿足模塊化機(jī)械手控制系統(tǒng)的設(shè)計(jì)要求。
XILINX是全球領(lǐng)先的FPGA供應(yīng)商。XILINX的主流FPGA分兩類,一種側(cè)重低成本應(yīng)用,容量中等,性能滿足一般設(shè)計(jì)要求的Spartan系列;另一種側(cè)重于高性能的應(yīng)用,容量大,性能滿足各類高端應(yīng)用的Virtex系列[3]。
本設(shè)計(jì)控制器核心配置XILINX Spartan3系列,型號(hào)為XC3S400的FPGA,采用PQ208表貼封裝,具有40萬等效門,已滿足控制設(shè)計(jì)要求,支持完整的XILINX platform開發(fā),支持XILINX軟核MicroBlaze cpu,提供豐富的IP Core設(shè)計(jì),方便應(yīng)用模塊化的機(jī)械手控制系統(tǒng)設(shè)計(jì)[3]。
裝配機(jī)械手系統(tǒng)由操作機(jī)、視頻采集器、控制系統(tǒng)以及相關(guān)硬件組成。操作機(jī)就是機(jī)械手的機(jī)械本體,完成基本抓取、搬運(yùn)和放置等動(dòng)作,并要考慮多種工況和相應(yīng)的拼裝要求。視頻采集器主要由CCD和視頻解碼芯片SAA7113及相關(guān)硬件組成。
機(jī)械手的控制系統(tǒng)主要包括:中央處理器、步進(jìn)電機(jī)驅(qū)動(dòng)接口、與上位機(jī)或多機(jī)的通訊接口、調(diào)試和下載接口、傳感器接口、輸入輸出的觸摸屏接口以及相關(guān)穩(wěn)壓電源等部分。
1)中央處理器:以Spartan3系列的FPGA為機(jī)械手控制系統(tǒng)核心,完成模塊化機(jī)械手的控制要求。
2)步進(jìn)電機(jī)驅(qū)動(dòng)接口:采用兩相混合式步進(jìn)電機(jī)39BYG系列,額定電壓24V,引線數(shù)4根。步進(jìn)電機(jī)驅(qū)動(dòng)器為96560A V3型CNC驅(qū)動(dòng)器,其中采用的TB6560AHQ是東芝公司最新設(shè)計(jì)生產(chǎn)的單片正弦細(xì)分兩相步進(jìn)電機(jī)驅(qū)動(dòng)專用芯片。
3)上位機(jī)或多機(jī)的通訊接口:用FPGA軟核MicroBlaze實(shí)現(xiàn)控制串口通信。OPB UART Lite是EDK中為MicroBlaze提供的一個(gè)串行口控制器。
4)調(diào)試和下載接口:采用JTAG模式下載二進(jìn)制下載文件。用XILINX公司的ISE軟件掃描出FPGA相應(yīng)的下載鏈,以二進(jìn)制下載文件(后綴為.bit)下載。
5)傳感器接口:讀取夾持器上經(jīng)過A/D轉(zhuǎn)換的壓力傳感器信息。
6)輸入輸出的觸摸屏:K-TP178觸摸屏與FPGA是通過RS232接口相連的,來實(shí)現(xiàn)數(shù)據(jù)的共享和對(duì)FPGA的輸入、輸出控制。
根據(jù)機(jī)械手系統(tǒng)模塊化的要求,采用XILINX Spartan3系列,型號(hào)為XC3S400的FPGA,XILINX公司 Spartan3系列的結(jié)構(gòu)由5個(gè)基本的可編程功能模塊組成,分別是:可配置邏輯模塊(CLB),輸入輸出模塊(IOB),BlockRAM,乘法器模塊和數(shù)字時(shí)鐘管理器(DCM)。
處理器系統(tǒng)采用MicroBlaze處理器,是XILINX公司針對(duì)嵌入式處理器開發(fā)應(yīng)用的一種32位嵌入式處理器內(nèi)核,MicroBlaze是一個(gè)高度靈活可以配置的軟核,可以根據(jù)自身設(shè)計(jì)需要,對(duì)MicroBlaze進(jìn)行裁剪,用最少的資源完成設(shè)計(jì)需要。
MicroBlaze的基本特性:32個(gè)32位的通用寄存器,32位指令,3個(gè)操作數(shù)和兩種地址模式,32位地址和單流水線結(jié)構(gòu)[4]。
處理器MicroBlaze可添加的外設(shè)包含有Timer/PMW,UART,GPIO,IIC等IP Core,并預(yù)留了USB2.0,Ethernet MAX和其他常用外設(shè)模塊,以便擴(kuò)展,提高系統(tǒng)設(shè)計(jì)開放性。
使用XILINX ISE中的Xilinx Platform Studio(XPS)創(chuàng)建一個(gè)基于Spartan-3 XC3S400的處理器。完成硬件系統(tǒng)和軟件系統(tǒng)的框架設(shè)計(jì),主要由下列IP核組成:
由于處理器MicroBlaze軟核特性,可以使用XPS,在一個(gè)已存在的處理器系統(tǒng)中添加額外的IP,擴(kuò)展硬件系統(tǒng),提高系統(tǒng)開放性,模塊化。如圖1所示。
圖1 中央處理器設(shè)計(jì)圖
基于FPGA的控制系統(tǒng)是一個(gè)軟硬件復(fù)合的系統(tǒng),其設(shè)計(jì)采用模塊化的設(shè)計(jì)思想,圍繞FPGA中央處理器所設(shè)定系統(tǒng)功能,用模塊化方法實(shí)現(xiàn)。
1)初始化模塊:實(shí)現(xiàn)初始化FPGA芯片配置,初始化MicroBlaze核及各IP Core。
2)步進(jìn)電機(jī)驅(qū)動(dòng)模塊:數(shù)據(jù)輸入(data_input模塊)使用兩個(gè)撥碼開關(guān)及四個(gè)按鈕開關(guān) 做為輸入,對(duì)應(yīng)h1_sel和in_allow兩個(gè)信號(hào)線,四個(gè)按鈕開關(guān)分別對(duì)應(yīng)sw3,sw2,sw1,sw0。撥碼開關(guān)實(shí)現(xiàn)工作模式的選擇,按鈕實(shí)現(xiàn)數(shù)據(jù)輸入。數(shù)據(jù)輸出采用14位輸出,為data_out(13:0)。一方面輸出的data_out(13:0)數(shù)據(jù)傳輸給字符型液晶顯示屏1602顯示(lcd_display模塊),另一方面將data_out(13:0)數(shù)據(jù)傳輸給電機(jī)控制模塊(machine_ctl模塊),控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。在ISE環(huán)境下用Verilog語言編寫module data_input,module lcd_display,module machine_ctl三個(gè)模塊:
圖2 RTL級(jí)視圖
并由指定的ISE綜合工具XST綜合出RTL級(jí)視圖,如圖2所示。
3)UART模塊:通過串行通訊接口達(dá)到與上位機(jī)或觸摸屏交流通信的目的。OPB UART Lite是為MicroBlaze提供的一個(gè)串行口控制器,提供了一個(gè)發(fā)送通道和一個(gè)接受通道(全雙工),16字符的發(fā)送FIFO和16字符的接收FIFO,并可配置波特率。根據(jù)具體的工況要求可與上位PC機(jī)或觸摸屏相連。
4)GPIO模塊:輸入輸出模塊具有開放性。可以根據(jù)外接的輸入輸出設(shè)備進(jìn)行擴(kuò)展??梢苑奖愕膭?chuàng)建一自定義的外圍設(shè)備,通過IO將其添加到硬件系統(tǒng)中。
5)IIC模塊:設(shè)計(jì)一個(gè) IIC 總線控制器,其主要作用是提供 uC(Microcontroller,微控制器或單片機(jī))和 IIC 總線之間的接口,為兩者之間的通信提供物理層協(xié)議的轉(zhuǎn)換。IIC 總線控制器包含兩個(gè)主要部分,一是微控制器接口,簡(jiǎn)稱 uC 接口,二是 I2CMaster/Slave 接口,即 IIC 接口,通過這兩個(gè)接口,IIC 總線控制器實(shí)現(xiàn)了微控制器外圍總線和 IIC 總線的連接。
6)其他模塊:包括網(wǎng)絡(luò)連接模塊Ethernx Max、USB接口模塊和其他預(yù)留模塊。
本文提出基于FPGA的模塊化機(jī)械手控制系統(tǒng),采用XILINX公司的Spartan3系列的FPGA,首先先用ISE軟件中的XPS搭建MicroBlaze軟核作為處理器核,構(gòu)造各IP核,生成處理器系統(tǒng)和硬件IP網(wǎng)表。然后,基于FPGA可重構(gòu)特性,利用IP核可重復(fù)使用,可自定義,獨(dú)立性強(qiáng)的特點(diǎn),將相關(guān)電機(jī)控制模塊,通訊模塊等模塊從控制系統(tǒng)中添加或刪除,增減機(jī)械手的功能,以適應(yīng)不同工況要求,而無需重新設(shè)計(jì)硬件系統(tǒng),提高控制系統(tǒng)的開放性,達(dá)到模塊化設(shè)計(jì)要求。
[1] 倪驍驊,趙忠偉.嵌入式系統(tǒng)在裝配機(jī)器人中的應(yīng)用[J].鹽城工學(xué)院學(xué)報(bào)(自然科學(xué)版),2009,22(2):8-11.
[2] 田耘,徐文波,胡彬,等.Xilinx ISE Design Suite 10.X FPGA開發(fā)指南[M].北京:人民郵電出版社,2008.
[3] Spartan3 Platform FPGA User Guide,Xilinx,2005.
[4] Xilinx.MicroBlaze Processor Guide EDK[Z].Http://www.xilinx.com.
[5] 龍霞飛,李仁發(fā). MicroBlaze微處理器IP Core的結(jié)構(gòu)及應(yīng)用[J].微處理機(jī),2004,(6):6-9.