How-to articles related to communication protocols in embedded systems.

Introduction to the SAE J1939 Protocol

SAE J1939 is the standard communications network for sharing control and diagnostic information between electronic control units (ECUs) which reside on heavy duty and commercial vehicles. Examples of such vehicles are school busses, cement mixers, military vehicles, and semi-tractors.

Introduction to Controller Area Network (CAN)

 Printable PDF

Controller Area Network (CAN) is the most widely-used automotive bus architecture. Here are some reasons why.

Serial Communication Protocols: CAN vs. SPI

Distributed systems require protocols for communication between microcontrollers. Controller Area Networks (CAN) and Serial Peripheral Interfaces (SPI) are two of the most common such protocols.

How Network Processors Work

Network processors are programmable chips like general purpose microprocessors, but are optimized for the packet processing required in network devices. But what are they good for and how do they work?

How to Implement Internet Protocol (IP) in C

The Internet Protocol (IP) is the glue that holds an internet together. Here's a compact implementation of the IP layer for embedded C programmers.

Address Resolution Protocol (ARP)

The address resolution protocol provides a necessary bridge between physical and logical addresses on a TCP/IP network.

Every system on a TCP/IP network has two addresses, one physical and one logical. The address resolution protocol (ARP) provides a necessary bridge between these two addresses.

How Ethernet's MAC Addresses Work

 Printable PDF

Merely adding a protocol stack and networking API to your software doesn't make you TCP/IP ready. You'll also need to assign your product a MAC address.

How to Implement TCP/IP and UDP/IP for Embedded Systems

If your embedded system is on a network, the key question is not will you include TCP/IP but which subset of the Internet Protocol suite will be supported in your product.

CRC Series, Part 3: CRC Implementation Code in C/C++

CRCs are among the best checksums available to detect and/or correct errors in communications transmissions. This article shows how to implement an efficient CRC in C or C++.

CRC Series, Part 2: CRC Mathematics and Theory

Many common types of data transmission errors cannot be detected by additive checksums. This article describes a stronger type of checksum known as a CRC.