Verilog练习生
我去年电赛做的就是这个方向,当时被环境光坑惨了。先说核心:抗干扰的关键在硬件前端,FPGA是最后一道防线。我们的方案是:1. 驱动用恒流源+高速MOSFET,FPGA的IO直接驱动MOS栅极,产生OOK方波。注意LED有结电容,高频会变圆,实测20MHz以上就衰减严重了,所以调制速率别贪高,10Mbps以内稳妥。2. 接收端必须加光学滤光片(窄带,匹配LED中心波长)和跨阻放大器(TIA),我们用的OPA657,带宽够。环境光主要是低频,所以在TIA后加一个高速模拟高通滤波器(截止频率几kHz),把背景光滤掉大部分再进ADC。3. FPGA内部用数字锁相环(PLL)从曼彻斯特码中恢复时钟,曼彻斯特编码本身自带时钟信息。具体实现:过采样(比如用200MHz时钟采样10Mbps数据),用边沿检测找到跳变沿,用数字逻辑构建一个相位跟踪电路来调整采样点。滤波可以用简单的移动平均或FIR,但资源消耗要注意。硬件选型:FPGA用Artix-7系列够用,光电二极管选高速的,比如滨松的S5973。最大的坑是环境光突变(比如开关灯),会导致接收饱和,我们后来在TIA输出加了自动增益控制(AGC)电路才缓解。总之,把模拟前端做好,FPGA部分压力会小很多。
