cluade code+deepseek使用体验

安装软件

1 安装 clude code

先安装node-v24.18.0-x64,在指令工具里输入

npm install -g @anthropic-ai/claude-code开始安装。

输入

claude --version

可以看到有clude code 的版本,说明安装成功。

2 安装 cc switch

添加deepseek,在deep编辑这里填上在deepseek这里创建的API Key,需要充钱才能用。

3 vs code 配置

在vs code里面添加cluade code 插件

使用体验

1 创建一个电阻分压的工具

通过几次对话就能生成一个电阻分压的工具,格式为HTML

  • 帮我设计一个电阻分压网络的工具。由于需求不够具体,AI在回答时会询问一些问题。
  • 然后就生成了工具,都是文字描述,可以指挥它增加分压电路示意图。
  • 生成的示意图界面很不合理,指挥它调整就可以。

这个过程的deepseek费用

2 设计一个硬件产品

32线机械激光雷达 --- VCSEL + SiPM + FPGA 架构


2.1 核心器件映射
子系统 选型 来源
激光发射 905nm / 940nm 多结 VCSEL,45W 峰值 单通道或多通道阵列
光电探测器 灵明光子 SiPM / SPAD 阵列 国产
时间测量 FPGA 进位链 TDC ---
阈值比较 FPGA 内部 LVDS 比较器 ---

2.2 单通道信号链路(先把这个理清)
复制代码
┌──────────────────────────────────────────────────────────────────────┐
│                         单通道信号流                                  │
│                                                                      │
│  [FPGA]                    [模拟前端]                [光学+光电]      │
│  ┌──────────┐              ┌─────────────┐         ┌──────────────┐ │
│  │ 脉冲发生器 │── LVDS ──▶│ VCSEL Driver │───────▶│ VCSEL (45W)  │ │
│  │ (OSERDES) │              │ GaN FET 驱动 │         │ λ=905nm      │ │
│  └──────────┘              └─────────────┘         │ 5ns 脉宽     │ │
│                                                     └──────┬───────┘ │
│  ┌──────────┐                                            │ 发射光学  │
│  │ START    │◀──────── 内部回环 ─────────────────────── │ 准直+扩束  │
│  │ TDC Ch   │                                          └────────────┘ │
│  │          │                                                         │
│  │  ┌────┐  │              ┌──────────────┐        ┌──────────────┐  │
│  │  │进位│◀─│── LVDS 比较器◀│ RF 增益级    │◀───────│ SiPM         │  │
│  │  │链  │  │  (IBUFDS)    │ BGA2818 32dB │        │ 灵明光子     │  │
│  │  │TDC │  │  + VREF DAC  │ 50Ω匹配      │        │ Vbias ~28V   │  │
│  │  └────┘  │              └──────────────┘        │ 50Ω负载      │  │
│  │  STOP    │                                       └──────┬───────┘  │
│  └──────────┘                                              │ 接收光学  │
│                                                    ┌──────┴───────┐  │
│  ┌──────────┐                                      │  窄带滤光片   │  │
│  │ 直方图   │                                      │ 905nm, BW 5nm│  │
│  │ 累加器   │                                      │ (VCSEL谱宽窄) │  │
│  └──────────┘                                      └──────────────┘  │
└──────────────────────────────────────────────────────────────────────┘

关于 FPGA 比较器的关键讨论 :你提到用 FPGA 内部资源做比较器------这在技术上是可行的(使用 LVDS 输入缓冲器 IBUFDS/IBUFGDS,通过调节 VREF 作为比较阈值),但前提是前级信号幅度必须足够大。SiPM 输出到 50Ω 负载的电压幅度需要 > 100mV(FPGA LVDS 典型灵敏度)。这就是为什么中间要加一级 RF 增益块------它不负责"比较",只负责把 SiPM 的微弱脉冲(几mV~几十mV)放大到 FPGA 能可靠识别的电平。


2.3 VCSEL 发射链路

器件参数

