LabVIEW中与USB设备进行通信1

  这段时间一直在做LabVIEW与USB设备通信的试验,对象是一台固伟的数字示波器,GDS-815C。LabVIEW提供了两个USB接口函数,usb control in.vi和usb control out.vi,但这两个只能用于和USB设备的0 endpoint 通信,而且其参数与USB标准文档上的并不完全一样,所以实际上用这两个函数与USB设备的0 endpoint通信并不方便,加上LabVIEW只对测试和测量类的USB设备提供了即插即识别的支持,将其放到USB INSTR类型里,对其他的设备全部归纳到USB RAW类型中,实际通信仍通过VISA来进行。而且VISA必须升级到3.2版本以上才能与USB设备进行通信。对于USB RAW类型的设备,必须使用VISA Driver Development Wizard安装设备驱动以告诉LabVIEW和Windows有这么一个设备在。前提只需知道设备的VID和PID号,这两个号可以从设备提供的驱动程序中找到。实际中并不需要也不能安装厂商提供的驱动,安装了厂商提供的设备驱动在LabVIEW中反倒无法与设备进行通信。因为按照USB技术文档规定,厂商可以自定义第三层协议,LabVIEW中自然无法获得相关数据。
  由于固伟没有提供USB的指令集,只提供了一个示例程序,且只能显示当前的波形数据,所以我采用了USB Sniffer来截取USB数据包,以此来获得相关指令。在使用USB Sniffer的时候犯了一个错误,就是没有注意到它在对USB数据包进行编号的时候将上行和下行对应的数据包用一个编号代表,并使用down和up来进行区分,而它所显示的数据包总数则将其分开统计,也就是说,当Sniffer暂停在844这个包的时候,实际上对应的应当是422(当然也有可能是附近的某个数据包,应为可能存在只有上行或只有下行数据包的情况,比如在使用中断方式通信的时候,有比如相应数据包很晚才接收到,都会造成实际对应的不是422的结果。)因此,开始的时候我一直在844附近找相关指令,当然是找不到了。当发现这个情况时才真正找到了指令。这时通过VISA与设备进行通信。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值