Currently I am working on a project where I need to install several peripheral devices in the network along with a master. This total system have some industrial application. I need to have the network expandable as there might be device addition or subtraction from the network. The device might gets faulty so will need to replace. All the peripheral devices are fairly big and will cover around 2ft X 3ft area, leaving behind the minimum communication port to port distance at least of 3 ft. Now, I have thought of SPI, I2C, CAN Bus, LAN networking. I have some doubts in my mind to select between them. Please consider me newbie in the field of communication and help me to select the best one.
SPI: I have already rejected the protocol as my requirement is off-board / inter-device communication. Also I need 2 way communication, which might flood the master device with bunch of CS/SS wiring and make it messy in every aspect.
I2C: It seems promising to me, but if you consider the length of the network I doubt It will work proficiently. The speed of the network is not the big criteria till it drops bellow 100 kBPS.
CAN Bus: Totally confused and didn't have found much of documentation w.r.t. AVR MCUs. I seek your help on this seriously.
Wired LAN: Good option, can be implemented where the systems are closely maintained. but when it comes to a scenario where you don't have any control over the number of devices, that makes difficult to provide service. Mainly maintaining the IP records when you replace the device will be the headache to the operator.
I have already have implemented WiFi communication between industrial devices for my last project, but that have problem of random disconnection due to hardware limits.
I am expecting here some guidance for selecting the protocol.
BTW: The heart of all of my peripherals is ATmega32U4 MCU and the Master device will be a PC.