您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 09第五章并行原子力显微镜软件
中国科学技术大学博士学位论文第五章并行原子力显微镜软件系统-58-第五章并行原子力显微镜软件系统本章摘要:研制并行原子力显微镜的软件系统。软件系统包括三部分:数据采集与显示、后处理和模拟教学。该软件能够在线改变采集的速度,采集点数,扫描的范围、位置、工作点、扫描方式等信息。实现马达的逼近/远离、获得力曲线及力曲线标定等功能。能够同时采集16种数据,并能够选择四种实时处理方法对数据进行处理,实时显示其中的9种数据图像或16个扫描曲线(示波器模式)。实现模拟教学功能和对采集数据文件的后处理功能。数据采集和显示、后处理及模拟教学等部分完全集成在一起。5.1并行原子力显微镜的软件要求并行原子力显微镜的软件远比单探针SPM控制软件复杂。并行原子力显微镜的软件需要对更多的信息进行实时采集、处理、图像显示和实时控制,主要包括扫描、控制、数据采集及成像、数据后处理等部分。并行原子力显微镜不仅可以双探针并行工作,也可作单一原子力显微镜单独使用。要求对每一根探针都能够实时采集到样品的形貌、正压力、摩擦力和探针上的信号总强度。针对不同的扫描方式,又有往复扫描和单向扫描等,这样共有16种扫描信息需要同时采集。对于采集到的16种信息,只有通过计算机实时的显示出来,才能完成成像的要求,并根据图像的结果,实时的改变仪器的各种扫描、控制参数,调整仪器的状态,以获得更真实的数据。显示光点在四象限器的位置,以便调节光点在四象限器光电探测器的中央位置。控制马达的前进或者后退,完成针尖-样品之间的逼近、远离,使针尖平面与样品表面平行,实现双探针并行工作。完成样品的形貌扫描,软件必须发送XY的扫描指令,驱动压电陶瓷扫描器,驱动样品的X-Y扫描过程。对于扫描过程的增益选择,工作点的改变,扫描方向、位置,大小及扫描方式等,需要计算机实时的改变控制参数,完成扫描过程中的各种控制方式。对采集后的数据能够进行后处理,完成后续的各种数据统计、滤波、平滑、特征表征等处理,使图像显示更完美、数据信息更全面。AFM是一种较为昂贵的仪器,特别是探针,一旦误造作,会造成探针的损坏,为此使用前的良好培训,可以减少对仪器的损坏。要求在软件的基础上,添加了模拟仪器部分。中国科学技术大学博士学位论文第五章并行原子力显微镜软件系统-59-该软件采用VisualC++编程,VC是一种结构化、模块化的高级程序语言,它具有高速、功能强、可混合编程、各种数据结构和库函数、强大的图像处理等特点。软件是基于windows2000环境下编写的,可以运行在win98/Winnt/Win2000等操作系统下。该软件把采集和显示、后处理及模拟教学等部分完全集成在一起。数据采集及显示和模拟教学部分是本论文的重点。数据后处理部分只添加了图像显示;三种滤波方式及颜色改变;显示采集的图像的平面标尺和高度标尺;图像不同格式的输出等。其他的预留了程序接口,以便后续开发。本程序采用模块化、层次化编程,对各个功能模块进行了类封装,以方便扩充和管理。5.2并行原子显微镜的软件总体组成并行原子力显微镜软件系统集成了数据采集及显示、后处理模块和模拟教学三部分。系统在数据采集及显示的同时,也可以进行数据后处理,它们之间可以自由切换。其基本的组成框架如图5.1所示。用VC的多框架/多文档视应用接口编程[1],实现数据采集、后处理和模拟教学部分的集成。多框架编程,使每一部分都有自己单独的文档—视图对象、菜单及工具栏,用户可以分别对其操作如打开文档、画图、响应菜单命令等。各部分之间可以并行运行,互不影响。这种框架结构可以方便的增减,可以方便的添加新的框架结构实现新的扫描探针单元,如添加STM、SNOM等。程序启动时,首先初始化各种框架、注册登记各种文档模版,加载不同的模块,并显示后处理的程序界面。当选择打开文档后,进入后处理操作。选择数据采集时,程序进入数据采集界面,进行必要的探针、扫描器参数设置后,开始数据采集及显示,首先进行仪器基本初始化工作,初始化顺利后,开始进行数据采集。如果初始化没有检测到必要的系统构件时,则进入模拟教学过程。5.3并行原子力显微镜的数据采集及显示部分并行原子显微镜数据采集及显示部分包括初始化模块、主线程模块、马达逼近控制模块、扫描/数据采集模块、图像显示/控制模块、力曲线及标定模块。各并行原子力显微镜软件系统数据采集及显示后处理模拟教学部分图5.1并行原子力显微镜软件系统框图中国科学技术大学博士学位论文第五章并行原子力显微镜软件系统-60-部分之间联系如图5.2所示。主程序启动后,进入后处理的主界面,选择数据采集进入数据采集及显示主界面,进行必要的设置如压电陶瓷扫描器的设置,基本的显示设置和探针的参数设置后,程序根据这些设置进行必要的初始化后,进入程序的主线程(空闲状态)。主线程是整个数据采集及显示部分的核心,它与程序交互完成马达逼近控制模块、扫描/数据采集、扫描控制模块、力曲线及标定模块等功能。主线程顺利启动后,程序创建扫描控制工具条、扫描模式工具条、显示工具条等,并根据上次程序的运行情况,显示或者隐藏这些工具条;然后把控制类(Ccontrol)的各种参数发送给主线程,开始正式的扫描/数据采集;创建、显示视图类,图像显示/控制模块根据显示控制的参数,对扫描/数据采集的数据进行处理后图像化显示或者示波器方式监测。整个数据采集及显示部分采用模块化、层次化设计。有利于提高模型的封装性、重用性、可扩展性和可维护性。基本的框架如图5.3所示:用户界面数据层抽象层硬件层PIO-DA8卡PCI-1002卡PIO-DA8卡类PCI-1002卡类参数设置显示参数类操作数据类显示控制执行层主线程线程类动作请求消息应用层物理层图5.3软件层次图主线程主程序数据采集及显示初始化扫描控制模块力曲线及力标定显示及显示控制模块扫描/数据采集马达逼近模块图5.2数据采集及显示部分各模块之间的关系中国科学技术大学博士学位论文第五章并行原子力显微镜软件系统-61-从上图可以看出,数据采集及显示部分可以分两层:应用层和物理层。应用层为用户界面接口、各种控制参数、数据类、显示控制、动作的执行等。物理层为计算机与电子控制系统的接口、数据采集卡和DA输出卡(PCI-1002和PIO-DA8)及其类封装。物理层与应用层的联系是通过执行层的主线程来完成。程序对各个小功能模块进行了封装,以便程序管理、调试及以后扩充。各种封装类及其功能见表5.1。表5.1各种封装类及其功能数据类对话框类扫描/显示/控制类CactiveLever探针的参数CDialogCantileverSetting探针参数设置CViewerOptions显示的方式,视口多少、滤波器选择、图像/示波器选择等CImgAFM采集的数据保存格式CdlgBarControl控制工具栏Ccontrol控制扫描参数:范围、频率、点数、角度、增益等CdacFontSetting显示字体CdialogFontSetting显示字体设置CPIODACPIO-DA8卡封装CMyTimeMeasure时间延时参数CDialogFCal力曲线/显示/标定Cmicro:线程接口类,负责各种控制信息的与主线程通讯CsavingData保存的文件路径、文件名、后缀、保存方式等信息CDialogSaveOption保存设置CdacThread主扫描线程类,包括各种执行函数和应答方式等CheadData扫描头信息CdialogHeadOption扫描头设置CADC1002LPCI-1002卡封装CdlgBarScanning扫描工具栏CscanningOption扫描方式CdlgBarView:显示工具栏CdialogApproach马达逼近参数、方式/对光斑CDialogFZCurve力曲线获得/显示/保存5.3.1初始化模块并行原子力显微镜扫描范围的大小,与所选用的压电陶瓷扫描器的性能有关。在扫描时扫描范围的大小,每点输出电压的大小由压电陶瓷扫描的性能参数决定。马达的逼近也需要知道其极性,以确定马达如何进行逼近或远离。另外,作力曲线标定时,需要知道悬臂梁的弹性系数等参数。其基本的参数设定如图5.4所示。中国科学技术大学博士学位论文第五章并行原子力显微镜软件系统-62-程序还需要对采集数据图像显示的调色板进行选择,以根据使用者的喜好达到较好的视觉效果。以上参数,均在第一次运行后,自动保存下来,以后再次运行不需要重复设置,除非更换了其他的扫描头、更换另一型号的探针或者选择另外图像显示调色板,一般不需要每次都进行设置。图5.4扫描头和探针悬臂梁设置设置好参数后,程序自动的根据前次设置的参数和默认参数进行初始化工作。初始化工作包括显示设置、保存选项、时间延时参数、装入当前扫描头和探针参数信息、扫描控制参数的初始化、加载图像显示颜色板、初始化16个通道的数据存储结构、初始化实时图像显示的数据结构;初始化数据采集/输出卡,对仪器进行必要的输出控制,默认的高压放大倍数为最大,扫描的范围为0,参考电压均为0.3V。初始化成功后,直接进入扫描/数据采集模块。如果系统没有检测到AD卡或者DA卡,则进入模拟教学部分。5.3.2主线程模块主线程模块是数据采集及显示部分的核心,它能够对扫描过程的各种控制、操作进行响应,而不需要中断扫描过程。程序对主线程进行了类封装,封装后的类为CdacThread类。CdacThread类属性包括线程的状态,当前的动作,当前扫描的控制信息,当前扫描的行、步长等信息。各种要执行的动作由其不同的成员函数完成。主程序在初始化顺利完成后,调用_beginthread函数启动Thread()成中国科学技术大学博士学位论文第五章并行原子力显微镜软件系统-63-员函数启动主线程并把Cmicro类传递给主线程,主线程通过Cmicro类获取各种扫描控制信息,主线程本身或者通过Cdacthread类改变行动请求,完成各种动作。其结构框图如图5.5。主线程函数及其注释见附录1。初始化主线程类启动主线程判断行动指令(Switch(This()-GetAction()))连续马达后退单步马达逼近调整光斑位置从顶端开始扫描单步马达后退最优马达逼近单行扫描数据采集连续马达逼近空闲状态线程结束012345678从中间开始扫描做力曲线从底端开始扫描做力标定扫描参数改变10111213914线程运行标志=0进入循环while(标志==0)退出扫描/采样程序YN图5.5主线程的结构框图主要线程与程序之间是通过消息来保持同步的,主线程类(CdacThread类)封装了行动请求和线程状态基本属性,当主程序有行动请求时,调用属性接口函数,设置行动请求;在线程的动作函数中添加检测线程请求的语句,一旦检测到新的行动请求,保存当前的扫描控制信息,退出占用,线程退回循环判断过程,让别的操作得以完成。线程各种动作执行过程中的出错信息、完成状态等是通过消息发送给主程序,由主程序负责处理、显示。中国科学技术大学博士学位论文第五章并行原子力显微镜软件系统-64-5.3.3马达控制模块并行原子力显微镜针尖-样品的逼近/远离是通过计算机发出的控制指令控制电机转动进行逼近/后退的。通过调整三个马达的不同的制状态达到调整样品与针尖平面的水平的。其程序的框图如5.6所示。在逼近前应先设置光斑在四象限的位置,首先保存主线程的行动请求,调用主线程的行动请求,主线程调用调整光斑控制程序,对每根探针的信息进行采集,保存采集到的数据,发送消息给主框架程序,由对话框接收并显示光点在四象限器的位置。调整好以后,取消行动请求,恢复原来的行动请求。通过应用菜单设置马达的控制参数,选择不同的逼近方式,首先传送控制信息到Cmicro类、保存主线程的行动请求,根据不同的逼近方式,调用相应的行动请求,由主线程选择不同的控制程序,发出马达的控制参数,并对各种数据进行采集、判断完成逼近/远离过程。完成后发送消息,通知对话框行动已经完成或者出错,由对话框负责处理、显示,并恢复原来的行动请求。逼近方式有连续逼近/远离、单步逼近/远离和最优逼近。其中只有连续逼近和最优逼近有调整样品平面判判是否有别的行动请求
本文标题:09第五章并行原子力显微镜软件
链接地址:https://www.777doc.com/doc-3120977 .html