CMP設備控制軟件的模塊規(guī)劃及可視化技術
1 引言
本文引用地址:http://cafeforensic.com/article/90285.htm隨著硅片直徑的不斷增大和圖形線寬的急劇縮小,IC加工工藝對硅片的平整度要求越來越高。化學機械拋光(Chemical Mechanical Polishing,CMP)是目前滿足硅片圖形加工性能和速度要求的最有效加工方法。國內在大直徑硅片加工設備方面的研究幾乎仍是空白,對于大直徑(≥300 mm)硅片的超精密加工技術與設備的研究甚少。結合目前對于高拋光生產率的要求,進行多工位拋光機的開發(fā)勢在必行。圖1所示為自行研制的三工位CMP機床的平面示意圖。該三工位直線軌道式拋光機具有如下特點:
(1)三工位的加工方式可以同時進行多個硅片加工,因此能夠滿足高生產率要求;
(2)各個拋光頭運動分別控制,這可以避免第二代CMP拋光機的裝載平衡問題,可滿足單片加工要求;
(3)采用新-代硅片夾持技術凹,夾持穩(wěn)定,效率高;
(4)具有終點檢測裝置,在加工過程中不需要通過控制拋光時間來控制拋光過程。
CMP設備的監(jiān)控系統軟件對于拋光機床的加工精度、加工表面質量和生產率影響很大。本文中研究的CMP監(jiān)控系統軟件設計采用了目前軟件工程學中主流的面向對象方法,并用C++語言編寫,提高軟件的執(zhí)行效率。為提高代碼的可重用性和可移植性,按照CMP控制系統的功能進行功能模塊劃分,并將各個功能模塊封裝成C++類??刂栖浖捎昧薓FC的單文檔模式,靜態(tài)拆分窗口的方法,以解決多視圖通訊問題;通過對OpenGL封裝類的操作實現采集數據的全程動態(tài)顯示和CMP機床的動作演示。
2 CMP設備控制軟件模塊規(guī)劃及數據封裝
CMP控制軟件完成的主要功能有:拋光盤、拋光頭的運動控制;拋光壓力、拋光盤真空度的在線精密測量與控制;拋光墊在線修整控制:修整速度、修整壓力、修整時間等修整參數的控制問題;拋光動作、上下片動作、硅片傳輸等動作的協調控制和安全保護及報警;數據的監(jiān)測、處理、存儲和顯示等。
CMP控制軟件的功能模塊劃分如圖2所示。
在MFC的單文檔模式下,對3個工位功能進行抽象,封裝成3個視圖類(均派生于CView類)。在視圖類基礎上對每個工位的功能進行再一次抽象,封裝成幾個功能模塊類,主要有數據存儲類(CStorage)、數據顯示類(CGraph)和工位動作控制類(CControl)等。
其中CControl類的封裝格式如下:
將設備動作(機械手動作、由步進電機帶動的上下料托盤的動作等)的演示模塊封裝成動作演示類CRobotView(派生于CView)。3個工位的工作流程圖模塊封裝成流程演示類CcmpCtrlSysView(派生于CFormView)。將機床控制參數設置狀態(tài)模塊封裝成CcmpVie4(派生于CView),至此共有6個視圖類。
根據OpenGL的功能封裝了兩個C++類,分別為定義了視口大小、投影變換等功能CCamera類和封裝了OpenGL的環(huán)境設置的COpenGLDC類。
另外,本控制軟件中還用到了參數設置等若干對話框類。CMP控制軟件類之間的關系如圖3所示。
3 多視圖類通訊
三工位CMP機床各工位之間的動作有著嚴格的時序要求,這就要求控制軟件的各個模塊之間即視圖類之間能夠完成通訊。從圖3可以看出6個視圖類都和文檔類有著聯系,因此可以考慮各視圖類通過文檔類實現彼此之問的通訊。
在SDI應用程序中,當文檔對象首先被構造之后,或用戶從File中選擇New命令時,框架都會調用虛函數CDocument()::OnNewDocument()。這里是設置文檔數據成員初始值最好的地方。本文正是借助這個函數實現多視圖的通訊。
結合文檔和視圖分離的思想,由于跟文檔類相連的視圖類是不能安全的與除文檔類之外的其余的視圖類通信的。因此只能讓他們都與文檔類通信。在文檔中設置相應的指針以獲得各個視圖指針,實例代碼如下:
重載文檔類的OnNewDocument()虛函數,并在該函數中加入如下代碼:
這樣,在應用程序啟動時可以在文檔類中得到所需的視圖類指針,以后各視圖類通過文檔類獲得所需通訊視圖的指針。下面就以CcmpView1和CcmpView2視圖類之間的通訊來解釋視圖通訊的過程。以CcmpView1中獲得CcmpView2的指針為例。首先在CcmpView1的頭文件中聲明一個Cc mpView2指針,并加入類CcmpView2的頭文件,然后重載CmpView1類的OnInitialU Date()虛函數,在該虛函數中加入CCmpCt rlSysDoc*pDoc=GetDocument ();pView2=pDoc->pView2;從而實現了CcmpView1中獲得CcmpView2指針,為后續(xù)的通訊奠定了基礎。
4 CMP機床參數及設備動作的可視化
為了觀察3個工位拋光壓力值的大小,控制程序需要動態(tài)顯示拋光壓力曲線。常規(guī)數據動態(tài)顯示方法多采用VC動態(tài)貼圖技術。經過實驗發(fā)現動態(tài)貼圖不能做到將采集到的數據全程動態(tài)顯示。
CMP機床拋光壓力采集周期設為1 ms,其工作時間最長為6 min,這就意味著單工位采集的數據個數最大為36萬個,3個工位的數據個數最大為108萬個。為了實時顯示這些數據,在堆中創(chuàng)建3個2 M字節(jié)數組存儲采集數據,然后調用函數RenderView()顯示數據。顯示函數主要包括兩部分代碼,第一部分是用顯示列表技術制作了坐標系而第二部分代碼則是用OpenGL的雙緩存技術編寫壓力曲線的繪制。
三工位CMP機床是自動化程度較高的數控設備,一次可以加工兩個片盒的硅片,共計50片。控制系統要保證1和2號工位要連續(xù)加工17片,3號工位連續(xù)加工16片硅片,另外控制任務還有兩個機械手的動作協調,拋光完成后將硅片送到清洗位等,可見控制時序是非常復雜的。所以無論是檢查控制軟件動作的正確性還是加工中觀察機床的實際運行情況,增加機床動作演示功能是非常必要的。
用OpenGL封裝類制作了機床平面布置圖,當某一工位工作時就將該工位的顏色設成工作時的顏色,不工作時顏色不變,從而能夠以動畫的方式實現動作顯示。 OpenGL類的封裝格式如下:
控制程序的畫面如圖4所示。
4 結束語
面向對象設計方法在本控制軟件中的使用,提高了軟件的可重用性,可擴充性和健壯性。多視圖通訊的實現,保證了任意視圖中可以獲得其他視圖的指針,從而使程序簡潔、緊湊、高效,動態(tài)分配內存,提高程序的執(zhí)行效率。OpenGL封裝類實現了程序的可視化,提高了程序的執(zhí)行效率。
評論