欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PDF文档下载  

    [硕士论文精品]STMAFM相关软件系统设计与开发.pdf

    • 资源ID:3331313       资源大小:1.39MB        全文页数:51页
    • 资源格式: PDF        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    [硕士论文精品]STMAFM相关软件系统设计与开发.pdf

    重庆大学硕士学位论文 中文摘要 I 摘 要 该文介绍了相关扫描隧道显微镜和原子力显微镜(STM/AFM)机型的整个软 件系统的设计思路及其实现方法,对其中的三大分支:硬件控制采集系统、图像 处理与 3D 重建系统、扫描隧道谱采集与识别系统分别进行了论述。 作者结合自己在三个子系统开发中的实际经验和理论研究成果,对每个系统 设计中的关键性技术进行了细致的分析和对比实验。对硬件控制和采集系统,针 对原有控制程序,提出了一系列改进和改良方案,主要包括定时控制的新方案、 多线程实现的稳定性增强方案、探针扫描路线新方案、底层兼容性的解决方法和 界面交互等的原有控制程序的若干漏洞的修正。对图像处理,介绍了本设计中使 用的大量实用的图像处理技术。从几何变换、图像增强、模板操作到傅立叶频谱 域的各种高低通滤波处理的实现,重点论述了相关处理对于隧道扫描图像的针对 性作用, 并作了大量对比实验。 在 3D 重建方面, 介绍了本设计特有的关于 OpenGL 法线的优化算法、特殊的光照处理、规则高度场的快速三角化、伪彩色处理、等 高面块的实现方法、图像矢量化等相关技术。对隧道谱处理,介绍了示波器图像 中曲线的识别、离散整数点的平滑、拟合和高阶导数求取等处理的实现原理和方 法。 该系统自 2003 年初开始研制以来,期间经过多次大的修改和调整,并结合实 际测试中的反馈意见进行了大量细致的改进,目前该系统已经作为标配系统提供 给实际工作环境,其中,扫描程序较之原有控制程序,提供更广泛的平台支持和 运行稳定性,以及更多实时控制功能。图像处理和 3D 重建程序也已经能够完全替 代原来使用的第三方商业软件 (PhotoShop The image processing and 3D reconstruction system can totally replace the those commercial programs, such as PhotoShop and Matlab, which were being used as only acquirable tools. The STS system has given out a good well performance in the associating project of STS analyze with Sichuan University. The whole system has been used in many project of measuring, given out many important and considerable results, supported several their researches and analyzes well finished. It has been proved having good market and good repute. Keywords: STM, AFM, STS, Data Gathering, 3D Reconstruction 重庆大学硕士学位论文 1 绪 论 1 1 绪 论 1.1 相关领域的研究现状 1.1.1 STM/AFM 简介 STM,英文全称 Scanning Tunnel Microscope(扫描隧道显微镜) 。它利用量子 力学的隧道效应原理,通过探针与导体表面间的隧道电流变化来探知表面的高低 起伏,具有纳米级的测量精度,是材料物理学研究领域中极其重要的科研仪器。 AFM,英文全称 Atom Force Microscope(原子力显微镜) 。它利用被测表面的 原子与探针尖端原子间的相互作用力来测量材料的表面原子级起伏。因为被测点 与探针尖端的原子力变化可以造成探针悬臂的极细微运动,通过一定手段来测量 这一运动的动态变化,就可获得材料表面形貌的描述数据。 与 STM 相比,AFM 可以直接测量绝缘体,无需在测量表面加隧道偏压,具 有更为广阔的应用空间,如分子生物学等领域。 STM、AFM 都是通过压电陶瓷驱动探针(或样品) ,对被测表面实施逐点(精 度可达零点几纳米)探测,获得与测量表面原子级形貌相关的二维场数据,这些 数据一般是以电压或电流的形式被采集,经过一定的处理过程后,再以直观的形 式(如图像)再现出表面的形貌特征。 1.1.2 STM、AFM 相关研究现状 STM(扫描隧道显微镜)于 1985 年由 Binning 和 Rohrer 发明1,二十多年来, 测量精度不断提高,应用领域已经从材料学拓展到分子生物学、分子医学等诸多 微观科学的相关研究。 AFM 是 1986 年由 Binning、Quate 和 Gerber 研制完成2,因为其可以测量绝 缘体表面,所以具有比 STM 更为广阔的应用前景。目前国际上大部分的商业化 STM 机型都提供 AFM 作业能力,以弥补 STM 对材料导电性的苛刻要求。 STM、AFM 是微观科学必备的科研仪器,其商业化在美国等发达国家已经相 当成熟,包括 IBM 等大型企业都有相关机型销售。但由于 STM、AFM 都是极其 精密的科研仪器,具有较高的研发难度,所以目前市售的进口(高精度)机型售 价都较为高昂,这为国内相关领域的采购和应用设置了较高的门槛。 经过多年不懈的努力,近几年来,国内在 STM、AFM 机型的研制上取得了突 破性进展,目前较好的进行了商业化的主要有中科院、上海和重庆大学恒瑞纳米 工作站等处的相关产品。 相比国外机型,国内型号可以提供可比拟的测量精度和更为直观的测量结果, 且售价上更趋合理,目前已经为众多国内科研机构和公司企业采购,并协助其在 重庆大学硕士学位论文 1 绪 论 2 项目研究和产品研发中获得了大量优秀的测量数据。 随着当今科研项目越来越多的涉足微观和分子领域,可以预见,国产的同类 机型在经过不断的完善成长后,必将越来越为市场所重视,具有广阔的应用前景。 1.1.3 本站研究的开展情况 重庆大学恒瑞纳米工作站自 1999 年以来,在 STM、AFM 研发领域不断取得 新的进展,其研发的多款 STM、AFM 机型目前已经为国内多家实验室和医药企业 所采购,并进行了大量的实际测试,在金属、半导体材料、规则单晶、碳纳米管、 生物病毒、核酸、基因芯片等测量中取得了很好的测试效果,并协助送测方完成 了大量的论文课题和产品研发。 相对于国内外的同类机型,本站产品具有以下特点: 1) 专利的镜体机械设计3,提供 10 个自由度的高精度机械避震平台。 2) 独特的 AFM 测量原理,利用 STM 探针来感知 AFM 悬臂微动,较之国内 其它 AFM 机型,提供更高的测量精度:横向 0.1nm,纵向 0.01nm。 3)形象丰富的 3D 效果输出。 在软件方面,本系统期望建立完全自主知识产权软件系统,并提供从采集到 图像处理再到 3D 重建的一系列工具软件。但就本课题开展前,该平台上完全拥有 知识产权的软件仅为用于扫描控制的硬件控制软件。图像的处理和后期加工需要 在 PhotoShop 等三方商业软件中完成,3D 重建需要在基于 Matlab 的程序中完成。 对隧道谱领域,则无任何可供使用的软件工具。 1.2 本次研究的目的和内容 1.2.1 本次研究的目的和意义 本设计主要针对本站研制的 STM、 AFM 相关机型的软件系统作全新的设计和 开发,要求实现: 在硬件控制系统方面,要求在新的要求和标准下重新完成硬件控制和数据采 集系统,使其具备更完善的设置和控制能力,并提高其对不同系统平台的兼容性 和运行时稳定性。 在图像处理领域,要求完成具有完全自主知识产权的图像处理系统,以摆脱 对 PhotoShop 等商业程序的依赖,并对扫描图像提供针对性的图像处理能力。 在 3D 重建方面,要求摆脱对 Matlab 等商业软件的依赖,自主编写独立的 3D 重建程序,并要求提供更为丰富的重建功能和更便捷的交互能力。 在扫描隧道谱的处理方面, 要求利用目前闲置的 AD/DA 端口实现周期信号输 出和实时数据采集,依靠现有 STM、AFM 平台能独立完成隧道谱信号的采集。并 对示波器采集图像和本采集程序采集数据进行兼容的各种数学处理能力。 重庆大学硕士学位论文 1 绪 论 3 在实用性方面,本次研究需要完成从数据采集到处理再到最终效果生成的一 整套软件系统,这些软件将涵盖现有 STM、AFM 系统的全部应用,其中,除数据 采集有现有程序可以借鉴外,其他的开发都是崭新的课题。完成本系统,将有助 于拓宽 STM、AFM 的应用领域、增强其工作时性能、提高最终输出图像和数据直 观效果、并在使用上具有更好的操控性和交互性。 在学术意义方面:本课题研究了对 STM/AFM 采集控制流程的改进,研究了 汇编级的 AD/DA 卡和自制时钟板之间的协同, 研究了对规则分布的高度场进行快 速 3D 重建的优化算法、研究特殊的材料表面的伪彩色实现方式、研究示波器图像 特征和图像识别,研究离散采集数据进行高阶运算的方法和技巧等等。这些都具 有一定的创新性和突破性,有着一定的学术价值。 1.2.2 本次研究的设计要求 硬件控制与(图像)数据采集软件 本部分针对目前的 AD、DA 板卡采集模式,编写基于汇编的高效数据采集模 块。要求在现有采集控制软件的基础上做以下改进和改善。 1)对运行时稳定性进行更全面的考虑和设计。 2)提供更精确的实时数据显示。 3)提供更优的底层控制流程。 4)改进的探针移动线路。 5)要求实时参数的采集频率可调。 6)引入新的延时机制(软件延时) 。 7)提供双线程采集控制和 AD 手动触发能力。 8)Win2K(含 WinXP 等系统)内核下运行支持。 9)维持与原程序一致的使用方式。 10)更丰富的数据和图像输出能力(共 7 种数据输出方式) 。 11)更全面的参数存储和设置能力。 12)提供清晰详尽的文档说明。 13)在最新的实现中,还要求能够对参考电压实现各种精确设置和控制。 图像处理与 3D 重建软件,本软件旨在提供对灰度图像的若干空间域和傅 立叶频域处理功能,并最终对图像进行基于 OpenGL 的 3D 重建和输出。还要求具 备数据测量、查询和丰富的输出能力。设计要求包括: 1)灰度图像(BMP 和 JPG 格式)的预览(文件窗口) 、打开、存储和自动(可 手动)缩放显示。以及图像详细信息的查询能力。 2)对采集系统的图像能够自动识别并切取,也可手动进行任意尺寸的切取。 3)对灰度的反相、灰阶化、阈值变换、线性变换、插值、中值滤波等处理以 重庆大学硕士学位论文 1 绪 论 4 及灰度的伪彩色变换。 4)自定义参数的 3×3、5×5、7×7 模板处理,并内置提供 7 种平滑和锐化模板。 5)提供快速傅立叶变换和反变换(含自动的边界处理)和频率域滤波能力, 提供理想、巴特沃斯、高斯、拉普拉斯等高低通滤波处理。用户可在频域图像中 指定任意的滤波半径。 6)基于 OpenGL API 的快速 3D 形貌绘制。 7)为 3D 图像提供多种(7 种)内置色谱,并支持自定义色谱(根据自定义 的参考颜色自动生成) 。 8)开放对 OpenGL 全部 16 个光照参数的设置修改,并提供辅助光、平行光 等 2 次光照。 9)对 2D 和 3D 的放缩、平移、旋转等几何变换提供良好的交互性。 10)友好的界面,丰富的鼠标右键操作能力。 11)提供对坐标系、背景、文字标识等的丰富设置。 12)提供对当前直方图(可切换为实时等高线图)和系统信息(各种图像和 处理参数的当前值)的实时显示。 13)具有恢复撤销操作的能力 14)自定义尺寸的图像输出(JPG) 。 15)自定义的矢量格式输出(G3D) ,以矢量化(极小)形式图像、颜色、灯 光、 、标度和标注等显示信息,可二次导入后继续进行 3D 处理。 16)提供对灰度图的任意线数据的提取和输出。 17)详尽的说明文档。 隧道谱采集与分析软件。 本软件用于模拟信号发生装置和示波器装置来实现锯齿波形的输出和扫描隧 道谱的采集。在后继分析软件中,要求能实现对前端数据的各种数学处理,并能 对示波器的图像数据进行曲线的识别和后继处理。 前期采集软件要求: 1)等时间距的周期性信号输出。 2)同步的扫描隧道谱数据采集。 3)提供多种单点采集方式以获得更稳定可靠的隧道谱数据。 4)丰富的参数设置和详细的说明文档。 5)文本和 CSV 格式的数据存储。 后继分析软件, 1)能够兼容示波器的图像文件输入和其它 CSV 数据文件输入。 2)对示波器图像中的曲线识别提取能力,要求向后兼容性,可扩展。 重庆大学硕士学位论文 1 绪 论 5 3)提供数据的平滑、滤波、拟合等操作。 4)能求取曲线数据的一阶、二阶导数曲线。具有原数据和导数数据的特殊值 查询能力。 5)多组(5 组)数据的同时显示和处理能力。 6)丰富参数设置。 7)提供图像和数据文本不同输出。 重庆大学硕士学位论文 2 硬件控制与采集系统设计 6 2 硬件控制与采集系统设计 2.1 简介 硬件采集系统主要用于控制 STM、AFM 的探针移动、偏压输出、硬件滤波 通道设置等,并实时逐点采集隧道偏压和诸多运行时相关硬件参数。利用 PCL 816AD 卡实现包括隧道电压、偏压、参考电压、压电陶瓷电压等 7 路电压信号的 采集,并通过 816 子卡和 PCL7226DA 卡输出用于控制的 6 路电压信号,另外 2 路数字型号用于控制硬件的高通低通通道。此外,利用对一块外置的时钟板卡的 读写实现精确的时间控制。 本软件的最终输出是将隧道偏压以二维位图的形式采集并联合各种参数一起 存储。研究的重点是如何设计高稳定高兼容性的运行版本。 在本课题以前的运行版本虽然已经可以正常运行并获得可观的 2 维灰度图 像,但在对运行时的稳定性、对不同平台的兼容性上还很欠缺,另外,对新的测 量要求下若干新的功能的开展无能为力。 本课题对原始的进行了全面的重新改写,代码量增加了近三倍(具体的增强 性改进参见前面的研究内容介绍) ,提供丰富的设置和高稳定性,并在 1 年多的实 际运行中取得了很好的测试成绩。 2.2 硬件控制的改进性设计 2.2.1 时间控制的新方案 控制程序实现准确采集的核心取决于能否对时间有精确的把握,因为探针的 周期性往返常常引入一些周期性的噪音,如果我们很好的控制探针移动的间隔时 间,就可以使得周期性的噪音信号规则的分布在采集数据之中,在后期的频率域 滤波中就可以轻易过滤掉这些信号。相反,如果这些噪音以不规则的方式混杂在 输出图像之中,则会对最终结果带来可观的负面影响。 本程序采用 2 种间隔时间的控制手段: 一是通过软件对外置的含 8253 时钟芯 片的自制板卡进行 OUT 端的跟踪来捕获精确的时间间隙;二是通过 CPU 进行固 定次数的空操作达到等时延时的目的。考虑到时间的精确性要求,延时程序段都 以汇编语言编写并镶嵌到主控制程序段的 C代码中。 外置时钟方式也是保留原来的控制程序所采用的延时方式,首先通过汇编操 作设置 8253 时钟芯片的控制字,然后写入记数值、当进行指定的延时时,通过一 个重复的汇编循环操作监视 8253 的 OUT 端口电平是否变化,一旦变化则退出延 迟循环。 对控制字的设置采用 74H 作为初始值, 参考 8253 的控制字寄存器规则4, 重庆大学硕士学位论文 2 硬件控制与采集系统设计 7 74H 表示设置:通道 1 工作于先高字节后低字节模式,并采用比率发生器方式 记数。 考虑到实际测量中常因为自制时钟卡出现故障而导致整个测量无法继续,因 此在新的系统开发中引入了对硬件时间控制的替代方案,以提供在时钟卡故障后 能够继续工作的能力。 对时间的延时实际有很多,如 MFC 提供的 Timer 系列函数或者主板自带的 8254 时钟芯片。但 SetTimer 时间只能到毫秒级(且经过实验发现存在较大的精度 误差) ,而主板的 8254 芯片与自制板卡实际采用同一原理和操作方式,最快也只 能提供 5MHz(8253 为 2MHz)的延时频率,而设计要求在测试方案中能够实现更 快频率的延时记数,这样的快速测量在新机器调试和快速进针(一般需要几十分 钟)有重要的实际意义。 辅助延时方案最终采用汇编编写的2层嵌套循环实现。 循环核为NOP空操作, 占 3 个时钟周期,加上 mov、dec 和跳转指令所占用的时钟周期数,实现一次循环 的总时间数为 60 个 CPU 周期,对固定的 CPU,这个延时是可计算。如 CPU 频率 为 800MHz, 则该延时可以实现的最快频率为 800/60 = 13MHz, 比 8253 快 6 倍多。 此外,提供 2 层循环是为了能够快速连续地调整延时的时长,以及协调内置 和外置时钟之间的单位时间差距。其中,外层循环的时间控制参数命名为 TimeCount,它与外置 8253 的记数值共享同一个变量;内层参数命名为 subTimeCount,对外置 8253 时钟卡实现的延时,其延时频率为 2MHz,次数为 TimeCount;对 CPU 延时,其延时频率为: CPU 频率/60, 次数为 TimeCount × SubTimeCount,即通过设置合理的 SubTimeCount,可以使得内外置时钟在相同的 TimeCount 参数下有相同的延时时长。 2.2.2 采集延时与程序流程安排的改进 在拥有了精确的时间控制后,如何安排对采集流程的各部输出和输入,将很 大程度的影响到最终数据的准确性。 原有的控制程序流程在扫描时采用: “精确延时移动探针AD 采集参数” 的控制流程,考虑到在运行时 DA 输出(移动探针)有一定的响应时间,并且在 探针刚刚移动完成的时候,反馈电压的产生往往需要一个过程,如果马上对数据 (反馈的隧道电压)进行采集,势必造成一些误差,而且这种误差不会随着延时 的时长变化而有所改变,这就意味着即使采用很慢的速度采集,也是在探针移动 后马上进行 DA 输入,误差仍然存在。 在新的控制程序中对采集控制流程进行了如下改进,采用了: “移动探针精 确延时AD 采集参数”的流程安排。整个流程图参见图 2.1 所示。图中可以看到, 探针移动后并没有马上进行数据采集,而是把延时核放置在这里,这样在移动探 重庆大学硕士学位论文 2 硬件控制与采集系统设计 8 针和 AD 采集之间有充足的时间 (当延时的时长设置足够大时) 来完成 DA 输出的 硬件响应和隧道电流反馈,从而采集到更稳定可靠的测量数据。 在流程中,与原控制程序不同,本程序还在设置中留下的对各种参数的 AD 采集频率进行设置的开关,当调试硬件时,可 256 行每行都采集一次;当测量样 品时,可每页只采集一次,以防止不必要的 AD 操作影响流程效率。 系统平台识别和IO库设置 参数文件版本分析和读入 板卡的初始化参数设置 是否开始扫描消息循环 建立扫描控制线程 输出X、Y方向电压 驱动探针移动 是否退出扫描 延时时间模式 硬件实现精确延时软件实现精确延时 PData输入 ZData输入 是否需要采集其他参数 准备下一采集点 No Yse No 硬件软件 No 其它参数采集 Yes Yes 图 2.1 控制采集程序流程图 Fig 2.1 The flow chart of control and gathering 重庆大学硕士学位论文 2 硬件控制与采集系统设计 9 2.2.3 探针移动的改进 探针在每次完成 256×256 点的数据扫描后,会循环地进行该区域的第二次扫 描,在扫描程序中,最终输出图像中会提供同等参数下的 2 幅不同时间的扫描结 果,以便选择更好的扫描结果或进行对比处理。 在整个探针的移动过程中,虽然我们控制它的是阶梯的量化的 DA 电压,而 不是线性变化的电压值,但我们仍然希望能够最大程度的实现平稳、线性的探针 移动,避免探针大尺度的移动。 为实现这一目的,一方面我们提供尽可能小的步进电压值,另一方面我们要 求在进行完一个 256×256 面的扫描后探针能够平滑地过渡到下一次重复扫描的起 点,而不是跳转到这个位置。 相对于原有的控制程序,本程序在这两方面都进行了改进。首先,步进电压 的最小单位改为了硬件相关的“Step”, 即 816DA 子卡能够输出的最小的电压值 (约 0.3Mv) ,而不是以前的以 mV 作为单位。精确计算为: 1 (step) = 10 000/32 768 0.305 (mV) 对在 256×256 的采集面完成扫描时的探针跳转,原控制程序采用直接跳到最 开始位置重复上一次扫描路线,即控制电压的交流分量瞬间重置到 0,虽然理想状 况下探针可以准确定位,但实际上压电陶瓷不可能以纯理想的性能工作,驱动电 压大起伏的变化可能导致重置后探针与先前的起始点并不重叠。 New route change method old route change method 图 2.2 探针在幅面切换时的跳转方式比较 Fig 2.2 Probe movement difference when frame change 重庆大学硕士学位论文 2 硬件控制与采集系统设计 10 在本控制程序中,通过设置页面参量来区分奇数(对应输出中的左图)和偶 数(对应输出中的右图)次幅面采集,对每奇数次采集后,探针 Y 向的移动方向 反向,但电压并不跳转,从而实现了在偶数次采集中,探针沿着原来的扫描线路 以逐步倒退(相对于奇数次)的方式移动,从而在幅面切换时避免了探针的瞬间 跳跃,如图 2.2 所示。 2.2.4 改进底层读写的平台兼容性 在本控制程序中运用了汇编语言进行高效率的硬件交互5,但对于最新的操 作系统而言,如 Windows NT、Windows 2000、Windows XP,因为引入了全新的 安全机制,禁止了用户态的程序访问硬件端口,这造成了原有的扫描程序无法运 行于上述操作系统之中。 (AD/DA 操作无法进行) 欲实现 WinNT 或 2K 内核下的端口读写,必须以驱动程序(*.sys)的形式提 供一个端口读写的动态链接库 (DLL) , 在用户态的程序中调用 DLL 中的相关函数 达到访问内核的目的。 鉴于驱动程序开发工作较烦琐,且并不是本项目的研究重点,为了简化开发 过程,本程序最终采用了 Yariv Kaplan 的免费开源类库:WinIO 来绕过操作系统的 安全检查,实现新系统内核下的端口直接读写访问。 为了保持与原 Win98 平台的兼容性,本控制程序在初始化阶段利用 OSVERSIONINFO 结构进行操作系统的版本识别,只有在目前系统使用 Win2K 等 新内核时,才在初始化中加载 WinIO 库,以保证在 Win98 等系统中运行时获得最 高的效率。 2.3 界面和交互性的改进 2.3.1 多线程实现底层与交互层独立 从图 2.1 可以看出,本程序是以独立的一个新建线程6作为硬件采集线程。这 样设计的目的主要是为了将硬件控制层和用户交互层层分离。即通过操作系统的 多线程(轮询)机制,使得我们在硬件进行繁复的控制采集处理时,用户仍然能 够及时迅速的调整输入参数和运行状态。 在传统的控制程序中,只有单一的程序进程,但它通过在每次采集处理后进 行一次用户界面的消息处理来实现“实时”的用户交互。 这样一是费时耗能, 因为每 采集一个点就需进行一次消息处理。二是存在死机的隐患。当 DA 操作陷入“等待 数据 Ready”的死循环时(参见 2.4 节) ,用户就没有任何手段来解除或退出程序死 机状态。因为这时线程被隔阻在 DA 等待的死循环中,而用户交互处理与它在同 一线程,即必须执行完 DA 操作,才能响应相关的界面交互消息。这也是以前程 序运行时刻死机的重要原因。 重庆大学硕士学位论文 2 硬件控制与采集系统设计 11 新的设计中,硬件控制线程采用独立的线程进行,可通过公共数据实现与用 户参数之间的交互控制。同时,屏幕的显示和更新也采用独立的线程完成,并可 自行设置刷新速度,而不是以前的逐点采集绘制逐点绘制。这样,在调试和进针 进行完全后, 用户可以通过设置足够慢的刷新速度来削弱“屏幕绘制”对硬件采集的 干扰。各个线程之间的数据和控制流关系如图 2.3 所示。 Hardware control Public Data Display Message process Data Flow Control Flow 图 2.3 控制程序的各个线程间数据和控制信息的流通关系 Fig 2.3 The data flow relationships of control system 2.3.2 输出与后继软件的兼容性 考虑到传统程序已经拥有大量的使用用户,本程序在操控和界面上最大限度 的和传统程序保持了一致,只是在内部实现上进行了彻底的修改。所以,本程序 的使用上除了增加的若干功能选项和参数设置外,用户几乎感觉不到差别,可以 用原有方式轻松操控。 提供准确和携带信息丰富的图像输出是本次设计的要求之一。所以软件的输 出也保留了原控制软件的(实时数据2×灰度图)的位图输出。但本设计中,针 对后期可能进行的数据处理操作,引入了一些新的输出参数附带到输出图像之中。 如测量两点的相对高度就必须知道两点的隧道电压(Z 电压)大小,而从原控制程 序中只能获知得灰阶值,这些值虽然与电压之间是线性的关系,但比例系数是不 确定的。所以在本设计中,引入了 Pmax(灰阶 0 对应的电压值) ,Pmin(灰阶 255 对应的电压值)与图像一起输出,用于描述灰阶与电压的准确线性关系。同时, 当实测电压数据超出设置的界限值,图像中会以红(表高于)和蓝(表低于)色 重庆大学硕士学位论文 2 硬件控制与采集系统设计 12 点标记出来,而传统的采集程序则无此实用设置。 除传统的 P 图像数据外,同时提供了 Z 电压数据的(左、右分别)输出,并 同时包括文本形式和图像形式。 最后需要说明的是,本设计中的输出图像的特征已经加入到后期图像处理软 件的自动识别中,从而可以方便地在后期进行一些针对性的自动处理。 2.3.3 原控制程序的交互性 BUG 的改进 原控制程序存在以下界面和交互性问题: 1)程序恒为“最上面”窗口,无法设置更改,造成运行后无法运行其它程序。 解决:取消最上端设置。 2)程序窗口最小化或最大化后所有图像消失。解决:使用数据与绘制分离的 方式,采集数据记录到内存的图像数据区,屏幕需要重绘时从内存图像绘制到屏 幕显示区上。 3)程序窗口拖出屏幕再拖回来后图像消失。解决:同 2) 。 4)部分数据显示不实,部分数据项在屏幕中显示却无对应数据。解决:增加 部分数据显示精度(硬件能够达到的范围) ,调整计算式,增加“样品名”等等文字 参数的设置对话框。 5)Zv 等实时数据当变化速度较快且范围起伏超过一个量级时,较难辨清当 前数据。解决:改变其显示字符串的格式化规则。 此外,较之原控制程序,本设计最后实现中提供清晰完善的帮助文档。 2.4 基于稳定性的修改 2.4.1 硬件造成的死机缺陷 下面先介绍一下 2.3.1 分析中提到的等待数据死机的形成原因。 首先介绍的是 AD 采集卡 PCl-816B 的采集触发方式7,816 支持的采集触发 方式有外置 Trig(数字端口 CN2 的 DI0 端引入) 、Pacer Trig(内置时钟的周期性) 和 S/W Trig(软件触发) 。虽然相比之下前两种可以实现更精确的时间间隔和支持 一些自动高效的数据传输如 DMA(直接内存访问) ,但是,我们实际测试中需要 在探针移动和一定延时后再进行采集,然后进行下一次移动、延时、采集这 必须是一个连续连贯的过程,采用周期性硬件信号去触发 816 的每次采集将可能 导致它成为独立的作业而无法与时钟卡(或软件延时)和 DA 子卡进行很好的时 间上的协同。虽然我们也可以设法以同样的外置触发硬件来协调它们之间的工作 频率和次序,但相关的硬件上的调整在本项目中尚未开展。所以,为了最好的维 持三者的之间定时协同的逻辑次序,我们采用了软件触发的形式来控制 816 的数 据采集。也就是说,当软件下达一次对某端口的采集要求时,816 就从对应端口采 重庆大学硕士学位论文 2 硬件控制与采集系统设计 13 集进来(并保持)一个值。 因为 816 的 AD 操作需要一定的时间(虽然很短) ,所以当 816 采集过程中, 我们需要通过访问一个端口的值来获知是否本次采集已经完成,即该数据信号是 否 READY。在软件中,我们通过一个类似“while( IsReady ); ”的空循环来确定。 从上面可以看出,如果该信号一直无法正常采集,或者说根本未能成功触发, 则这个空循环会变成死循环而造成该循环所在的线程无法继续其他任何处理。造 成这种非正常状况的原因可能是因为软件触发未成功(如 WinIO 库工作不正常造 成汇编读写失败) ,或者因为 816 本身的板卡缺陷造成触发失败。当然,计算机主 板所提供的工作电压不足也可以导致这种情况发生。 在实际测量中, 这种情况出现的几率很小, 但在本软件测试运行初期的某 816 平台就屡次出现过 816 初始工作(预热期)时,产生这样的“坏触发”。 (通过近一 年的使用发现,其他 816 平台未出现一例这种问题,分析是因为参与当时测试的 某块 816 卡本身缺陷造成。 ) 2.4.2 提高稳定性的若干设计 虽然后续的板卡中尚未发现类似问题,但是问题隐患仍然存在,为彻底避免 扫描中途的故障性中断,本软件在以下方面进行了改进性设计: 首先,设置单独的采集线程与用户交互(消息处理)线程独立(见 2.3.1) , 使得即使发生硬件故障,也不至于使得程序在单一线程中阻死,用户还可以通过 恢复性操作强制中断采集或者进行其他恢复性控制。通过实验验证,当等待 Ready 的死循环时,通过软件手动发送一次采集触发脉冲,可以有效的解决该问题,而 这仅仅需要一次端口的写操作就能实现。单独的采集脉冲只有在与原采集流程独 立的线程中才能发挥作用,且不会对数据造成任何影响,因为探针的位置和对应 数据的一致性是通过专门的位置控制矩阵数组来维护,而不是通过采集的次数来 控制,即不会因为触发次数增加而增加数据采集量或造成数据错位。即使正常采 集情况下进行一次手动触发,也只是相当于重新采集当前点数据替代原数据而已。 在本程序中,用户可以通过调用“解除死锁”的菜单项实现一次手动触发。 其次,在每个可能的死循环中增加强退机制。在每个数据等待的 while 循环 中增加了对是否满足强退条件的判断,这样,即使手动触发不能解除死机,用户 仍能通过菜单操作实现采集进程的终结或者采集状态的切换(如暂停、继续等) 。 实际的 while 数据等待循环如下所示: while( readByte(BASE816 + 13) 其中, BASE816 是 PCL816 卡的起始 IO 端口地址, BASE816 + 13 为 READY 信号反馈端口,pDoc 相当于公共数据区的入口指针。 重庆大学硕士学位论文 3 图像处理与 3D 重建系统设计 14 3 图像处理和 3D 重建系统设计 3.1 系统简介 图像处理和 3D 重建系统涉及范围很广,要求提供对图像的各种空间和频率 处理,并最终完成效果丰富、交互性好的 3D 形貌的重建绘制。 图像处理方面要求能够提供对本项目的控制端采集的电压灰度图进行:自动 切割、色彩变换、可调线性灰阶变换、阈值处理、插值、中值滤波、N×N 模板等 空间域的处理和傅立叶频率域的各种滤波处理,以及实现图像数据提取查询、多 格式图像保存等诸多辅助功能。 3D 重建方面,要求提供细致快速的 3D 形貌绘制,并能轻松进行移动、拉伸、 旋转等几何操作, 提高大量色彩、 光照效果调节以及提供坐标计算、 文字标度、 jpg 图像和矢量数据输出等辅助功能。 本程序拥有上万行的 C+代码,并通过两年多实际使用中的用户不断修正和 改进,目前已经非常成熟的运行在实际的工作平台上,得到了大量有重要价值的 图像结果。 相对于基于 Matlab 的 3D 重建程序,具有硬件要求更低、处理功能更多、处 理速度更快、图像效果更好、用户调整更易、维护成本更小(完全自主知识产权) 等特点。 3.2 基本图像处理 3.2.1 图像的几何处理与数据兼容 每副扫描图像的尺寸为恒定的 256×256,有时我们只需要对其中的某一部分 进行处理和重建,这就要求程序提供自由的区域切割功能,从而可以保证在后期 的插值、傅立叶变换和 3D 重建能够拥有更快的执行速度。 只需要获得新区域的起始点位置,通过简单的行列循环复制即可实现切割, 但其中也有诸多地方需要注意:首先,需保证图像相关数据(如尺寸、最值、直 方图以及 3D 重建的色谱数据等)的更新,这些数据更新的发生本来只存在于文件 打开时,但当引入切割、插值等影响尺寸的操作后,对相应数据必须及时重新计 算和更新。其次,对原有数据必须进行有效的销毁,避免内存泄漏。因为本程序 默认支持任意尺寸位图,内存都是动态分配,稍有不慎,就会造成 memory leak。 最后,需要为撤销操作做好备份,保留切割前的基本数据。 重庆大学硕士学位论文 3 图像处理与 3D 重建系统设计 15 在实际处理中,本程序主要应用于 STM、AFM 领域(最新的应用已经拓展 到光学显微图像的重建) ,如何优化对扫描图像的处理尤有意义。对前端采集程序 的输出图像,如图 3.1 所示,由两张 256×256 位图组成。设计要求提供自动的图像 区域识别和切取,本程序在兼容传统扫描图像和现有控制软件图像的前提下,可 实现自动的快速左右区域切出,实现的方法只需预存好原图的图像分布和尺寸特 征,通过全图尺寸判断图像为何种控制前端输出的图像,从而选择不同的位置参 数切取 256×256 的图像。 同时,针对最新的本程序在光学图像处理方面的应用,程序提供了 JPG 数据 输入和重建的支持。 3.2.2 基本灰度处理运算 基本的数据处理可以在 3D 形貌绘制以前对图像灰度分布进行合理化的调整, 同时在几何空间形貌绘制中还可达到特殊的效果。如:反相操作相当于翻转图像 内外表面;线性拉伸操作便于色彩在形貌上的更均匀分配;插值运算可以提供更 细致的图像表面,并为本设计独创的等高带模式提供更细致锐利的边沿。以下将 分别讨论本文的若干基本灰度处理极其对扫描图像的针对性效果: 1)灰度化。 为了使得本程序支持彩色图像的若干处理,维持原图的色彩特征,本程序并 不会将所有图像在打开时就自动转换为灰度图像。对彩色的基本处理将对 RGB 各 分量分别进行。 但本设计中的若干操作只有对灰度才能操作,如 3D 重建需要从灰度值计算 对应的高度值,高度色谱也需要灰度值作为参考值。在这种情况下,为保证效率, 程序只取 RGB 的 G 分量进行处理,这样得到的 3D 图像在某些颜色边沿会出现不 图 3.1 采集软件输出图像 Fig 3.1 Image output from scanning system 重庆大学硕士学位论文 3 图像处理与 3D 重建系统设计 16 连续区域,影响图像最终效果,如图 3.2(a)所示。将彩色图像转换为纯灰度之 后则无此问题,如图 3.2(b) 。 (a) (b) 图 3.2 灰度净化前后,3D 形貌图的效果区别。 Fig 3.2 The 3D surface before and after the gray purify 灰度的获取公式参考 YUV 色彩系统的亮度计算8, 对 YUV 如 RGB 空间的换 算关系为: = B G R V U Y 100. 0515. 0615. 0 437. 0289. 0148. 0 114. 0587. 0299. 0 ; 所以灰度 BGRY×+×+×=11

    注意事项

    本文([硕士论文精品]STMAFM相关软件系统设计与开发.pdf)为本站会员(椰子壳)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开