Communication Protocols

Overview

This page features common communication protocols that are used in the embedded design world. This includes protocols used between cores (hardware modules) inside an FPGA, between microcontrollers and other ICs on a circuit board, between two circuit boards in the same product, and between two products separated by a large distance.

Child Pages

1-Wire Protocol
Wiring diagrams, addressing, parasitic power, bit bashing, automatic sequence detection and more information about the 1-wire communication protocol.
4-20mA Current Loops
types, applications, interfacing to a microcontroller, noise/filtering, out-of-band signalling, HART, over-voltage dangers, 4-20mA transmitters and more info about 4-20mA current loops.
AT Protocol
AT result codes, echoing and more information about the AT command protocol.
AXI Bus
Strobes, burst-based data transfer, channel architecture, out-of-order transaction completion and more information about the Advanced eXtensible Interface (AXI) bus.
Bluetooth
ContentsLogoAdvanced Audio Distribution Profile (A2DP)Bluetooth 4.0Logo The bluetooth logo is shown below: Advanced Audio Distribution Profile (A2DP) This is a bluetooth standard which supports the streaming of audio between bluetooth-enabled devices. Bluetooth 4.0 An attribute is a piece of labelled and addressable data. A characteristic is a group of attributes, and a service is a … Continue reading Bluetooth
CAN Protocol
Transmission distances, bit rates, arbitration, message lengths. standards, licensing, IC examples and more info about the CAN communications protocol.
Ethernet Protocol
ContentsEthernet JacksPopular ChipsEthernet Jacks Some ethernet jacks come with the magnetics already in-built, saving you the trouble of including them yourself on the mounted-to PCB. Popular Chips The W5200 WIZnet. The single chip implements the PHY, the TCP/IP stack (fully hardwired), and the 10/100 MAC Ethernet MAC, in a QFN-48 package. It uses the SPI … Continue reading Ethernet Protocol
High-Level Data Link Control (HDLC)
Framing, applications (uses) and more info on the High-Level Data Link Control protocol.
I2C Protocol
Schematics, pull-up resistor values, baud rates, real waveform snapshots, addressing, hot swapping and more information on the I²C communication protocol.
IO-Link Protocol
ContentsOverviewPacket TypesProcess DataService DataEventsOverview The IO-Link protocol is a point-to-point serial communication protocol which is commonly used for sensor and actuator communication in an industrial environment. Packet Types Process Data Process data is sent every communication cycle (typically 2ms). Service Data Service data is used to send large amounts of non-periodic data at the request … Continue reading IO-Link Protocol
LIN Protocol
ContentsBit Rate And Transmission DistancesNode AddressingStandardsSAE J2602DevicesThe LIN protocol is a serial, wired communications protocol for electronic devices. It consists of one master and one or more slaves, and does not support multiple masters. The LIN (local interconnect network) protocol was originally designed for localised communication within an automobile (for instance, between electrical devices in … Continue reading LIN Protocol
LON (ANSI709.2) Communication Protocol
Standards, protocol, wiring topology, addressing, transformers, nodes, routers, repeaters, ICs and more info about the LON (ANSI709.2) communication protocol.
Modbus Protocol
ContentsTerminologyASCII FramingFunction CodesSoftwareThe Modbus protocol does not define the physical layer. Instead it uses RS-232C compatible serial interfaces, which are very common on microcontrollers. Check out the Mobicon Modbus Protocol Reference Guide for detailed info. Another good tutorial is Lammert Bies’ Modbus interface. Terminology Coil: Discrete output (e.g. digital GPIO output pin on microcontroller) Holding register: … Continue reading Modbus Protocol
MQ Telemetry Transport (MQTT)
ContentsOverviewOverview MQTT is a lightweight publish/subsribe communications protocol that uses TCP/IP. It is designed for remote sensors to communicate with controlling devices. The specification is under a royalty-free licence. Interesting features of the protocol include the one-to-many messaging service (publish/subscribe), the Last Will/Testament feature, and the three qualities of service. You can read more about … Continue reading MQ Telemetry Transport (MQTT)
NMEA Protocol
NMEA is a readable (ASCII-encoded) serial communication protocol. Commonly used for sensors such as GPS. All NMEA sentances begin with a ‘$’ and are terminated with a ‘*’ and then a two character checksum. Like this:Like Loading...
PCI Express (PCIe)
ContentsOverviewChild PagesLayersThe Transaction LayerThe Data Link LayerLanesLinksData TransmissionMemoryConfiguration SpaceWhat Are BARs?BridgesTesting PCIe Carts With A ComputerWindowsManufacturersOverview PCI Express (PCIe) is a high-speed serial bus, designed as a replacement for the older parallel PCI or PCI-X buses. PCIe is a packet based network, similar to Ethernet. However, it is accessed via reads and writes to/from the address and I/O … Continue reading PCI Express (PCIe)
Power Line Protocols
Also called Power Line Carrier Communication (PLCC). A “power line” can be any cable that distributes power, including mains (120-240VAC), the +12V from the battery in a car, or the DC power supply rails on embedded circuitry. An example circuit for the LM1893 from Texas Instruments. Like this:Like Loading...
RS-232 Protocol
An overview, discrete-part RS-232 to TTL converter schematics and more info about the RS-232 communication protocol.
RS-485 Protocol
Information on the differential, multi-drop, half-duplex, two-wire RS-485 communication protocol.
SDQ Protocol
ContentsOverviewOverview The SDQ protocol is a proprietary 1-wire (excluding ground) interface designed by Texas Instruments. An example of an IC which uses this protocol is the Texas Instruments BQ2024, a 1.4kb serial EEPROM. The Apple lightning connector uses this interface, Like this:Like Loading...
SMBus
ContentsOverviewTerminologyHistoryOfficial SpecificationsComparison With I2CSimularitiesDifferencesCompatibility With I2COverview SMBus is an acronym for System Management Bus. The SMBus is a derivative of the I2C bus, however there are enough changes that it warrants it’s own page. Terminology Term Description ACPI ACPI is an initialism for Advanced Configuration And Power Interface. CMI CMI is an initialism for SMBus … Continue reading SMBus
SPI Protocol
ContentsOverviewAdvantagesDisadvantagesPhysical LayerProtocolModesTimingBit BangingDaisy-ChainingPoint-to-Point SPISimilar ProtocolsMicrowire (uWire)mSPI (mini-SPI)RapidSOverview SPI stands for Serial Peripheral Interface, and was initially developed by Motorola. It is full-duplex (data can be sent in both directions at once), and is ideally suited to sending data streams between devices. Speeds of 10MHz or more are achievable. It is a de-facto standard, which means … Continue reading SPI Protocol
UART Protocol
ContentsOverviewTerminologyProtocolTransmission SpeedsFlow ControlRTS/CTSError Checking/Noise ImmunityBreak SignalTerminal ProgramsRealTerm (3.5/5)Terminal by Br@y (3.5/5)PuTTy (4/5)9-Bit AddressingRadiation HardeningRS-232RevisionsTransmission DistancesInterfacesRS-485CablesPowerline TransceiversCreating A Serial Port BridgeOverview UART (Universal Asynchronous Receiver/Transmitter) is a digital data transmission protocol with origins dating back to the 1960’s. It was designed as a communication protocol to talk between DTE (data terminal equipment) and DCE (data communication … Continue reading UART Protocol
USB Protocol
ContentsOverviewChild PagesFirst, Some Basic TerminologyData EncodingConventional HostsTargeted HostsTargeted Peripheral List (TPL)Embedded Hosts (EH)Attach Detection Protocol (ADP)Session Request Protocol (SRP)Host Negotiation Protocol (HNP)Unit Load’sWhat is an OTG System?HardwareDecouplingLow-PowerInrush CurrentsWorked ExampleFerrite BeadsUSB Protocol AnalyzersSuspend ModeChips You Should Know AboutThe ConnectorsWiring SchemeData LinesTransmission SpeedsUSB2.0USB3.0Power DrawUSB2.0USB3.0Non-Standard UsesProtocol BridgesLicensed/Trademarked ImagesOverview The Universal Serial Bus (USB) standard defines a collection of … Continue reading USB Protocol
Z-Wave
Overview, country-specific frequencies, network topology, the Z-Wave Alliance and more information about the Z-Wave communication protocol for home automation.

Communication Bus Topologies

The following topologies to not apply to any one particular communication bus.

Point-to-Point

A point-to-point communication bus has one driver, one receiver. This is the simplest type of communication bus. It is also the communication bus which gives the greatest signal integrity, as the fan-out of one driver to many receiver increases the number of impedance mismatches.

Note that this applies to each “wire” of the bus. For example, even though UART could be thought of one transceiver connected to another transceiver, each wire on the bus has only one transmitter and one receiver, and hence is point-to-point.

Examples of point-to-point communication buses are:

  • UART
  • RS-232

Multidrop

A multidrop communication bus has one driver, many receivers

Multipoint

A multipoint communication bus has many drivers, many receivers. Because there is more than 1 driver on a multipoint system, contention issues (when multiple drivers try and drive the bus at the same time) have to be considered.

Multipoint buses often use wired-OR signalling. This means that drivers only actively drive the bus for one logic state, and the bus is passively driven for the other logic state. An example of this is I2C. An I2C driver will drive the bus low to transmit a 0, but to transmit a 1 the driver turns off, the bus is pulled high to a “1” state by a pull-up resistor.

Wired-OR signalling prevents signalling contentions (when two drivers attempts to drive at the same time) from drawing large currents and causing damage to the buses.

Examples of multipoint communication buses include:

  • 1-wire
  • CAN
  • I2C
  • SCSI