基于A(yíng)RM9的數控銑床系統設計方案
引言
本文引用地址:http://dyxdggzs.com/article/272744.htm目前國內使用的數控系統通常是在通用計算機或工控機的基礎上加裝運動(dòng)控制卡,使用Windows操作系統,并安裝昂貴的數控軟件構成的。這樣的系統軟件成本高、硬件資源浪費、功耗大。而嵌入式產(chǎn)品具有系統結構精簡(jiǎn)、功耗低等特點(diǎn),能彌補傳統數控系統的不足。免費軟件Linux 操作系統進(jìn)軍嵌入式領(lǐng)域,更使得嵌入式產(chǎn)品能夠充分發(fā)揮廉價(jià)、高性?xún)r(jià)比的優(yōu)勢。
本文所述的正是以L(fǎng)inux操作系統為軟件平臺,以ARM9微處理器為硬件平臺,以數控銑床為背景,自主研發(fā)數控硬件及軟件的嵌入式數控銑床控制系統。
1 系統硬件組成
系統的硬件由ARM系統主板和擴展板卡組成。
硬件結構如圖1。

1.1 ARM系統主板
根據系統需要,主板上主要包括中央處理器S3C2410X、SDRAM 內存、NAND FLASH ( 64M )、串口、CS8900A以太網(wǎng)芯片( 10M 網(wǎng)口)、LCD顯示器接口、USB接口、擴展總線(xiàn)接口等。
中央處理器S3C2410X內部資源十分豐富,包括1個(gè)LCD控制器、SDRAM 控制器、3個(gè)通道的UART、4個(gè)具有PWM 功能的計時(shí)器和1個(gè)內部時(shí)鐘、2個(gè)USB主機接口和1個(gè)USB設備接口等。S3C2410X 處理器主頻最高為202MH z, 內置16 KB 指令高速緩存和16KB數據高速緩存,5級指令流水線(xiàn),帶有乘累加運單元,可以運行起嵌入式Linux 操作系統并能進(jìn)行較為復雜的信息處理,基本滿(mǎn)足用戶(hù)對快速性的要求。并且采用NAND FLASH 與SDRAM 組合來(lái)存儲數據和程序,可以獲得非常高的性?xún)r(jià)比。
系統采用10M 的以太網(wǎng)接口芯片CS8900A, 這是用于嵌入式設備的低成本以太局域網(wǎng)控制器。通過(guò)標準網(wǎng)絡(luò )接口數控系統可以連接到Internet或局域網(wǎng)上。
1.2 擴展板卡
擴展板卡即把步進(jìn)電機驅動(dòng)器控制接口、伺服電機驅動(dòng)器控制接口、編碼器接口集成在一個(gè)板子上,作為控制數控銑床的控制卡,來(lái)控制步進(jìn)電機和伺服電機的運轉。
機床目前設計為3軸聯(lián)動(dòng),為未來(lái)能擴展為5軸,設計留有5組接線(xiàn)端子。每組需要兩個(gè)接線(xiàn)端子與驅動(dòng)器相連(采用單脈沖方式),其中一個(gè)端子通過(guò)導線(xiàn)連接步進(jìn)電機驅動(dòng)器的CP, 提供給步進(jìn)電機脈沖信號,控制它轉動(dòng),另一個(gè)接驅動(dòng)器的CW, 控制電機的轉動(dòng)方向,使電機可以完成正轉、反轉和停止動(dòng)作。對電機的速度控制是通過(guò)軟件控制脈沖的輸出頻率實(shí)現的。經(jīng)比較決定選擇三相混合式步進(jìn)電機驅動(dòng)器BD3SFB。因BD3SFB驅動(dòng)器可兼容兩相、四相和五相的工作方式,且有更高的定位精度,可控制電機在任意細分步數情況下,如6000步/轉時(shí)精確定位。 電機和驅動(dòng)器間僅用3根線(xiàn)連接,與交流異步電機一樣,減少連線(xiàn)出錯的可能性。
伺服電機的控制與反饋由驅動(dòng)器完成,數控系統只需將指令信號發(fā)送至驅動(dòng)器中。由處理器的通用I/O口產(chǎn)生伺服電機的脈沖信號和方向信號。伺服驅動(dòng)器一般需要差分信號作為輸入,故采用26LS31芯片作為其輸出驅動(dòng)電路,經(jīng)過(guò)光耦的隔離直接連接到伺服電機驅動(dòng)器上。
對步進(jìn)電機采用開(kāi)環(huán)控制,但為了將銑刀具體位置呈現給用戶(hù),同時(shí)修正控制及運動(dòng)部分不可預見(jiàn)的誤差,可以在步進(jìn)電機上安裝編碼器。通過(guò)聯(lián)軸器將二者相連。編碼器脈沖信號經(jīng)8253計數后可得到被測量的數字信號,然后經(jīng)地址鎖存器連接到擴展總線(xiàn),由處理器進(jìn)行處理。8253復用8 位數據總線(xiàn)表示計數值,處理器先讀低8位后讀高8位,計數范圍是0 ~65 535。同時(shí),鑒向器占用數據總線(xiàn)3 位表示各電機旋轉方向。在單脈沖模式下,編碼器脈沖由D觸發(fā)器CD4013鑒相,處理器通過(guò)判斷高低電平得知電機旋轉方向。為了抗干擾和實(shí)現電氣隔離,在與步進(jìn)電機驅動(dòng)器的脈沖信號和方向信號的端口連接時(shí)采用了光電隔離器件。D觸發(fā)器鑒相如圖2。

