11-16-2021 03:41 AM
Hello,
I'm building an industrial controller. One of the task of this controller will be data acquisition.
Specification are:
- data exchange channel "must" be USB
- must be able to exchange at least 10Mbps (In 50% +Out 50%), may became 50Mbps if controller is expanded
- data acquisition is bi-directional, I mean the controller RECEIVE a stream of data, and SEND another stream of data, the two are NOT strictly related
- Delay on the data exchange line is not that much appreciated, better not to have latency
- Must implement a control line
- Data rate is 10kHz, may became 50kHz
I'm wondering if the USBTMC would be a good option, it has Bulk/IN-OUT, but as far as I know Isosync mode would be the best for my requirement, this is the reason why I'm currently working on the Audio Class USB.
Also I'ven't found the max real/benchmarked, not theorical, bandwidth of a USBTMC line.
Any help appreciated! Thank you!
11-16-2021 09:39 AM
We have a device that we have done benchmarks with using USBTMC. As it is filling its buffer at 100Khz we can transfer that data in binary mode ( 8 bytes per reading) at just under this rate. Obviously it depends on your architecture. So USBTMC should meet your needs. Our benchmarks are with NI Visa on the PC.
As you probably know bulk transfers are guaranteed to be delivered correctly (no corruption or dropped data). Isochronous transfers are not guaranteed to not drop data.
11-16-2021 09:50 AM
Thank you for your reply.
If I've understand well, your device does 8Byte @ 100kHz, which is 6.4Mbps, right?
Yes, we prefer Bulk over ISO.
11-17-2021 07:56 AM
yes 6.4Mbps. But the benchmarks from several years ago were no where near that. They had to refactor the code to get those speeds. That's why I mentioned depends on your architecture/code. This was also a USB 2.0 device.
11-17-2021 07:58 AM
Thank you for this benchmark information!