I would highly recommend avoiding a voltage switching scheme for the power, if only to add some level of idiot proofing. If 5v is accidentally provided to a 3.3v sensor, the sensor could easily be damaged. Voltage switching might be OK if there was a very reliable method of determining what the required voltage is while no power is applied, e..g. a short between two pins or a resistor between two pins that can be measured.
As for the actual signals to the sensor, you can use CMOS switches. However, you want to make sure you're not going to accidentally apply a voltage to a signal line to something that can't handle it. This can be mitigated by series current limiting resistors, but this can affect signal integrity and serial communications speed. Also, CMOS switches can have a relatively high ON resistance.
I would recoomnd a 6P6C connector like so:
- sense res
where sense_res is a resistor to GND that you can build a voltage divider around and then use to determine what sensor is connected.
It might be a better idea to just go ahead and use 8p/8c as that is a standard Ethernet cable. In this case, I would recommend something like:
- Sense res
This also takes advantage of the twisted pairs in a standard ethernet cable. +5v and GND are twisted together, as well as +3v3 and another GND. Analog + and analog - are twisted together so differential signals have good performance. TX and RX are not twisted togther to prevent crosstalk. This also prevents accidentally connecting TX to an analog sensor output.