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