Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux中使用Python和USBTMC将信号加载并读取到波形发生器中?_Python_Usb - Fatal编程技术网

在Linux中使用Python和USBTMC将信号加载并读取到波形发生器中?

在Linux中使用Python和USBTMC将信号加载并读取到波形发生器中?,python,usb,Python,Usb,我需要将显示的信号加载到波形发生器中 通过USBTMC驱动波形发生器的代码: 我使用了以下代码创建示例代码 如何将创建的啁啾信号加载到波形发生器中?USBTMC是USB测试和测量类。这些命令是SCPI命令。必须加载的驱动程序系统驱动程序是usb_tmc。插入安捷伦设备后,在dmesg的输出中检查这一点。然后,波形发生器应出现在系统上的/dev/usbtmcx或/dev/ttySx中,并用数字替换x 配置接口 最近的Linux内核支持现成的USBTMC。连接你的 检测并检查是否存在/dev/usb

我需要将显示的信号加载到波形发生器中

通过USBTMC驱动波形发生器的代码:

我使用了以下代码创建示例代码

如何将创建的啁啾信号加载到波形发生器中?

USBTMC是USB测试和测量类。这些命令是SCPI命令。必须加载的驱动程序系统驱动程序是usb_tmc。插入安捷伦设备后,在dmesg的输出中检查这一点。然后,波形发生器应出现在系统上的/dev/usbtmcx或/dev/ttySx中,并用数字替换x

配置接口

最近的Linux内核支持现成的USBTMC。连接你的 检测并检查是否存在/dev/usbtmc*。设置适当的 对/dev/usbtmc的权限*

打开USB仪器t0=usbtmc'/dev/usbtmc0'的接口

写入侦听器:usbtmc_writet0,*IDN?“

阻塞读取调用[二进制读取],返回uint8数组数据=usbtmc_readt0,10000 将uint8数组转换为字符串、字符数据

关闭usbtmc会话usbtmc\u关闭0

不是Python;是,仅显示基本用法

在Python中,它是类似的。看

在插入安捷伦设备时,首先检查dmesg是否加载了驱动程序usb_tmc,并按照创建udev规则的说明进行操作,…,检查是否显示/dev/usbtmc0等

如果一切正常,编写一个简单的测试脚本,查看安捷伦设备是否响应:

import usbtmc
instr =  usbtmc.Instrument(2391, 5973) // The 2391 and 5973 are USB idVendor and idProduct of the Agilent MSO7104A converted to decimal
print(instr.ask("\***IDN?"))
# returns 'AGILENT TECHNOLOGIES,MSO7104A,MY********,06.16.0001'
然后编写一个Python“驱动程序”,将标准TMC命令映射到Python函数read、write、,。。。像美国的btmc.py。你有这个

中有一个非常基本的波形发生器控制脚本

如果要设置频率,请写入SCPI命令FREQ,后跟所需值:

freq = 1000
write("FREQ %f" % freq)
amplitude = 5
write("VOLT %f" % amplitude)
如果要设置振幅,可写入命令VOLT,后跟所需值:

freq = 1000
write("FREQ %f" % freq)
amplitude = 5
write("VOLT %f" % amplitude)
复杂的部分是创建和下载二进制任意文件

您不能直接使用NumPy矩阵加载安捷伦,因为它只接受特殊的二进制文件,因此必须将chirp矩阵转换为二进制文件。见第42、62页。也许可以将第62页上的示例翻译成Python来生成二进制arb文件

创建波形二进制arb文件时,可以使用C中的SCPI写入操作传输它

在使用类似于上面的Python驱动程序时转换为Python,可以是:

二进制写入源1:数据:任意测试b,,z,true;二进制写入

在第234页的用户指南中,ff也是相关SCPI命令的摘要。在互联网上搜索“安捷伦书写arb”

在仪器控制工具箱中,有一个名为Quick Control Function Generator的MATLAB工具箱解决了这个问题