参数 说明
峰值功率 45W 多结 VCSEL
波长 905nm 或 940nm 905nm 更通用
光谱宽度 < 1nm (FWHM) VCSEL 天然窄谱,这是巨大优势
发光区直径 ~150-300μm 多发射孔并行
发散角 ~20° (1/e²) 比 EEL 大,需要更复杂准直
脉宽 3-5ns 占空比极低
上升沿 < 1ns 影响测距精度
2.4 VCSEL 驱动电路
复制代码
                     V_PULSE (30-40V)
                          │
                    ┌─────┴─────┐
                    │  储能电容   │  100nF + 10nF 并联
                    │  low ESL  │
                    └─────┬─────┘
                          │
    FPGA Pulse ──▶ GaN FET Driver ──▶ GaN FET ──┬──▶ VCSEL
    (LVDS 3.3V)    (LMG1020 等)      (EPC2001)  │
                                                 ▼
                                                GND
元件 推荐型号 关键指标
GaN FET EPC2001C / EPC2212 100V, 门极电荷 < 1nC, 亚纳秒开关
Gate Driver LMG1020 60ps 传播延迟, 7A 峰值驱动
储能电容 TDK C0G + X7R 并联 低 ESL, 40V 耐压
电流采样 串联 50mΩ 采样电阻 监控出光功率
2.5 VCSEL 阵列布局
复制代码
┌─────────────────────────────────────────┐
│  VCSEL 芯片阵列 (1×32 或 4×8 排布)       │
│                                          │
│  Ch1   ●    +15.0°                      │
│  Ch2   ●    +13.5°                      │
│   ...  ●     ...                        │
│  Ch16  ●    +0.5°                       │
│  Ch17  ●    -0.5°    ← 近地面加密       │
│   ...  ●     ...                        │
│  Ch32  ●    -15.0°                      │
│                                          │
│  间距: 0.8-1.0mm (由 FOV 要求决定)       │
│  总长: ~30mm                            │
└─────────────────────────────────────────┘

2.6 SiPM 接收链路(灵明光子)

SiPM 特性参数

参数 典型值 说明
微元数量 ~400-4000/mm² 决定动态范围
增益 ~10⁵ - 10⁶ 远超 APD,单光子可检测
PDE @ 905nm 8% - 15% 905nm 是 SiPM 的"软肋"但够用
偏置电压 26-32V 远低于 APD 的 120-200V!
暗计数率 100-500 kHz/mm² 需要直方图滤波
上升时间 1-3ns 受封装寄生参数影响
恢复时间 10-50ns 微元淬灭+恢复时间
串扰概率 5-15% 需在阈值和直方图处理中考虑
2.7 SiPM 偏置与读出电路
复制代码
                          V_bias (28V, 低噪声)
                               │
                    ┌──────────┴──────────┐
                    │  R_quench (分立/集成) │
                    │  ~100-300kΩ         │
                    └──────────┬──────────┘
                               │
                    ┌──────────┴──────────┐
                    │      SiPM 芯片       │
                    │   灵明光子 8ch×4     │
                    └──────────┬──────────┘
                               │
                              ─┴─ 阳极
                               │
                    ┌──────────┴──────────┐
                    │   50Ω 负载电阻到地   │  ← 电流→电压转换
                    └──────────┬──────────┘
                               │
                    ┌──────────┴──────────┐
                    │   AC 耦合电容 1nF    │  ← 隔离偏压 DC
                    └──────────┬──────────┘
                               │
                    ┌──────────┴──────────┐
                    │   RF 增益级 32dB     │  ← 信号放大
                    │   BGA2818 / BGA2866 │
                    └──────────┬──────────┘
                               │
                               ─┴─→ FPGA LVDS_IN_P (差分对)
                               ─┬─→ FPGA LVDS_IN_N (VREF/2)
                               │
                               ▼
                     FPGA IBUFDS 比较器
2.8 信号幅度估算(LiDAR 回波)

这个计算是设计模拟前端的核心依据:

复制代码
LiDAR 方程(简化的):

P_rx = P_tx × ρ × A_rx / (π × R²) × η_optics × η_atm

