Interfacing C with Arduino

A protocol is simply an agreed upon process for the exchange of data. You haven't defined what data you want to exchange, or what the Arduino is to do with that data, so its hard to help you define a protocol.

But, suppose you wanted to read and set digital pins. You might send something like "<S,3,1>" to set pin 3 high, or "<S,6,0>" to set pin 6 low. You might send "<R,11>" to read pin 11.

Obviously some "commands" expect that data will be returned. Some do not.