Linux 5.10 CAN/CANFD机制详解

Linux 5.10 CAN/CANFD机制详解 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等支持CANFD3. 源码深度解析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