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