1
\$\begingroup\$

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?

\$\endgroup\$
3
  • 1
    \$\begingroup\$ 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"? \$\endgroup\$
    – user253751
    Mar 11 at 10:05
  • \$\begingroup\$ I am not sure. The SOM is C5165 SOM and runs Ubuntu 18.04 \$\endgroup\$
    – Ecuashungo
    Mar 11 at 10:32
  • 1
    \$\begingroup\$ 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. \$\endgroup\$ Mar 11 at 10:56
0
\$\begingroup\$

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.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.