CSPM 開放式軟件(CSPM OSS)
具備超媒體用戶界面的納米操縱工具(點擊進(jìn)入)
CSPM開放式軟件系統(tǒng)(CSPM Open Source Software)的目的是讓二次開發(fā)用戶可以從復(fù)雜的儀器功能編程中解脫出來,將精力集中在具體的功能擴(kuò)展上,大幅度降低開發(fā)成本、縮短開發(fā)周期。
CSPM掃描探針顯微鏡系統(tǒng)(SPM)的架構(gòu)如下圖:
SPM 開放式軟件系統(tǒng)(CSPM OSS)被劃分為兩個部分:SPM Console和SPM Kernel。
SPM Console軟件負(fù)責(zé)向用戶提供一個界面,讓用戶輸入各種指令,并將各種儀器的狀態(tài)和信息顯示給用戶。例如,SPM Console軟件上有一個激光電源按鈕,用戶可以用鼠標(biāo)按下該按鈕,指示儀器打開激光電源;SPM Console軟件也可以將顯微鏡所采集到的圖像顯示在計算機(jī)屏幕上。
SPM Kernel軟件在用戶界面軟件(SPM Console)和掃描探針顯微鏡(SPM)系統(tǒng)硬件之間架起一道橋梁,SPM Console軟件將用戶的指令發(fā)送給SPM Kernel軟件,SPM Kernel軟件對收到的軟件進(jìn)行解釋,并對SPM硬件進(jìn)行相應(yīng)操作,實現(xiàn)用戶指令。同時,SPM Kernel對SPM硬件系統(tǒng)的狀態(tài)進(jìn)行采集和調(diào)度,以保證硬件正常運(yùn)作,并向SPM Console報告各種信息,讓用戶可以實時了解儀器狀態(tài)并觀察實驗結(jié)果。
系統(tǒng)軟件劃分為兩個層次,可以將復(fù)雜的、高要求的、難以理解的硬件流程封裝在SPM Kernel軟件中,用戶不需要全面了解系統(tǒng)硬件的技術(shù)信息,就可以快速高效地編寫滿足自己需要的軟件。
一般情況下,SPM Console軟件的源代碼是向用戶開放的,用戶可以對源代碼進(jìn)行修改和補(bǔ)充,實現(xiàn)新的功能。
SPM Console采用Microsoft Visual C#語言編寫。選擇C#的原因是:C#是一門設(shè)計簡單、面向?qū)ο?、類型安全、靈活兼容(.Net框架的支持)的新型面向組件編程語言。其語法風(fēng)格源自C/C++家族,并融合了Visual Basic的高效和C/C++的靈活性、強(qiáng)大底層控制能力,是Microsoft.Net平臺的主流語言。
SPM Console OSS 1.0軟件是一個開放源代碼的軟件,為用戶提供了一個全面完整的范例。用戶可以對該軟件進(jìn)行修改和擴(kuò)充,以滿足自己的特殊要求。
下面舉一個例子,以說明用戶在CSPM OSS上進(jìn)行二次開發(fā)的簡易性。
舉例:開發(fā)納米加工程序
本例的目的是對SPM Console進(jìn)行修改,以滿足在樣品上進(jìn)行納米加工,刻畫出一個“Z”型的字母來。
其工作原理是,將探針和樣品進(jìn)行逼近,然后,關(guān)閉探針樣品反饋機(jī)制,將探針壓向樣品,然后讓探針在樣品上按字母Z的路徑移動,達(dá)到在樣品上加工的目的。
探針在樣品上的刻畫路徑如下圖所示:
整個過程為:先將探針移動到點1,沿著線段1-2向點2移動,到達(dá)點2后,沿著線段2-3向點3移動,到達(dá)點3后,沿線段3-4移動到點4。在移動過程中,探針實際上是在沿線的若干節(jié)點上(如圖中黑點所示)停頓一段時間。
欲實現(xiàn)上述功能,使用CSPM OSS平臺,您只需寫20行代碼就可以實現(xiàn)了:
float x0 = -(float)numericScope.Value/2; // 筆劃一起點的X坐標(biāo)
float y0 = -(float)numericScope.Value/2; // 筆劃一起點的Y坐標(biāo)
float x1 = +(float)numericScope.Value/2; // 筆劃三終點的X坐標(biāo)
float y1 = +(float)numericScope.Value/2; // 筆劃二終點的Y坐標(biāo)
// 計算每走一步需要延遲多少毫秒
int delayMS = (int)numericPeriod.Value/(STEP*3);
float volt = (float)numericVolt.Value; // 驅(qū)動探針往樣品上壓的電壓
// 將探針移動到'Z'的起點
Machine.SetX0Y0(x0, y0);
// 關(guān)閉反饋
Machine.SetDO(DO_FEEDBACK, 0);
// 輸出電壓,將探針往樣品上壓(DA通道10的作用是在掃描器陶瓷管Z方向上疊加一個電壓)
Machine.SetDAVolt(10, volt);
// 移動探針,刻畫個筆劃,從點1移動到點2
for (int i=0; i<STEP; i++)
{
Machine.SetX0Y0(x0+(x1-x0)*i/STEP, y0); // 走一步
Thread.Sleep(delayMS); // 延遲
}
// 移動探針,刻畫第二個筆劃,從點2移動到點3
for (int i=0; i<STEP; i++)
{
Machine.SetX0Y0(x1-(x1-x0)*i/STEP, y0+(y1-y0)*i/STEP);
Thread.Sleep(delayMS);
}
// 移動探針,刻畫第三個筆劃,從點3移動到點4
for (int i=0; i<STEP; i++) {
Machine.SetX0Y0(x0+(x1-x0)*i/STEP, y1);
Thread.Sleep(delayMS);
}
// 將DA通道的輸出電壓恢復(fù)為0
Machine.SetDAVolt(10, 0);
// 恢復(fù)反饋
Machine.SetDO(DO_FEEDBACK, 1);
典型應(yīng)用
具備超媒體用戶界面的納米操縱工具
沈陽自動化研究所的研究人員利用CSPM OSS和本原的掃描探針顯微鏡(SPM)系統(tǒng),結(jié)合Phantom操縱桿,構(gòu)建了一個納米操縱平臺。利用該平臺,用戶可以通過操縱桿,控制探針對樣品進(jìn)行納米操縱,在操縱過程中,用戶還可以通過操縱桿感知樣品對探針產(chǎn)生的作用力大小和方向,在操縱過程中增加了觸覺感知能力。在CSPM OSS之上,開發(fā)人員不需要了解SPM的硬件控制細(xì)節(jié),甚至不需要了解軟件是如何對SPM進(jìn)行控制的,便可以快速地在本原SPM的基礎(chǔ)上增加硬件和軟件,構(gòu)建出具備超媒體用戶界面的納米操縱平臺。