基于A(yíng)RM設計的嵌入式數控系統方案
3 軟件設計
31人機交互與G代碼解釋
人機交互界面如圖3所示。陔界面是用QT/Embedded嵌人式罔形庫設計的。QTEmbedded 是由-rroll—tech公司的嵌入式GUI開(kāi)發(fā)T具,控件豐富,并且支持虛擬幀緩沖。通過(guò)該界面可以實(shí)現編輯G代碼,語(yǔ)法檢查、預覽加1 軌跡、與下位機通信等功能。
G代碼解釋的原理如同4所示。程序中定義了兩個(gè)數據結構PreGCode和GCode分別用來(lái)保存語(yǔ)法檢查后的中間結果和數據分析后生成的G代碼類(lèi)型、節點(diǎn)坐標、圓弧半徑等數據,供仿真和加工使用。
3.2CAN通信
本系統使用CAN控制器MCP2510完成CAN總線(xiàn)幀的發(fā)送和接收任務(wù)。通信數據分為命令幀和數據幀兩種。通信協(xié)議利用了CAN總線(xiàn)的29位擴展標識符保存了一些協(xié)議中必要的信息,如表1所示。由于CAN支持多主機和多從機模式,所以為源設備和目的設備地址分配了ID,以區分數據的來(lái)源和目的地。數據幀的數據量較大,必須分批傳送,所以標識符里還包含了數據包分組號,用來(lái)排序。
系統使用中斷模式傳輸數據,共開(kāi)啟4項中斷,分別為錯誤消極中斷、錯誤報警中斷以及發(fā)送中斷和接收中斷。如果為前兩種中斷,程序將復位MCP2510芯片。如果為發(fā)送中斷,則表示發(fā)送完畢,程序將置位發(fā)送中斷標志位以通知主程序。如果為接收中斷,程序將檢查標識符的ID28一ID21,判斷該幀的類(lèi)型,然后根據幀的類(lèi)型分別進(jìn)行處理。
3.3插補算法
SM5004芯片是斯邁迪公司的一款高性能運動(dòng)控制FPGA芯片,能夠實(shí)現4軸聯(lián)動(dòng),驅動(dòng)脈沖頻率高達5MPPS,插補精度高達0.5I SB,單次輸出脈沖數高達2G,支持4種插補模式:直線(xiàn)插補、圓弧插補、連續插補和位模式插補。
對于直線(xiàn)和圓弧,SM5004有自己的插補算法,只要提供終點(diǎn)坐標、速度等插補所需的參數,SM5004就能自動(dòng)完成插補。
位模式插補是把高位CPU計算的插補數據以數據包的方式接收后,以指定的驅動(dòng)速度連續輸出插補脈沖。位模式插補的原理是在每個(gè)寄存器上2軸或3軸的+/一方向驅動(dòng)脈沖設定為1位1脈沖,輸出驅動(dòng)脈沖時(shí)設定為1,不輸出脈沖時(shí)設定為0。位模式插補提供了一種靈活的插補機制,用戶(hù)可以自己編寫(xiě)直線(xiàn)、圓弧、樣條曲線(xiàn)、函數曲線(xiàn)等各種曲線(xiàn)的插補算法。程序使用數字積分的方法實(shí)現了直線(xiàn)和二次曲線(xiàn)的插補。數字積分插補(又稱(chēng)DDA插補)的原理如圖5所示。通過(guò)將積分區間[a,b]分割成足夠小的區間△f,將函數y=f(t)的積分運算變?yōu)樽兞康那蠛瓦\算,即
數字運算時(shí),At一般取最小單位“1”,即一個(gè)脈沖當量,則:
評論