This may seem a little left-field but I would be tempted to use the DMX format. If you are not familiar with it, its an RS485 protocol normally used for lighting (including lights that pan,tilt,zoom) that is simply 512 8bit numbers repeated again and again with a break at the beginning (to indicate the next number is the first), if you need a 16-bit number you just use two consecutive 8-bit numbers together, multiple devices share the line by defining what the first number is they listen out for. The idea is you are not getting tied up into device specifics, just providing the numbers it needs, you can use existing kit such as ethernet bridges and control desks and there are existing ardunio libarys and shields for working with it. The disadvantages that come to mind is it does not have error detection/correction and its relatively fast speed means it doesn't have a huge cable length