延迟的实时采集设备

15的观点(30天)
小君Hyung金
小君Hyung金 2022年2月25日
嗨,大家好!
我使用NI的采集USB设备测量loadcell的信号。
我想测的力,但MATLAB情节总是向我展示了一个图有一些延迟。
我使用回调函数和代码命令如果值低于4.8,立即停止绘图。
然而,MATLAB情节读值低于4.8。
我这里是MATLAB代码,情节将帮助您了解我的问题。
谢谢你!
全球data_stack time_stack d
d =采集(“倪”);
d。率= 100;
ch = addinput (d,“Dev1”,“ai1”,“电压”);
ch.TerminalConfig =“SingleEnded”;
ch.Range = 5 [5];
d。ScansAvailableFcn = @plotSample;
开始(d,“连续”);
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
函数plotSample (obj evt)
全球time_stack data_stack d
[data_buff, timeStamp_buff] =阅读(obj, obj.ScansAvailableFcnCount“OutputFormat”,“矩阵”);
如果isempty (data_stack)
time_stack = timeStamp_buff;
data_stack = data_buff;
其他的
time_stack = [time_stack;timeStamp_buff];
data_stack = [data_stack;data_buff];
结束
如果data_stack(结束)< 4.8
停止(d)
结束
情节(time_stack data_stack);
结束

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2022年2月25日
您正在阅读一个缓冲区的样本,可能不止一个样本。你问题停止如果端点低于阈值,但是情节的所有样品在缓冲。
USB控制器/设备配置。
对于USB 3.0和更早的, 每一个 情况下,控制器一遍又一遍地重复周期的控制器
1。问是否有新设备在公共汽车上,监听响应,如果它得到了一些,其功能要求每个新设备列表
2。对于每个设备控制器知道,它要求单独设备的设备是否有任何它想要发送。设备发回没有或描述的转移,而不是数据本身,除了,如果数据很小可以包在应对控制器
3所示。每个类型的数据传输都有一个优先级,和特定的带宽可能协商。控制器重视转移请求,如果总请求将超过传输,可以量在一个周期中,水滴从队列中不太重要的。然后通过队列步骤告诉每个设备传输的具体数据。
4所示。因为优先级分配的方式,“实时”数据从未丢弃在循环:当时设备要求建立一个实时传输,控制器将拒绝权限设置是否有转移 潜在的 带宽的超额认购(如果所有设备同时要求谈话时实时预订。和任何虚拟连接并不像实时配置,通过定义等待数据包可以递延后周期不是每个设备都想谈话在完整的保留能力。控制器不需要专门告诉设备拒绝等待deferrible数据包的传输:它只是不曾要求转让,设备仍有它的股票,当控制器民调工作下一个周期。
5。控制器有一个固定最大调查率(也可以依赖的混合协议支持的附加设备。)万博1manbetx
把这一切放在一起,有一些重要的意义:
  • 设备做发送数据一旦可用。他们不发送,直到下一次控制器要求他们发送然后控制器会告诉他们发送它。
  • 要发送的数据分成独立的传输与边界每次设备软件有数据准备好。相反,随着数据变得可用,设备队列缓冲区中的数据,时间控制器要求工作,设备报告缓冲区的大小,和控制器告诉设备发送多少。缓冲区中的数据转换成最大长度数据包传输。因此如果阅读可用现在,是的它得到缓冲。但如果阅读B也可用在控制器要求工作之前,A和B将被转移,包括潜在的阅读如果这就是工作的一部分的硬件缓冲区或带宽可用性。
  • 如果控制器之间的时间之间的间隔周期超过样品那么多个样本最终缓冲。
  • 至少一些目的,控制器轮询的限制是每秒1000事件。
2的评论
沃尔特·罗伯森
沃尔特·罗伯森 2022年2月25日
现在,国家仪器使几个非常低端USB模拟到数字卡片,也更昂贵的USB a / D卡。
我无法验证,但在过去,我得到的印象是很低端的NI USB A / D卡使用“串行/ USB协议发送数据。这个协议是 考虑一个实时协议。该协议需要一些command-and-response的控制方法,控制器周期是固定的,你就不能实时控制启动和停止数据流。
使用“串行设备如arduino USB”……是很常见的,有效的取样率可以得到最高的传播,是40的样品/秒。你可以得到更高的吞吐量如果你愿意包更多的每个包的样品
如果我理解正确的话,高端NI USB A / D卡知道如何保留带宽将数据发送到主机,它允许他们提供高带宽和更少的延迟和更多的一致性。但是,这些设备的控制通道被实现为一个虚拟设备在相同的硬件上……有效地使用一个串行命令协议(但通常可以避免一些常见的缓冲与“串行/ USB”)。所以没有即时停止……但是当设计可以是一个 相对 低延迟比使用纯serial-over-USB时停止。
总而言之……得到 一些 数据包后你发现几乎肯定与USB设备的停止条件。延迟的时间可以依赖Impementation质量。

登录置评。

类别

找到更多的在周期性波形的一代帮助中心文件交换

s manbetx 845


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!