1

My goal is to set up a high-speed network link between two identical processors (Qualcomm SOMs) that will be present on the same PCB. Since I have severe restrictions on weight I cannot use the standard ethernet way with an RJ45 and a cable to set this up. The two possible interfaces on the processors for the network link are PCIe 3.0 or a USB 3.1 GEN2 interface.

My current idea is to use an ethernet bridge IC like the LAN7430 from microchip at the PCIe-port on both processors and add a single ethernet transformer (e.g. H5084NL from pulse electronics) in between. This would set up an ethernet link 1000BASE-T between the two processors. According to this and this question the magnetics are recommended to provide a stable connection. They also mention the problem with connections that are shorter than 1m, which I don't know yet how to solve.

Is this the best solution for this problem? Since I do not have access to a MAC-port I cannot implement the direct MAC to MAC connection as proposed by user dim in this question.

With this solution, using the PCIe port, I could achieve 1Gbit/s with the 1000BASE-T Ethernet. According to the USB specifications, the USB 3.1 GEN2 interface is capable of achieving up to 10 Gbit/s, which would be preferable for my application.

Is it possible to implement a reliable USB network onboard without cable? I was thinking about creating a USB-C to USB-C connection, without the actual USB-C plug and cable. I'm talking about USB-C because it can support dual-role, which is needed to set up a network connection as described here.

Finally, I could also add a USB to Ethernet Bridge IC like the LAN7800 but unfortunately I have only found ICs supporting up to 1Gbit/s, even though USB 3.1 GEN2 is capable of 10Gbit/s.

Is the USB-network solution feasible and reliable? And are there known implementations out there? If I'm going with the ethernet route, are there any advantages using PCIe over USB, or vice-versa?

Ecuashungo
  • 15
  • 5
  • 1
    Note that anything you can do with a cable you can do without a cable, just by wiring it on your PCB. Does your SOM support "PCIe endpoint mode"? – user253751 Mar 11 '21 at 10:05
  • I am not sure. The SOM is [C5165 SOM](https://www.thundercomm.com/app_en/product/1594458818301561?index=2&categoryId=112) and runs Ubuntu 18.04 – Ecuashungo Mar 11 '21 at 10:32
  • 1
    Another thing I'd investigate are PCIe non-transparent bridges (NTB). While it's unlikely those modules have an NTB capable root complex (these are seldom), they might be available as separate components (but I haven't researched that). What does exist are NTBs as FPGA IP, but that is likely going to be too expensive to be useful outside of a very small niche. – Simon Richter Mar 11 '21 at 10:56

1 Answers1

0

The simplest solution in terms of design time is USB, where one SOM is configured as a USB HOST and the other as a USB DEVICE.

Also, if you have Linux on both the SOM, you may test this scenario using two PC's without writing a single line of C code.

When you design the PCB, take a special care when routing the USB traces because they are impedance-controlled ones.

Enrico Migliore
  • 4,161
  • 1
  • 9
  • 12