发明名称 多传感器探测数组数据实时采集方法
摘要 本发明涉及一种多传感器探测数组数据实时采集方法,采用Microsoft VisualC#2005平台在计算机中进行编程,通过编程后的计算机对数据采集卡及单片机进行控制;编程时采用线程池技术,在程序的数据采集线程中创建线程池,控制线程、绘图线程在线程池创建的次线程中运行;所述数据卡采集到的数据优先保存,并以二进制形式直接保存进文件。本发明充分利用数据采集卡提供的缓存器,对数据进行分时·集中传递,减少计算机与外设通行的次数。以实现实验中数据采集的实时性控制,并使采集的数据具有高效性、完整性、高可靠性、实时性等优点。
申请公布号 CN101488074B 申请公布日期 2011.01.05
申请号 CN200910116251.5 申请日期 2009.02.26
申请人 中国科学院安徽光学精密机械研究所 发明人 何枫;刘洁群;侯再红;吴毅
分类号 G06F3/05(2006.01)I;G06F5/10(2006.01)I;G06F9/46(2006.01)I 主分类号 G06F3/05(2006.01)I
代理机构 安徽合肥华信知识产权代理有限公司 34112 代理人 余成俊
主权项 一种多传感器探测数组数据实时采集方法,其特征在于:采用MicrosoftVisual C#2005平台在计算机中进行编程,通过编程后的计算机对数据采集卡及单片机进行控制;编程时采用线程池技术,在程序的数据采集线程中创建线程池,控制线程、绘图线程在线程池创建的次线程中运行;数据采集线程中,设置一个数据HFIFO缓冲区指针,所述缓冲区大小为8192个字节;当总线上出现数据时,首先将接收到的数据帧放入HFIFO缓冲区;所述缓冲区分为5种状态:0        表示HFIFO空;1        表示HFIFO非空但不到半满;2        表示HFIFO达到或超过半满,但未到全满;3        表示HFIFO全满;其它数值 表示未知状态,当数据未达到缓冲区大小的一半时,即状态0和1:此时不产生数据采集事件,数据将驻留在HFIFO缓冲区中,数据采集线程等待;当数据达到或超过缓冲区大小的一半但未全满即状态2:进程将先判断一下HFIFO状态,若为半满,就读4096个数;超过半满,但未全满,此时读数分2次,先将前4096个数读出,再将后面的数据全部读出,即读空HFIFO;当HFIFO全满即状态3:此时数据采集线程只要读空HFIFO或达到用户指定的个数就可返回,读数也分2次,先将前4096个数读出,再读空HFIFO;其它数值:表未知状态,不应该出现;绘图线程分为第一绘图线程、第二绘图线程;状态2时进入第一绘图线程,在绘图时要求先判断一下HFIFO状态,若为半满,就读前4帧即4096个像素,然后立刻返回,进行绘图,绘图时只绘出第一帧,最后保存;状态3时进入第二绘图线程,读满8帧即8192个像素,然后立刻返回,进行绘图,绘图时也只绘出第一帧,最后保存。
地址 230031 安徽省合肥市蜀山湖路350号