基于NI-VISA的USB接口虚拟数据采集仪设计
的内容。中断服务模块的伪代码如下:
本文给出的实例是当单片机接收到上位机发送过来的“开始温度采集”信号后,开始不断启动温度的采集和往上位机发送温度数据,直到收到上位机发送过来的“停止温度采集”信号。本实例单片机端的主程序伪代码如下:
在“中断服务模块”代码中的端点2的OUT事务部分,读取上位机发送过来的数据,从该数据中获取信息,刷新“开始温度采集”的标志,然后退出中断。在单片机主程序里面可以根据对该标志的判断来决定开始采集温度还是暂停采集温度。
3 上位机软件设计
上位机的USB设备的驱动编写采用的是NI-VISA图形化的方法进行设置,详细步骤见参考文献。驱动编写后,接下来就是采用LabVIEW 2012编写上位机程序,上位机的运行界面如图2所示。
其关键程序代码如下:
①打开USB资源。该部分代码如图3所示。其中关键函数是图3中所示的“VISA打开”函数。
②点击运行界面上的“开始采集温度”按钮。实现上位机往CH372设备发送一个字符“1”。CH372设备接收后,触发单片机中断服务读取该字符。读取该字符后,刷新“开始采集温度”的标志。在单片机的主程序中,根据该标志启动温度采集和往上位机发送温度数据。因此,上位机程序中必须含有往CH372设备写发送数据的操作和读来自CH372设备数据的操作,该部分代码如图4所示。其中的关键函数是图4所示的“VISA写入”函数和“VISA读取”函数。
结语
该模板采用CH372芯片的内置同件模式,屏蔽了USB通信的底层细节,大大降低了USB通信的复杂度。同时对CH372的操作细节进行了封装,提供相应接口给应用层,开发者的设计只局限在应用层,大大降低了开发时间和难度。采用NI-VISA的图形化配置的方法快速开发了USB设备的驱动,采用LabVIEW里面提供的函数方便实现USB设备打开和读写操作。因此,该模板能实现USB接口的虚拟数据采集仪的快速设计。
- Linux系统下USB摄像头驱动程序开发(04-25)
- 基于uClinux嵌入式系统的汽车黑匣子的设计(07-08)
- 基于WinCE操作系统的通用USB数控键盘设计(08-05)
- 基于WinCE的ARM视频监控系统(11-14)
- 基于LabVIEW的USB实时数据采集处理系统的实现(03-26)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)