Automotive and Embedded Networks

cancel
Showing results for 
Search instead for 
Did you mean: 

USB XNet Enumeration Limitation?

So I'm interested in having a system with 16 CAN ports on a single computer, would something like 8 USB-8502s work?  Is there a limitation to the number of XNet devices to be enumerated on a system?  I realize there is a practical limitation at some point in regards to the bus load.  I mean if I had 16 CAN ports all at 100% bus load at a baud of 1M then my LabVIEW code is probably going to struggle to read all CAN frames and do something like log them all.  In my situation 8 buses will probably be at 10% load, and 8 will be at 40% load or so.  Both running at 500k baud, and I'd like to log all CAN frames.

 

I realize there is a session limitation with XNet but it seems quite high.  8 Frame Input Stream sessions per CAN port (I will probably have 1) and 8192 sessions per system.  At most I could see having 5 sessions per port only making 80.  Output sessions are "limited by system memory.

 

I guess a different question is, what is the most number of CAN ports that has been deployed to a single system?  I've seen 9 USB-8473 into a single USB hub and then have that go into a single USB port on the computer and work but I wasn't logging all CAN frames just sending out some stuff in software timing that wasn't critical.  And in this case I think I'd be running Windows on a desktop and try to dedicate a physical USB port for each device and avoid hubs.  Although I may need to invest in some PCI-E USB cards.

 

Does NI (or anyone) see an issue with this kind of system?  It won't be doing much else other than than some non-time critical controlling of ethernet or serial based devices.  I've never had this many devices on a single system and am just trying to predict where the limitation will happen.  Thanks.

0 Kudos
Message 1 of 4
(2,705 Views)

I have several systems with 9 NI-9860's (and 18 TRC-8542's) on a cDAQ-9179 that have worked fairly well, even on laptops or plugged into a USB hub.  The systems use CAN FD with 2M data and 500k arbitration for 16 of the channels and 500k standard CAN for the other two modules.  I do log all CAN frames with stream sessions on each device.

I haven't tried large numbers of USB-8502's.  It would be nice to know if they work reliably, as they are about half the cost per channel of the cDAQ modules (or the similar 6-port PXI modules).

 

There is one other limitation that you didn't mention (though this application won't get anywhere near it): XNET only supports CAN1 through CAN200 as interfaces.  If you are using XNET 16.1 or earlier, that drops to CAN1 through CAN100.  This is mostly a problem if you try to do some sort of numbering scheme for your devices (https://forums.ni.com/t5/Additional-NI-Software-Idea/Custom-aliases-for-CAN-LIN-FR-buses-in-MAX/idi-...).

Message 2 of 4
(2,621 Views)

That's really encouraging news to hear.  That is quite a system and I'm a bit impressed it works as well as it sounds.  Our design has changed a bit and is a little more modest.  I think we are now planning on having 5 USB devices, 9 CAN FD (500k and 2M), and one 500k, logging all the CAN FD data.  Our desktop has lots of USB 2.0 ports no 3.0.  Lots of RAM, and a decent processor, but at the moment we are planning LabVIEW 32-bit.  I'll certainly report back on how it works in our setup.

0 Kudos
Message 3 of 4
(2,608 Views)

The biggest issue I've had with that many devices is that every once and a while, the names would reset themselves.  That was a while back -- maybe this never happens anymore.  Complete pain when it did, though.

 

I wouldn't worry about the bandwidth so much.  Reasonably modern systems can stream HD video off USB, decode and display.  Compared to that CAN is a rounding error.

0 Kudos
Message 4 of 4
(2,597 Views)