导师原话是「功能太单一,答辩容易被问倒」。我想保留CAN收发这部分,但不知道往上叠什么才不显得硬凑:加SD卡文件系统?加以太网上传?还是加个简易的实时波形显示?时间只剩三个月,板子是高云GW2A,求有毕设答辩经验的人给个能落地的加法。
2026年FPGA毕业设计选「基于国产高云GW2A的CAN总线数据记录仪」,导师说工作量偏小,加什么模块能既保毕业又能写进简历?
3 个回答

别把CAN记录仪做成外设大杂烩。按数据链路走:CAN采集→双缓冲FIFO→SD卡FATFS存储→以太网上传,讲清跨时钟域和带宽匹配。答辩时被问的是FIFO深度怎么算、SD写延迟怎么扛,而不是你用了几个模块。三个月够做这条线,简历上也好看。你板子上的以太网是外接PHY还是方案里没定?

沿数据链路纵向做深就行:CAN 采集、双缓冲 FIFO、SD 卡 FATFS 存储、以太网上传,答辩重点讲跨时钟域和带宽匹配。波形显示偏演示,不算工作量。你板子上以太网是外接 PHY 还是方案里没定?

先说一句可能不太中听的:你导师说工作量偏小,大概率不是嫌你模块数量少,而是担心你答辩时讲不出「深度」。所以加什么,判断标准不是「能堆几个外设」,而是「加完之后有没有一条能追问三层的主线」。按这个标准,我的建议是主线往深处走,不要横向撒网。
主线就是一条数据链路:CAN 采集 → 双缓冲 FIFO → SD 卡 FATFS 存储 → 以太网上传。这条线看起来只多两三个模块,但它把毕设从「能收报文」变成了「能扛住持续数据流的系统」,答辩老师能问的东西立刻深了。
为什么优先选这条路,而不是波形显示?因为波形显示本质是演示功能,老师问两句「刷新率多少、丢帧怎么办」就没下文了,撑不起工作量。而数据链路每一段都有硬指标可讲。
具体怎么做,我按顺序说几个关键点。CAN 采集这一端,你原来的收发逻辑基本能复用,重点是接收缓冲。CAN 波特率常见 500k 或 1M,报文密集时突发量不小,所以进 FIFO 之前要先把接收中断或轮询的节奏理顺。
双缓冲 FIFO 是整条线的核心,也是答辩最容易被追问的地方。老师大概率会问你 FIFO 深度怎么算的。你得能答出:上游写入速率、下游消费速率、以及最坏情况下的延迟。比如 SD 卡写入有几十毫秒级别的卡顿,这段时间的数据全靠 FIFO 兜住,深度就是按「写入速率 × 最大阻塞时间」估出来的。这个推导过程本身就是工作量,比多焊一个模块值钱。
跨时钟域也是绕不开的。CAN 控制器时钟、系统时钟、SD 卡接口时钟往往不同源,FIFO 两侧的读写指针同步要用格雷码或者握手,不能随便打两拍就完事。答辩时能画清楚时序、说清楚为什么这样同步,印象分很高。
SD 卡这块,重点不是「能存」,而是文件系统的稳定性和掉电保护。FATFS 移植本身不难,难的是长时间写入不丢数据、拔卡不损坏文件。你可以设计一个简单的环形日志或分段文件策略,写入时按块对齐,减少频繁开关文件。
以太网上传是收尾,也是让整条链路闭环的一环。它和 SD 存储之间是带宽匹配关系:如果上传速率跟不上采集速率,数据就得靠 FIFO 和 SD 做缓冲。这一段能讲清楚优先级和背压,答辩就稳了。
三个月时间,我的判断是这条线够用,但前提是别贪。以太网如果板子上没现成 PHY,移植 lwIP 可能吃掉你大半个月,那就先保证 SD 链路完整,以太网做成可选。
最后提醒一句:别为了显得功能多,把波形显示、蓝牙、上位机全塞进去,那样每条线都浅,答辩反而挨问。顺着数据流做深,简历上写「设计并实现 CAN 数据记录系统,解决跨时钟域与存储带宽匹配问题」,比写一堆模块名实在得多。你板子上以太网是外接 PHY 还是方案里还没定?这个直接决定你要不要砍掉上传这一环。
发表回答
登录后可在本页底部提交回答