其中:
  P_tx = 45W (峰值)
  ρ = 0.2 (草地反射率 20%)
  A_rx = π × (10mm)² = 3.14×10⁻⁴ m² (接收口径 φ20mm)
  R = 30m (最大距离)
  η_optics = 0.7
  η_atm = 0.95

P_rx @ 30m = 45 × 0.2 × 3.14×10⁻⁴ / (π × 900) × 0.7 × 0.95
        ≈ 45 × 0.2 × 3.14×10⁻⁴ / 2827 × 0.67
        ≈ 0.67 μW

每个光子能量 @ 905nm:
  E_ph = hc/λ = 6.63×10⁻³⁴ × 3×10⁸ / 905×10⁻⁹ = 2.2×10⁻¹⁹ J

回波光子数 (5ns脉冲内):
  N_ph = P_rx × 5ns / E_ph = 0.67×10⁻⁶ × 5×10⁻⁹ / 2.2×10⁻¹⁹ ≈ 15,200 photons

SiPM PDE = 10% → ~1,520 光子被检测
SiPM 增益 = 10⁶
输出电荷 = 1520 × 10⁶ × 1.6×10⁻¹⁹ = 2.4×10⁻¹⁰ C
脉冲宽度 ≈ 5ns
输出电流峰值 ≈ 2.4×10⁻¹⁰ / 5×10⁻⁹ = 48mA

50Ω 负载电压 = 48mA × 50Ω = 2.4V !!!  ← 远超 FPGA LVDS 灵敏度
距离 回波电压(50Ω) 经32dB放大后 FPGA 比较 说明
1m ~2V (SiPM饱和!) 饱和 ✓ 但需衰减 SiPM微元数需足够
5m ~200mV >2V ✓✓ 正常
10m ~50mV ~2V ✓✓ 正常
30m ~2.4mV ~100mV ✓ 临界 需直方图辅助
40m ~1mV ~40mV ⚠ 噪声边缘 依赖直方图积累

结论:32dB 增益级可以满足大部分场景,30m 以上依赖多脉冲直方图积累。同时近距 SiPM 会饱和------这需要合理设计 SiPM 微元数量(≥2000个/通道)来保证动态范围。


2.9 FPGA 内部比较器设计
2.9.1 LVDS 比较器原理
复制代码
          ┌──────────────────────────────────┐
          │          FPGA I/O Bank            │
          │                                   │
Signal ───│─▶ LVDS_IN_P  ┌─────────────────┐ │
          │              │  IBUFDS /        │ │
          │              │  IBUFDS_DIFF_OUT │─│──▶ 内部逻辑
VREF ─────│─▶ LVDS_IN_N  │  (差分比较器)    │ │    (STOP信号)
          │              │  V_CM = 1.2V     │ │
          │              │  V_IDIFF ≥ ±100mV│ │
          │              └─────────────────┘ │
          │                                   │
          │  ┌──────────────┐                 │
          │  │ VREF 源      │  外接 DAC 或    │
          │  │ (INTERNAL_VREF│ FPGA 内部 VREF │
          │  │  或外部DAC)   │                 │
          │  └──────────────┘                 │
          └──────────────────────────────────┘
2.9.2 动态阈值策略

割草场景下光线变化剧烈(从树荫到烈日),固定阈值无法工作:

复制代码
┌─────────────────────────────────────────────┐
│           自适应阈值方案                      │
│                                              │
│  发射脉冲前 ──▶ ADC 采样背景光 ──▶ 设定阈值   │
│                              │               │
│              阈值 = 背景RMS × 5 + 最小偏置    │
│                              │               │
│                     ┌────────┴────────┐      │
│                     │  FPGA 内部 DAC   │      │
│                     │  → VREF 管脚    │      │
│                     │  或 SPI 外置DAC  │      │
│                     └─────────────────┘      │
└─────────────────────────────────────────────┘
  • 方案一 :Xilinx 7 系列 INTERNAL_VREF,只能设固定值(不够灵活),不推荐用于 LiDAR
  • 方案二(推荐):外置多通道 DAC(如 AD5648, 8ch),FPGA 通过 SPI 实时调节每通道比较阈值
  • 方案三:背景光 ADC 采样 → 数字比较器 → 阈值在数字域动态计算(延迟大,不推荐用于 TDC STOP 信号)
