惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
月光博客
月光博客
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
Stack Overflow Blog
Stack Overflow Blog
Engineering at Meta
Engineering at Meta
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
宝玉的分享
宝玉的分享
A
About on SuperTechFans
Vercel News
Vercel News
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
Visual Studio Blog
Jina AI
Jina AI
Y
Y Combinator Blog
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI

博客园 - 所长

xilinx axi qspi V3.2 slave interrupt lwip 快速 高频 短帧发送 测试 If your port already typedef's in_addr_t, define IN_ADDR_T_DEFINED to prevent this code from redefining it. FPGA Verilog 线性反馈移位寄存器(LFSR) Libero FIFO Controller without Memory Software-Defined Radio for Engineers 一 频谱仪 N9020A 操作步骤记录 libero reg 编译时 占用 RAM 资源 而不是 LUT 资源 加扰和解扰 FPGA-CAN MAC 层 IP 核测试(一) 上板实测 Microchip SoftConsole v2022.2-RISC-V-747 polarfire soc 裸机例程中 链接文件 mpfs-envm-lma-scratchpad-vma.ld 分析 FlashPro5 导致 window11 蓝屏 libero verilog 模块例化时,信号不存在 默认是 不连接 A3P250 在线 debug 抓取信号 Identify 在线逻辑分析仪 MPFS250T MSS 引脚 上下拉配置 如何在 libero 中 写一个 axi4 slave 总线的 IP核 可以 和 CoreAXI4Interconnect 连接 (五) 官方参考 verilog 按键消抖模块 如何在 libero 中 写一个 axi4 slave 总线的 IP核 可以 和 CoreAXI4Interconnect 连接 (四) axi-lite 信号抓取 libero Active Probes 如何在 libero 中 写一个 axi4 slave 总线的 IP核 可以 和 CoreAXI4Interconnect 连接 (三) C代码测试 访问卡死 如何在 libero 中 写一个 axi4 slave 总线的 IP核 可以 和 CoreAXI4Interconnect 连接 (二) axi-lite 如何在 libero 中 写一个 axi4 slave 总线的 IP核 可以 和 CoreAXI4Interconnect 连接(一)libero 设置把模块信号变总线方式 libero 2025.2 Macro Library User Guide for SmartFusion 2 and IGLOO 2 FPGAs 如何在 libero 中 写一个 axi4 slave 总线的 IP核 可以 和 CoreAXI4Interconnect 连接 (零) MSS CFG MPFS250T FLASH 只有 128KB 调整代码优化 AD9361 SPI no-os 文件移植 SoftConsole MPFS250T 初学(七) 初始化日志记录 AD9361 SPI no-os 文件移植 SoftConsole MPFS250T 初学(六) 开启 日志打印 Calibration TIMEOUT (0x247, 0x2) AD9361 SPI no-os 文件移植 SoftConsole MPFS250T 初学(五) ad9361_check_cal_done 卡死 AD9361 SPI no-os 文件移植 SoftConsole MPFS250T 初学(四) ad9361_init 编译报错 和 读取 AD9361 ID
FPGA-CAN MAC 层 IP 核测试(二) 源码阅读
所长 · 2026-07-04 · via 博客园 - 所长

FPGA CAN MAC 层 IP 核测试(一) 上板实测 - 所长 - 博客园

FPGA CAN MAC 层 IP 核测试(二) 源码阅读 - 所长 - 博客园

WangXuan95/FPGA-CAN: An FPGA-based lightweight CAN bus controller. 基于FPGA的轻量级CAN总线控制器。

  • 发送(TX)方向
    用户 CPU → [can_top 的 FIFO 缓存] → [can_level_packet 打包成帧 + 算 CRC] → [can_level_bit 按位定时发出] → can_tx 引脚

  • 接收(RX)方向
    can_rx 引脚 → [can_level_bit 采样电平] → [can_level_packet 解析帧结构 + 验 CRC] → [can_top 做 ID 过滤 + 拆成字节流] → 用户 CPU

can_top.v       → 应用接口层 → 数据管家与调度员:负责缓存用户要发的数据、过滤接收到的数据、自动应答远程帧,并管理发送失败后的重试。

can_level_packet.v → 数据链路层 → 报文翻译官与仲裁裁判:负责把数据打包成 CAN 帧(加 ID、CRC)发出去,或者把总线上收到的位流解析成帧结构,并在发送时实时监控仲裁输赢

can_level_bit.v   → 物理层   → 定时采样员与电平转换器:把系统时钟转换为 CAN 总线波特率,在精确的采样点读取 can_rx 电平,并把要发送的 tbit 转换成 can_tx 引脚电平。