采样线程负责从设备读取数据,并通过消息传送机制与主线程通信;主线程负责采样数据的显示、存盘,向设备发送命令数据包,以及启动/停止采样线程。当执行启动采样命令时,主线程先向设备发送启动命令数据包,然后启动采样线程准备接收数据;当执行停止采样命令时,主线程先向设备发送停止命令数据包,然后停止采样线程结束数据的接收。命令数据包大小为4 B.包含有命令字和采样间隔时间参数等信息。
2.3 单片机程序
如上所述,单片机的INTO中断一旦触发,表示主机有命令数据包传送到。在INTO的中断处理程序中,单片机读取EP2端点的数据直到EP2端点为空(FLAGB为低电平),获得上位机发送的命令数据包。若接收到启动命令,则根据命令数据包的采样间隔时间参数来设置计数变量和定时器T0的初值并启动T0;若接收到的命令为停止命令,则停止定时器TO。在TO的中断处理程序中若相应的计数变量达到设定值,则完成A/D转换、读取数据以及将数据写入EP6端点的操作。计数变量和TO的初值均根据命令数据包的参数进行设置,因此设备的采样间隔时间可以由主机程序进行调整。
3 结 语
工作于Slave FIFo方式下的FX2相当于在外部控制和主机之间构造了一个的数据管道。通过对FX2的FIFO标志引脚FLAGA,FALGB,FLAGc的配置,使该芯片可以方便地与单片机进行连接,单片机通过外部中断获知主机数据的到达,通过其他标志引脚获得端点FIFO的信息,单片机和主机通信时,感觉不到FX2的存在。基于单片机和Fx2的数据采集系统扩展方便、编程简单、无需外接电源、采样间隔时间由主机调整,实现了数据采集系统的小型化和便携化,在现场信号采集,教学实验,仪器仪表等领域具有一定的应用前景。