在设置端点2发送有效之后,USB模块可自动完成端点2缓冲区的数据发送。
3.2 上位机应用程序
本设计采用一种使用NI-VISA和LabVIEW进行USB数据采集系统上位机程序开发的快速简单而且有效的方法,从而避开传统的Windows编程技术。通过在LabVIEW下调用NI-VISA子控件程序,可以方便地实现与USB设备的通信和应用程序界面的开发。
VISA(Virtual Instrument Software Architecture)是一个用来与各种仪器总线进行通信的高级应用编程接口(API),不受平台、总线和环境的限制。在利用NI-VISA完成对 USB设备的驱动后,即可在LabVIEW开发环境中直接使用VISA面板对USB设备进行控制和通信。LabVIEW是当今国际上唯一的编译型图形化编程语言,能方便、快捷地进行应用程序开发。本系统利用Lab-VIEW设计的USB多路数据采集系统用户界面如图4所示。
本系统实现了对16路外部信号的实时采集。图4中在实时波形显示区域,可以实时地显示4个通道的波形曲线。这4个通道通过选择可以是16个通道中的任意一个通道。在实时数据显示区域,能观测到每一路数据采集的结果;在左侧的控制及状态显示区域,可以实现设备选择、采集过程的控制以及数据采集系统的工作状态显示。
结 语
本设计实现了基于STM32F103x的USB多路数据采集系统,以STM32F103x微控制器为主控芯片实现了外部信号的调理、采集、预处理和USB 数据传输,以及上位机应用程序的开发。主控芯片STM32F103x内部集成了丰富的功能模块,使系统无需外扩大量芯片而能实现数据采集功能,降低了开发的复杂度和成本,达到了提高系统稳定性的目的。