<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Module 01 Can Bus Basics - Cygnus Tech Blog</title><link>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/</link><description>技术 × 产品 × 机器人</description><generator>Hugo 0.160.1 & FixIt v0.4.6-20260517062719-ed8ec5c2</generator><language>zh-CN</language><managingEditor>ruohuyang@163.com (Cygnus Yang)</managingEditor><webMaster>ruohuyang@163.com (Cygnus Yang)</webMaster><lastBuildDate>Sat, 23 May 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/index.xml" rel="self" type="application/rss+xml"/><item><title>CAN 帧格式 -- 帧类型、仲裁与位填充</title><link>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/02-can-frame-format/</link><pubDate>Sat, 23 May 2026 00:00:00 +0800</pubDate><author>ruohuyang@163.com (Cygnus Yang)</author><guid>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/02-can-frame-format/</guid><description>&lt;h2 class="heading-element" id="1-can-帧类型总览"&gt;&lt;span&gt;1. CAN 帧类型总览&lt;/span&gt;
 &lt;a href="#1-can-%e5%b8%a7%e7%b1%bb%e5%9e%8b%e6%80%bb%e8%a7%88" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;CAN 协议定义了 4 种帧类型：&lt;/p&gt;</description></item><item><title>CAN 物理层 -- 差分信号、拓扑与终端电阻</title><link>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/01-can-physical-layer/</link><pubDate>Sat, 23 May 2026 00:00:00 +0800</pubDate><author>ruohuyang@163.com (Cygnus Yang)</author><guid>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/01-can-physical-layer/</guid><description>&lt;h2 class="heading-element" id="1-什么是-can-总线"&gt;&lt;span&gt;1. 什么是 CAN 总线&lt;/span&gt;
 &lt;a href="#1-%e4%bb%80%e4%b9%88%e6%98%af-can-%e6%80%bb%e7%ba%bf" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;CAN&lt;/strong&gt;（Controller Area Network，控制器局域网）是由 &lt;strong&gt;Bosch&lt;/strong&gt; 公司于 1986 年开发的一种串行通信协议，最初用于汽车内部电子控制单元（ECU）之间的通信。如今已广泛应用于工业自动化、医疗设备、船舶电子等领域。&lt;/p&gt;</description></item><item><title>CANOpen 概览 -- 协议栈层次、通信对象与对象字典</title><link>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/06-canopen-overview/</link><pubDate>Sat, 23 May 2026 00:00:00 +0800</pubDate><author>ruohuyang@163.com (Cygnus Yang)</author><guid>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/06-canopen-overview/</guid><description>&lt;h2 class="heading-element" id="1-canopen-是什么"&gt;&lt;span&gt;1. CANOpen 是什么&lt;/span&gt;
 &lt;a href="#1-canopen-%e6%98%af%e4%bb%80%e4%b9%88" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;CANOpen&lt;/strong&gt; 是基于 CAN 总线的高层应用层协议，由 &lt;strong&gt;CiA&lt;/strong&gt;（CAN in Automation）国际用户组织定义（标准文档 &lt;strong&gt;CiA 301&lt;/strong&gt;）。它定义了一套完整的通信规则，使得不同厂商的设备可以在同一 CAN 网络上互操作。&lt;/p&gt;</description></item><item><title>SocketCAN 入门 -- Linux 下的 CAN 开发环境</title><link>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/03-socketcan-intro/</link><pubDate>Sat, 23 May 2026 00:00:00 +0800</pubDate><author>ruohuyang@163.com (Cygnus Yang)</author><guid>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/03-socketcan-intro/</guid><description>&lt;h2 class="heading-element" id="1-什么是-socketcan"&gt;&lt;span&gt;1. 什么是 SocketCAN&lt;/span&gt;
 &lt;a href="#1-%e4%bb%80%e4%b9%88%e6%98%af-socketcan" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;SocketCAN&lt;/strong&gt; 是 Linux 内核提供的 CAN 网络子系统，由 Volkswagen 贡献。它将 CAN 总线抽象为&lt;strong&gt;标准网络设备&lt;/strong&gt;（如同 eth0），开发者可以使用熟悉的 &lt;strong&gt;socket API&lt;/strong&gt; 进行 CAN 通信编程。&lt;/p&gt;</description></item><item><title>vcan 虚拟总线 -- 零硬件成本的实验环境</title><link>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/04-vcan-setup/</link><pubDate>Sat, 23 May 2026 00:00:00 +0800</pubDate><author>ruohuyang@163.com (Cygnus Yang)</author><guid>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/04-vcan-setup/</guid><description>&lt;h2 class="heading-element" id="1-为什么用-vcan"&gt;&lt;span&gt;1. 为什么用 vcan？&lt;/span&gt;
 &lt;a href="#1-%e4%b8%ba%e4%bb%80%e4%b9%88%e7%94%a8-vcan" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;在开始 CAN 开发之前，我们需要一个 CAN 测试环境。&lt;strong&gt;vcan&lt;/strong&gt;（Virtual CAN）是 Linux 内核提供的虚拟 CAN 网络设备，它：&lt;/p&gt;</description></item><item><title>发送与接收 -- C 语言 SocketCAN API 实战</title><link>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/05-send-receive/</link><pubDate>Sat, 23 May 2026 00:00:00 +0800</pubDate><author>ruohuyang@163.com (Cygnus Yang)</author><guid>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/05-send-receive/</guid><description>&lt;h2 class="heading-element" id="1-发送-can-帧的完整流程"&gt;&lt;span&gt;1. 发送 CAN 帧的完整流程&lt;/span&gt;
 &lt;a href="#1-%e5%8f%91%e9%80%81-can-%e5%b8%a7%e7%9a%84%e5%ae%8c%e6%95%b4%e6%b5%81%e7%a8%8b" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;发送一个 CAN 帧需要 5 个步骤：&lt;/p&gt;</description></item><item><title>模块 1 实践项目</title><link>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/07-practice-project/</link><pubDate>Sat, 23 May 2026 00:00:00 +0800</pubDate><author>ruohuyang@163.com (Cygnus Yang)</author><guid>https://cygnusyang.github.io/posts/02-%E5%B7%A5%E7%A8%8B%E9%82%A3%E4%BA%9B%E4%BA%8B/03-canopen/docs/module-01-can-bus-basics/07-practice-project/</guid><description>&lt;h2 class="heading-element" id="练习-1虚拟-can-环境搭建"&gt;&lt;span&gt;练习 1：虚拟 CAN 环境搭建&lt;/span&gt;
 &lt;a href="#%e7%bb%83%e4%b9%a0-1%e8%99%9a%e6%8b%9f-can-%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba" class="heading-mark"&gt;
 &lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;
 &lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;目标&lt;/strong&gt;：独立创建和验证 vcan 设备。&lt;/p&gt;</description></item></channel></rss>