數(shù)控機床加工時,若突然發(fā)生斷電,常常要求數(shù)控系統(tǒng)能準確地保存一些重要參數(shù),如加工速度、斷電位置、主軸速度、加工行數(shù)等,以便在來電時能在斷點位置以相同的參數(shù)繼續(xù)加工。這不僅可縮短加工時間,更重要的是能保證產(chǎn)品質量。Windows CE是Microsoft為多種嵌入式系統(tǒng)而設計的一種緊湊、高效的模塊化操作系統(tǒng),支持多進程、多線程、搶先式多任務操作,能滿足實時控制的要求。數(shù)控系統(tǒng)掉電保護是強實時性的任務,可以通過觸發(fā)中斷的方式來獲得Windows CE操作系統(tǒng)的服務。
本文介紹的方法是用ARM9系統(tǒng)芯片S3C2410在Windows CE構建的嵌入式平臺上實現(xiàn)的。整個掉電保護實現(xiàn)的基本思路是:產(chǎn)生掉電信號、捕捉掉電信號、處理掉電信號以及掉電信息恢復和文件處理。
1 系統(tǒng)的硬件平臺
本系統(tǒng)采用三星公司的基于ARM9體系結構的S3C2410微處理器。SDRAM是一種易失性存儲器作為程序的運行空間,類似于PC機的內存;Flash作為程序存儲空間是非易失性的。程序運行過程中的數(shù)據(jù)往往緩存在SDRAM中,在系統(tǒng)掉電時必須將文件寫到Hash中。
本系統(tǒng)采用3.3 V和5 V的直流穩(wěn)壓電源,其中S3C2410及部分外圍器件需3.3 V電源,另外部分器件需5 V電源供電。掉電保護電路采用MAX708S芯片,MAX708S具備掉電監(jiān)控功能,電源電壓低至4.5 V時,產(chǎn)生掉電信號,通知系統(tǒng)做好掉電保護工作。
正常工作時,Pn的電壓Va=5×1.8/(4.7+1.8)=1.385 V。通過MAX708S模塊輸入電壓PFI與1.25 V比較,這樣MAX708S模塊輸出電壓PFO為高電平。突然掉電時,5 V信號掉到4.5 V以下時,PFI的電壓為4.5×1.8/(4.7+1.8)=1.246V<1.25 V。這樣MAX708S模塊輸出電壓為低電平,產(chǎn)生掉電中斷預警信號,通過外部中斷引腳EIN0產(chǎn)生中斷,接下來可以進行一些重要數(shù)據(jù)保護。
2 掉電保護的軟件實現(xiàn)
2.1 Windows CE中斷驅動設計
數(shù)控系統(tǒng)掉電保護是強實時性的任務,可以通過觸發(fā)中斷的方式來獲得Windows CE操作系統(tǒng)的服務。本驅動引入的中斷主要是為了讓CPU知道機床運動過程出現(xiàn)突然掉電的問題,應當及時保存一些重要數(shù)據(jù)。
在Windows CE系統(tǒng)中,所有用戶空間進程通過系統(tǒng)調用來請求內核服務,所有設備通過外部中斷來請求內核服務,中斷處理是流接口驅動程序中直接和硬件打交道的部分。中斷處理過程如圖3所示。中斷發(fā)生后,信號發(fā)往異常處理器,并且中斷支持處理器調用OAL函數(shù)OEMInterruptDisable,關閉來自該硬件的中斷。中斷服務例程ISR被內核調用并返回結果,且通過內核設置Event事件來觸發(fā)中斷服務線程IST。IST被喚醒后調用各種I/O函數(shù)完成中斷處理并返回In.terruptDone通知內核。內核調用OEMInterruptDone重新開啟中斷。
2.2 掉電保存實現(xiàn)
Windows CE是一個搶占式多任務的操作系統(tǒng),調度程序使用基于優(yōu)先級的時間片算法對線程進行調度。本系統(tǒng)實現(xiàn)掉點及時保存功能主要采用兩個線程:驅動的外部中斷0線程和應用程序的掉電中斷監(jiān)控線程。應用程序的掉電中斷監(jiān)控線程是為了更好利用應用程序資源(如一些運動控制接口函數(shù)),并設置為高優(yōu)先級,以便掉電中斷時操作系統(tǒng)會立刻切換至監(jiān)控掉電中斷線程執(zhí)行。兩個線程是通過事件IntterruptEvent同步。
如圖4所示,系統(tǒng)上電后,外部中斷0線程和掉電中斷監(jiān)控線程都是掛起狀態(tài)。當?shù)綦姳O(jiān)控電路檢測到電壓下降(即突然掉電),則通過外部中斷引腳EIN0產(chǎn)生中斷,喚醒外部中斷0的處理線程EINT0_In-trThread,設置同步事件為通知狀態(tài)。掉電中斷監(jiān)控線程等到同步事件后,機床馬上急停,獲取當前機床位置、進給速度、加工行數(shù)及主軸參數(shù),并及時將參數(shù)寫入掉電保存文件DropInt.txt中。
2.3 掉電信息恢復及文件處理
機床恢復電源后,系統(tǒng)自動檢測NandFlash里面是否存在掉電保存文件DropInt.txt。如果存在的話,進入加工界面時,系統(tǒng)打開掉電保存文件,讀取各種參數(shù)重新賦值,并會提醒“存在掉電保存文件,是否恢復斷點”。若需要從掉電瞬間的斷點位置以相同的參數(shù)繼續(xù)加工,則點擊恢復斷點,加工頭將勻速移動到斷點位置。
由于中斷響應及線程切換存在時延,機床高速加工急停存在慣性。我們需要對掉電保存文件信息進行處理:機床坐標為工件原點的絕對坐標,作為重新定位點;根據(jù)不同的機械特性,經(jīng)過實際測試回退10—20行加工代碼;獲取文件中進給速度和主軸速度,重新加工時,設置為進給速度和主軸速度20%左右,并在3 s內均勻提升到掉電保存文件中的進給速度值和主軸速度值。
3 結語
本課題的掉電保護設計方法是基于ARM和Windows CE構建的系統(tǒng)平臺,在32位嵌入式數(shù)控系統(tǒng)開發(fā)中具有典型代表意義。基于該方案設計的嵌入式數(shù)控雕刻機、數(shù)控切割機在實際加工過程中,掉電保護功能完備,實現(xiàn)恢復電源后無痕加工。因此在嵌入式數(shù)控系統(tǒng)設計中具有很大推廣價值及應用空間。
(審核編輯: 智匯胡妮)
分享