CSPM 開放式軟體(CSPM OSS)
具備超媒體用戶介面的納米操縱工具(點擊進入)
CSPM開放式軟體系統(CSPM Open Source
Software)的目的是讓二次開發用戶可以從複雜的儀器功能編程中解脫出來,將精力集中在具體的功能擴展上,大幅度降低開發成本、縮短開發週期。
CSPM掃描探針顯微鏡系統(SPM)的架構如下圖:

SPM 開放式軟體系統(CSPM OSS)被劃分為兩個部分:SPM Console和SPM Kernel。
SPM Console軟體負責向用戶提供一個介面,讓用戶輸入各種指令,並將各種儀器的狀態和資訊顯示給用戶。例如,SPM
Console軟體上有一個鐳射電源按鈕,用戶可以用滑鼠按下該按鈕,指示儀器打開鐳射電源;SPM
Console軟體也可以將顯微鏡所採集到的圖像顯示在電腦螢幕上。
SPM Kernel軟體在用戶介面軟體(SPM Console)和掃描探針顯微鏡(SPM)系統硬體之間架起一道橋樑,SPM Console軟體將用戶的指令發送給SPM
Kernel軟體,SPM Kernel軟體對收到的軟體進行解釋,並對SPM硬體進行相應操作,實現用戶指令。同時,SPM Kernel對SPM硬體系統的狀態進行採集和調度,以保證硬體正常運作,並向SPM
Console報告各種資訊,讓用戶可以即時瞭解儀器狀態並觀察實驗結果。
系統軟體劃分為兩個層次,可以將複雜的、高要求的、難以理解的硬體流程封裝在SPM
Kernel軟體中,用戶不需要全面瞭解系統硬體的技術資訊,就可以快速高效地編寫滿足自己需要的軟體。
一般情況下,SPM Console軟體的源代碼是向用戶開放的,用戶可以對源代碼進行修改和補充,實現新的功能。
SPM Console採用Microsoft Visual
C#語言編寫。選擇C#的原因是:C#是一門設計簡單、面向物件、類型安全、靈活相容(.Net框架的支援)的新型面向元件編程語言。其語法風格源自C/C++家族,並融合了Visual
Basic的高效和C/C++的靈活性、強大底層控制能力,是Microsoft.Net平臺的主流語言。
SPM Console OSS 1.0軟體是一個開放源代碼的軟體,為用戶提供了一個全面完整的範例。用戶可以對該軟體進行修改和擴充,以滿足自己的特殊要求。
下面舉一個例子,以說明用戶在CSPM OSS上進行二次開發的簡易性。
舉例:開發納米加工程式
本例的目的是對SPM Console進行修改,以滿足在樣品上進行納米加工,刻畫出一個“Z”型的字母來。
其工作原理是,將探針和樣品進行逼近,然後,關閉探針樣品回饋機制,將探針壓向樣品,然後讓探針在樣品上按字母Z的路徑移動,達到在樣品上加工的目的。
探針在樣品上的刻畫路徑如下圖所示:

整個過程為:先將探針移動到點1,沿著線段1-2向點2移動,到達點2後,沿著線段2-3向點3移動,到達點3後,沿線段3-4移動到點4。在移動過程中,探針實際上是在沿線的若干節點上(如圖中黑點所示)停頓一段時間。
欲實現上述功能,使用CSPM OSS平臺,您只需寫20行代碼就可以實現了:
float x0 = -(float)numericScope.Value/2;
//
筆劃一起點的X座標
float y0 = -(float)numericScope.Value/2;
//
筆劃一起點的Y座標
float x1 = +(float)numericScope.Value/2;
//
筆劃三終點的X座標
float y1 = +(float)numericScope.Value/2;
//
筆劃二終點的Y座標
//
計算每走一步需要延遲多少毫秒
int delayMS
= (int)numericPeriod.Value/(STEP*3);
float volt = (float)numericVolt.Value;
//
驅動探針往樣品上壓的電壓
// 將探針移動到'Z'的起點
Machine.SetX0Y0(x0, y0);
//
關閉回饋
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通道的輸出電壓恢復為0
Machine.SetDAVolt(10,
0);
//
恢復回饋
Machine.SetDO(DO_FEEDBACK, 1);
典型應用
具備超媒體用戶介面的納米操縱工具
中國科學院瀋陽自動化研究所的研究人員利用CSPM OSS和本原的掃描探針顯微鏡(SPM)系統,結合Phantom操縱杆,構建了一個納米操縱平臺。利用該平臺,用戶可以通過操縱杆,控制探針對樣品進行納米操縱,在操縱過程中,用戶還可以通過操縱杆感知樣品對探針產生的作用力大小和方向,在操縱過程中增加了觸覺感知能力。在CSPM
OSS之上,開發人員不需要瞭解SPM的硬體控制細節,甚至不需要瞭解軟體是如何對SPM進行控制的,便可以快速地在本原SPM的基礎上增加硬體和軟體,構建出具備超媒體用戶介面的納米操縱平臺。

|