碧波液压网 欢迎你,游客。 登录 注册

基于Linux的单机全数字控制的扫描探针显微镜

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  扫描探针显微镜(SPM),包括扫描隧道显微镜(STM)、原子力显微镜(AFM)等,已成为纳米结构表征和操纵的重要手段。它通常是将针尖接近样品表面产生相互作用,然后反馈控制系统通过实时改变针尖的位置来调整相互作用的大小,从而实现包括扫描成像在内的各种功能。早期的扫描探针显微镜通常采用模拟的负反馈电路进行反馈控制,近十年来逐渐为数字控制所取代[1~5]。数字控制通常是将针尖和样品之间相互作用的信号,例如STM的隧道电流或AFM的原子力,直接通过模拟/数字(A/D)转换成数字量,经过比例-积分(PI)反馈运算后,再由数字/模拟(D/A)转换输出来调整针尖位置。因此数字控制比模拟控制精度更高,控制更灵活[6~8]。为了满足SPM控制对实时性能的苛刻要求,目前的数字反馈计算通常是由一块单独的数字信号处理器(DSP)来完成的[3~5],PC机只是用于和DSP进行通讯来获取数据,并进行处理和显示。本文描述一种新的全数字控制方案,即仅使用一台安装有Linux操作系统的普通PC机实现对扫描探针显微镜的多线程、高精度、实时性的全数字控制,简称为“L-PC软控制”方法。

  1 L-PC软控制

  1·1 硬件配置

  L-PC软控制的架构如图1所示。针尖和样品之间相互作用的信号,经过前置放大后通过A/D采集卡进入计算机,计算机计算得到的各种控制量,包括针尖X、Y和Z方向坐标等,通过D/A卡输出,经过放大后连接到扫描头。其中PC机的CPU主频为1·8 GHz,内存512 MB,A/D采集卡为12位精度,一次A/D转换时间约为8μs,D/A转换卡为16位精度,一次D/A转换时间约为2μs。

  在上述硬件配置中,PC机本身配置并不重要,关键是根据扫描速度等具体要求,选用合适转换速率的A/D和D/A卡。整个控制程序对内存的要求很低,包括处理数据的图形用户界面在内,大约只需要占用10兆字节的内存。而对于CPU,当前主流的GHz主频的CPU已经足够强大,所以每次反馈用于运算的时间小于1μs,相比A/D和D/A转换时间完全可以忽略不计。基于上述A/D和D/A的转换速率,SPM反馈运算的速度可达每秒钟约30 000次。在实验中,考虑到外部电路的带宽和压电陶瓷形变响应速度等具体情况,通常SPM反馈速度低于10000次/s。特殊情况如需要更快的反馈速率,则可选择更快转换速率的A/D和D/A卡即可。

  1·2 反馈控制

  在PC机上,我们按照图2所示的流程,用C语言编写了反馈控制程序。这个反馈控制程序会被A/D卡上的时钟周期性地触发。在每一个周期里,A/D卡上的时钟脉冲首先触发一次A/D转换,从而将当前针尖和样品相互作用信号转换成数字量,然后发送一个中断信号通知反馈控制程序进行一系列运算,最后反馈控制程序将针尖位置等控制量通过D/A转换输出,就进入空闲状态。目前在PC机上常用的操作系统,包括Windows和Linux都无法满足上述的反馈过程对实时性能的要求,其原因主要是:从A/D卡的中断信号发出,到反馈控制程序得到通知开始启动,这段延时过长且不确定。无论Windows还是Linux操作系统,延时往往在20μs到200μs不等,这就导致无法及时的进行反馈运算。为了解决这个问题,我们选择了开放源代码的Linux操作系统,应用Xenomai开源软件项目[9]修改了Linux内核源代码后,使得上述延时被缩短到2μs以内,从而让我们编写的反馈控制程序可以在操作系统的最底层快速响应A/D卡产生的中断信号。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论