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