03-17-2009 09:00 PM
大家好!
我正在开发符合USBTMC-488规范的usb device接口。在MAX的VISA Test Panel中测试读、写都没问题。但是在通过RQS获取仪器的服务请求,以及用Read STB读取仪器的状态时都不成功,不知是什么原因.
我理解的仪器通过USBTMC-488与电脑通讯的过程如下:
1.电脑向仪器发送命令到仪器
2.仪器输出缓冲区有数据时通过中断端点发送一个服务请求
3.电脑向仪器发送读请求
4.仪器发送缓冲区的数据到电脑.
数据如下:
Dev Phase Data Info Time Cmd.Phase.Ofs
--- ----- ----------------------------------------------------- ---------------- ----- ------------------
1 DO 01 1c e3 00 - 06 00 00 00 - 01 00 00 00 - 2a 49 44 4e ............*IDN 0us 1.1.0
3f 0a 00 00 ?... 1.1.16
2 DI 81 d4 .. 49ms 2.1.0
3 DO 02 1d e2 00 - 00 04 00 00 - 00 00 00 00 . ........... 2.1sc 3.1.0
4 DI 02 1d e2 00 - 18 00 00 00 - 01 00 00 00 - 54 6f 6e 67 ............ 20ms 4.1.0
68 75 69 2c - 54 48 32 38 - 32 36 2c 56 - 65 72 20 31 4.1.16
2e 30 2e 30
电脑向仪器发送read STB的过程如下:
1.电脑通过控制端点发送reas STB包;
2.仪器通过控制端点应答;
3.仪器通过中断端点返回仪器状态字节.
数据如下:
1 CTL a1 80 07 00 - 00 00 03 00 CLASS 2.9sc 5.1.0
2 DI 01 07 00 ... 4.0ms 5.2.0
3 DI 87 50 .P 3.9ms 6.1.0
但用labview的visa read STB.vi却读不到仪器的状态,总是提示"读取STB出错",请问是labview visa的问题,还是我上面的过程理解有问题。急盼高手指点。谢谢!
03-17-2009 09:05 PM
03-27-2009 03:35 AM
LabVIEW中VISA驱动的应用是不会有问题的,建议排除自行开发的设备协议是否正确。
Best Regards,
NI Application Engineer