2.9.3 关键约束

FPGA LVDS 输入端作为比较器使用时需要注意:

项目 限制 对策
共模电压 需要偏置到 LVDS 共模范围 (0.3V-2.2V) RF 放大器输出已偏置在 ~1.5V
最小摆幅 ±100mV (典型) 32dB 增益保证远距回波 >100mV
迟滞 无内部迟滞 在模拟前端加少量正反馈,或数字域去抖动
传播延迟 ~1-2ns (固定) 所有通道等长布线,标定时统一校准
温度漂移 ~5mV/°C 定期背景光标定 + 温度传感器补偿
通道间 skew < 200ps (同 bank) TDC 标定时测量各通道偏移量并补偿

3.0 FPGA 进位链 TDC 实现
3.0.1 架构
复制代码
                        ┌───┐   ┌───┐   ┌───┐   ┌───┐
START ──▶ 粗计数器 ──▶  │C0 │──▶│C1 │──▶│C2 │──▶│... │──▶ C_N
         (200MHz)       │D0 │   │D1 │   │D2 │   │    │
                        └───┘   └───┘   └───┘   └───┘
                             进位链 (CARRY4)
                               
STOP ──▶ 采样锁存 ──▶ 温度计码 → 二进制 → 细时间

ToF = 粗计数 × 5ns + 细时间 × ~40ps
3.0.2 关键实现细节
复制代码
// Xilinx 7 系列 CARRY4 进位链 TDC(概念示意)

// 一个 CARRY4 提供 4 个延迟单元,每单元 ~40-50ps
// 32通道 × 200级/通道 = 6400 级
// 需要 6400/4 = 1600 个 CARRY4 → ~3200 LUT (含编码器)

// 资源估算
┌─────────────────────┬─────────┬──────────┐
│ 模块                │ LUT     │ FF       │
├─────────────────────┼─────────┼──────────┤
│ 进位链 (32ch×200级) │  2,400  │  6,400   │
│ 温度码→二进制编码器  │  1,600  │  1,600   │
│ 粗计数器 (32×16bit) │     96  │    512   │
│ 校准 LUT             │    512  │    512   │
│ 直方图 BRAM (32×256)│      -  │    -     │
│ 点云打包             │  1,200  │  1,200   │
│ 高速串行发送         │    300  │    400   │
├─────────────────────┼─────────┼──────────┤
│ 合计                 │ ~6,000  │~10,600   │
└─────────────────────┴─────────┴──────────┘
3.0.3 TDC 校准

进位链每个单元的延迟不是均匀的(PVT 变化),必须校准:

复制代码
校准方法:码密度测试 (Code Density Test)

输入: 与系统时钟异步的随机脉冲
原理: 随机脉冲落在每个 bin 的概率 ∝ bin 的延迟宽度
      统计足够多事件后,每个 bin 的计数 ∝ 该 bin 的延迟

伪代码:
  for i in 1..N_events:
      tdc_code = tdc_sample(async_signal)
      histogram[tdc_code] += 1

  for i in 0..N_bins:
      bin_width_ns[i] = histogram[i] / total_events × clock_period

  实际时间 = Σ bin_width_ns[0..tdc_code]

触发源选择:
  - 晶体振荡器分频 (不相关时钟)
  - 或 SiPM 暗计数脉冲本身 (免费校准源!)

利用 SiPM 暗计数做在线校准------这是 SiPM 方案的一个巧妙优势:暗计数脉冲的时间分布是真正随机的(泊松过程),天然适合码密度校准,可以做到实时在线校准,补偿温度漂移。


3.1 VCSEL 光学设计
3.1.1 发射光学链

VCSEL 发散角大(~20°),这是相对 EEL 的主要劣势,需要更复杂的光学:

