專利名稱:一種分層重構(gòu)的nurbs曲線插補(bǔ)器及其配置方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)數(shù)控系統(tǒng)插補(bǔ)控制技術(shù),具體的說(shuō)是一種分層重構(gòu)的 NURBS曲線插補(bǔ)器及其配置方法。
背景技術(shù):
自由型曲線加工一直是制造工程研究的關(guān)鍵問(wèn)題。隨著國(guó)民經(jīng)濟(jì)的發(fā)展,航空、汽 車、船舶等制造行業(yè)對(duì)數(shù)控系統(tǒng)的復(fù)雜曲線加工能力和加工質(zhì)量提出了更高要求。目前,對(duì) 自由型曲線加工的支持已經(jīng)成為高檔數(shù)控系統(tǒng)的衡量標(biāo)準(zhǔn)之一。有效解決自由型曲線加工首先要實(shí)現(xiàn)復(fù)雜曲線插補(bǔ)器的研制。但國(guó)內(nèi)大多數(shù)數(shù)控 系統(tǒng)只能提供直線和圓弧插補(bǔ),對(duì)自由型曲線插補(bǔ)的支持較少。插補(bǔ)器作為數(shù)控系統(tǒng)的技 術(shù)核心單元,是每個(gè)數(shù)控系統(tǒng)制造商極力保護(hù)的技術(shù),因此限制了新技術(shù)和新方法在插補(bǔ) 器研究中的推廣應(yīng)用。國(guó)際標(biāo)準(zhǔn)化組織于1991年頒布了關(guān)于工業(yè)產(chǎn)品數(shù)據(jù)交換的STEP國(guó) 際標(biāo)準(zhǔn),把NURBS作為定義工業(yè)產(chǎn)品幾何形狀的唯一數(shù)學(xué)方法。國(guó)內(nèi)外研究者已就NURBS曲 線的實(shí)時(shí)插補(bǔ)、自適應(yīng)插補(bǔ)和前瞻插補(bǔ)等方面做了研究,探索不同加工條件下的NURBS曲 線插補(bǔ)器的設(shè)計(jì)。近年來(lái),隨著半導(dǎo)體技術(shù)的發(fā)展,基于FPGA芯片和IP核的可重構(gòu)性系統(tǒng)設(shè)計(jì)受到 重視,并被業(yè)界廣泛接受。FPGA的并行計(jì)算能力、微處理器的管理能力和IP核的可復(fù)用特 性使得整個(gè)系統(tǒng)能夠通過(guò)改變自身結(jié)構(gòu),以適應(yīng)外界需求的快速變化。因此,基于FPGA和 IP核技術(shù)的NURBS曲線插補(bǔ)器可以滿足不同層次的自由型曲線加工需要,擴(kuò)展了插補(bǔ)器的 適用范圍。但是目前NURBS曲線插補(bǔ)器的功能升級(jí)、改變或擴(kuò)展主要由插補(bǔ)器設(shè)計(jì)人員實(shí) 現(xiàn),數(shù)控機(jī)床操作人員無(wú)法根據(jù)自身需要現(xiàn)場(chǎng)配置,造成生產(chǎn)時(shí)間的極大浪費(fèi),不利于插補(bǔ) 器與數(shù)控機(jī)床其它單元模塊協(xié)調(diào)工作,大大降低了系統(tǒng)的可靠性。
發(fā)明內(nèi)容
本發(fā)明的目的之一在于針對(duì)現(xiàn)有插補(bǔ)器大多數(shù)不具備自由曲線插補(bǔ)能力,或具有 自由曲線插補(bǔ)能力,但不能現(xiàn)場(chǎng)配置的問(wèn)題,而提供一種穩(wěn)定性和可靠性高的分層重構(gòu)的 NURBS曲線插補(bǔ)器,本發(fā)明的第二個(gè)目的是提供一種具備自由曲線插補(bǔ)能力,且能實(shí)現(xiàn)現(xiàn)場(chǎng) 配置的分層重構(gòu)的NURBS曲線插補(bǔ)配置方法。本發(fā)明為了實(shí)現(xiàn)第一個(gè)目的,采用的技術(shù)方案是提供一種分層重構(gòu)的NURBS曲 線插補(bǔ)器,采用FPGA芯片和IP核,包括有物理層、數(shù)據(jù)層和應(yīng)用層,所述的物理層由微處 理器、中斷管理、定時(shí)器、PLB總線、串口 IP核、IP接口、接口控制模塊、手動(dòng)模式模塊、精插 補(bǔ)模塊和反饋信號(hào)測(cè)量模塊組成,通過(guò)PLB總線連接物理層中各模塊,微處理器通過(guò)局部 總線與片外SRAM進(jìn)行數(shù)據(jù)交換,通過(guò)PLB總線讀取外部FLASH的插補(bǔ)器算法程序到內(nèi)部 執(zhí)行,手動(dòng)模式模塊接收外部手脈和急停信號(hào);所述的數(shù)據(jù)層包括有主機(jī)訪問(wèn)緩沖區(qū)和插 補(bǔ)反饋寄存器組,主機(jī)訪問(wèn)緩沖區(qū)為雙口 RAM,一端通過(guò)接口控制模塊與外部數(shù)控控制器連 接,另一端通過(guò)總線轉(zhuǎn)換接口與PLB總線連接;插補(bǔ)反饋寄存器組存儲(chǔ)各軸位移誤差,為反饋信號(hào)測(cè)量模塊的內(nèi)部寄存器,通過(guò)IP接口與PLB總線連接;所述的應(yīng)用層包括有人機(jī)接 口模塊和粗插補(bǔ)模塊,人機(jī)接口模塊通過(guò)PLB總線與串口 IP核連接,接收外部數(shù)控控制器 寫入的配置信息;粗插補(bǔ)模塊通過(guò)PLB總線與精插補(bǔ)模塊連接,精插補(bǔ)模塊輸出各軸插補(bǔ) 信號(hào)到伺服驅(qū)動(dòng)器。本發(fā)明的一種分層重構(gòu)的NURBS曲線插補(bǔ)器,所述的物理層中的接口控制模塊包 括串接的PCI核和主機(jī)訪問(wèn)控制模塊,所述的PCI核由FPGA制造商提供,通過(guò)PCI接口 與數(shù)控控制器通信;主機(jī)訪問(wèn)控制模塊根據(jù)用戶的需要選擇對(duì)應(yīng)的接口類型,向主機(jī)訪問(wèn) 緩沖區(qū)寫入加工命令和NURBS曲線參數(shù)。本發(fā)明的一種分層重構(gòu)的NURBS曲線插補(bǔ)器,所述數(shù)據(jù)層中的主機(jī)訪問(wèn)緩沖區(qū)含 有插補(bǔ)命令寄存器組和NURBS曲線參數(shù)存儲(chǔ)區(qū),通過(guò)所述的插補(bǔ)命令寄存器組設(shè)定數(shù)控系 統(tǒng)加工參數(shù),含有保存插補(bǔ)周期的插補(bǔ)周期寄存器、保存最大進(jìn)給速度的進(jìn)給速率寄存器、 保存數(shù)控系統(tǒng)允許的最大加速度的加速度寄存器、保存數(shù)控系統(tǒng)允許的最大加加速度的加 加速度寄存器和保存NURBS曲線插補(bǔ)允許的弦高誤差最大值的弦高誤差寄存器。本發(fā)明的一種分層重構(gòu)的NURBS曲線插補(bǔ)器,所述應(yīng)用層的粗插補(bǔ)模塊含有系數(shù) 矩陣生成模塊、前瞻插補(bǔ)模塊和插補(bǔ)表格更新控制模塊,通過(guò)系數(shù)矩陣生成模塊接收主機(jī) 訪問(wèn)緩沖區(qū)的NURBS曲線參數(shù),計(jì)算系數(shù)矩陣并存儲(chǔ);通過(guò)前瞻插補(bǔ)模塊接收主機(jī)訪問(wèn)緩 沖區(qū)的NURBS曲線參數(shù)和加工參數(shù),調(diào)用系數(shù)矩陣,根據(jù)設(shè)定的弦高誤差,計(jì)算下一插補(bǔ)點(diǎn) 坐標(biāo)值,生成前瞻插補(bǔ)表格,輸出至插補(bǔ)表格更新控制模塊;通過(guò)插補(bǔ)表格更新控制模塊接 收前瞻插補(bǔ)模塊的插補(bǔ)表格和反饋信號(hào)測(cè)量模塊的反饋值,根據(jù)加速度和加加速度的限制 條件,更新插補(bǔ)表格,輸出至精插補(bǔ)模塊。本發(fā)明的一種分層重構(gòu)的NURBS曲線插補(bǔ)器,所述數(shù)據(jù)層中的插補(bǔ)反饋寄存器 組含有X軸、Y軸、Z軸和U軸誤差寄存器,通過(guò)X軸誤差寄存器存儲(chǔ)當(dāng)前插補(bǔ)曲線段倒數(shù) 第二個(gè)插補(bǔ)周期的X軸位移誤差,供插補(bǔ)表格更新控制模塊讀??;通過(guò)Y軸誤差寄存器存儲(chǔ) 當(dāng)前插補(bǔ)曲線段倒數(shù)第二個(gè)插補(bǔ)周期的Y軸位移誤差,供插補(bǔ)表格更新控制模塊讀取;通 過(guò)Z軸誤差寄存器存儲(chǔ)當(dāng)前插補(bǔ)曲線段倒數(shù)第二個(gè)插補(bǔ)周期的Z軸位移誤差,供插補(bǔ)表格 更新控制模塊讀?。煌ㄟ^(guò)U軸誤差寄存器存儲(chǔ)當(dāng)前插補(bǔ)曲線段倒數(shù)第二個(gè)插補(bǔ)周期的U軸 位移誤差,供插補(bǔ)表格更新控制模塊讀取。本發(fā)明的一種分層重構(gòu)的NURBS曲線插補(bǔ)器,所述應(yīng)用層的粗插補(bǔ)模塊中的插補(bǔ) 表格更新控制模塊包括下一插補(bǔ)曲線段模塊、新插補(bǔ)加工參數(shù)模塊和粗插補(bǔ)二次計(jì)算模 塊,下一插補(bǔ)曲線段模塊為插補(bǔ)表格中即將加工的一段NURBS曲線,用加工參數(shù)代替曲線 幾何參數(shù);新插補(bǔ)加工參數(shù)模塊重新計(jì)算當(dāng)前插補(bǔ)曲線段的加工參數(shù),用于補(bǔ)償各軸位移 誤差;粗插補(bǔ)二次計(jì)算模塊根據(jù)計(jì)算得到的新插補(bǔ)加工參數(shù),把當(dāng)前曲線段按照插補(bǔ)周期 進(jìn)行粗插補(bǔ)。本發(fā)明為了實(shí)現(xiàn)第二個(gè)目的,采用的技術(shù)方案是為應(yīng)用上述插補(bǔ)器而提供的一 種分層重構(gòu)的NURBS曲線插補(bǔ)器的配置方法,包括以下步驟
⑴開(kāi)始,裝置初始化,啟動(dòng)插補(bǔ)器配置的程序;配置程序在數(shù)控控制器平臺(tái)上運(yùn)行,通 過(guò)串口與NURBS曲線插補(bǔ)器的人機(jī)接口模塊通信,當(dāng)需要現(xiàn)場(chǎng)配置時(shí),點(diǎn)擊“插補(bǔ)器重新配 置”,然后選擇或輸入配置信息,完成后點(diǎn)擊“發(fā)送”按鈕;
⑵判斷通信是否請(qǐng)求中斷在插補(bǔ)器配置程序中,點(diǎn)擊“插補(bǔ)器重新配置”,NURBS曲線插補(bǔ)器產(chǎn)生串行口接受中斷,插補(bǔ)器停止工作,直至配置完成;
如是,則人機(jī)接口模塊按照規(guī)定的通信協(xié)議,逐次判斷配置命令,然后由微處理器寫入 到對(duì)應(yīng)寄存器或控制單元;在發(fā)送的配置數(shù)據(jù)中,第一字節(jié)為起始位OxAA,第二字節(jié)為配 置信息,第三字節(jié)為CRC校驗(yàn)位,第四字節(jié)為結(jié)束位0x55;
如果不發(fā)生通信中斷請(qǐng)求,則插補(bǔ)器按照最近一次配置工作,從未配置的插補(bǔ)器按照 默認(rèn)狀態(tài)工作;
⑶判斷通訊命令字起始位字節(jié)是否正確 如是,則判斷CRC校驗(yàn)字節(jié)是否正確, 如是,則判斷結(jié)束位字節(jié)是否正確, 如是,則配置數(shù)據(jù)有效,轉(zhuǎn)入插補(bǔ)器配置;
如果接收到的起始位字節(jié)、結(jié)束位字節(jié)或CRC校驗(yàn)字節(jié)錯(cuò)誤,則不進(jìn)行插補(bǔ)器配置,并 反饋配置錯(cuò)誤信息,等待新的配置數(shù)據(jù);
⑷判斷配置信息字節(jié)的D7位是否為1
如是,接口控制模式配置為PCI模式;如D7位不為1,則接口控制模式配置為USB模
式;
(5)判斷配置信息字節(jié)的D6位是否為1
如是,主機(jī)訪問(wèn)緩沖區(qū)數(shù)據(jù)寬度配置為32位;如D6位不為1,則主機(jī)訪問(wèn)緩沖區(qū)數(shù)據(jù) 寬度為16位;
(6)判斷配置信息字節(jié)的D5位是否為1
如是,則擴(kuò)展位移反饋計(jì)數(shù)器設(shè)定為40位;如D5位不為1,則位移反饋計(jì)數(shù)器的位數(shù) 為32位;
(7)判斷配置信息字節(jié)的D4位是否為1
如是,則啟動(dòng)位移誤差自動(dòng)補(bǔ)償功能;當(dāng)前插補(bǔ)曲線段結(jié)束前一個(gè)插補(bǔ)周期,計(jì)算位移 反饋信號(hào)與實(shí)際值的差,寫入對(duì)應(yīng)位移誤差寄存器。當(dāng)下一插補(bǔ)曲線段開(kāi)始前讀取各軸位 移誤差寄存器的值,進(jìn)行插補(bǔ)加工參數(shù)、加加速度和加速度的計(jì)算,調(diào)整后的新插補(bǔ)加工參 數(shù)已經(jīng)把各軸位移誤差分散到后續(xù)的插補(bǔ)周期中,從而實(shí)現(xiàn)位移誤差自動(dòng)補(bǔ)償;如D4位不 為1,則不啟動(dòng)位移誤差的自動(dòng)補(bǔ)償;
⑶判斷配置信息字節(jié)的D3位是否為1
如是,編碼器脈沖倍率為4 ;如D3位不為1,編碼器脈沖倍率為1 ; ⑶判斷配置信息字節(jié)的D2位是否為1
如是,輸出脈沖類型為方向+脈沖形式;如D2位不為1,輸出脈沖類型為正、負(fù)脈沖形
式;
(10)根據(jù)Dl DO位設(shè)置輸出軸,00輸出X軸,01輸出Y軸,10輸出Z軸,11輸出U軸;
(11)配置結(jié)束,插補(bǔ)器開(kāi)始工作。本發(fā)明具有以下有益效果
1、本發(fā)明基于FPGA芯片和IP核技術(shù),采用NURBS曲線進(jìn)行插補(bǔ),提高了數(shù)控系統(tǒng)的插 補(bǔ)精度和自由曲線加工能力。2、本發(fā)明的插補(bǔ)器采用三層控制結(jié)構(gòu)使現(xiàn)場(chǎng)配置容易實(shí)現(xiàn),提高了插補(bǔ)器的靈活 性和適應(yīng)能力,擴(kuò)展了插補(bǔ)器的應(yīng)用范圍。
3、本發(fā)明采用分層重構(gòu)的配置方法,各層之間相互協(xié)調(diào),降低了插補(bǔ)器重構(gòu)的風(fēng) 險(xiǎn),提高了數(shù)控系統(tǒng)的加工效率。4、本發(fā)明提供的NURBS曲線插補(bǔ)器的配置方法,可現(xiàn)場(chǎng)配置,降低了插補(bǔ)器重構(gòu) 所需時(shí)間和技術(shù)要求,提高了插補(bǔ)器的穩(wěn)定性和可靠性。
圖1為本發(fā)明NURBS曲線插補(bǔ)器的結(jié)構(gòu)框圖。圖2為本發(fā)明NURBS曲線插補(bǔ)器中接口控制模塊結(jié)構(gòu)框圖。圖3為本發(fā)明NURBS曲線插補(bǔ)器中主機(jī)訪問(wèn)控制模塊的結(jié)構(gòu)框圖。圖4為本發(fā)明NURBS曲線插補(bǔ)器中粗插補(bǔ)模塊的結(jié)構(gòu)框圖。圖5為本發(fā)明NURBS曲線插補(bǔ)器中插補(bǔ)表格更新控制模塊的結(jié)構(gòu)框圖。圖6為本發(fā)明NURBS曲線插補(bǔ)器中插補(bǔ)反饋寄存器組的結(jié)構(gòu)框圖。圖7為本發(fā)明的NURBS曲線插補(bǔ)器配置方法的流程圖。
具體實(shí)施例方式以下結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述
實(shí)施例1 本發(fā)明的一種分層重構(gòu)的NURBS曲線插補(bǔ)器,如圖1所示,采用FPGA芯片和 IP核,包括有物理層、數(shù)據(jù)層和應(yīng)用層,所述的物理層由微處理器、中斷管理、定時(shí)器、PLB 總線、串口 IP核、IP接口、接口控制模塊、手動(dòng)模式模塊、精插補(bǔ)模塊和反饋信號(hào)測(cè)量模塊 組成,通過(guò)PLB總線連接物理層中各模塊,微處理器通過(guò)局部總線與片外SRAM進(jìn)行數(shù)據(jù)交 換,通過(guò)PLB總線讀取外部FLASH的插補(bǔ)器算法程序到內(nèi)部執(zhí)行,手動(dòng)模式模塊接收外部手 脈和急停信號(hào);所述的數(shù)據(jù)層包括有主機(jī)訪問(wèn)緩沖區(qū)和插補(bǔ)反饋寄存器組,主機(jī)訪問(wèn)緩沖 區(qū)為雙口 RAM,一端通過(guò)接口控制模塊與外部數(shù)控控制器連接,另一端通過(guò)總線轉(zhuǎn)換接口與 PLB總線連接;插補(bǔ)反饋寄存器組存儲(chǔ)各軸位移誤差,為反饋信號(hào)測(cè)量模塊的內(nèi)部寄存器, 通過(guò)IP接口與PLB總線連接;所述的應(yīng)用層包括有人機(jī)接口模塊和粗插補(bǔ)模塊,人機(jī)接口 模塊通過(guò)PLB總線與串口 IP核連接,接收外部數(shù)控控制器寫入的配置信息;粗插補(bǔ)模塊通 過(guò)PLB總線與精插補(bǔ)模塊連接,精插補(bǔ)模塊輸出各軸插補(bǔ)信號(hào)到伺服驅(qū)動(dòng)器。本實(shí)施例中,微處理器采用XILINX公司FPGA的PowerPC微處理器,支持C/C++語(yǔ) 言軟件編程,實(shí)現(xiàn)NURBS曲線插補(bǔ)器的應(yīng)用層各模塊控制功能,物理層各模塊采用硬件描 述語(yǔ)言或IP核實(shí)現(xiàn),支持參數(shù)化配置,當(dāng)人機(jī)接口模塊獲得現(xiàn)場(chǎng)配置信息后,由微處理器 寫入物理層各模塊,完成參數(shù)初始化。物理層與應(yīng)用層通過(guò)FPGA片內(nèi)PLB總線實(shí)現(xiàn)通信, 物理層各模塊采用XILINX嵌入式開(kāi)發(fā)軟件EDK提供的用戶IP核定制功能,實(shí)現(xiàn)各模塊的 IP核化,然后作為用戶自定義IP核添加到系統(tǒng)中。數(shù)據(jù)層各寄存器由FPGA內(nèi)部存儲(chǔ)單元 實(shí)現(xiàn),插補(bǔ)命令寄存器組占用主機(jī)訪問(wèn)緩沖區(qū)的底端八個(gè)存儲(chǔ)單元。主機(jī)訪問(wèn)緩沖區(qū)整體 上采用雙口 RAM結(jié)構(gòu),插補(bǔ)反饋寄存器組是在反饋信號(hào)測(cè)量模塊IP核化的過(guò)程中,由EDK 軟件生成,作為反饋信號(hào)測(cè)量模塊的內(nèi)部寄存器存在。如圖2所示,接口控制模塊包括PCI核和主機(jī)訪問(wèn)控制模塊,其中XILINX公司提 供從32bit/33MHZ到64bit/133MHZ的各類PCI總線IP核,能夠直接與PLB相連的只能采 用32bit/33MHZ的PCI總線IP核,限制了數(shù)控控制器與插補(bǔ)器的數(shù)據(jù)交換速度。在實(shí)施方案中,主機(jī)訪問(wèn)控制模塊根據(jù)人機(jī)接口模塊輸入的接口配置信息,實(shí)現(xiàn)USB總線接口和PCI 總線接口的切換。由于USB設(shè)備控制器需要提供主機(jī)接口和外設(shè)接口兩種功能,因此,采用 外接USB設(shè)備控制器CY7C67300實(shí)現(xiàn)。在接口控制模塊中,USB接口協(xié)議和PCI接口協(xié)議 分別由USB設(shè)備控制器和PCI總線IP核實(shí)現(xiàn),主機(jī)訪問(wèn)控制模塊只需要把相關(guān)的數(shù)據(jù)、地 址和控制總線與主機(jī)訪問(wèn)緩沖區(qū)相連,因此在接口轉(zhuǎn)換的過(guò)程中,不需要添加或刪除相關(guān) 控制電路,只要通過(guò)人機(jī)接口模塊設(shè)定即可,具有切換速度快,系統(tǒng)穩(wěn)定性高和操作要求低 的特點(diǎn)。如圖3所示,所述主機(jī)訪問(wèn)緩沖區(qū)包括插補(bǔ)命令寄存器組和NURBS曲線參數(shù)存儲(chǔ) 區(qū),采用雙口 RAM結(jié)構(gòu),由FPGA內(nèi)部存儲(chǔ)單元實(shí)現(xiàn)。雙口 RAM提供了兩個(gè)完全獨(dú)立的端口, 一端連接主機(jī)訪問(wèn)控制模塊,另一端通過(guò)總線轉(zhuǎn)換接口與PLB總線相連。主機(jī)訪問(wèn)控制模 塊將接收的數(shù)據(jù)按照分配的地址寫入到對(duì)應(yīng)緩沖區(qū)單元。寫控制信號(hào)WR和使能信號(hào)ENA 有效后,允許數(shù)據(jù)寫入,地址線AO AlO指向?qū)懭氲拇鎯?chǔ)單元,最大訪問(wèn)空間為2048。數(shù)據(jù) 線DO D15和D16 D31為數(shù)據(jù)總線的低16位和高16位,在數(shù)控控制器訪問(wèn)主機(jī)緩沖區(qū) 時(shí),如果設(shè)置數(shù)據(jù)寬度為16位,則D16 D31無(wú)效;如果設(shè)置數(shù)據(jù)寬度為32位,則所有數(shù)據(jù) 線有效。SYSCLK為系統(tǒng)時(shí)鐘,雙口 RAM兩端的時(shí)鐘信號(hào)保持一致。如圖4所示,所述粗插補(bǔ)模塊包括系數(shù)矩陣生成模塊、前瞻插補(bǔ)模塊和插補(bǔ)表格 更新控制模塊。系數(shù)矩陣生成模塊讀取主機(jī)訪問(wèn)緩沖區(qū)的曲線參數(shù),按照NURBS曲線系數(shù) 矩陣計(jì)算方法得到整條曲線的插補(bǔ)系數(shù);前瞻插補(bǔ)模塊根據(jù)插補(bǔ)系數(shù)和插補(bǔ)命令寄存器中 保存的加工參數(shù),按照弦高誤差的設(shè)定值,把插補(bǔ)曲線分成小的曲線段,每個(gè)曲線段可以 用一組加工參數(shù)表示,整條曲線組成插補(bǔ)表格,供插補(bǔ)表格更新控制模塊調(diào)用;插補(bǔ)表格更 新控制模塊讀取插補(bǔ)反饋寄存器的數(shù)值和插補(bǔ)表格當(dāng)前的曲線段,計(jì)算得到下一個(gè)插補(bǔ)點(diǎn) 坐標(biāo)。如圖5所示,所述插補(bǔ)表格更新控制模塊包括下一插補(bǔ)曲線段、新插補(bǔ)加工參數(shù) 和粗插補(bǔ)二次計(jì)算。前瞻插補(bǔ)的結(jié)果是把待加工曲線分成加工參數(shù)不同的曲線段,所有的曲線段按照 順序排列生成插補(bǔ)表格,輸出給插補(bǔ)表格更新控制模塊。如果不進(jìn)行位移誤差自動(dòng)補(bǔ)償,則 經(jīng)過(guò)粗插補(bǔ)二次計(jì)算,表格又轉(zhuǎn)化成一個(gè)插補(bǔ)周期內(nèi)各軸位移變化量,輸出到精插補(bǔ)模塊; 如果進(jìn)行位移誤差的自動(dòng)補(bǔ)償,則在當(dāng)前插補(bǔ)曲線段倒數(shù)第二個(gè)插補(bǔ)周期讀取各軸誤差寄 存器的值,然后計(jì)算出下一段插補(bǔ)曲線的新參數(shù),粗插補(bǔ)二次計(jì)算按照最新的加工參數(shù)計(jì) 算。新插補(bǔ)加工參數(shù)的計(jì)算首先假設(shè)插補(bǔ)曲線段的插補(bǔ)周期個(gè)數(shù)和加速度不變,僅改變加 加速度的值,加加速度的新值按照公式(1)計(jì)算
_j χ (v-賄 + y^nj )
其中,V5kot表示插補(bǔ)曲線段起點(diǎn)進(jìn)給速率,Vmd表示插補(bǔ)曲線段終點(diǎn)進(jìn)給速率,A代
表加速度,S表示補(bǔ)償前曲線段弧長(zhǎng),表示位移誤差。如果加加速度的新值在允許的
加速度范圍內(nèi),則保存新加工參數(shù)計(jì)算,否則,令加加速度取最大值,然后令加速度步進(jìn)增 加,但不能超過(guò)加速度的最大允許值。
如圖6所示,所述插補(bǔ)反饋寄存器組為反饋信號(hào)測(cè)量模塊的內(nèi)部寄存器,插補(bǔ)反 饋寄存器組包括X軸誤差寄存器、Y軸誤差寄存器、Z軸誤差寄存器和U軸誤差寄存器。反 饋信號(hào)測(cè)量模塊是以用戶自定義IP核的形式添加到系統(tǒng)中。EDK開(kāi)發(fā)軟件提供IP接口,每 個(gè)用戶自定義IP核通過(guò)IP接口與PLB總線連接。IP接口提供創(chuàng)建內(nèi)部寄存器的選項(xiàng)和相 應(yīng)的控制信號(hào)。反饋信號(hào)測(cè)量模塊向插補(bǔ)反饋寄存器組中寫入數(shù)據(jù)時(shí),片選信號(hào)CS和寫控 制信號(hào)WR有效,CNTLO和CNTLl譯碼決定訪問(wèn)的軸誤差寄存器,數(shù)據(jù)隨后寫入到寄存器內(nèi) 部,微處理器通過(guò)PLB總線和IP接口讀取數(shù)據(jù)。實(shí)施例2 本發(fā)明NURBS曲線插補(bǔ)器應(yīng)用于數(shù)控系統(tǒng)中,其首先通過(guò)人機(jī)接口模 塊,獲得現(xiàn)場(chǎng)配置信息,完成插補(bǔ)器的基本配置,然后由數(shù)控控制器寫入待插補(bǔ)NURBS曲線 的參數(shù)信息和插補(bǔ)命令,并存儲(chǔ)在主機(jī)訪問(wèn)緩沖區(qū)和相關(guān)寄存器中;微處理器讀取插補(bǔ)信 息,送入系數(shù)矩陣生成模塊和前瞻插補(bǔ)模塊,經(jīng)插補(bǔ)表格更新控制模塊和精插補(bǔ)模塊,產(chǎn)生 驅(qū)動(dòng)數(shù)控系統(tǒng)各軸伺服電機(jī)的脈沖信號(hào)。如圖7所示,本發(fā)明提供的NURBS曲線插補(bǔ)器的配置方法,通過(guò)運(yùn)行人機(jī)接口程 序,實(shí)現(xiàn)對(duì)NURBS曲線插補(bǔ)器的配置,配置方法具體步驟如下
⑴開(kāi)始,裝置初始化,啟動(dòng)插補(bǔ)器配置程序;插補(bǔ)器配置程序運(yùn)行在數(shù)控控制器平臺(tái) 上,通過(guò)串口與NURBS曲線插補(bǔ)器的人機(jī)接口模塊通信,當(dāng)需要現(xiàn)場(chǎng)配置時(shí),點(diǎn)擊“插補(bǔ)器 重新配置”,然后選擇或輸入配置信息,完成后點(diǎn)擊“發(fā)送”按鈕;
⑵判斷通信是否請(qǐng)求中斷即在插補(bǔ)器配置程序中,點(diǎn)擊“插補(bǔ)器重新配置”,NURBS曲 線插補(bǔ)器產(chǎn)生串行口接受中斷,插補(bǔ)器停止工作,直至配置完成;
如是,則人機(jī)接口模塊按照規(guī)定的通信協(xié)議,逐次判斷配置命令,然后由微處理器寫入 到對(duì)應(yīng)寄存器或控制單元;在發(fā)送的配置數(shù)據(jù)中,第一字節(jié)為起始位OxM,第二字節(jié)為配 置信息,第三字節(jié)為CRC校驗(yàn)位,第四字節(jié)為結(jié)束位0x55; ⑶判斷通訊命令字起始位字節(jié)是否正確 如是,則判斷CRC校驗(yàn)字節(jié)是否正確, 如是,則判斷結(jié)束位字節(jié)是否正確, 如是,則配置數(shù)據(jù)有效,轉(zhuǎn)入插補(bǔ)器配置; ⑷判斷配置信息字節(jié)的D7位是否為1 如是,接口控制模式配置為PCI模式; (5)判斷配置信息字節(jié)的D6位是否為1 如是,主機(jī)訪問(wèn)緩沖區(qū)數(shù)據(jù)寬度配置為32位;
(6)判斷配置信息字節(jié)的D5位是否為1 如是,則擴(kuò)展位移反饋計(jì)數(shù)器,設(shè)定為40位;
(7)判斷配置信息字節(jié)的D4位是否為1
如是,則啟動(dòng)位移誤差自動(dòng)補(bǔ)償功能;當(dāng)前插補(bǔ)曲線段結(jié)束前一個(gè)插補(bǔ)周期,計(jì)算位移 反饋信號(hào)與實(shí)際值的差,寫入對(duì)應(yīng)位移誤差寄存器。當(dāng)下一插補(bǔ)曲線段開(kāi)始前,讀取各軸位 移誤差寄存器的值,進(jìn)行插補(bǔ)加工參數(shù),如加加速度和加速度的計(jì)算,調(diào)整后的新插補(bǔ)加工 參數(shù)已經(jīng)把各軸位移誤差分散到后續(xù)的插補(bǔ)周期中,從而實(shí)現(xiàn)位移誤差自動(dòng)補(bǔ)償; ⑶判斷配置信息字節(jié)的D3位是否為1 如是,編碼器脈沖倍率為4;⑶判斷配置信息字節(jié)的D2位是否為1 如是,輸出脈沖類型為方向+脈沖形式;
(10)根據(jù)Dl DO位設(shè)置輸出軸,00輸出X軸,01輸出Y軸,10輸出Z軸,11輸出U軸; 如果配置信息的D2位不為1,輸出脈沖類型為正、負(fù)脈沖形式;
如果配置信息的D3位不為1,編碼器脈沖倍率為1 ; 如果配置信息的D4位不為1,則不啟動(dòng)位移誤差的自動(dòng)補(bǔ)償; 如果配置信息的D5位不為1,則位移反饋計(jì)數(shù)器的位數(shù)為32位; 如果配置信息的D6位不為1,則主機(jī)訪問(wèn)緩沖區(qū)數(shù)據(jù)寬度為16位; 如果配置信息的D7位不為1,則接口控制模式配置為USB模式;
(11)配置結(jié)束,插補(bǔ)器開(kāi)始工作;
如果接收到的起始位字節(jié)、結(jié)束位字節(jié)或CRC校驗(yàn)字節(jié)錯(cuò)誤,則不進(jìn)行插補(bǔ)器配置,并 反饋配置錯(cuò)誤信息,等待新的配置數(shù)據(jù);
如果不發(fā)生通信中斷請(qǐng)求,則插補(bǔ)器按照最近一次配置工作,從未配置的插補(bǔ)器按照 默認(rèn)狀態(tài)工作。 本發(fā)明的插補(bǔ)器基于FPGA芯片和IP核技術(shù),采用NURBS曲線進(jìn)行插補(bǔ),結(jié)構(gòu)簡(jiǎn) 單,成本較低。本發(fā)明的NURBS曲線插補(bǔ)器的配置方法,具備自由曲線插補(bǔ)能力,且能實(shí)現(xiàn) 現(xiàn)場(chǎng)配置,降低了插補(bǔ)器重構(gòu)所需時(shí)間和技術(shù)要求,提高了插補(bǔ)器的穩(wěn)定性和可靠性,擴(kuò)展 和提高了數(shù)控系統(tǒng)的加工能力。
權(quán)利要求
1.一種分層重構(gòu)的NURBS曲線插補(bǔ)器,采用FPGA芯片和IP核技術(shù),其特征在于包 括有物理層、數(shù)據(jù)層和應(yīng)用層,所述的物理層由微處理器、中斷管理、定時(shí)器、PLB總線、串口 IP核、IP接口、接口控制模塊、手動(dòng)模式模塊、精插補(bǔ)模塊和反饋信號(hào)測(cè)量模塊組成,通過(guò) PLB總線連接物理層中各模塊,微處理器通過(guò)局部總線與片外SRAM進(jìn)行數(shù)據(jù)交換,通過(guò)PLB 總線讀取外部FLASH的插補(bǔ)器算法程序到內(nèi)部執(zhí)行,手動(dòng)模式模塊接收外部手脈和急停 信號(hào);所述的數(shù)據(jù)層包括有主機(jī)訪問(wèn)緩沖區(qū)和插補(bǔ)反饋寄存器組,主機(jī)訪問(wèn)緩沖區(qū)為雙口 RAM,一端通過(guò)接口控制模塊與外部數(shù)控控制器連接,另一端通過(guò)總線轉(zhuǎn)換接口與PLB總線 連接;插補(bǔ)反饋寄存器組存儲(chǔ)各軸位移誤差,為反饋信號(hào)測(cè)量模塊的內(nèi)部寄存器,通過(guò)IP 接口與PLB總線連接;所述的應(yīng)用層包括有人機(jī)接口模塊和粗插補(bǔ)模塊,人機(jī)接口模塊通 過(guò)PLB總線與串口 IP核連接,接收外部數(shù)控控制器寫入的配置信息;粗插補(bǔ)模塊通過(guò)PLB 總線與精插補(bǔ)模塊連接,精插補(bǔ)模塊輸出各軸插補(bǔ)信號(hào)到伺服驅(qū)動(dòng)器。
2.根據(jù)權(quán)利要求1所述的一種分層重構(gòu)的NURBS曲線插補(bǔ)器,其特征在于所述的物 理層中的接口控制模塊包括串接的PCI核和主機(jī)訪問(wèn)控制模塊,所述的PCI核由FPGA制 造商提供,通過(guò)PCI接口與數(shù)控控制器通信;主機(jī)訪問(wèn)控制模塊根據(jù)用戶的需要選擇對(duì)應(yīng) 的PCI接口或USB接口,向主機(jī)訪問(wèn)緩沖區(qū)寫入加工命令和NURBS曲線參數(shù)。
3.根據(jù)權(quán)利要求1所述的一種分層重構(gòu)的NURBS曲線插補(bǔ)器,其特征在于所述數(shù)據(jù) 層中的主機(jī)訪問(wèn)緩沖區(qū)含有插補(bǔ)命令寄存器組和NURBS曲線參數(shù)存儲(chǔ)區(qū),通過(guò)所述的插補(bǔ) 命令寄存器組設(shè)定數(shù)控系統(tǒng)加工參數(shù),含有保存插補(bǔ)周期的插補(bǔ)周期寄存器、保存最大進(jìn) 給速度的進(jìn)給速率寄存器、保存數(shù)控系統(tǒng)允許的最大加速度的加速度寄存器、保存數(shù)控系 統(tǒng)允許的最大加加速度的加加速度寄存器和保存NURBS曲線插補(bǔ)允許的弦高誤差最大值 的弦高誤差寄存器。
4.根據(jù)權(quán)利要求1所述的一種分層重構(gòu)的NURBS曲線插補(bǔ)器,其特征在于所述應(yīng)用 層的粗插補(bǔ)模塊含有系數(shù)矩陣生成模塊、前瞻插補(bǔ)模塊和插補(bǔ)表格更新控制模塊,通過(guò)系 數(shù)矩陣生成模塊接收主機(jī)訪問(wèn)緩沖區(qū)的NURBS曲線參數(shù),計(jì)算系數(shù)矩陣并存儲(chǔ);通過(guò)前瞻 插補(bǔ)模塊接收主機(jī)訪問(wèn)緩沖區(qū)的NURBS曲線參數(shù)和加工參數(shù),調(diào)用系數(shù)矩陣,根據(jù)設(shè)定的 弦高誤差,計(jì)算下一插補(bǔ)點(diǎn)坐標(biāo)值,生成前瞻插補(bǔ)表格,輸出至插補(bǔ)表格更新控制模塊;插 補(bǔ)表格更新控制模塊接收前瞻插補(bǔ)模塊的插補(bǔ)表格和反饋信號(hào)測(cè)量模塊的反饋值,根據(jù)加 速度和加加速度的限制條件,更新插補(bǔ)表格,輸出至精插補(bǔ)模塊。
5.根據(jù)權(quán)利要求1所述的一種分層重構(gòu)的NURBS曲線插補(bǔ)器,其特征在于所述數(shù)據(jù) 層中的插補(bǔ)反饋寄存器組含有X軸、Y軸、Z軸和U軸誤差寄存器,通過(guò)X軸誤差寄存器存 儲(chǔ)當(dāng)前插補(bǔ)曲線段倒數(shù)第二個(gè)插補(bǔ)周期的X軸位移誤差,供插補(bǔ)表格更新控制模塊讀??; 通過(guò)Y軸誤差寄存器存儲(chǔ)當(dāng)前插補(bǔ)曲線段倒數(shù)第二個(gè)插補(bǔ)周期的Y軸位移誤差,供插補(bǔ)表 格更新控制模塊讀??;通過(guò)Z軸誤差寄存器存儲(chǔ)當(dāng)前插補(bǔ)曲線段倒數(shù)第二個(gè)插補(bǔ)周期的Z 軸位移誤差,供插補(bǔ)表格更新控制模塊讀??;通過(guò)U軸誤差寄存器存儲(chǔ)當(dāng)前插補(bǔ)曲線段倒 數(shù)第二個(gè)插補(bǔ)周期的U軸位移誤差,供插補(bǔ)表格更新控制模塊讀取。
6.根據(jù)權(quán)利要求1或4所述的一種分層重構(gòu)的NURBS曲線插補(bǔ)器,其特征在于所述應(yīng) 用層的粗插補(bǔ)模塊中的插補(bǔ)表格更新控制模塊包括下一插補(bǔ)曲線段模塊、新插補(bǔ)加工參數(shù) 模塊和粗插補(bǔ)二次計(jì)算模塊,下一插補(bǔ)曲線段模塊為插補(bǔ)表格中即將加工的一段NURBS曲 線,用加工參數(shù)代替曲線幾何參數(shù);新插補(bǔ)加工參數(shù)模塊重新計(jì)算當(dāng)前插補(bǔ)曲線段的加工參數(shù),用于補(bǔ)償各軸位移誤差;粗插補(bǔ)二次計(jì)算模塊根據(jù)計(jì)算得到的新插補(bǔ)加工參數(shù),把當(dāng) 前曲線段按照插補(bǔ)周期進(jìn)行粗插補(bǔ)。
7. 一種應(yīng)用上述權(quán)利要求1所述的分層重構(gòu)的NURBS曲線插補(bǔ)器的配置方法,其特征 在于包括以下步驟⑴開(kāi)始,裝置初始化,啟動(dòng)插補(bǔ)器配置的程序;配置程序在數(shù)控控制器平臺(tái)上運(yùn)行,通 過(guò)串口與NURBS曲線插補(bǔ)器的人機(jī)接口模塊通信,當(dāng)需要現(xiàn)場(chǎng)配置時(shí),點(diǎn)擊“插補(bǔ)器重新配 置”,然后選擇或輸入配置信息,完成后點(diǎn)擊“發(fā)送”按鈕;⑵判斷通信是否請(qǐng)求中斷在插補(bǔ)器配置程序中,點(diǎn)擊“插補(bǔ)器重新配置”,NURBS曲線 插補(bǔ)器產(chǎn)生串行口接受中斷,插補(bǔ)器停止工作,至到配置完成;如是,則人機(jī)接口模塊按照規(guī)定的通信協(xié)議,逐次判斷配置命令,然后由微處理器寫入 到對(duì)應(yīng)寄存器或控制單元;在發(fā)送的配置數(shù)據(jù)中,第一字節(jié)為起始位OxAA,第二字節(jié)為配 置信息,第三字節(jié)為CRC校驗(yàn)位,第四字節(jié)為結(jié)束位0x55;如果不發(fā)生通信中斷請(qǐng)求,則插補(bǔ)器按照最近一次配置工作,從未配置的插補(bǔ)器按照 默認(rèn)狀態(tài)工作;⑶判斷通訊命令字起始位字節(jié)是否正確 如是,則判斷CRC校驗(yàn)字節(jié)是否正確, 如是,則判斷結(jié)束位字節(jié)是否正確, 如是,則配置數(shù)據(jù)有效,轉(zhuǎn)入插補(bǔ)器配置;如果接收到的起始位字節(jié)、結(jié)束位字節(jié)或CRC校驗(yàn)字節(jié)錯(cuò)誤,則不進(jìn)行插補(bǔ)器配置,并 反饋配置錯(cuò)誤信息,等待新的配置數(shù)據(jù);⑷判斷配置信息字節(jié)的D7位是否為1 如是,接口控制模式配置為PCI模式;如D7位不為1,則接口控制模式配置為USB模式;ω判斷配置信息字節(jié)的D6位是否為1 如是,主機(jī)訪問(wèn)緩沖區(qū)數(shù)據(jù)寬度配置為32位;如D6位不為1,則主機(jī)訪問(wèn)緩沖區(qū)數(shù)據(jù) 寬度為16位;(6)判斷配置信息字節(jié)的D5位是否為1如是,則擴(kuò)展位移反饋計(jì)數(shù)器設(shè)定為40位;如D5位不為1,則位移反饋計(jì)數(shù)器的位數(shù) 為32位;(7)判斷配置信息字節(jié)的D4位是否為1如是,則啟動(dòng)位移誤差自動(dòng)補(bǔ)償功能;當(dāng)前插補(bǔ)曲線段結(jié)束前一個(gè)插補(bǔ)周期,計(jì)算位移 反饋信號(hào)與實(shí)際值的差,寫入對(duì)應(yīng)位移誤差寄存器。當(dāng)下一插補(bǔ)曲線段開(kāi)始前讀取各軸位 移誤差寄存器的值,進(jìn)行插補(bǔ)加工參數(shù)、加加速度和加速度的計(jì)算,調(diào)整后的新插補(bǔ)加工參 數(shù)已經(jīng)把各軸位移誤差分散到后續(xù)的插補(bǔ)周期中,從而實(shí)現(xiàn)位移誤差自動(dòng)補(bǔ)償;如D4位不 為1,則不啟動(dòng)位移誤差的自動(dòng)補(bǔ)償;⑶判斷配置信息字節(jié)的D3位是否為1 如是,編碼器脈沖倍率為4 ;如D3位不為1,編碼器脈沖倍率為1 ; ⑶判斷配置信息字節(jié)的D2位是否為1 如是,輸出脈沖類型為方向+脈沖形式;如D2位不為1,輸出脈沖類型為正、負(fù)脈沖形式;(10)根據(jù)Dl DO位設(shè)置輸出軸,00輸出X軸,01輸出Y軸,10輸出Z軸,11輸出U軸;(11)配置結(jié)束,插補(bǔ)器開(kāi)始工作。
全文摘要
本發(fā)明涉及一種分層重構(gòu)的NURBS曲線插補(bǔ)器及其配置方法,采用FPGA芯片和IP核技術(shù),包括物理層、數(shù)據(jù)層和應(yīng)用層。物理層由微處理器、中斷管理、定時(shí)器、PLB總線、串口IP核、IP接口、接口控制模塊、手動(dòng)模式模塊、精插補(bǔ)模塊和反饋信號(hào)測(cè)量模塊組成;數(shù)據(jù)層含有主機(jī)訪問(wèn)緩沖區(qū)和插補(bǔ)反饋寄存器組;數(shù)據(jù)層存儲(chǔ)從數(shù)控控制器寫入的NURBS曲線參數(shù)、加工命令和從反饋信號(hào)測(cè)量模塊計(jì)算得到的各軸位移誤差;應(yīng)用層含有人機(jī)接口模塊和粗插補(bǔ)模塊,應(yīng)用層接收現(xiàn)場(chǎng)配置信息,實(shí)現(xiàn)NURBS曲線粗插補(bǔ)。三層控制結(jié)構(gòu)使現(xiàn)場(chǎng)配置易實(shí)現(xiàn),降低了插補(bǔ)器重新配置所需時(shí)間和技術(shù)要求,提高了穩(wěn)定性和可靠性,擴(kuò)展了數(shù)控系統(tǒng)的加工能力。
文檔編號(hào)G05B19/41GK102141795SQ20111007077
公開(kāi)日2011年8月3日 申請(qǐng)日期2011年3月23日 優(yōu)先權(quán)日2011年3月23日
發(fā)明者倪效勇, 張紅劍, 王典洪 申請(qǐng)人:中國(guó)地質(zhì)大學(xué)(武漢)