A good serial communications protocol/stack for embedded devices? [closed] A good serial communications protocol/stack for embedded devices? [closed] c c

A good serial communications protocol/stack for embedded devices? [closed]


Have you considered HDLC or SDLC?

There's also LAP/D (Link Access Protocol, D-Channel).

Uyless Black's "Data Link Protocols" is always nearby on my bookshelf - you might find some useful material in there too (even peruse the TOC & research the different protocols)


CAN meets a number of your criteria:

  • Support multiple devices: It supports a large number of devices on one bus. It's not, however, compatible with RS485.
  • Guaranteed delivery: The physical layer uses bit-stuffing and a CRC, all of which are implemented in hardware on an increasing number of modern embedded processors. If you need acknlowedgement, you need to add that on top yourself.
  • Not master/slave: There are no masters or slaves; all devices can transmit whenever they want. The processor hardware deals with arbitration and contention.
  • OS independence: Not applicable; it's a low-level bus. What you put on top of that is up to you.
  • ANSI C: Again, not applicable.
  • Speed: Typically, up to 1 Mbps up to 40 m; you can choose your own speed for your application.

As mentioned, its definition is fairly low-level, so there's still work to be done to turn it into a full protocol to meet your needs. However, the fact that a lot of the work is done in hardware for you does it make very useful for a variety of applications.


I'd guess a reasonable starting point could be uIP.

(Adding Wikipedia article on µIP since original link is dead.)