3.系统的关键技术及其实现方法[7~9]
数据采集 Windows已成为国内大多数实验室的主流配置。然而, 这却给对实时性要求很高的采集系统的开发带来了新的问题。数据采集的过程通常是: 计算机启动数据采集, 开始进行A/D转换, 当A/D转换完毕后, 采集卡发中断消息给系统, 系统得到通知后, 就会在中断程序读取转换数据, 保存, 并启动下一次A/D转换。我们在进行神经信号的研究时, 对采样频率的要求有时可高达100 kHz。而Windows的多任务性则不允许一个应用程序独占系统资源。若使用上述采集方式, 一个简单的鼠标或键盘敲击可能就会导致数据的丢失。而Windows给采集系统的开发带来的另一个问题是: 系统禁止应用程序直接操作硬件。
针对上述Windows的特点, 我们在NeuroLab神经细胞电生理信号采集与分析系统的开发中使用了以下一些技术:
使用VXD来捕获中断并进行中断处理 VXD即虚拟设备驱动程序, 实质上是一种DLL (动态链接库), 是微软专为Windows制定的设备驱动程序接口规范。我们针对我们的数据采集卡开发了专门的VXD, 以完成所需的对硬件的底层编程。
使用FIFO FIFO是一种先进先出的存储器件, 在我们的数据采集卡上, 使用了1 K word的FIFO。A/D转换的数据均先存放在FIFO中, 当FIFO半满时, 就会向系统发中断。因此, 采集卡由原有的完成一次A/D 转换就发一次中断变为完成512次 A/D转换才发一次中断, 大大降低了对系统的响应要求。
采用多线程和双缓冲技术 我们在内存中开了两个缓冲区, 当中断到来时, 先从FIFO中读取数据, 存入缓冲区A, 直至缓冲区A满, 则转将FIFO中的数据存入缓冲区B, 并在屏幕上进行显示,同时置A满标志, 将缓冲区A中的数据存盘,如图2右框所示; 而当缓冲区B满时, 则转将FIFO中的数据存入缓冲区A, 并在屏幕上进行显示,同时置B满标志, 将缓冲区B中的数据存盘。如图2所示地进行循环。而上述一系列的操作都是在另一个优先权高于主线程的中断线程中完成的。
数据的曲线显示 我们专门开发了一个用来进行数据的曲线显示的ActiveX控件CurveDisp。ActiveX控件是一种OLE控件, 可在VB, VC, Delphi甚至Internet浏览器中使用, 接口像Windows的标准控件一样简单。因此, CurveDisp控件不仅使用在本系统中, 也使用在华中科技大学生物物理与生物化学研究所开发的膜片钳系统, 细胞图像与生理信号同步采集系统中。
CurveDisp控件全面考虑了神经信号研究的需要, 可显示多达16个通道的数据。 基于各通道数据是同时采集的, 所有通道以相同的时间比例显示相同时间区域的数据。每个通道数据的幅度均可以不同的比例缩放, 在不同的幅度范围内观察。 为突出某些重要通道, 还可动态调整各个通道所占显示区域的比例。 为增加观察的直观性和方便性, 增加了两个可由用户任意拖动的标尺, 每个标尺带有一个可上下移动的文字框, 文字框中显示标尺所在点的时间和幅值大小。 通过这两个标尺可进行简单的数据分析, 如可由两标尺间的信号时间差及重复次数, 快速估算出信号的频率, 同时, 也为以后的区域测量与分析作好了准备。
NeuroLab神经电生理信号采集与分析系统采用了多文档技术。这样在系统中, 用户可以打开多个文件, 即可将不同条件下做出的实验数据同时打开观察作对比(图1)。这对于神经生理研究以及其它的生理学研究都是非常重要的。
数据分析本系统提供了较丰富的分析功能, 如功率谱分析、相关性分析、微分、多种积分、傅立叶变换、滤波等, 并针对神经电生理信号研究提供了事件检测分析、峰值间隔直方图、关联间隔直方图等方法。
经实验证明, 本系统已成功应用于双通道细胞外单位放电同步记录与分析, 而细胞外信号与细胞内信号相比, 电信号特性相差不大, 随着实验条件的改进, 本系统一定可以应用到细胞内单位放电同步记录与分析。同时, 如将本系统与膜片钳系统技术相结合, 相信在不久的将来, 可研制出双通道膜片钳记录与分析系统。
上一篇:膜片钳技术 下一篇:去小脑动物的观察 共2页: 上一页 [1] 2 下一页 |