复制代码
方案一: 微透镜阵列 (推荐)
┌─────────────────────────────────────────────┐
│  VCSEL 阵列 (32ch, 间距 0.9mm)               │
│    ●  ●  ●  ●  ●  ●  ...  ●  ●  ●  ●      │
│    │  │  │  │  │  │       │  │  │  │      │
│    ▼  ▼  ▼  ▼  ▼  ▼       ▼  ▼  ▼  ▼      │
│  ┌─────────────────────────────────────┐     │
│  │  微透镜阵列 (MLA, 32ch)              │     │
│  │  单个透镜 φ0.9mm, f~2mm, NA~0.2     │     │
│  │  压缩发散角: 20° → ~2°               │     │
│  └─────────────────────────────────────┘     │
│    │  │  │  │  │  │       │  │  │  │      │
│    ▼  ▼  ▼  ▼  ▼  ▼       ▼  ▼  ▼  ▼      │
│  ┌─────────────────────────────────────┐     │
│  │  柱面镜 (可选) 垂直FOV精细调整         │     │
│  └─────────────────────────────────────┘     │
│    ▼  ▼  ▼  ▼  ▼  ▼       ▼  ▼  ▼  ▼      │
│  ┌─────────────────────────────────────┐     │
│  │  保护窗口 (镀 AR 膜 @ 905nm)          │     │
│  └─────────────────────────────────────┘     │
└─────────────────────────────────────────────┘

方案二: 单透镜准直 + DOE 分束 (备选)
  一个大透镜准直整个 VCSEL 阵列 → DOE 分束成 32 个方向
  优点: 装配简单
  缺点: DOE 定制成本高,效率损失 ~20%
3.1.2 接收光学链
复制代码
┌─────────────────────────────────────────────┐
│  接收窗口 φ20mm (更大口径补偿 SiPM PDE 偏低) │
│    │                                         │
│    ▼                                         │
│  ┌─────────────────────────────────────┐     │
│  │  非球面聚焦透镜 f=25mm, F/1.25      │     │
│  └─────────────────────────────────────┘     │
│    │                                         │
│    ▼                                         │
│  ┌─────────────────────────────────────┐     │
│  │  窄带滤光片                          │     │
│  │  CWL=905nm, BW=3-5nm (利用VCSEL窄谱)│     │
│  │  OD6 @ 可见光+近红外                 │     │
│  │  AOI=0°, 温漂 <0.01nm/°C            │     │
│  └─────────────────────────────────────┘     │
│    │                                         │
│    ▼                                         │
│  ┌─────────────────────────────────────┐     │
│  │  微透镜阵列 (可选)                    │     │
│  │  将光聚焦到各 SiPM 感光区             │     │
│  └─────────────────────────────────────┘     │
│    │                                         │
│    ▼                                         │
│  ┌─────────────────────────────────────┐     │
│  │  灵明光子 SiPM 阵列 (4×8 或定制)     │     │
│  └─────────────────────────────────────┘     │
└─────────────────────────────────────────────┘
3.1.3 滤光片带宽的优化

VCSEL 光谱宽度 < 1nm,这是相对 EEL(~4nm)的显著优势:

激光源 光谱 FWHM 可用滤光片 BW 太阳光抑制比
EEL 4nm 10nm ~1× (基准)
VCSEL < 1nm 3-5nm 2-3× 更好

更窄的滤光片意味着更低的背景光噪声 → SiPM 暗计数触发更少 → 更远探测距离(户外场景下这是关键指标)。


3.2 直方图与多回波处理
3.2.1 为什么需要直方图

SiPM 的高灵敏度意味着它不仅看到激光回波,还能看到太阳光背景光子。单次测量可能被噪声光子触发,因此需要多次测量做直方图统计找出真正的回波峰。

复制代码
每个像素每帧积累 50-100 次发射:
                                        ┌──────────┐
  发射1: 噪声 噪声 噪声 噪声 噪声      │ 信号 ✗    │
  发射2: 噪声 噪声      噪声 噪声      │   信号 ✓   │
  ...                                   │           │
  发射50: 噪声      噪声 噪声 噪声     │     信号 ✓ │
                                        └──────────┘
                  直方图累加
                      ▼
     计数
      ↑      ┌─┐
      │  噪声 │ │          ┌─┐ 信号峰
      │  ┌─┐ │ │ ┌─┐ ┌─┐ │ │  ┌─┐
      │  │ │ │ │ │ │ │ │ │ │  │ │  ┌─┐
      │──│─│─│─│─│─│─│─│─│─│──│─│──│─│──▶ ToF
      │  └─┘ └─┘ └─┘ └─┘ └─┘  └─┘  └─┘
      │      噪声基线       ← 回波峰 →

      峰值检测 → 首回波 (草叶) + 末回波 (地面)