2 系統軟件設計
傳統數控系統的使用流程是先由用戶(hù)編輯G代碼或其它格式的加工文件,數控系統根據該文件中代碼的意義,控制刀具做出相應的動(dòng)作。所以在軟件方面,系統需要提供文本編輯功能、對加工文件的編譯功能、電機驅動(dòng)功能等。為了使用戶(hù)驗證加工程序的正誤,系統還要提供仿真功能,將走刀過(guò)程展現給用戶(hù)。
為了實(shí)現網(wǎng)絡(luò )功能,本系統還移植了嵌入式瀏覽器Konqueror/Embedded, 這是一款自由軟件。由于瀏覽器可以訪(fǎng)問(wèn)HTTP、FTP、SMTP、NNTP等多種不同協(xié)議的服務(wù),故安裝瀏覽器可謂一舉多得,移植過(guò)程參考文獻。軟件結構如圖3所示。

2.1 操作系統平臺的搭建
2.2 伺服電機和步進(jìn)電機驅動(dòng)程序
伺服電機需要的信號是PWM 波形控制信號,因此伺服電機驅動(dòng)程序主要是實(shí)現脈寬調制。這個(gè)脈寬調制是利用一個(gè)定時(shí)器,并根據由SPWM 算法得到的延遲時(shí)間,控制一個(gè)通用I /O端口高低電平持續時(shí)間得到的。系統產(chǎn)生的PWM 波形如下圖4所示。

而在三個(gè)步進(jìn)電機的設備驅動(dòng)程序中,向步進(jìn)電機發(fā)送連續信號定義為寫(xiě)操作; 從8253中讀數據定義為讀操作; 由鍵盤(pán)控制各電機動(dòng)作作為自定義操作。
2.3 G代碼編譯
G代碼是國際通用的機床加工代碼,其編譯的思想是: 首先將G代碼文件讀入流中,逐行分析其意義,并且帶有查錯功能。當遇到子程序跳轉時(shí)記錄文件指示出其位置和循環(huán)次數時(shí),子程序返回后從記錄位置繼續執行;遇到主軸旋轉時(shí),在編譯文件中寫(xiě)入旋轉標志和PWM 的脈寬; 遇到插補命令時(shí)寫(xiě)入脈沖標志和每步的三坐標脈沖信號諸如此類(lèi)。最后生成記錄整套加工步驟的二進(jìn)制文件。編譯流程如圖5所示。

2.4 插補算法與刀補算法
數控銑床控制系統使用逐點(diǎn)比較法實(shí)現直線(xiàn)和圓弧插補算法。以刀的當前位置為起點(diǎn),以G代碼給定位置為終點(diǎn),在其間的直線(xiàn)或圓弧上插入擬合點(diǎn),根據這些點(diǎn)產(chǎn)生一系列三坐標脈沖信號。逐點(diǎn)比較法的缺陷是圓弧插補只能走x 或y 方向的正交線(xiàn),而缺失了最應該在圓弧插補中出現的由x、y 方向合成的±45/135°斜線(xiàn),系統根據圓弧相對于x 或y 軸的傾向性,使插補過(guò)程中在圓弧的±45 /135°附近盡量使用斜線(xiàn),使得插補精度更高、步數更少。圖6 是由M atlab仿真得到的改進(jìn)算法和傳統算法的比較,如果定義理想曲線(xiàn)和擬和曲線(xiàn)的誤差為兩曲線(xiàn)相夾的面積(圖中灰色部分) , 可看出改進(jìn)算法的誤差較小。

編寫(xiě)加工程序時(shí),一般只考慮刀具中心沿零件輪廓切削,而忽略刀具半徑對加工的影響,在實(shí)際加工時(shí)需要在刀具中心與刀具切削點(diǎn)之間進(jìn)行位置偏置,補償上述影響。這種變換過(guò)程即為刀具補償。系統采用的是帶有過(guò)度連接的C刀具補償算法,該算法比較復雜,與許多因素有關(guān),為此定義了一個(gè)結構作為刀補函數的參數,該函數更改插補始末位置、增加過(guò)渡曲線(xiàn)實(shí)現刀補功能。參數結構如下,

3 結論
以ARM9微處理器為硬件平臺,免費的Linux操作系統為軟件平臺,開(kāi)發(fā)了嵌入式數控銑床,實(shí)現了對步進(jìn)電機和伺服電機的控制。 在對制作的電路板和編程的系統程序實(shí)驗的基礎上表明,與傳統數控系統相比,嵌入式數控系統發(fā)揮了其耗能少、成本低、體積小等優(yōu)勢。


光耦相關(guān)文章:光耦原理
linux相關(guān)文章:linux教程
伺服電機相關(guān)文章:伺服電機工作原理
脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理 脈寬調制相關(guān)文章:脈寬調制原理 三相異步電動(dòng)機相關(guān)文章:三相異步電動(dòng)機原理
評論