docan - Diagnostics over CAN
An implementation of the ISO-15765 specification.
docan
’s purpose is to serve as a CAN Transport stack, allowing ECUs to send payloads of data
potentially too large to fit into a single CAN frame to each other via the CAN-TP protocol, which
will encode said payloads into CAN frames, splitting the payloads into several frames (or
reassembling messages from several frames) as needed.
If you’re unfamiliar with the basics of the protocol, CAN-TP Basics is a good primer on the essentials you need to know to understand CAN-TP and how it works.
Integrating projects must support and integrate the async
module, as docan
relies on
async
internally to execute several operations asynchronously. The async
module also ensures
that all business logic operations run within the same task context, reducing the need for costly
interrupt-disabling locks for data access synchronization.