3.2.2 每通道积累次数计算
转速 角分辨率 每点可用时间 单次发射周期 最大积累次数
600rpm (10Hz) 0.2° 55.6μs ~2μs (150m 往返) ~25次
1200rpm (20Hz) 0.2° 27.8μs ~2μs ~12次
600rpm (10Hz) 0.5° 139μs ~2μs ~60次
3.2.3 FPGA 直方图实现
复制代码
┌─────────────────────────────────────────────────────┐
│              直方图引擎 (每通道)                      │
│                                                      │
│  TDC CODE ──▶ 地址译码 ──▶ BRAM (256深度×16bit)      │
│                            │                         │
│                            ├──▶ 读计数               │
│                            ├──▶ +1                   │
│                            └──▶ 写回                 │
│                                                      │
│  一轮积累完成后:                                      │
│    ├──▶ 峰值检测 (滑动窗, 阈值=均值+3σ)               │
│    ├──▶ 首峰 = 首回波 ToF                            │
│    ├──▶ 末峰 = 末回波 ToF (地面)                     │
│    └──▶ 清空 BRAM,开始下一轮                         │
│                                                      │
│  资源: 32ch × 256×16bit = 128 Kbit BRAM               │
└─────────────────────────────────────────────────────┘

3.3 修正后的系统框图
复制代码
┌═══════════════════════════════════════════════════════════════════════╗
║                          旋转部分 (600-1200rpm)                         ║
║                                                                        ║
║  ┌──────────────────┐      ┌──────────────────┐                       ║
║  │ VCSEL Array 1×32 │      │ SiPM Array 4×8   │                       ║
║  │ 45W/ch, 905nm    │      │ 灵明光子          │                       ║
║  │ + MLA 微透镜阵列 │      │ + 窄带滤光片3-5nm │                       ║
║  └────────┬─────────┘      └────────┬─────────┘                       ║
║           │                         │                                  ║
║  ┌────────┴─────────┐      ┌────────┴─────────┐                       ║
║  │ 32ch GaN Driver  │      │ 32ch RF 增益级    │                       ║
║  │ (脉冲成形)       │      │ BGA2818 ×16      │                       ║
║  └────────┬─────────┘      └────────┬─────────┘                       ║
║           │                         │                                  ║
║  ┌────────┴─────────────────────────┴─────────┐                       ║
║  │              FPGA (转子)  XC7A35T            │                       ║
║  │  ┌─────────────────────────────────────┐    │                       ║
║  │  │ 32× 脉冲发生器 (OSERDES)             │    │                       ║
║  │  │ 32× LVDS 比较器 (IBUFDS) + VREF DAC │    │                       ║
║  │  │ 32× 进位链 TDC (CARRY4, ~40ps LSB)  │    │                       ║
║  │  │ 32× 直方图引擎 (BRAM, 256bin×16bit) │    │                       ║
║  │  │ 点云打包 + GTX 串行发送              │    │                       ║
║  │  └─────────────────────────────────────┘    │                       ║
║  └──────────────────────┬──────────────────────┘                       ║
║                         │                                              ║
║            ┌────────────┴────────────┐                                 ║
║            │  角度编码器 (AS5048A)    │                                 ║
║            └─────────────────────────┘                                 ║
║                         │                                              ║
║            ┌────────────┴────────────┐                                 ║
║            │   光通信收发 (1Gbps)      │  ← 非接触                     ║
║            │   + 感应供电接收线圈      │                                ║
║            └─────────────────────────┘                                 ║
╚═════════════════════════════╤═══════════════════════════════════════════╝
                              │
             ╔════════════════╧════════════════╗
             ║     光通信 + 感应供电耦合面      ║
             ╚════════════════╤════════════════╝
                              │
