关键字:数据采集卡, 高速数据采集卡, 采集卡, 高速采集卡, USB数据采集卡, USB采集卡
引言
数字接口设备是实现标准422串行总线到自定义串行总线转换的专用通信设备。数字接口测试系统根据数字接口设备的工作原理,输出422串行数据和自定义串行总线的控制信号(YCK,YZM)给数字接口设备,并对其输出的串行数据(YDATA)进行采集、存储、分析和处理,从而达到对被测设备进行检测的目的。本数字接口测试系统共提供了八个测试通道,每个通道的422串行总线和自定义串行总线的相关参数都可由测试人员通过应用软件进行设置。为方便对数据进行分析,同时在软件上约定了发送的数据格式为:AA xx 01 23 45 67 89 AB CD EF 01 23… 10,其中帧头为0xAA,帧尾为0x10,xx为发送计数器值,每发送一次依次加1。应用软件通过相应的算法对自定义串行总线接收数据进行实时分析和处理,如:已经接收的字节数,共接收了多少帧数据,共出错有多少字节……并将结果在测试界面上动态显示,测试人员可以根据这些实时的测试结果来判断被测设备是否正常工作,一旦发现测试数据误码率太高,即可马上断电停止测试,防止被测设备烧坏。
系统实现方案
数字接口测试系统原理框图如图1所示。测试设备通过USB2.0总线与操作控制计算机进行连接,每台测试设备提供了八个通道的数据发送和接收单元,其中数据发送单元用于输出422异步串行数据,其波特率最高可达614.4 kbps,帧长可根据测试要求进行调整,每帧数据最高循环发送帧周期为5ms;数据接收单元用于产生自定义串行总线的控制信号YZM和YCK,并从YDATA读回数据,YCK和YZM最高分别可达1.6384MHz和25.6kHz。
由于测试过程中传输数据量大,且需要对采集回来的数据做实时分析,因此对数据的实时采集和分析采用多线程分别进行处理。应用软件中主界面线程主要负责完成人机界面操作,同时分别打开数据采集和数据分析两个线程来同步协调工作,为保证数据采集和分析过程的连续和数据完整,两个线程之间通过开辟高速内存缓冲区和内存映射文件的方式来实现高速数据流的一、二级缓冲。其中一级缓冲区实现对USB总线上传数据的缓存,用于实现接收的USB数据包按照各个通道进行数据分解;二级缓冲则按照通道号将分解输出的数据分别进行暂存,用于数据分析线程实现数据分析处理。整个方案中,数据包的上传、存储、数据分解、数据分析等操作均是在内存中完成,速度快,正确率高,再加上采用新的线程同步方法,既保证了数据采集线程高速数据吞吐量、数据分析线程的快速响应和实时分析,又保证了整个方案较高的性能和最低的系统开销。数据缓存处理如图2。