You may have noticed in the last few years an absolute deluge of little modules that do something. Got an idea. Grab a few modules that do something, hook up a little Embedded Micro System (EMS) like an Arduino, Beaglebone Black, or my present favorite, the FPGA based Snickerdoodle. Later, ranging from minutes to years, you've got your gizmo.
But there is a problem. Whatever, EMS you've chosen has a limited number of I/O ports that may be exploited. Lets say the EMS has 8 SPI ports. But you need 9. What do you do then? OK I've got 2 of them. How should they communicate with the client? Or each other. Ethernet, CAN, RS-232, RS-485, ... etc. But, in fact, each of those communication methods, is really nothing more than a port.
What is the best way to abstract the I/O hardware within a system such that it scales without bound while abstracting the physical interfaces to be totally agnostic as to the type and bandwidth of a signal. While it might be possible to build a bit of front end electronics that was universal. It makes more economic sense to normalize the upward facing port. I've elected to use an 8 signal wire, 2 gnd, 2 power, fully symmetric connector implemented in a Micro-Match.
Signals are arranged as
VBus 1, Sig1, Sig2, Gnd, Sig3, Sig4, Sig5, Sig6, Gnd, Sig7, Sig8, VBus2 and coincidently mate well to Digilent's PMOD interface with this adapter.
The other end might look like this.
Here is what my minimal system looks like.
Shown are a Beaglebone Black with a ValentFX LogiBone FPGA board. Communications to the Token is absolutely arbitrary. If the Token is a switch then the maximum data rate is easily above 200 Mb/s. If it is a ADS1299 token then the available 8 signal are configured as a SPI interface.