
{"id":2192,"date":"2026-07-29T12:29:57","date_gmt":"2026-07-29T11:29:57","guid":{"rendered":"https:\/\/www.kanda.com\/blog\/?p=2192"},"modified":"2026-07-29T12:32:43","modified_gmt":"2026-07-29T11:32:43","slug":"can-bus-explained-part-1","status":"publish","type":"post","link":"https:\/\/www.kanda.com\/blog\/programming\/can-bus-explained-part-1\/","title":{"rendered":"CAN Bus Explained Part 1"},"content":{"rendered":"\n<style data-wp-block-html=\"css\">\n\/* ==========================================================\n   CAN Bus Explained Series\n   ========================================================== *\/\n\n\/* ----------------------------------------------------------\n   Root Container\n   ---------------------------------------------------------- *\/\n\n.can-series-preview {\n\n    max-width: 1040px;\n\n    margin: 0 auto;\n\n    padding: 0 32px 80px;\n\n    color: #222;\n\n    font-family:\n        \"Segoe UI\",\n        Roboto,\n        Helvetica,\n        Arial,\n        sans-serif;\n\n    font-size: 18px;\n\n    line-height: 1.75;\n}\n\n\/* ----------------------------------------------------------\n   Global\n   ---------------------------------------------------------- *\/\n\n.can-series-preview * {\n\n    box-sizing: border-box;\n}\n\n.can-series-preview img {\n\n    display: block;\n\n    max-width: 100%;\n\n    height: auto;\n}\n\n\/* ----------------------------------------------------------\n   Header\n   ---------------------------------------------------------- *\/\n\n.can-series-preview .article-header {\n\n    margin-bottom: 56px;\n}\n\n.can-series-preview .hero-image {\n\n    width: 100%;\n\n    border-radius: 10px;\n\n    margin-bottom: 28px;\n}\n\n.can-series-preview .article-header-text {\n\n    max-width: 900px;\n}\n\n\/* ----------------------------------------------------------\n   Series Title\n   ---------------------------------------------------------- *\/\n\n.can-series-preview .series-title {\n\n    margin: 0 0 10px;\n\n    color: #5f6d7a;\n\n    font-size: 0.88rem;\n\n    font-weight: 700;\n\n    letter-spacing: 0.18em;\n\n    text-transform: uppercase;\n}\n\n\/* ----------------------------------------------------------\n   Main Title\n   ---------------------------------------------------------- *\/\n\n.can-series-preview h1 {\n\n    margin: 0;\n\n    color: #173550;\n\n    font-size: 2.65rem;\n\n    line-height: 1.18;\n\n    font-weight: 700;\n}\n\n\/* ----------------------------------------------------------\n   Section Headings\n   ---------------------------------------------------------- *\/\n\n.can-series-preview h2 {\n\n    margin:\n\n        0\n        0\n        26px;\n\n    color: #173550;\n\n    font-size: 2rem;\n\n    font-weight: 650;\n\n    line-height: 1.25;\n}\n\n\/* ----------------------------------------------------------\n   Paragraphs\n   ---------------------------------------------------------- *\/\n\n.can-series-preview p {\n\n    margin: 0 0 22px;\n}\n\n\/* ----------------------------------------------------------\n   Sections\n   ---------------------------------------------------------- *\/\n\n.can-series-preview section {\n\n    margin-bottom: 68px;\n}\n\n\/* ----------------------------------------------------------\n   Links\n   ---------------------------------------------------------- *\/\n\n.can-series-preview a {\n\n    color: #005ea8;\n\n    text-decoration: none;\n}\n\n.can-series-preview a:hover {\n\n    text-decoration: underline;\n}\n\n\/* ----------------------------------------------------------\n   Responsive\n   ---------------------------------------------------------- *\/\n\n@media (max-width: 900px) {\n\n    .can-series-preview {\n\n        padding:\n\n            0\n            24px\n            70px;\n\n        font-size: 17px;\n    }\n\n    .can-series-preview h1 {\n\n        font-size: 2.25rem;\n    }\n\n    .can-series-preview h2 {\n\n        font-size: 1.75rem;\n    }\n\n}\n\n@media (max-width: 600px) {\n\n    .can-series-preview {\n\n        padding:\n\n            0\n            18px\n            60px;\n    }\n\n    .can-series-preview .hero-image {\n\n        border-radius: 6px;\n\n        margin-bottom: 22px;\n    }\n\n    .can-series-preview h1 {\n\n        font-size: 1.9rem;\n    }\n\n    .can-series-preview h2 {\n\n        font-size: 1.55rem;\n    }\n\n}\n\n\/* ==========================================================\n   Lists\n   ========================================================== *\/\n\n.can-series-preview ul,\n.can-series-preview ol {\n\n    margin:\n        22px\n        0\n        26px\n        28px;\n\n    padding: 0;\n}\n\n.can-series-preview li {\n\n    margin-bottom: 10px;\n}\n\n.can-series-preview li:last-child {\n\n    margin-bottom: 0;\n}\n\n\/* ==========================================================\n   Figures\n   ========================================================== *\/\n\n.can-series-preview .article-figure {\n\n    margin:\n        40px\n        auto\n        44px;\n\n    text-align: center;\n}\n\n.can-series-preview .article-figure img {\n\n    width: 100%;\n\n    border: 1px solid #d9dee5;\n\n    border-radius: 8px;\n\n    background: #ffffff;\n}\n\n\/* Hero images remain untouched *\/\n\n.can-series-preview .hero-image {\n\n    border: none;\n\n    background: none;\n}\n\n\/* ==========================================================\n   Tables\n   ========================================================== *\/\n\n.can-series-preview table {\n\n    width: 100%;\n\n    margin:\n        36px\n        0;\n\n    border-collapse: collapse;\n\n    font-size: 0.95rem;\n\n    background: #ffffff;\n}\n\n.can-series-preview th {\n\n    padding: 14px 16px;\n\n    text-align: left;\n\n    font-weight: 650;\n\n    color: #ffffff;\n\n    background: #173550;\n}\n\n.can-series-preview td {\n\n    padding: 13px 16px;\n\n    border-bottom: 1px solid #e4e8ed;\n\n    vertical-align: top;\n}\n\n.can-series-preview tbody tr:nth-child(even) {\n\n    background: #f8fafc;\n}\n\n\/* ==========================================================\n   Inline Code\n   ========================================================== *\/\n\n.can-series-preview code {\n\n    padding:\n        2px\n        6px;\n\n    border-radius: 4px;\n\n    background: #f4f6f8;\n\n    color: #a23500;\n\n    font-family:\n        Consolas,\n        \"Courier New\",\n        monospace;\n\n    font-size: 0.94em;\n}\n\n\/* ==========================================================\n   Code Blocks\n   ========================================================== *\/\n\n.can-series-preview pre {\n\n    overflow-x: auto;\n\n    margin:\n        34px\n        0;\n\n    padding: 20px 22px;\n\n    border-radius: 8px;\n\n    background: #252b34;\n\n    color: #eef2f6;\n}\n\n.can-series-preview pre code {\n\n    padding: 0;\n\n    background: transparent;\n\n    color: inherit;\n}\n\n\/* ==========================================================\n   Navigation\n   ========================================================== *\/\n\n.can-series-preview .article-navigation {\n\n    display: flex;\n\n    justify-content: space-between;\n\n    gap: 40px;\n\n    margin-top: 80px;\n\n    padding-top: 34px;\n\n    border-top: 1px solid #d8dde3;\n}\n\n.can-series-preview .article-navigation a {\n\n    display: flex;\n\n    flex-direction: column;\n\n    gap: 6px;\n\n    color: #173550;\n\n    font-weight: 600;\n\n    transition: color 0.18s ease;\n}\n\n.can-series-preview .article-navigation a:hover {\n\n    color: #005ea8;\n\n    text-decoration: none;\n}\n\n.can-series-preview .article-navigation span {\n\n    font-size: 0.95rem;\n\n    font-weight: 400;\n\n    color: #5f6d7a;\n\n    line-height: 1.45;\n}\n\n.can-series-preview .next-article {\n\n    text-align: right;\n\n    margin-left: auto;\n}\n\n\/* ==========================================================\n   Mobile\n   ========================================================== *\/\n\n@media (max-width: 600px) {\n\n    .can-series-preview .article-navigation {\n\n        flex-direction: column;\n\n        gap: 24px;\n    }\n\n    .can-series-preview .next-article {\n\n        text-align: left;\n\n        margin-left: 0;\n    }\n\n\n    .can-series-preview section {\n\n        margin-bottom: 52px;\n    }\n\n    .can-series-preview .article-figure {\n\n        margin:\n            30px\n            auto\n            34px;\n    }\n\n    .can-series-preview table {\n\n        font-size: 0.9rem;\n    }\n\n}\n\n\/* ==========================================================\n   Text Selection\n   ========================================================== *\/\n\n.can-series-preview ::selection {\n\n    background: #d6ebff;\n\n    color: #000;\n}\n\n\/* ==========================================================\n   Strong & Emphasis\n   ========================================================== *\/\n\n.can-series-preview strong {\n\n    font-weight: 650;\n}\n\n.can-series-preview em {\n\n    font-style: italic;\n}\n\n\/* ----------------------------------------------------------\n   Horizontal Rules\n   ---------------------------------------------------------- *\/\n\n.can-series-preview hr {\n\n    margin: 64px 0;\n\n    border: 0;\n\n    border-top: 1px solid #d9dee5;\n}\n\n\/* ----------------------------------------------------------\n   Prevent Wide Content Overflow\n   ---------------------------------------------------------- *\/\n\n.can-series-preview table,\n.can-series-preview pre,\n.can-series-preview .article-figure {\n\n    max-width: 100%;\n}\n\n\/* ==========================================================\n   Better Paragraph Rhythm\n   ========================================================== *\/\n\n.can-series-preview h2 + p {\n\n    margin-top: 0;\n}\n\n.can-series-preview p:last-child {\n\n    margin-bottom: 0;\n}\n\n\/* ==========================================================\n   Keyboard Focus\n   ========================================================== *\/\n\n.can-series-preview a:focus-visible {\n\n    outline: 2px solid #3d8fd9;\n\n    outline-offset: 3px;\n\n    border-radius: 3px;\n}\n\n\/* ==========================================================\n   Print\n   ========================================================== *\/\n\n@media print {\n\n    .can-series-preview {\n\n        max-width: none;\n\n        padding: 0;\n\n        color: #000;\n\n        font-size: 11pt;\n\n        line-height: 1.5;\n    }\n\n    .can-series-preview .article-navigation {\n\n        display: none;\n    }\n\n    .can-series-preview .hero-image,\n    .can-series-preview .article-figure,\n    .can-series-preview table {\n\n        break-inside: avoid;\n    }\n\n}\n<\/style>\n\n<div id=\"can-series-preview\">\n\n<header class=\"article-header\">\n\n    <img decoding=\"async\" class=\"hero-image\" src=\"https:\/\/www.kanda.com\/blog\/wp-content\/uploads\/CANBUS-part1-heroimage.jpg\" alt=\"CAN Bus Explained Part 1\">\n\n    <div class=\"article-header-text\">\n\n        <p class=\"series-title\">\n            CAN BUS EXPLAINED\n        <\/p>\n\n        <h1>\n            Part 1: Origins, Architecture and Differential Signalling\n        <\/h1>\n\n    <\/div>\n\n<\/header>\n\n<\/div>\n\n\n\n<!--more-->\n\n\n\n<style data-wp-block-html=\"css\">\n\/* ==========================================================\n   CAN Bus Explained Series\n   ========================================================== *\/\n\n\/* ----------------------------------------------------------\n   Root Container\n   ---------------------------------------------------------- *\/\n\n.can-series {\n\n    max-width: 1040px;\n\n    margin: 0 auto;\n\n    padding: 0 32px 80px;\n\n    color: #222;\n\n    font-family:\n        \"Segoe UI\",\n        Roboto,\n        Helvetica,\n        Arial,\n        sans-serif;\n\n    font-size: 18px;\n\n    line-height: 1.75;\n}\n\n\/* ----------------------------------------------------------\n   Global\n   ---------------------------------------------------------- *\/\n\n.can-series * {\n\n    box-sizing: border-box;\n}\n\n.can-series img {\n\n    display: block;\n\n    max-width: 100%;\n\n    height: auto;\n}\n\n\/* ----------------------------------------------------------\n   Header\n   ---------------------------------------------------------- *\/\n\n.can-series .article-header {\n\n    margin-bottom: 56px;\n}\n\n.can-series .hero-image {\n\n    width: 100%;\n\n    border-radius: 10px;\n\n    margin-bottom: 28px;\n}\n\n.can-series .article-header-text {\n\n    max-width: 900px;\n}\n\n\/* ----------------------------------------------------------\n   Series Title\n   ---------------------------------------------------------- *\/\n\n.can-series .series-title {\n\n    margin: 0 0 10px;\n\n    color: #5f6d7a;\n\n    font-size: 0.88rem;\n\n    font-weight: 700;\n\n    letter-spacing: 0.18em;\n\n    text-transform: uppercase;\n}\n\n\/* ----------------------------------------------------------\n   Main Title\n   ---------------------------------------------------------- *\/\n\n.can-series h1 {\n\n    margin: 0;\n\n    color: #173550;\n\n    font-size: 2.65rem;\n\n    line-height: 1.18;\n\n    font-weight: 700;\n}\n\n\/* ----------------------------------------------------------\n   Section Headings\n   ---------------------------------------------------------- *\/\n\n.can-series h2 {\n\n    margin:\n\n        0\n        0\n        26px;\n\n    color: #173550;\n\n    font-size: 2rem;\n\n    font-weight: 650;\n\n    line-height: 1.25;\n}\n\n\/* ----------------------------------------------------------\n   Paragraphs\n   ---------------------------------------------------------- *\/\n\n.can-series p {\n\n    margin: 0 0 22px;\n}\n\n\/* ----------------------------------------------------------\n   Sections\n   ---------------------------------------------------------- *\/\n\n.can-series section {\n\n    margin-bottom: 68px;\n}\n\n\/* ----------------------------------------------------------\n   Links\n   ---------------------------------------------------------- *\/\n\n.can-series a {\n\n    color: #005ea8;\n\n    text-decoration: none;\n}\n\n.can-series a:hover {\n\n    text-decoration: underline;\n}\n\n\/* ----------------------------------------------------------\n   Responsive\n   ---------------------------------------------------------- *\/\n\n@media (max-width: 900px) {\n\n    .can-series {\n\n        padding:\n\n            0\n            24px\n            70px;\n\n        font-size: 17px;\n    }\n\n    .can-series h1 {\n\n        font-size: 2.25rem;\n    }\n\n    .can-series h2 {\n\n        font-size: 1.75rem;\n    }\n\n}\n\n@media (max-width: 600px) {\n\n    .can-series {\n\n        padding:\n\n            0\n            18px\n            60px;\n    }\n\n    .can-series .hero-image {\n\n        border-radius: 6px;\n\n        margin-bottom: 22px;\n    }\n\n    .can-series h1 {\n\n        font-size: 1.9rem;\n    }\n\n    .can-series h2 {\n\n        font-size: 1.55rem;\n    }\n\n}\n\n\/* ==========================================================\n   Lists\n   ========================================================== *\/\n\n.can-series ul,\n.can-series ol {\n\n    margin:\n        22px\n        0\n        26px\n        28px;\n\n    padding: 0;\n}\n\n.can-series li {\n\n    margin-bottom: 10px;\n}\n\n.can-series li:last-child {\n\n    margin-bottom: 0;\n}\n\n\/* ==========================================================\n   Figures\n   ========================================================== *\/\n\n.can-series .article-figure {\n\n    margin:\n        40px\n        auto\n        44px;\n\n    text-align: center;\n}\n\n.can-series .article-figure img {\n\n    width: 100%;\n\n    border: 1px solid #d9dee5;\n\n    border-radius: 8px;\n\n    background: #ffffff;\n}\n\n\/* Hero images remain untouched *\/\n\n.can-series .hero-image {\n\n    border: none;\n\n    background: none;\n}\n\n\/* ==========================================================\n   Tables\n   ========================================================== *\/\n\n.can-series table {\n\n    width: 100%;\n\n    margin:\n        36px\n        0;\n\n    border-collapse: collapse;\n\n    font-size: 0.95rem;\n\n    background: #ffffff;\n}\n\n.can-series th {\n\n    padding: 14px 16px;\n\n    text-align: left;\n\n    font-weight: 650;\n\n    color: #ffffff;\n\n    background: #173550;\n}\n\n.can-series td {\n\n    padding: 13px 16px;\n\n    border-bottom: 1px solid #e4e8ed;\n\n    vertical-align: top;\n}\n\n.can-series tbody tr:nth-child(even) {\n\n    background: #f8fafc;\n}\n\n\/* ==========================================================\n   Inline Code\n   ========================================================== *\/\n\n.can-series code {\n\n    padding:\n        2px\n        6px;\n\n    border-radius: 4px;\n\n    background: #f4f6f8;\n\n    color: #a23500;\n\n    font-family:\n        Consolas,\n        \"Courier New\",\n        monospace;\n\n    font-size: 0.94em;\n}\n\n\/* ==========================================================\n   Code Blocks\n   ========================================================== *\/\n\n.can-series pre {\n\n    overflow-x: auto;\n\n    margin:\n        34px\n        0;\n\n    padding: 20px 22px;\n\n    border-radius: 8px;\n\n    background: #252b34;\n\n    color: #eef2f6;\n}\n\n.can-series pre code {\n\n    padding: 0;\n\n    background: transparent;\n\n    color: inherit;\n}\n\n\/* ==========================================================\n   Navigation\n   ========================================================== *\/\n\n.can-series .article-navigation {\n\n    display: flex;\n\n    justify-content: space-between;\n\n    gap: 40px;\n\n    margin-top: 80px;\n\n    padding-top: 34px;\n\n    border-top: 1px solid #d8dde3;\n}\n\n.can-series .article-navigation a {\n\n    display: flex;\n\n    flex-direction: column;\n\n    gap: 6px;\n\n    color: #173550;\n\n    font-weight: 600;\n\n    transition: color 0.18s ease;\n}\n\n.can-series .article-navigation a:hover {\n\n    color: #005ea8;\n\n    text-decoration: none;\n}\n\n.can-series .article-navigation span {\n\n    font-size: 0.95rem;\n\n    font-weight: 400;\n\n    color: #5f6d7a;\n\n    line-height: 1.45;\n}\n\n.can-series .next-article {\n\n    text-align: right;\n\n    margin-left: auto;\n}\n\n\/* ==========================================================\n   Mobile\n   ========================================================== *\/\n\n@media (max-width: 600px) {\n\n    .can-series .article-navigation {\n\n        flex-direction: column;\n\n        gap: 24px;\n    }\n\n    .can-series .next-article {\n\n        text-align: left;\n\n        margin-left: 0;\n    }\n\n\n    .can-series section {\n\n        margin-bottom: 52px;\n    }\n\n    .can-series .article-figure {\n\n        margin:\n            30px\n            auto\n            34px;\n    }\n\n    .can-series table {\n\n        font-size: 0.9rem;\n    }\n\n}\n\n\/* ==========================================================\n   Text Selection\n   ========================================================== *\/\n\n.can-series ::selection {\n\n    background: #d6ebff;\n\n    color: #000;\n}\n\n\/* ==========================================================\n   Strong & Emphasis\n   ========================================================== *\/\n\n.can-series strong {\n\n    font-weight: 650;\n}\n\n.can-series em {\n\n    font-style: italic;\n}\n\n\/* ----------------------------------------------------------\n   Horizontal Rules\n   ---------------------------------------------------------- *\/\n\n.can-series hr {\n\n    margin: 64px 0;\n\n    border: 0;\n\n    border-top: 1px solid #d9dee5;\n}\n\n\/* ----------------------------------------------------------\n   Prevent Wide Content Overflow\n   ---------------------------------------------------------- *\/\n\n.can-series table,\n.can-series pre,\n.can-series .article-figure {\n\n    max-width: 100%;\n}\n\n\/* ==========================================================\n   Better Paragraph Rhythm\n   ========================================================== *\/\n\n.can-series h2 + p {\n\n    margin-top: 0;\n}\n\n.can-series p:last-child {\n\n    margin-bottom: 0;\n}\n\n\/* ==========================================================\n   Keyboard Focus\n   ========================================================== *\/\n\n.can-series a:focus-visible {\n\n    outline: 2px solid #3d8fd9;\n\n    outline-offset: 3px;\n\n    border-radius: 3px;\n}\n\n\/* ==========================================================\n   Print\n   ========================================================== *\/\n\n@media print {\n\n    .can-series {\n\n        max-width: none;\n\n        padding: 0;\n\n        color: #000;\n\n        font-size: 11pt;\n\n        line-height: 1.5;\n    }\n\n    .can-series .article-navigation {\n\n        display: none;\n    }\n\n    .can-series .hero-image,\n    .can-series .article-figure,\n    .can-series table {\n\n        break-inside: avoid;\n    }\n\n}\n<\/style>\n\n<div class=\"can-series\">\n\n<main>\n\n<article>\n\n<section id=\"introduction\">\n\n<h2>Introduction<\/h2>\n<p>\n    Few communication technologies have had as much impact on embedded systems as the Controller Area Network, better known as <strong>CAN bus<\/strong>.\n<\/p>\n\n<p>\n    Originally developed for automotive applications in the 1980s, CAN has become one of the most successful industrial communication protocols ever created. Today it can be found in passenger vehicles, commercial transportation, industrial automation systems, medical equipment, agricultural machinery, aerospace platforms and countless embedded products.\n<\/p>\n\n<p>\n    Its success stems from an elegant combination of simplicity, robustness and deterministic behaviour. CAN allows multiple electronic control units (ECUs) to communicate over a shared two-wire network without requiring a central controller, while maintaining excellent fault tolerance and noise immunity.\n<\/p>\n\n<p>\n    For embedded engineers, understanding CAN is essential. Whether designing automotive electronics, industrial control systems, robotics platforms or diagnostic equipment, CAN remains one of the most widely deployed communication technologies in modern embedded design.\n<\/p>\n\n<p>\n    This three-part series explores CAN from the physical layer through to advanced protocol operation. In this first article, we examine the origins of CAN, its network architecture and the differential signalling techniques that make reliable communication possible in electrically noisy environments.\n<\/p>\n\n<\/section>\n\n<section id=\"why-can-was-needed\">\n\n<h2>Why CAN Was Needed<\/h2>\n\n<p>\n    Before CAN was introduced, vehicle electronics relied heavily on dedicated point-to-point wiring.\n<\/p>\n\n<p>\n    Each electronic subsystem required its own collection of signal wires connecting sensors, switches, actuators and controllers. As vehicles became more sophisticated, wiring harnesses grew rapidly in size and complexity.\n<\/p>\n\n<p>\n    Problems quickly emerged:\n<\/p>\n\n<ul>\n    <li>Increasing vehicle weight<\/li>\n    <li>Higher manufacturing costs<\/li>\n    <li>Reduced reliability<\/li>\n    <li>Difficult fault diagnosis<\/li>\n    <li>Limited scalability<\/li>\n<\/ul>\n\n<p>\n    Adding a new feature often required additional wiring throughout the vehicle, creating engineering and manufacturing challenges.\n<\/p>\n\n<p>\n    A better solution was needed.\n<\/p>\n\n<p>\n    Rather than connecting every module directly to every other module, engineers began exploring shared communication networks where multiple devices could exchange information over a common bus.\n<\/p>\n\n<p>\n    This led to the development of CAN.\n<\/p>\n\n<\/section>\n\n<section id=\"birth-of-can\">\n\n<h2>The Birth of CAN<\/h2>\n\n<p>\n    CAN was originally developed by the German company <strong>Robert Bosch GmbH<\/strong> during the early 1980s.\n<\/p>\n\n<p>\n    The goal was ambitious:\n<\/p>\n\n<ul>\n    <li>Reduce vehicle wiring complexity<\/li>\n    <li>Improve reliability<\/li>\n    <li>Support distributed control systems<\/li>\n    <li>Enable real-time communication<\/li>\n<\/ul>\n\n<p>\n    Unlike traditional master-slave protocols, CAN was designed as a multi-master network. Any node could initiate communication whenever the bus became available.\n<\/p>\n\n<p>\n    The protocol was formally introduced in 1986 and rapidly gained acceptance throughout the automotive industry.\n<\/p>\n\n<p>\n    Its combination of robustness, simplicity and deterministic arbitration made it ideal for safety-critical systems.\n<\/p>\n\n<p>\n    Today, CAN forms the foundation of numerous higher-level standards, including:\n<\/p>\n\n<ul>\n    <li>CAN in Automation protocols<\/li>\n    <li>CANopen<\/li>\n    <li>DeviceNet<\/li>\n    <li>J1939<\/li>\n    <li>Automotive diagnostic networks<\/li>\n<\/ul>\n\n<\/section>\n\n<section id=\"evolution-of-vehicle-communication-networks\">\n\n<h2>Evolution of Vehicle Communication Networks<\/h2>\n\n<p>\n    As vehicle electronics evolved, communication architectures progressed through several distinct generations.\n<\/p>\n\n<figure class=\"article-figure\">\n    <img decoding=\"async\" src=\"https:\/\/www.kanda.com\/blog\/wp-content\/uploads\/fig01-network-evolution.jpg\" alt=\"Evolution of vehicle communication networks\">\n<\/figure>\n\n<p>\n    Early systems relied entirely on dedicated point-to-point wiring.\n<\/p>\n\n<p>\n    As electronic content increased, proprietary network solutions began to appear. These reduced wiring but often lacked interoperability between manufacturers.\n<\/p>\n\n<p>\n    CAN provided a standardised solution that offered:\n<\/p>\n\n<ul>\n    <li>Reduced wiring complexity<\/li>\n    <li>Improved reliability<\/li>\n    <li>Deterministic communication<\/li>\n    <li>Multi-master operation<\/li>\n    <li>Excellent scalability<\/li>\n<\/ul>\n\n<p>\n    Subsequent developments such as CAN FD and CAN XL further extended network bandwidth and capability while maintaining compatibility with the fundamental CAN architecture.\n<\/p>\n\n<\/section>\n\n<section id=\"can-network-fundamentals\">\n\n<h2>CAN Network Fundamentals<\/h2>\n\n<p>\n    At its core, a CAN network consists of multiple nodes connected to a shared communication medium.\n<\/p>\n\n<p>\n    Each node may represent:\n<\/p>\n\n<ul>\n    <li>An engine controller<\/li>\n    <li>A transmission controller<\/li>\n    <li>A body control module<\/li>\n    <li>A sensor subsystem<\/li>\n    <li>An industrial controller<\/li>\n    <li>A diagnostic tool<\/li>\n<\/ul>\n\n<\/section>\n\n<section id=\"can-node-architecture\">\n\n<h2>CAN Node Architecture<\/h2>\n\n<p>\n    Every CAN network consists of intelligent nodes connected to a common communication bus.\n<\/p>\n\n<p>\n    Although implementations vary, most CAN nodes share the same fundamental architecture.\n<\/p>\n\n<figure class=\"article-figure\">\n    <img decoding=\"async\" src=\"https:\/\/www.kanda.com\/blog\/wp-content\/uploads\/fig02-can-network-architecture.jpg\" alt=\"Typical CAN network architecture\">\n<\/figure>\n\n<p>\n    A typical node contains:\n<\/p>\n\n<ul>\n    <li>A host microcontroller responsible for application software.<\/li>\n    <li>A CAN controller that implements the communication protocol.<\/li>\n    <li>A CAN transceiver that converts logic-level signals into the differential voltages placed onto the physical bus.<\/li>\n<\/ul>\n\n<p>\n    Together these components allow each node to send, receive and interpret messages while sharing a common communication medium with every other node on the network.\n<\/p>\n\n<p>\n    Because every node connects to the same bus, additional devices can often be integrated without major changes to the overall network architecture.\n<\/p>\n\n<\/section>\n\n<section id=\"inside-a-can-node\">\n\n<h2>Inside a CAN Node<\/h2>\n\n<p>\n    Looking more closely at an individual node reveals how data flows from application software onto the physical network.\n<\/p>\n\n<figure class=\"article-figure\">\n    <img decoding=\"async\" src=\"https:\/\/www.kanda.com\/blog\/wp-content\/uploads\/fig03-can-node-anatomy.jpg\" alt=\"Internal architecture of a CAN node\">\n<\/figure>\n\n<p>\n    The host processor generates application data that must be transmitted across the network.\n<\/p>\n\n<p>\n    This information passes to the CAN controller, which performs protocol functions including:\n<\/p>\n\n<ul>\n    <li>Frame generation<\/li>\n    <li>Arbitration<\/li>\n    <li>Error detection<\/li>\n    <li>Message filtering<\/li>\n    <li>CRC generation and checking<\/li>\n<\/ul>\n\n<p>\n    The CAN transceiver then converts the controller&#8217;s digital transmit signal into the differential voltages required by the physical bus.\n<\/p>\n\n<p>\n    Incoming differential signals follow the reverse path, allowing received frames to be processed by the application software.\n<\/p>\n\n<\/section>\n\n<section id=\"differential-signalling\">\n\n<h2>Differential Signalling<\/h2>\n\n<p>\n    One of CAN&#8217;s greatest strengths is its use of differential signalling.\n<\/p>\n\n<p>\n    Instead of transmitting information on a single wire referenced to ground, CAN uses two complementary signal lines:\n<\/p>\n\n<ul>\n    <li><code>CAN_H<\/code><\/li>\n    <li><code>CAN_L<\/code><\/li>\n<\/ul>\n\n<p>\n    Information is represented by the voltage difference between these two conductors rather than their absolute voltage levels.\n<\/p>\n\n<figure class=\"article-figure\">\n    <img decoding=\"async\" src=\"https:\/\/www.kanda.com\/blog\/wp-content\/uploads\/fig04-differential-signalling.jpg\" alt=\"CAN differential signalling\">\n<\/figure>\n\n<p>\n    During a dominant bit, the CAN transceiver actively drives the bus so that <code>CAN_H<\/code> rises while <code>CAN_L<\/code> falls, creating a measurable differential voltage.\n<\/p>\n\n<p>\n    During a recessive bit, both lines return to approximately the same voltage, resulting in little or no differential voltage between them.\n<\/p>\n\n<p>\n    Because external electromagnetic interference generally affects both wires equally, the differential voltage remains largely unchanged. The receiver therefore rejects most common-mode noise automatically.\n<\/p>\n\n<p>\n    This technique provides exceptional immunity to electrical interference, making CAN highly reliable in demanding environments such as vehicles, factories and heavy industrial equipment.\n<\/p>\n\n<\/section>\n\n<section id=\"key-advantages-of-can\">\n\n<h2>Key Advantages of CAN<\/h2>\n\n<p>\n    The combination of multi-master communication, message-based networking and differential signalling gives CAN several significant advantages over many traditional communication systems.\n<\/p>\n\n<ul>\n    <li>Reduced wiring complexity.<\/li>\n    <li>Excellent electrical noise immunity.<\/li>\n    <li>Deterministic message prioritisation.<\/li>\n    <li>Automatic error detection and recovery.<\/li>\n    <li>High reliability in harsh operating environments.<\/li>\n    <li>Scalable network architecture.<\/li>\n    <li>Wide industry adoption and mature tooling.<\/li>\n<\/ul>\n\n<p>\n    These characteristics explain why CAN has remained one of the world&#8217;s most successful embedded communication protocols for more than four decades.\n<\/p>\n\n<\/section>\n\n<section id=\"key-takeaways\">\n\n<h2>Key Takeaways<\/h2>\n\n<p>\n    In this article, we explored the origins of Controller Area Networks, the problems they were designed to solve and the physical architecture that underpins every CAN system.\n<\/p>\n\n<p>\n    We introduced the concepts of shared-bus communication, CAN node architecture and differential signalling, demonstrating how these foundations provide the robustness and reliability for which CAN is renowned.\n<\/p>\n\n<p>\n    In <strong>Part 2<\/strong>, we move beyond the physical layer to examine how CAN messages are structured, how arbitration works and how the protocol achieves deterministic communication while maintaining exceptional fault tolerance.\n<\/p>\n\n<\/section>\n\n<\/article>\n\n<nav class=\"article-navigation\">\n\n    <a class=\"next-article\" href=\"https:\/\/www.kanda.com\/blog\/microcontrollers\/can-bus-explained-part-2\">\n        Next Article \u2192\n        <span>CAN Bus Explained Part 2: Frames, Arbitration and Fault Tolerance<\/span>\n    <\/a>\n\n<\/nav>\n\n<\/main>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>CAN BUS EXPLAINED Part 1: Origins, Architecture and Differential Signalling<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_members_access_role":[],"_members_access_error":""},"categories":[22],"tags":[20],"class_list":["post-2192","post","type-post","status-publish","format-standard","placeholder-for-hentry","category-programming","tag-picprogrammer"],"_links":{"self":[{"href":"https:\/\/www.kanda.com\/blog\/wp-json\/wp\/v2\/posts\/2192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kanda.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kanda.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kanda.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kanda.com\/blog\/wp-json\/wp\/v2\/comments?post=2192"}],"version-history":[{"count":3,"href":"https:\/\/www.kanda.com\/blog\/wp-json\/wp\/v2\/posts\/2192\/revisions"}],"predecessor-version":[{"id":2201,"href":"https:\/\/www.kanda.com\/blog\/wp-json\/wp\/v2\/posts\/2192\/revisions\/2201"}],"wp:attachment":[{"href":"https:\/\/www.kanda.com\/blog\/wp-json\/wp\/v2\/media?parent=2192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kanda.com\/blog\/wp-json\/wp\/v2\/categories?post=2192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kanda.com\/blog\/wp-json\/wp\/v2\/tags?post=2192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}