光谱测试系统的软件设计资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
摘要
当今显示器件在各行各业已经得到了广泛的应用。
在显示器件研发和测试过程中,器件的发光光谱是一个重要参数。
本文详细阐述了一个光谱测试系统的软件设计开发过程,该软件基于Windows 平台。
系统通过控制研华公司PCI-1710L数据采集卡,采用中断方式进行采集光源光谱数据,并达到实时显示的目的。
软件利用Visual C++开发,采用单文档结构。
界面友好,操作简便,现主要应用于科研。
关键字:光谱,软件,PCI-1710,中断,采集
I
ABSTRACT
ABSTRACT
Nowadays, display devices are widely used everywhere. In the process of the development and reaserch, the spectrum is important parameter.
The design of software of the spectrum measurement system, which is based on the Visual C++ of Windows platform, is described in this paper. The system controls the Advantech's PCI-1710L data acquisition card to sample and display the spectral date real-time by interrupt mode. The software is a single document structure and has a friendly interface. Now, it is mainly used in scientific research.
Key Words: spectra, software, PCI-1710, interrupt, acquisition
II
目录
第1章引言 (1)
1.1 选题背景 (1)
1.2 研究目标和意义 (1)
1.3 研究思路 (1)
第2章光谱测试系统的光学原理 (3)
2.1 表色系和色度图 (3)
2.1.1 CIE表色系 (3)
2.1.2 光源(发光体)的表色 (4)
2.1.3 非发光体的表色 (5)
2.1.4 1931CIE-xy色度图 (5)
2.2 显示色数 (6)
第3章编译软件概述 (7)
3.1 Windows下程序设计方法与MS-DOS的区别 (7)
3.2 Microsoft Visual C++简介 (8)
3.3 MFC简介 (9)
3.3.1 封装 (10)
3.3.2 MFC的宏观框架体系 (10)
第4章光谱测试系统软件设计 (12)
4.1 硬件结构及连接方案 (12)
4.1.1 光谱测试系统 (12)
4.1.2 研华PCI-1710L多功能数据采集卡介绍 (13)
4.1.3 触发方式的选择 (15)
4.1.4 采集系统信号连接方案 (16)
4.1.5 使用的缓冲区 (17)
4.1.6 关于FIFO (18)
4.1.7 内部缓冲区的使用方式 (19)
4.1.8 循环(cycle) 和非循环(no_cycle) (20)
4.1.9 Raw Data(原始数据)和voltage(电压值) (20)
III
4.2 软件设计 (21)
4.2.1 测试系统开发需要完成的任务 (21)
4.2.2 程序的总体构架 (21)
4.2.3 数据采集及显示程序流程图 (22)
4.2.4 数据采集模块的编写 (26)
4.2.5 数据存储模块的编写 (28)
4.2.6 实时画图模块的编写 (29)
4.2.7 软件界面 (30)
结束语 (33)
参考文献 (34)
致谢 (35)
附录 (36)
附录一:用来采集数据的线程函数 (36)
附录二:进行数据存储和画图的WriteData()函数 (37)
附录三:BufferChange事件发生时所响应的adBufChangeEvent()函数 (39)
外文资料原文 (41)
翻译文稿 (49)
IV
第1章引言
第1章引言
1.1选题背景
随着信息科学的飞速发展,数据采集和存储技术已经是数字信号处理中非常重要的环节,将决定整个系统的性能。
它广泛应用于雷达,通信,遥测遥感等领域。
它己经成为人们获得外界信息的重要手段。
基于总线的数据采集与存储系统,由于可靠且易于实现、经济等优点,得到了广泛的应用。
显示器件研发过程中,光谱测试工作需要反复进行,使用人工进行测量不但费时费力,而且得不偿失。
利用数据采集系统来实现光谱数据的自动化采集与分析对于显示器件的开发与研究非常有帮助,是科研中很有价值的一种手段。
实验室目前使用的光谱测试系统是上世纪90年代中期开发的,系统中所采用的微机型号为80386,操作系统为MS-DOS,自制的采集卡接口为ISA插槽。
随着近年来Microsoft视窗平台的普及与PC主机性能不断地提高,功能不断地强大,在科研中发挥的作用越来越大,该旧式光谱测试系统已显得较为落后。
1.2研究目标和意义
针对以上情况,对现有光谱测试系统进行升级已经迫在眉睫。
根据当前微机系统的发展状况,通过购买基于PCI接口的研华PCI-1710L数据采集卡,在现今广泛使用的PC机型上,开发一套基于Windows的光谱测试系统已成为可能。
而且旧式的光谱测试系统基于DOS方式生成光谱数据,使用3.5英寸软盘进行存储,并且打印功能基于旧式的打印驱动程序,需针对每种打印机设计不同的驱动程序,十分繁琐;而新系统基于Windows平台,以上的问题都迎刃而解了。
即使微机出现问题,也可方便地将系统迁移到另外的微机中。
1.3研究思路
本次课题的任务就是光谱测试系统的软件设计,即基于Windows平台,以
1
电子科技大学学士学位论文
Windows Visual C++ 6.0作为开发工具,使用研华公司出品的PCI-1710L数据采集卡,借助其内部提供的部分库函数,设计一套可以实时采集、显示光源光谱数据的软件。
2
第2章 光谱测试系统的光学原理
3 第2章 光谱测试系统的光学原理
2.1 表色系和色度图
表示光色系统的表示系以两种方式:一种是以加法混色为基础的生物物理方式;另一种是颜色的色品(也称色调)、明度、饱和度三特征为基础的纯生物方式。
前者是CIE (国际照明委员会)表色系,后者是用颜色标样的孟赛尔(Munsell )表色系。
本节重点介绍CIE 表色系。
由色视觉所产生的色光(色激励)范围为380~780nm 的可见光范围。
2.1.1 CIE 表色系
根据加法混色法则将三基色进行适当比例混合就能得到等能量单色光的一种色光。
因此,任何一种颜色的光都可以有选择的三基色光,按一定比例混合而成。
三基色有许多选择方案,CIE 表色系规定三基色的单色光为红光R (λ=700nm ),绿光G (λ=541-6nm ),蓝光B (λ=435.8nm )。
CIE 表色系可分为CIE-RGB 表色系和CIE-XYZ 表色系。
前者使用规定得等量的R 、G 、B 单色光作为三基色的表色系,而后者则由于CIE-XYZ 表色系中要配置等能白光存在着负值混色,因而给测量和计算带来许多不便。
于是通过对CIE-RGB 表色系的数学变换建立了CIE-XYZ 表色系,欲配置任何一种似乎都能用三个虚设的基色X 、Y 、Z 的正值混色而到。
该色系在实际使用中非常方便,故又称作CIE-XYZ 标准表色系。
图2-1 CIE-XYZ 标准表色系
电子科技大学学士学位论文
4 所示为在CIE-XYZ 标准表色系中,用x -,y -,z -表示等能光谱的三色分布系数(又称光谱三刺激值)的混色曲线。
图中y -
曲线与图2-1所示的相对视感度曲线分布相同。
2.1.2 光源(发光体)的表色
光源光度测量是建立在色度学的基础上。
我国颜色标准采用国际照明委员会(CIE)推荐的1931CIE-XYZ 系统,是以一组“1931CIE-XYZ 标准色度观察者光谱三刺激值”数据为基础。
该数据是根据加混色定律在实验基础上获得的,加混色定律指出任何颜色都可以用线性无关的三原色适当地相加混合与之匹配,并具有线性和可加性。
光源的颜色是可见光辐射作用于人眼所形成颜色刺激的结果,假定进入到人眼的相对光谱辐射功率为ϕ(λ),那么由它引起的CIE 三刺激值X,Y ,Z 可以用下列方程组表示为:
(2-1)
式(2-1)中)(),(),(λλλz y x 就是1931CIE-XYZ 色度系统的光谱三刺激值。
在实际计算三刺激值时,常用式(2-2)求和来代替式(2-1)的积分式:
(2-2)
式(2-2)中的λ∆称为波长间隔,通常为5nm 或10nm 。
式(2-1)和式(2-2)中的k 称为调整系数,它的选择是把Y 值调整为100,即:
(2-3)
780380780380780380()()()()()()X k x d Y k d Z k z d ϕλλλϕλλλϕλλλ⎫=⎪⎪=⎬⎪⎪=⎭
⎰⎰⎰780380100/()()nm nm k y λϕλλλ==∆∑780380780380780380()()()()()()nm
nm nm nm nm nm
X k
x Y k
Z k z λλλϕλλλϕλλλϕλλλ===⎫=∆⎪⎪⎪=∆⎬⎪⎪=∆⎪⎭∑∑∑
第2章 光谱测试系统的光学原理
5
式(2-2)计算得到X 、Y 、Z 三刺激值后,再利用式(2-4)就可求得待测光源的色度坐标。
(2-4)
2.1.3 非发光体的表色
非发光体(物体)表色的光谱三刺激值X 、Y 、Z 可以用式(2-5)表示为:
(2-5)
式中,φ(λ)是照射到物体的光辐射功率,ρ(λ)为该物体的光反射率或透射率。
求出光谱三刺激值X 、Y 、Z 后,再利用式(2-4)就可计算出其色度坐标。
2.1.4 1931CIE-xy 色度图
各种颜色的色度都能够在1931CIE-xy 色度图上找到相对的色点位置;反之在色度图上的任一色点都可以确定出它的色度坐标。
不同的光色,由色知觉命名与不同的色名。
图1-33表示了色度和色名的关系以及标准单色光的坐标点位置。
图中将不同波长的单色光色坐标点连接起来的曲线叫做光谱轨迹曲线,连接轨迹首尾两点的直线叫做纯紫(非光谱色光轨迹)轨迹。
两轨迹所围成的舌形曲线内包
X x X Y Z Y y X Y Z Z z X Y Z ⎫
=⎪++⎪⎪=⎬++⎪⎪=⎪++⎭780380780380780380()()()()()()()()()X k x d Y k y d Z k z d ϕλρλλλϕλρλλλϕλρλλλ⎫
=⎪
⎪=⎬⎪⎪=⎭⎰⎰⎰
电子科技大学学士学位论文
6 括了一切物理上可能实现的颜色。
舌形曲线上各点对应着各光谱单色光。
各点即可用波长表示,又可用色坐标表示。
曲线内各点为非单色的复合光。
根据不同坐标点的颜色不同又可划分成若干小区域,形成色域。
图2-2也适用于明度Y 值有着较宽变化范围的发光体的色度量。
对于非发光体的色,因为明度Y 值明显地受色知觉的变化,所以它的色名和色度坐标的关系随Y 值而有所不同。
2.2 显示色数
显示色数是指能够显示的颜色的总数。
它用每个基色的灰度等级数相乘之积来表示。
显示色数除了取决于显示器本身的性能之外,还取决于驱动信号系统的水平。
显示色数是用来表示中间色的规定细度的,而不是直接表示显示颜色的范围和鲜明度。
色域表示显示颜色的范围和鲜明度,通常用CIEl931国际标准色度图表示,如图2-2所示。
在马蹄形线框中,越接近外侧颜色的饱和度越高,越接近中心就越靠近白色。
所谓白色的表示方式,并没有统一的规定说明它是指何种程度的颜色再现能力。
图2-2 色度和色名
第3章编译软件概述
第3章编译软件概述
3.1Windows下程序设计方法与MS-DOS的区别
MS-DOS程序设计方法主要是过程驱动的程序设计方法。
在这种设计思想的指导下,一个程序会有一个明显的开始,明显的执行过程以及明显的结束。
在程序的执行过程中,开发者能直接控制程序执行的顺序。
Windows程序设计方法与MS-DOS程序设计的不同就在于Windows程序是事件驱动的。
事件驱动程序由事件发生来控制事件驱动的。
程序自始至终以一种非顺序的方式处理事件。
在Windows的这种运行机制下,过程驱动的程序设计方法明显不适用。
Windows程序的流程,消息处理的机制如图3-1所示:
图3-1 Windows消息处理的机制
事件驱动的程序设计围绕着消息的产生与处理而展开。
Windows应用程序所做的最主要的工作,就是对各种消息进行处理。
因此,应用程序的执行顺序是无
7
电子科技大学学士学位论文
法完全预知的。
每当事件发生时,Windows做出记录并将消息发送到有关应用程序中去,等待处理。
Windows为应用程序消息提供称为消息队列(Message Queue)的保留区,在操作系统中每个正在执行的程序都有自己的消息队列,由操作系统以及其他应用程序或用户向应用程序发送的全部消息都存储在队列中,等待被调用处理。
Windows应用程序以特定的循环调用Windows消息。
消息循环是一个简单的while()循环,它将一直运行,直到接受终止执行的消息,才使应用程序结束循环。
3.2Microsoft Visual C++简介
只要提到在Windows(95/98/2000/XP等)下进行32位的应用程序开发,就不能不提到Visual C++。
Visual C++ 是Microsoft Visual Studio开发工具的组件之一。
相比其他的编程工具而言,Visual C++ 在提供可视化的编程方法的同时,也适用于编写直接对系统进行底层操作的程序,其生成代码的质量,也要优于其他的很多开发工具。
Visual C++ 软件包包含了许多单独的组件,如编辑器、编译器、链接器、exe 生成用实用程序、调试器以及各种各样为开发Microsoft Windows下的C/C++ 程序而设计的工具。
重要的是,它还包含有一个名为Developer Studio的集成开发环境(Integrated Developing Environment,IDE)。
Microsoft Developer Studio用于Visual J++、Visual InterDev、Visual C++。
Developer Studio把所有的Visual C++工具结合,并且集成为一个整体。
通过一个由窗口、对话框、菜单、工具栏、快捷键及宏等组成的和谐系统,开发人员可以观察和控制整个开发进程。
该环境几乎就是Visual C++ 中所能“看见”的所有东西。
所有其他事情都在其管理下在幕后运行。
它有以下的特性:
1)自动化和宏支持
可以使用脚本来自动操纵例行的和重复的任务。
可以将Visual Studio及其组件当作对象来操纵,还可以使用Developer Studio对象模型创建集成的附加程序。
2)ClassView
组织C++ 中的类,包括使用MFC、ATL创建或自定义的新类。
8
第3章编译软件概述
可定制的工具条和菜单
3)多功能调试器
连接到正在运行的程序并对其进行调试,还可以使用宏语言来自动操作调试器。
4)与浏览器集成
可以在Developer Studio中查看Internet上的World Wide Web页。
5)多工程支持
可以在一个工作空间中包括多个不同类型的工程。
工作空间文件使用扩展名.dsw来代替过去的扩展名.mdp,工程文件使用扩展名.dsp来代替过去的扩展名.mak。
6)改进的资源编辑器
在Visual C++ 中,可以使用WizardBar来将代码与程序中的可视元素挂钩。
7)改进的文本编辑器
可以使用正确的句法颜色设置来显示无扩展名的头文件。
可以定制选定页边距的颜色来更好地区分同一源代码窗口中的控件和文本区域。
Find in Files命令支持两个单独的窗格。
3.3MFC简介
Visual C++ 的核心是Microsoft基础类库,即通常所说的MFC。
尽管使用Visual C++ 进行编程并不一定要使用MFC,使用MFC也不一定就要使用Visual C++,其他公司的很多软件产品如Borland C++ 的新版本也提供了对MFC的支持,然而事实上在大多数情况下,提到Visual C++ 时指的就是MFC,而提到MFC时指的也就是Visual C++。
MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。
因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。
Microsoft Visual C++提供了相应的
9
电子科技大学学士学位论文
工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。
3.3.1封装
构成MFC框架的是MFC类库。
MFC类库是C++类库。
这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO数据访问的功能,等等,分述如下。
1)对Win32应用程序编程接口的封装
用一个C++ Object来包装一个Windows Object。
例如:class CWnd是一个C++ window object,它把Windows window(HWND)和Windows window有关的API函数封装在C++ window object的成员函数内,后者的成员变量m_hWnd就是前者的窗口句柄。
2)对应用程序概念的封装
使用SDK编写Windows应用程序时,总要定义窗口过程,登记Windows Class,创建窗口,等等。
MFC把许多类似的处理封装起来,替程序员完成这些工作。
另外,MFC提出了以文档-视图为中心的编程模式,MFC类库封装了对它的支持。
文档是用户操作的数据对象,视图是数据操作的窗口,用户通过它处理、查看数据。
3)对COM/OLE特性的封装
OLE建立在COM模型之上,由于支持OLE的应用程序必须实现一系列的接口(Interface),因而相当繁琐。
MFC的OLE类封装了OLE API大量的复杂工作,这些类提供了实现OLE的更高级接口。
4)对ODBC功能的封装
以少量的能提供与ODBC之间更高级接口的C++类,封装了ODBC API的大量的复杂的工作,提供了一种数据库编程模式。
3.3.2MFC的宏观框架体系
如前所述,MFC实现了对应用程序概念的封装,把类、类的继承、动态约束、
10
第3章编译软件概述
类的关系和相互作用等封装起来。
这样封装的结果对程序员来说,是一套开发模板(或者说模式)。
针对不同的应用和目的,程序员采用不同的模板。
例如,SDI 应用程序的模板,MDI应用程序的模板,规则DLL应用程序的模板,扩展DLL 应用程序的模板,OLE/ACTIVEX应用程序的模板,等等。
这些模板都采用了以文档-视为中心的思想,每一个模板都包含一组特定的类。
典型的MDI应用程序的构成将在下一节具体讨论。
为了支持对应用程序概念的封装,MFC内部必须作大量的工作。
例如,为了实现消息映射机制,MFC编程框架必须要保证首先得到消息,然后按既定的方法进行处理。
又如,为了实现对DLL编程的支持和多线程编程的支持,MFC内部使用了特别的处理方法,使用模块状态、线程状态等来管理一些重要信息。
虽然,这些内部处理对程序员来说是透明的,但是,懂得和理解MFC内部机制有助于写出功能灵活而强大的程序。
总之,MFC封装了Win32 API,OLE API,ODBC API等底层函数的功能,并提供更高一层的接口,简化了Windows编程。
同时,MFC支持对底层API的直接调用。
MFC提供了一个Windows应用程序开发模式,对程序的控制主要是由MFC 框架完成的,而且MFC也完成了大部分的功能,预定义或实现了许多事件和消息处理,等等。
框架或者由其本身处理事件,不依赖程序员的代码;或者调用程序员的代码来处理应用程序特定的事件。
MFC是C++类库,程序员就是通过使用、继承和扩展适当的类来实现特定的目的。
例如,继承时,应用程序特定的事件由程序员的派生类来处理,不感兴趣的由基类处理。
实现这种功能的基础是C++对继承的支持,对虚拟函数的支持,以及MFC实现的消息映射机制。
11
电子科技大学学士学位论文
第4章光谱测试系统软件设计
4.1硬件结构及连接方案
数据采集与控制系统的基本任务是物理信号(电压/电流)的产生或测量。
但是要使计算机系统能够测量物理信号,必须要使用传感器把物理信号转换成电信号(电压或者电流信号)。
有时不能把被测信号直接连接到数据采集卡,而必须使用信号调理辅助电路,先将信号进行一定的处理。
总之,数据采集与控制系统是在硬件板卡/远程采集模块的基础上借助软件来控制整个系统的工作——包括采集原始数据、分析数据、给出结果等。
4.1.1光谱测试系统
光谱测试系统的框图如图4-1所示,主要由光源、聚光镜、单色仪和电压放大器组成。
单色仪包含入射狭缝、出射狭缝、稳压电源和光电转换器件及其它器件构成。
光源发出的光经聚光镜会聚后照在单色仪的入射狭缝上,入射的光经光栅色散后,单色光由出射狭缝射出并照在光电转换器件上,它所产生的光电压信号经高精度电压放大器放大后,所得电压值就可用采集设备获取并处理。
聚光镜
光源
图4-1 光谱测试系统框图
12
第4章光谱测试系统软件设计
单色仪中的光电倍增管、放大器与电平接口电路共同组成模拟系统部分,采集卡及其接口设备与微机共同构成数字系统部分。
被测单色光射入单色仪后,经光电管转换成电压信号,再经放大器放大至与A/D转换相匹配的程度后,送入数字处理系统,经过采集卡内置的A/D转换器转换成数字量,再把离散后的数字信号送入微型计算机进行处理及分析。
电平接口电路的功能是将单色仪步进电机的输出脉冲PMOS电平(-2至-10V)转换为数据采集卡A/D转换中所需的触发电平,此电平为TTL电平(0~5V)。
4.1.2研华PCI-1710L多功能数据采集卡介绍
在本次数据采集预处理系统设计与开发过程中,选用了研华(Advantech)公司生产的PCI-1710L多功能数据采集卡作为系统核心部件。
PCI-1710L是一款基于PCI总线的多功能数据采集卡。
其先进的电路设计使得它具有更高的质量和更多的功能:
1)即插即用
PCI-1710L是即插即用设备,完全符合PCI总线规范版本2.1。
在采集卡安装过程中,基地址、中断等有关总线的参数配置都可以通过即插即用功能予以正确的自动设置,不需要操作任何的跳线或者DIP开关。
2)单端或差分混合的模拟量输入
PCI-1710L具备一个自动的通道/增益扫描电路,可在采样时负责控制多路复用器的转换,而且卡中针对不同的通道内置了多种增益值及配置参数,使得多种输入方式灵活组合。
3)板载先进先出(FIFO)存储器
PCI-1710L提供板载先进先出缓冲存储器,最多可存储4K个A/D采样值。
当开启FIFO功能时,每当FIFO半满或全满时,采集卡都会产生一个中断,并进行数据的转移和存储,以防止数据丢失,因此有效的提高了数据采集速度和可靠性。
4)16通道数字输入与16通道数字输出
PCI-1710L提供16个通道的数字输入与16个通道的数字输出。
这给用户提供了很高的设计自由度与灵活性,可以按照需求设计所需的应用方案
13
电子科技大学学士学位论文
5)板载可编程计数器
PCI-1710L搭载了一个可编程计数器,可用于产生A/D转换所需的触发信号。
计数器芯片集成了以10MHz频率工作的3个16位计数器,一个用作输入通道的事件计数器或者用于产生脉冲,另外两个被叠加成为一个32位计数器用于脉冲触发。
6)短路保护
PCI-1710L 在+12VDC/+5VDC电源引脚搭载了短路保护装置。
当短路发生时,保护装置就会自动地切断输出电流。
在短路结束2分钟左右以后,电源引脚会重新输出电流。
为了方便使用和拓展采集卡的使用范围,PCI-1710L提供了68针脚SCSI-2线缆PCI-10168(长度1米)与68针脚SCSI-2接线终端板ADAM-3968。
PCI-10168内置的连接线全部为双绞线,并且将模拟信号传输线与数字信号传输线互相屏蔽分离,这给线缆赋予了特殊的信号噪声屏蔽功能,使信号具有最小的交叉串扰,最大限度地降低了EMI/EMC问题。
ADAM-3968用于将采集卡的所有的针脚引出为DIN连接方式的接线终端。
总之,PCI-1710L具有以下鲜明的特点:
1)支持PCI Bus Master方式的数据传送
2)16通道单端或8通道差分模拟量输入,或以组合方式输入
3)12位A/D转换器,采样速率可达100千赫兹
4)可编程的每通道输入增益
5)可自由组合的单端或差分输入
6)板载4千样本FIFO缓冲器
7)16通道数字输入
8)16通道数字输出
9)可编程的计数器/定时器
10)自动通道/增益扫描
14
第4章光谱测试系统软件设计
4.1.3触发方式的选择
在进行数据采集时,用户可以设定某些信号的特定条件,例如一个数字信号的高电平(logic high)或低电平(logic low),或是一个电压信号的特定值,一旦满足这些特定条件,数据采集卡才真正开始采集并将其传送到系统中,这便是触发的基本原理。
一般地说来,对数据采集板卡的进行编程使用的触发方式主要有以下两种:软件触发方式,外部中断触发方式。
1)软件触发方式
实际上就是采用系统提供的时钟在毫秒级的精确等级上,通过对寄存器的查询来实现数据采集,由于其采集速度比较慢,因此多用于低速数据采集场合。
2)外部中断触发方式
使用外部中断传输方式,你需要编写中断服务程序,将板卡上的数据传输到预先定义好的内存变量中,每次A/D转换结束后都会产生一个硬件中断,然后由中断服务程序完成数据传输。
当转动单色仪的波长手轮时,在出射狭缝处将按顺序射出各种波长的单色光,同时单色仪内的步进电机随着单色光波长的变化同步地发出脉冲信号,波长随步进电机转动变化速度为1Å/45ms。
软件的设计要求,获得的数据必须要与单色光波长相匹配。
比较两种触发方式:
1)软件触发方式
纯粹以时间的对应关系来使采集数据与波长匹配:将采集数据的时间间隔与波长变化速度对应,设定间隔一定的时长采集一次数据。
这种方式可能存在一定的误差,无法精准地使采集的数据与光波长变化相对应,而且由于软件触发采用内部时钟作为触发源,在采集前必须使单色仪波长手轮先转动,内部时钟开始计时并开始采集数据时,无法确定此时的波长值(即单色仪波长手轮转动的位置),因此无法准确起始采集波长。
2)外部中断触发方式
单色仪内的步进电机随着单色光波长的变化同步地发出脉冲信号,只有当冲
15。