Yo, claramente, si se quieren hacer las cosas bien para esta aplicación bus can, muy robusto y es para una distancia no muy corta, ni muy larga. En mi opinión es claramente el mejor bus para este caso, además hay pic18 con can, no es nada inusual.
Si fuera mas larga rs485, y si fuera en el mismo hardware o mediante conector directo, i2c.
Con lo dicho anteriormente, que no se quiere can, con el rs485 habría que desarrollar el protocolo, además de mas hardware,... entre el spi y en i2c me quedo con i2c con el spi tienes que tirar mas cables. Con I2C maximo 4 cables ,si además llevas el positivo, cosa que es mas que recomendable ya que hay que polarizar el bus y si no llevas el positivo debes polarizarlo en todas la placas y si es asi, contando la distancia y la poca diferencia entre referencias de tensión en las masas que exista, sumado a la tolerancia de los reguladores de cada placa, puede dar lugar a ruido.