基于PXI总线的高速数据采集系统的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于PXI总线的高速数据采集系统的设计与实现摘要:为了满足城市轨道交通cbtc车载测控系统对数据采集的需要,使用阿尔泰公司的数据采集卡pxi8002搭建出系统的硬件平台。
软件方面在vc++环境下,利用多线程技术设计实现了基于pxi总线的多通道高速数据采集系统。
详细介绍整个系统的设计思路,对其中使用到的关键技术进行了研究,实验证明该系统具有较高的可靠性。
关键词:高速数据采集半满查询多线程 vc++
中图分类号:tp274.2 文献标识码:a 文章编号:1007-3973(2013)001-082-03
1引言
信息社会的发展,很大程度上取决于信息与信号处理技术的先进性。
数字信号处理技术的出现改变了信息与信号处理技术的整个面貌,而数据采集作为数字信号处理的必不可少的前期工作在整个数字系统中起到关键性、乃至决定性的作用,其应用已经深入到信号处理的各个领域中。
在这种情况下,高速度、高精度数据采集卡的出现,极大的简化了数据采集系统的硬件设计在数据采集系统中的应用越来越广泛。
在城市轨道交通cbtc仿真测试系统中需要采集的物理量有速度、加速度、牵引力电流等多个参数,如何实现实时连续,长时间的数据采集,并在采集的同时对采集到的数据进行及时处理、存储并动态显示,而windows并不是实时操作系统,在
windows环境下开发实时测控系统需要采用一些技术。
本文主要利用阿尔泰公司的数据采集卡pxi2008搭建出系统的硬件,软件部分采用面向对象的软件设计思想,结合多线程技术和消息机制设计并实现的高速数据采集系统,完成了数据采集、数据分析处理、数据实时动态曲线显示等功能,并把该系统应用于地铁车载设备仿真测试系统中,实验证明该系统在可靠性和实时性方面具有良好的性能,能够满足系统要求。
2系统设计概述
本文设计的数据采集处理系统包括前端的信号处理模块、实时数据采集模块、数据处理仿真模块。
其中信号处理模块的主要功能是对测试信号进行幅度变换、阻抗匹配等,把模拟信号调节到采集卡的量程范围内;实时数据采集模块则完成对输入模拟信号的采集和缓存,采集到的数据采用半满查询的方式通过系统总线直接读入计算机内存中自定义的缓冲区中,由相应的其他模块来完成后续处理工作;系统软件功能主要包括实时数据采集、数据处理、实时数据存储、显示模块以及车载系统仿真模型。
由图1可知,整个系统主要分三部分:车载待测设备、数据采集处理单元和仿真控制单元。
车载设备待测物理量通过传感器转化成相应的电信号,信号经过信号处理模块处理后与pxi数据采集卡相连,仿真计算机编程控制数据采集卡工作采集数据,并对数据进行处理、显示、存储、分析等操作后供车辆运动仿真模型使用。
车
辆运动仿真模型根据各参数进行计算分析计算出接下来列车的运
行状态,并通过控制信号来重新调整车载设备,使之可以更好的协调工作。
3系统的硬件结构设计
本系统采用了阿尔泰公司的数据采集卡pxi8002,该卡是一种基于pxi总线的数据采集卡,可以直接插在ibm-pc/at或与之兼容的计算机内的任一pxi插槽中,使系统硬件平台的实现非常方便且很容易扩展。
pxi8002每张卡提供4路物理通道(各通道完全独立同步采样),每个通道独立进行a/d转换并且采集卡为每个通道提供了512k(字节)的ram用于对采集到a/d数据进行存储,以方便后继通过半满查询的方式来读取数据。
使用提供的驱动函数可以精确的编程控制每一路通道进行独立的采样。
其a/d转换器有12位的精度,最高采样率可达40mhz能够满足大多数数据采集系统对采集速率的需要。
硬件系统的安装也很简单,可以将采集卡直接插在pxi总线插槽上,将传感器传输过来的电信号直接连接到采集卡的接线端子上,然后在仿真计算机上安装板卡的驱动程序,这样在编制数据采集程序时可以直接调用板卡驱动程序提供的deviceapi函数来对板卡进行操作。
此外,由于单张pxi8002只能提供4路模拟信号同步采集,如果采集参数较多需要较多物理通道时可以使用多张采集卡,为了实现采集卡之间的同步可以使用外部时钟作为统一的时钟
源,以实现各采集卡之间的同步工作。
4高速数据采集软件的设计
本数据采集系统,在实现及时准确的采集参数信息数据的同时,还应该具有对采集到的数据进行分析处理的功能。
为了实现这些功能,本系统采vc++下基于对话框的编程结构,系统主要包括数据采集、数据显示、数据处理、数据存储和查询等几个主要功能。
软件的结构和工作流程图如图2。
4.1数据实时采集功能模块的设计
pxi8002采集卡主要有两种编程方式实现数据采集。
4.1.1软件方法获得a/d数据
循环反复调用pxi8002提供的deviceapi函数读取a/d数据来实现连续不间断的数据采集,这种方式采样速度比较低,实时性较差,但是其软件实现简单不需要编写额外的采集线程,因此软件方法读取a/d数据多用于采样速率要求较低或实时性要求不高的情况下。
4.1.2采用半满查询的方式取得a/d数据
pxi8002除了提供软件获取a/d数据的方法外,还提供了使用半满查询的方式进行数据采集,使用这种方法采集数据时,先要对办卡的一些参数进行设计并对采集卡的设备状态进行初始化。
之后才能启动设备开始a/d采样,采集到的数据会首先存储到采集卡本身的存储器中,接着软件调用deviceapi函数查询采集卡a/d数据存
储器fifo的半满状态,如果达到了半满状态,则可以读取半满长度(或半满以下)的a/d数据,与此同时采集卡继续采集数据装入另一半存储器中。
然后再接着查询fifo的半满状态,若达到半满状态则继续读取数据,循环上述过程以实现反复读取a/d数据,达到可实现连续不间断的采样的目的。
本数据采集系统采用半满查询的方式进行数据采集,同时利用多线程技术和消息传递机制来解决数据采集与数据存储、数据显示同时并发运行的问题,采用半满查询方式采集数据的程序流程图如图3。
4.2 windows操作系统多线程技术
windows操作系统是多任务操作系统,程序的执行单元主要包括进程和线程。
而线程是windows操作系统进程内部基本的可执行单元,是windows操作系统分配cpu时间片的基本实体之一,不同线程可以设置不同的优先级,从而对线程抢占cpu时间片进行控制。
windows的线程调度是通过给线程设置不同的优先级和分配不同的cpu时间片来实现的,通过线程调度windows实现了抢先多任务的目的。
每一个进程最少包含一个线程,称为主线程。
此外,在同一进程中可为不同的功能模块创建不同的线程,同一个进程中的不同线程共享此进程的内存空间和系统资源,多个线程并发地运行于同一进程中,从而实现多个功能的并发执行。
为了实现实时数据采集系统的设计要求,需要多个功能模块同
时并发执行如数据采集、数据存储、数据显示、人机交互都可能并发执行,这就需要用到多线程技术来实现。
多线程技术的采用具有如下好处:
(1)实习数据采集系统是多任务系统,数据采集、实时控制、数据存储、数据动态显示以及人机交互等功能需要同时并发的得到执行;而且各功能模块的执行速度、对时间精度的要求都不相同,多线程技术的使用可以有效的实现不同的任务之间的并发执行,单个任务运行速度慢或出现异常等情况并不会影响其他任务运行的
正常运行。
(2)线程之间的通信相比于进程之间的通信更容易,效率更高。
为了实现对数据采集的控制、数据的图形化显示以及人机交互等功能,线程之间需要对数据进行交换和同步。
同一进程中的不同线程共享相同的内存空间和系统资源,所有的线程都可以访问全局数据。
而进程之间的通信需要采用内存文件映射,ddl,dde,管道等通讯方式来实现,数据交换效率相比线程之间通信要低很多。
(3)系统中的慢速设备,如磁盘、打印机、数据终端等进行数据交换的速度较慢,使用多线程技术可以使系统在于慢速设备进行数据交换的时候,并不影响数据采集控制任务的正常执行。
(4)多线程技术的使用可以实现更好的人机交互体验,保证用户的输入能及时得到处理而不需要等待系统功能的执行完成,避免“假死”现象的出现。
本系统的线程主要分两种:用户界面线程和工作线程。
用户界面线程主要是用于对实时采集到的数据进行动态图形化显示以及
对用户输入进行及时的处理和响应;工作线程也称为后台线程,其主要功能是在不需要用户干涉的情况下独自完成各种不同的系统功,如实现数据采集控制、数据分析处理、数据存储等功能的线程。
在本采集系统中,主要的线程有:
(1)数据采集控制线程。
(2)数据分析处理线程。
(3)数据存储线程。
(4)人机交互线程。
数据采集控制线程、数据分析处理线程和数据存储线程是工作线程,无人机交互操作,这样数据采集线程不会因为频繁等待的人机交互而发生堵塞。
数据分析处理线程用于实时的将采集到的数据进行分析处理以便车辆运动仿真模型使用。
数据存储线程主要对现场采集的数据、分析处理的结果进行相应的实时存储,并负责在需要的时候调用存储的数据以便之后对数据进行人工分析。
5结束语
本系统在城市轨道交通cbtc车载仿真测试系统中运行良好。
集成数据采集卡的使用,大大简化了系统硬件的设计,在vc++环境下,使用多线程技术编写的多通道高速数据采集软件,保证了高速数据采集系统可靠性、实时性的同时,又做到了人机界面友好,操作简
单。
同时系统软件的设计采用面向对象的编程思想,提高了系统的模块化程度,便于系统功能的维护和进一步扩展,在设备状态实时监控、现场环境参数采集、实验测控等领域有一定的应用前景。
参考文献:
[1] 刘晓娟,张雁鹏,汤自安.城市轨道交通智能控制系统[m].北京:中国铁道出版社,2008.
[2] 林正盛.虚拟仪器技术及发展[j].国外电子测量技术,1997(2):40-44.
[3] 吴汉麒.城市轨道交通信号与通信系统[m].北京:中国铁道出版社,2001.
[4] 陆绮荣.电子测量技术[m].北京:电子工业出版社,2003.
[5] gary bview graphical programming.
[6] rail transit vehicle interface standards committee of the ieee vehicular technology society.ieee std 1474.3-2008,ieee recommended practice for communications-based train control (cbtc) system design and functional allocations,2008.。