┌═════════════════════════════╤═══════════════════════════════════════════┐
║                          静止部分 (定子)                                  ║
║                                                                         ║
║  ┌─────────────────────────┴─────────────────────────┐                  ║
║  │         FPGA/SoC (定子)  XC7A100T + MCU             │                  ║
║  │  ┌───────────────────────────────────────────────┐ │                  ║
║  │  │ 点云解包 → 校准 (距离/角度/强度)              │ │                  ║
║  │  │ → 坐标系转换 → 滤波 → Ethernet 打包            │ │                  ║
║  │  └───────────────────────────────────────────────┘ │                  ║
║  └─────────────────────┬───────────────────────────────┘                  ║
║                        │                                                 ║
║  ┌─────────────────────┴──────────┐  ┌──────────────────┐                ║
║  │ 100Base-T1 车载以太网          │  │ PMIC + 感应供电  │                ║
║  │ CAN FD (控制/状态)             │  │ 发射电路          │                ║
║  │ USB-C (调试)                   │  └──────────────────┘                ║
║  └────────────────────────────────┘                                     ║
╚═══════════════════════════════════════════════════════════════════════════╝

3.4 电源设计(修正)

VCSEL + SiPM 都简化了供电要求:

电压轨 用途 电流 说明
3.3V FPGA IO, 逻辑 1.5A 标准 LDO/DCDC
1.0V FPGA Core 3A DCDC
28V SiPM 偏压 10mA 升压 + 低噪声 LDO(比 APD 120V 简单太多)
35-40V VCSEL 脉冲储能 峰值 2A, 平均 20mA Boost 升压 + 储能电容
5V 模拟前端 0.5A LDO
12V BLDC 电机 1A DCDC

3.5 灵明光子 SiPM 选型建议

由于灵明光子的具体产品型号可能变化,以下是选型时的建议参数:

参数 建议值 优先级
感光面积/通道 ≥ 0.5mm × 0.5mm
微元尺寸 10-25μm 中(影响动态范围和 PDE)
微元数量/通道 ≥ 2000 高(避免近距饱和)
PDE @ 905nm ≥ 10%
暗计数率 ≤ 300 kHz/mm² 中(户外场景重要)
通道数/芯片 8 或 16 ---(4-8 芯片拼 32ch)
封装 带微透镜阵列更好
输出类型 标准阳极输出(AC耦合方便)

3.6 优势总结(相对传统 APD + EEL 方案)
对比维度 传统方案 (EEL+APD) VCSEL+SiPM+FPGA
APD 偏压 120-200V, 复杂 28V, 简单
激光光谱 ~4nm <1nm → 更窄滤光片
探测器增益 ~100 ~10⁶→ 更远探测潜力
外部 IC 需 32ch 比较器 + TDC 芯片 全部 FPGA 内部实现
发射光学 柱透镜校正像散 圆形光斑,光学更简单
发射功率 75W 45W (低功耗)
人眼安全 Class 1 设计 更安全(低占空比)
BOM 成本 APD 昂贵 SiPM 量产后更便宜
供应链 依赖进口 国产替代

需要我深入展开哪个模块?比如:

  • FPGA TDC 的 RTL 实现细节
  • 32ch 直方图引擎的 BRAM 带宽分析
  • VCSEL 微透镜阵列的光学仿真参数
  • 灵明光子 SiPM 与 RF 增益级的阻抗匹配设计
  • 点云标定方案(内参/外参/时间同步)

框图结构速览

