根據(jù)數(shù)控系統(tǒng)的功能要求,進(jìn)行上位機(jī)與下位機(jī)、軟件與硬件的任務(wù)分配。上位機(jī)CPU軟件部分的主要任務(wù)是完成輪廓粗插補(bǔ)運(yùn)算、升降速控制、加工程序段解釋、用戶界面處理和圖形模擬功能的實(shí)現(xiàn)等。硬件部分的主要任務(wù)是利用并行接口實(shí)現(xiàn)D/A轉(zhuǎn)換器的控制,以控制主軸模擬量輸出;實(shí)現(xiàn)與雙端口RAM的數(shù)據(jù)通信,以傳送FPGA精插補(bǔ)所需的數(shù)據(jù);實(shí)現(xiàn)與控制芯片CPLD和FPGA的數(shù)據(jù)通信;實(shí)現(xiàn)與液晶屏LCD的接口;利用通信接口實(shí)現(xiàn)與PC機(jī)串口的數(shù)據(jù)通信;利用GPIO口實(shí)現(xiàn)對(duì)鍵盤掃描芯片的控制。下位機(jī)FPGA實(shí)現(xiàn)以下功能:a.脈沖發(fā)生模塊。FPGA內(nèi)部的核心模塊,對(duì)接收的時(shí)鐘信號(hào)進(jìn)行分頻處理,得到控制精插補(bǔ)運(yùn)算所需的時(shí)鐘信號(hào);從雙端口RAM中讀取各軸進(jìn)給增量;通過精插補(bǔ)DDA積分器將CPU送出的各軸進(jìn)給增量,轉(zhuǎn)換為驅(qū)動(dòng)電機(jī)運(yùn)動(dòng)的進(jìn)給脈沖信號(hào)和進(jìn)給方向信號(hào)。
b.手輪和編碼器計(jì)數(shù)模塊。對(duì)4個(gè)編碼器返回信號(hào)及手輪順時(shí)針和逆時(shí)針轉(zhuǎn)動(dòng)格數(shù)實(shí)時(shí)計(jì)數(shù),并輸出計(jì)數(shù)值供CPU讀取計(jì)算。c.I/O控制模塊。CPU通過該模塊可讀取輸入開關(guān)的狀態(tài)電平,設(shè)置輸出開關(guān)量電平,從而實(shí)現(xiàn)對(duì)外部繼電器的閉合或斷開控制。
電路設(shè)計(jì)ACEX是面向低端應(yīng)用的中等密度、高性價(jià)比的FPGA,分為1K10,1K30,1K50和1K100,容量分別為1萬、3萬、5萬和10萬門,雖然容量不同,但是在相同封裝的情況下管腳兼容(個(gè)別情況除外)。
基于容量和I/O數(shù)量的要求,選擇了ALTERA公司ACEX系列的EP1K50QC208,其豐富的邏輯資源和I/O數(shù)量可以為數(shù)控系統(tǒng)提供大量的脈沖發(fā)生、脈沖計(jì)數(shù)和I/O控制能力,從而簡化系統(tǒng)的硬件電路、降低系統(tǒng)的功耗、提高系統(tǒng)的可靠性。
EP1K50QC208是基于SRAM工藝的可編程器件,配置數(shù)據(jù)放在SRAM中,掉電后將丟失系統(tǒng)原有的邏輯功能,所以系統(tǒng)再次上電必須對(duì)SRAM重新加載配置數(shù)據(jù)。ALTERA公司FPGA的配置方式有:a.下載電纜配置方式。一般用于實(shí)際系統(tǒng)開發(fā)設(shè)計(jì)階段,對(duì)于已經(jīng)設(shè)計(jì)完的應(yīng)用系統(tǒng),會(huì)帶來很多不便。b.主動(dòng)配置方式。不需要其它的外圍控制器,由FPGA自身引導(dǎo)整個(gè)配置過程,采用專用存儲(chǔ)器放置配置數(shù)據(jù)。c.被動(dòng)配置方式。不必采用ALTERA的專用存儲(chǔ)器,使用廉價(jià)的通用程序存儲(chǔ)器就可以實(shí)現(xiàn),在一定程度上可以降低成本。
為了保護(hù)知識(shí)產(chǎn)權(quán),在關(guān)鍵、核心設(shè)備中必須采用加密技術(shù)。但以上幾種配置方法在系統(tǒng)加電時(shí),都需要將配置的比特流數(shù)據(jù)按照一定的時(shí)序?qū)懭隨RAM工藝的FPGA.因此,采用一定的電路對(duì)配置FPGA的數(shù)據(jù)引腳進(jìn)行采樣,監(jiān)視配置的位數(shù)據(jù)流,可以進(jìn)行克隆設(shè)計(jì)。所以在設(shè)計(jì)中必須要考慮到FPGA的加密問題,以保護(hù)知識(shí)產(chǎn)權(quán)。
如果單從FPGA的配置方面考慮,采用EPC系列的專用配置芯片或直接采用微處理器進(jìn)行配置,可以簡化外圍電路,降低配置成本。但對(duì)于數(shù)控系統(tǒng)整體,配置只是其中的一部分,要從系統(tǒng)的保密性、I/O數(shù)量、電路的簡化度和系統(tǒng)的可靠性等個(gè)方面綜合考慮。
本系統(tǒng)選用一片具有84引腳PLCC封裝的CPLD芯片EPM7128S完成對(duì)FPGA進(jìn)行被動(dòng)串行配置。EPM7128S是ALTERA公司MAX7000系列的CPLD芯片,具有編程加密位,在器件編程時(shí)激活該加密位,將使固化在EPM7128S芯片內(nèi)的電路邏輯無法被讀出,從而提高了系統(tǒng)的保密性;除了配置所需要的I/O口外,還有24個(gè)I/O可供系統(tǒng)使用;可分擔(dān)部分工作量,而無需選擇容量更大的FPGA,從一定程度上降低了成本。CPLD與FP2GA的接口如所示。EPROM需要根據(jù)配件的大小來選擇,ACEX1K50的配置文件大小為96kB,因此選用的EPROM型號(hào)為M27C1001B.
軟件設(shè)計(jì)在系統(tǒng)初始化時(shí),CPU向CPLD發(fā)送一個(gè)開啟配置的命令,CPLD接收到該命令后產(chǎn)生一個(gè)由高到低的跳變送到nCONFIG引腳,nCONFIG信號(hào)抬高后,nSTATUS將隨之變?yōu)榈碗娖剑珻PLD檢測(cè)到此變化后就認(rèn)為FPGA已經(jīng)做好準(zhǔn)備可以開始配置。配置時(shí)鐘的**個(gè)上升沿與nCONFIG的上升沿之間要求至少有5μs的時(shí)間間隔。由于配置數(shù)據(jù)是與配置時(shí)鐘的上升沿同步的,在配置時(shí)鐘的上升沿之前應(yīng)當(dāng)將1位的配置數(shù)據(jù)在數(shù)據(jù)線上準(zhǔn)備好,配置數(shù)據(jù)按低位在先高位在后的順序從數(shù)據(jù)線上送出。當(dāng)全部配置數(shù)據(jù)送出以后,CONF_DONE信號(hào)變?yōu)楦唠娖剑砻髋渲媒Y(jié)束。CPU檢測(cè)到CONF_DONE變成高電平后,就結(jié)束配置過程,此時(shí)DCLK必須用多余的10個(gè)周期來初始化該器件。在配置過程中,系統(tǒng)需要進(jìn)行實(shí)時(shí)檢測(cè),一旦出現(xiàn)錯(cuò)誤,nSTATUS將被拉低,CPLD檢測(cè)到該信號(hào)后,將nCONFIG信號(hào)拉低,重新啟動(dòng)配置過程。配置時(shí)序如所示。
試驗(yàn)結(jié)果驗(yàn)證FPGA中用VHDL語言編寫的程序,經(jīng)MAX+PLUSⅡ編譯生成配置文件(。sof),并通過格式轉(zhuǎn)換為(。rbf)格式,存儲(chǔ)到存儲(chǔ)器M27C1001B中。系統(tǒng)測(cè)試中,上電運(yùn)行后,通過CPLD將配置數(shù)據(jù)加載到FPGA中,同時(shí)CPLD監(jiān)視FPGA的配置狀態(tài)指示信號(hào),將配置狀態(tài)返回到CPU控制端,從而成功實(shí)現(xiàn)了FPGA的配置。FPGA從雙端口RAM中接收精插補(bǔ)所需的數(shù)據(jù),在一個(gè)插補(bǔ)周期內(nèi)完成精插補(bǔ)運(yùn)算;對(duì)手輪及編碼器返回的脈沖信號(hào)計(jì)數(shù)。
同時(shí),通過CPLD和FPGA實(shí)現(xiàn)了外部開關(guān)量的控制。*后經(jīng)過軟硬件聯(lián)調(diào),本系統(tǒng)實(shí)現(xiàn)了四軸直線插補(bǔ)及任意兩軸的圓弧插補(bǔ),且進(jìn)給速度均勻連續(xù)、插補(bǔ)穩(wěn)定,并具有升降速功能;可實(shí)現(xiàn)刀具的半徑補(bǔ)償;系統(tǒng)與計(jì)算機(jī)具有RS232通信功能;系統(tǒng)人機(jī)界面友好,操作菜單中文顯示,易于操作使用。
結(jié)語雖然單從FPGA的配置方面來看,采用CPLD對(duì)FPGA進(jìn)行配置,比采用EPC專用配置芯片或采用微處理器直接配置的成本高。但從數(shù)控系統(tǒng)總體設(shè)計(jì)上來講,利用CPLD對(duì)SRAM工藝的FPGA進(jìn)行加密,克服了采用專用配置芯片配置保密性差的缺陷,同時(shí)增加了數(shù)控系統(tǒng)通用I/O口的數(shù)量,成本與采用微處理器直接配置的成本相當(dāng),而該系統(tǒng)更具保密性與安全性,且簡化外圍電路,提高系統(tǒng)的集成度和可靠性。