董海濤,李 欣,黃麗宇,梁京章
(1.廣西大學(xué)廣西制造系統(tǒng)與先進(jìn)制造技術(shù)重點(diǎn)實(shí)驗(yàn)室,廣西南寧 530004;2.廣西大學(xué)信息網(wǎng)絡(luò)中心,廣西南寧 530004)
?
有限狀態(tài)機(jī)實(shí)現(xiàn)CNC系統(tǒng)串行D/A接口
董海濤1,李 欣1,黃麗宇2,梁京章2
(1.廣西大學(xué)廣西制造系統(tǒng)與先進(jìn)制造技術(shù)重點(diǎn)實(shí)驗(yàn)室,廣西南寧 530004;2.廣西大學(xué)信息網(wǎng)絡(luò)中心,廣西南寧 530004)
基于SPI通信協(xié)議,采用有限狀態(tài)機(jī)和功能模塊化的方法,實(shí)現(xiàn)串行DAC7734接口功能,給出了仿真時(shí)序圖。仿真及D/A輸出精度和穩(wěn)定性,驗(yàn)證了有限狀態(tài)機(jī)設(shè)計(jì)的正確性。該方法不僅易于實(shí)現(xiàn)SPI協(xié)議,其原理還適用于實(shí)現(xiàn)I2C、CAN等其他協(xié)議,具有很好的移植性和通用性。
數(shù)控系統(tǒng);DAC7734;FPGA;有限狀態(tài)機(jī)
在傳統(tǒng)的CNC系統(tǒng)(非現(xiàn)場(chǎng)總線和工業(yè)互聯(lián)網(wǎng)控制方式)中,數(shù)模轉(zhuǎn)換芯片D/A是CNC系統(tǒng)實(shí)現(xiàn)閉環(huán)運(yùn)動(dòng)控制必不可少的功能部件之一,實(shí)際使用中D/A芯片一般有并行和串行二種類型。并行D/A一般轉(zhuǎn)換速度較快,但是占用的硬件資源較多;串行D/A則通過(guò)多種串行通信協(xié)議進(jìn)行數(shù)據(jù)傳輸并完成數(shù)模轉(zhuǎn)換,占用硬件資源較少,且一般情況下轉(zhuǎn)換速度也能滿足應(yīng)用的需要,目前串行D/A在CNC系統(tǒng)中應(yīng)用較廣泛,文中也采用串行D/A的形式。
目前串行D/A接口功能實(shí)現(xiàn)方面,要么是基于特定硬件平臺(tái)的硬線連接軟件實(shí)現(xiàn)[1-2],要么是基于FPGA的Verilog HDL代碼實(shí)現(xiàn)[3]。以上2種實(shí)現(xiàn)方式,方法上均不具有通用性。文中在嵌入式CNC系統(tǒng)平臺(tái)上[4],采用Verilog HDL語(yǔ)言設(shè)計(jì)主、從狀態(tài)機(jī),在FPGA中實(shí)現(xiàn)了串行D/A接口功能。采用有限狀態(tài)機(jī)的方法實(shí)現(xiàn)串行D/A接口功能,該方法不但易于實(shí)現(xiàn)SPI通信協(xié)議,其原理也適用于實(shí)現(xiàn)I2C、CAN等其他協(xié)議,具有很好的移植性和通用性。
根據(jù)CNC控制器設(shè)計(jì),需要實(shí)現(xiàn)4個(gè)運(yùn)動(dòng)軸的閉環(huán)控制,則應(yīng)有4個(gè)軸的D/A輸出,設(shè)計(jì)中采用16位高性能串行4通道D/A芯片DAC7734實(shí)現(xiàn)??紤]到需要做插補(bǔ)運(yùn)算及編碼器等接口擴(kuò)展需要,系統(tǒng)采用DSP+FPGA的控制方案,其中DSP采用TI公司6000系列的浮點(diǎn)處理器DSP6713,F(xiàn)PGA芯片則選用Cyclone Ⅱ系列的FPGA。在 DSP+FPGA的多軸控制系統(tǒng)中,DSP主要用于處理運(yùn)動(dòng)控制算法,F(xiàn)PGA則用于外圍接口的擴(kuò)展,多軸控制系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
圖1 DSP+FPGA多軸控制系統(tǒng)結(jié)構(gòu)框圖
每個(gè)PID控制周期,系統(tǒng)中DSP根據(jù)插補(bǔ)輸出和各個(gè)軸編碼器的反饋?zhàn)鯬ID運(yùn)算,將得到的各軸數(shù)據(jù)通過(guò)EMIF接口依次送入FPGA中各軸D/A輸出數(shù)據(jù)緩沖區(qū),數(shù)據(jù)存放完成后DSP將D/A轉(zhuǎn)換輸出信號(hào)convert置1;FPGA中D/A接口模塊得到convert信號(hào)為真后,將各個(gè)軸的數(shù)據(jù)依次輸入D/A的輸入寄存器,完成后同時(shí)啟動(dòng)4個(gè)軸的控制輸出,并同時(shí)將convert信號(hào)清0,系統(tǒng)下一個(gè)PID周期重復(fù)此控制過(guò)程。
2.1 DAC7734 簡(jiǎn)介[ 5 ]
設(shè)計(jì)所用的DAC7734為采用SPI通信協(xié)議的串行4通道16位高精度DAC。根據(jù)控系統(tǒng)的控制需要,系統(tǒng)采用單片DAC7734實(shí)現(xiàn)4軸控制信號(hào)的D/A轉(zhuǎn)換,并讓D/A工作在雙極性輸出模式(±10V)。DAC7734采用雙緩沖結(jié)構(gòu),保證了新的DAC數(shù)據(jù)進(jìn)入DAC過(guò)程中不會(huì)擾亂模式輸出,另外,DAC7734中4通道的D/A轉(zhuǎn)換是同時(shí)輸出的,這一特點(diǎn)特別適合CNC系統(tǒng)的閉環(huán)控制需求。DAC7734的時(shí)序如圖2所示。
圖2 DAC7734的時(shí)序圖
時(shí)序圖要求串行同步傳輸時(shí)鐘CLK(SPI時(shí)鐘)正半周脈沖寬度tCH≥25 ns,負(fù)半周tCL≥25 ns(圖2中沒(méi)有給出);CLK 脈沖上升沿到LOAD信號(hào)變低之間間隔tLD2≥30 ns;要求LOAD負(fù)脈沖寬度tLDRW≥30 ns;LOAD下降沿到LDAC上升沿間隔tLDDD≥40 ns;LDAC的正脈寬以及負(fù)脈寬不能小于40 ns。
2.2 D/A接口功能實(shí)現(xiàn)
為了驅(qū)動(dòng)D/A芯片正常工作,需要滿足DAC7734的時(shí)序約束關(guān)系。由于本系統(tǒng)FPGA外部晶振為50 MHz,為了產(chǎn)生驅(qū)動(dòng)D/A正常工作的SPI時(shí)鐘信號(hào),需要對(duì)FPGA外部時(shí)鐘(50 MHz)進(jìn)行分頻,設(shè)計(jì)中通過(guò)2分頻實(shí)現(xiàn)。另外,為了通過(guò)串行DAC7734輸出各個(gè)軸的控制信號(hào),系統(tǒng)通過(guò)設(shè)計(jì)主從狀態(tài)機(jī)來(lái)實(shí)現(xiàn)對(duì)D/A的驅(qū)動(dòng),圖3所示為FPGA中主狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖,主狀態(tài)機(jī)負(fù)責(zé)4個(gè)通道 (軸)控制數(shù)據(jù)的組裝與時(shí)序控制。
圖3中,RST為復(fù)位信號(hào),convert為D/A轉(zhuǎn)換控制信號(hào),tx_busy為轉(zhuǎn)換忙標(biāo)志信號(hào),num為控制軸通道號(hào),其他則為與圖2中相對(duì)應(yīng)的時(shí)序約束條件,主狀態(tài)機(jī)各個(gè)狀態(tài)分別為:000狀態(tài),初始態(tài);001狀態(tài),將16位數(shù)據(jù)組裝為24位數(shù)據(jù);010狀態(tài),等待24位串行數(shù)據(jù)發(fā)送完畢;011狀態(tài),產(chǎn)生tLD2時(shí)序;100狀態(tài),產(chǎn)生tLDRW時(shí)序;101狀態(tài),判斷4個(gè)軸的數(shù)據(jù)是否組裝完畢;110狀態(tài),產(chǎn)生tLDDD時(shí)序,同時(shí)啟動(dòng)4個(gè)軸的D/A輸出,并將convert信號(hào)清0。
圖3 FPGA中D/A轉(zhuǎn)換狀態(tài)機(jī)(主狀態(tài)機(jī))
FPGA中從狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖如圖4所示,從狀態(tài)機(jī)主要將每個(gè)軸組裝的24位數(shù)據(jù)從高位到低位依次串行輸出,各個(gè)狀態(tài)分別為:00狀態(tài),初始態(tài);01狀態(tài),24位數(shù)據(jù)發(fā)送;10狀態(tài),產(chǎn)生需要的tCSH時(shí)序。
為了驗(yàn)證串行D/A的性能及設(shè)計(jì)的正確性,進(jìn)行了Model-sim時(shí)序仿真分析和電機(jī)控制實(shí)驗(yàn)。Modelsim時(shí)序仿真是為了測(cè)試D/A外圍驅(qū)動(dòng)信號(hào)是否滿足時(shí)序約束的條件,是從邏輯方面對(duì)正確性所做的測(cè)試,需要用Verilog硬件描述語(yǔ)言編寫(xiě)相應(yīng)的Testbench文件,然后Testbench調(diào)用功能設(shè)計(jì)模塊進(jìn)行時(shí)序仿真,系統(tǒng)D/A部分仿真的時(shí)序關(guān)系如圖5所示。
圖4 FPGA串行數(shù)據(jù)發(fā)送狀態(tài)機(jī)(從狀態(tài)機(jī))
為了確定控制代碼是否滿足DAC7734芯片的時(shí)序約束條件,需要對(duì)仿真的時(shí)序波形進(jìn)行分析,下面先對(duì)tLD2的時(shí)序約束條件進(jìn)行分析。如圖6所示為DAC7734芯片時(shí)序圖中與tLD2有關(guān)的時(shí)序約束圖,其中tLD2≥30 ns,無(wú)最大值要求。在圖7的時(shí)序仿真波形中,對(duì)應(yīng)的時(shí)間間隔為tLD2=80 ns,可知滿足tLD2的時(shí)序約束要求。類似的,可以分析其他時(shí)序約束條件也滿足。
圖5 D/A仿真時(shí)序圖
圖6 DAC7734芯片時(shí)序中相應(yīng)的時(shí)間間隔tLD2
圖7 仿真波形中相應(yīng)的時(shí)間間隔tLD2
電機(jī)控制實(shí)驗(yàn)可以測(cè)試D/A工作的穩(wěn)定性和精度,是進(jìn)一步從邏輯關(guān)系和物理硬件方面對(duì)D/A所做的測(cè)試。圖8所示為電機(jī)控制實(shí)驗(yàn)一個(gè)通道的D/A輸出圖,D/A的輸出的精度高,穩(wěn)定性好。
圖8 電機(jī)控制實(shí)驗(yàn)一個(gè)通道的D/A輸出圖
通過(guò)時(shí)序仿真波形與DAC7734芯片的時(shí)序圖進(jìn)行對(duì)比分析,相應(yīng)的時(shí)間規(guī)格都符合相應(yīng)的要求,并通過(guò)實(shí)驗(yàn)進(jìn)一步驗(yàn)證了D/A輸出的精度和穩(wěn)定性,驗(yàn)證了有限狀態(tài)機(jī)設(shè)計(jì)的正確性。該方法可以方便地移植到對(duì)其它總線通信協(xié)議接口實(shí)現(xiàn)上,具有很好的移植性和通用性。
[1] 劉軍虎,呂級(jí)三,吳學(xué)森.TMS320C31DSP和12位串行D/A MX536之間的接口設(shè)計(jì)及其應(yīng)用.測(cè)控技術(shù),2002,21(4): 64-67.
[2] 閆海珠,黃富長(zhǎng),施群,等.基于DSP和高速串行DAC的多軸位置控制卡設(shè)計(jì).機(jī)床與液壓,2004(5):73-75;49.
[3] 李潔,陳海波,談軍,等.基于FPGA的NMR譜儀室溫勻場(chǎng)電源核心控制系統(tǒng)的設(shè)計(jì).廈門(mén)大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,49(3):319-323.
[4] 董海濤,莊淑君,陳冰,等.基于ARM+DSP+FPGA的可重構(gòu)CNC系統(tǒng).華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,40(8):82-87.
[5] Texas Instruments Incorporated.Burr-brown DAC7734 Data Sheet [EB/OL].[2008-10].http://focus.ti.com/lit/ds/symlink/dac7734.pdf.
Realization of Serial D/A Interface of CNC System Based on FSM
DONG Hai-tao1,LI Xin1,HUANG Li-yu2,LIANG Jing-zhang2
(1.Guangxi Key Laboratory of Manufacturing System & Advanced Manufacturing Technology,Guangxi University,Nanning 530004,China;2.Information Network Center,Guangxi University,Nanning 543004,China)
According to SPI communication protocol,using the method of finite state machine(FSM)and function modularization,the serial DAC7734 interface function was realized,and the simulation Timing diagram was given.The correctness of finite state machine design was verified by simulation and accuracy and stability of D/A output.This method,with the good portability and versatility,was not only easy to implement SPI protocol,it can also apply to other protocols,such as I2C,CAN,and so on.
CNC;DAC7734;FPGA;finite state machine
廣西制造系統(tǒng)與先進(jìn)制造技術(shù)重點(diǎn)實(shí)驗(yàn)室(主任基金)項(xiàng)目(13-051-09S05);國(guó)家自然科學(xué)基金資助項(xiàng)目(51365005,51065005);廣西教育廳科研資助項(xiàng)目(LX2014006,201204LX005)
2015-09-21
TP271
A
1002-1841(2015)12-0123-03
董海濤(1975—),工學(xué)博士,副教授,研究方向?yàn)閿?shù)控技術(shù)、機(jī)器人控制、工業(yè)以太網(wǎng)技術(shù),E-mail: surge_d@163.com
黃麗宇(1980—),工學(xué)碩士,工程師,研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)及應(yīng)用、機(jī)器學(xué)習(xí)。E-mail: hly@gxu.edu.cn