复制代码
┌──────────────────────────────────────────────────────────────┐
│                    旋转部分(转子)600-1200rpm                  │
│                                                              │
│  ┌─ 发射链路 ──────────────────┐  ┌─ 接收链路 ──────────────┐ │
│  │ VCSEL 1×32 → MLA → 窗口    │  │ 窗口 → 透镜 → 滤光片    │ │
│  │   (45W, 905nm, 光谱<1nm)   │  │   → SiPM 4×8 (灵明光子) │ │
│  │            ↓               │  │            ↓             │ │
│  │   32ch GaN FET 驱动         │  │   32ch RF 增益 (32dB)    │ │
│  └────────────────────────────┘  └──────────────────────────┘ │
│                    ↓                      ↓                   │
│  ┌──────────────────────────────────────────────────────────┐ │
│  │              FPGA 转子  XC7A35T                          │ │
│  │  ┌──────────┐ ┌───────────┐ ┌────────┐ ┌─────────────┐  │ │
│  │  │32× 脉冲  │→│32× LVDS   │→│32× TDC │→│32× 直方图   │  │ │
│  │  │ 发生器   │ │  比较器   │ │CARRY4  │ │BRAM 256×16b │  │ │
│  │  └──────────┘ └───────────┘ └────────┘ └──────┬──────┘  │ │
│  │                  ┌─────────────────────────────┘         │ │
│  │                  ↓                                       │ │
│  │  ┌──────────────────────────────────────────────────┐    │ │
│  │  │  点云打包 + GTX 高速串行发送                       │    │ │
│  │  └──────────────────────────────────────────────────┘    │ │
│  └──────────────────────────────────────────────────────────┘ │
│                              │                                │
│  ┌──────────────────┐  ┌────┴───────────┐                    │
│  │ 角度编码器        │  │ 光通信 + 感应   │                    │
│  │ AS5048A (14bit)  │  │ 供电接收线圈    │                    │
│  └──────────────────┘  └────────────────┘                    │
└──────────────────────────────┬───────────────────────────────┘
                               │
              ┌────────────────┴────────────────┐
              │ 非接触旋转耦合: 光通信(1Gbps)    │
              │ + 感应供电(50-100kHz, 15W)      │
              └────────────────┬────────────────┘
                               │
┌──────────────────────────────┴───────────────────────────────┐
│                    静止部分(定子)                              │
│                                                              │
│  ┌──────────────────────────────────────────────────────────┐ │
│  │           FPGA/SoC 定子  XC7A100T + MCU                  │ │
│  │  ┌─────┐  ┌─────┐  ┌─────┐  ┌─────┐  ┌─────┐           │ │
│  │  │解串 │→│校准 │→│坐标 │→│滤波 │→│协议 │           │ │
│  │  │GTX  │  │距离 │  │变换 │  │去噪 │  │打包 │           │ │
│  │  └─────┘  └─────┘  └─────┘  └─────┘  └─────┘           │ │
│  └──────────────────────────────────────────────────────────┘ │
│                                                              │
│  ┌──────────────┐  ┌────────────────────────────────────┐    │
│  │ PMIC + 感应  │  │ 接口: 100Base-T1 | CAN FD |       │    │
│  │ 供电发射电路  │  │ PPS+GPRMC | USB-C (调试)          │    │
│  └──────────────┘  └────────────────────────────────────┘    │
│                                                              │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐                   │
│  │ BLDC 电机│  │ 结构件   │  │ 环境防护  │                   │
│  │ FOC 驱动 │  │ 交叉轴承 │  │ IP67     │                   │
│  └──────────┘  └──────────┘  └──────────┘                   │
└──────────────────────────────────────────────────────────────┘

几个关键设计要点标注
位置 核心设计决策
VCSEL → MLA 微透镜阵列压缩发散角 20° → 2°,解决 VCSEL 发散角大的问题
SiPM → RF 增益 32dB 放大确保 30m 回波 > 100mV,满足 FPGA LVDS 比较器灵敏度
FPGA LVDS 比较器 IBUFDS + 外置 DAC 动态阈值,替代传统分立比较器
TDC 校准 利用 SiPM 暗计数做在线码密度校准,补偿温漂
直方图引擎 多脉冲积累 + 三回波检测(草叶/地面/障碍物分别提取)
旋转耦合 全非接触式:光通信 1Gbps + 感应供电,无磨损、长寿命
窄带滤光片 VCSEL 光谱 <1nm → 滤光片 BW 可缩至 3-5nm,太阳光抑制比提升 2-3×

用浏览器打开 lidar_system_block.svg 即可看到完整的彩色系统框图。需要我调整任何细节?

系统框图: