1. 版本背景
- 发布时间:2020年12月13日
- CAN支持状态:CANFD支持完全稳定,成为主流应用方案
- 关键里程碑:
- CANFD协议栈完全生产就绪
- 支持ISO 11898-1:2015标准
- 新增多种CANFD控制器驱动
- 网络命名空间支持完善
2. 子系统架构
架构演进
+---------------------+ | 用户空间 | | SocketCAN API | | + CANFD扩展 | +----------+----------+ | +----------v----------+ | 内核空间 | | CAN协议栈核心 | | + CANFD协议层 | +----------+----------+ | +----------v----------+ | CAN/CANFD设备驱动 | +----------+----------+ | +----------v----------+ | CAN硬件 | +---------------------+
新增核心组件
- canfd core:
net/can/canfd.c处理CANFD帧 - flexible data-rate:位速率切换机制
- 增强过滤器:支持CANFD特定过滤
- 新驱动:
c_can,m_can,xilinx_can等支持CANFD
3. 源码深度解析
CANFD初始化流程
// net/can/canfd.c int canfd_register(void) { can_proto_register(&canfd_proto); register_netdevice_notifier(&canfd_notifier); return 0; } static struct can_proto canfd_proto = { .type = SOCK_RAW, .protocol = CA