CSPM 开放式软件(CSPM OSS)

  具备超媒体用户界面的纳米操纵工具(点击进入)

    CSPM开放式软件系统(CSPM Open Source Software)的目的是让二次开发用户可以从复杂的仪器功能编程中解脱出来,将精力集中在具体的功能扩展上,大幅度降低开发成本、缩短开发周期。

    CSPM扫描探针显微镜系统(SPM)的架构如下图:

oss_struct.gif

    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的路径移动,达到在样品上加工的目的。

    探针在样品上的刻画路径如下图所示:

z_lith.gif

    整个过程为:先将探针移动到点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);

 

典型应用     shenyang.gif

具备超媒体用户界面的纳米操纵工具

    中国科学院沈阳自动化研究所的研究人员利用CSPM OSS和本原的扫描探针显微镜(SPM)系统,结合Phantom操纵杆,构建了一个纳米操纵平台。利用该平台,用户可以通过操纵杆,控制探针对样品进行纳米操纵,在操纵过程中,用户还可以通过操纵杆感知样品对探针产生的作用力大小和方向,在操纵过程中增加了触觉感知能力。在CSPM OSS之上,开发人员不需要了解SPM的硬件控制细节,甚至不需要了解软件是如何对SPM进行控制的,便可以快速地在本原SPM的基础上增加硬件和软件,构建出具备超媒体用户界面的纳米操纵平台。

overmedia.gif