一句话先定性:
EMIF:DSP 把 FPGA 当成一块外部存储器来读写。
FSI:DSP 和 FPGA 之间建立一条高速、低延迟、带校验的串行数据链路。
SPI:DSP 和 FPGA 像两个普通芯片一样,一位一位串行收发数据。
三者最核心的区别
| 本质 | 并行外部总线 | 高速实时串行链路 | 通用同步串行 |
| DSP视角 | 访问“地址” | 收发“帧” | 移位收发“字节/字” |
| 数据线数量 | 多 | 少 | 少 |
| 带宽 | 最高,通常很高 | 高 | 中低 |
| 延迟 | 很低 | 低且确定性好 | 相对高 |
| FPGA实现难度 | 中等 | 较高 | 最低 |
| PCB难度 | 较高 | 中等 | 最低 |
| 跨隔离 | 不擅长 | 很适合 | 可以,但速度受限制 |
| CRC/链路检测 | 通常自己做 | 硬件自带较完善 | 通常自己加 |
| 适合 | 大量实时数据 | 实时控制/分布式控制 | 配置、状态、少量数据 |
一、EMIF:DSP直接“访问FPGA里的地址”
假设 FPGA 内部做了一些寄存器:
FPGA
0x0000 电流Ia
0x0002 电流Ib
0x0004 电压Udc
0x0006 状态
0x0010 PWM控制量
0x0100 FIFO数据区
DSP通过 EMIF 接上 FPGA:
DSP FPGA
Address[ ] ────────────→ 地址译码
Data[15:0] ←────────────→ 数据
CS ────────────→ 片选
RD ────────────→ 读
WR ────────────→ 写
READY ←──────────── 等待/完成
于是 DSP 程序可以近似理解成:
value = FPGA_REG[0x04];
FPGA_REG[0x10] = pwm_value;
这就是 EMIF 最厉害的地方:通信这个概念几乎消失了。而且因为EMIF是并行传输所以传输速度很快。
F28388D 的 EMIF 支持异步 SRAM/NOR 类接口,也支持同步 SDRAM,异步总线宽度可以配置为:
8 bit
16 bit
32 bit
TI DriverLib也直接提供了8/16/32位配置。EMIF同步时钟周期最小10 ns,也就是最高约 100 MHz EMIF时钟量级。如果用32位,PCB就要考虑长度控制 参考平面 串扰 返回路径 驱动强度 串联端接 时序裕量。
二、SPI:最容易理解,也是最容易实现的
SPI你可以把它理解为:
DSP FPGA
SCLK ───────────────→
MOSI ───────────────→
MISO ←───────────────
CS ───────────────→
假设 DSP 要读取 FPGA 的电压值。
可以自己定义协议:
DSP → FPGA
命令:
0x01 0x03
含义:
读取地址03
FPGA → DSP
0x12 0x34
表示:
0x1234
所以SPI其实就是:
我给你一些bit,你按照我们提前约定好的协议解释。
SPI本身并不知道:
0x01
代表:
- 读数据
- 写数据
- PWM
- 电压
- 温度
这些全部由你自己定义。
SPI硬件最容易。
F28388D的高速SPI比28335强不少。
最高可以:
50 MHz
而且是全双工。
三、FSI:你可以理解成“为控制系统强化过的高速SPI” 高速 + 低延迟 + 确定性 + 错误检测。
结构大致是:
DSP FPGA / DSP
FSITXCLK ───────────────────→
FSITXD0 ───────────────────→
FSITXD1 ───────────────────→ 可选第二数据线
FSIRXCLK ←────────────────────
FSIRXD0 ←────────────────────
FSIRXD1 ←────────────────────
所以它不像 EMIF 一下占几十根引脚。
F28388D这一代,FSI就真正值得考虑了。
最大FSI时钟:50MHz,而且采用DDR可达到100Mbit/s,双Lane有200Mbit/s
所以最大理论有效物理数据率可以达到:
200 Mbps
| 通信速率 | ★★★★★ | ★★★★☆ | ★★☆☆☆ |
| FPGA实现难度 | ★★★☆☆ | ★★☆☆☆ | ★★★★★ |
| DSP软件难度 | ★★★★☆ | ★★★★☆ | ★★★★★ |
| DSP引脚占用 | ★★☆☆☆ | ★★★★★ | ★★★★★ |
| PCB布线 | ★★★☆☆ | ★★★★☆ | ★★★★★ |
| DMA/大数据搬运 | ★★★★★ | ★★★★☆ | ★★★☆☆ |
| 实时大量数据 | ★★★★★ | ★★★★☆ | ★★☆☆☆ |
| 隔离/板间通信 | ★★☆☆☆ | ★★★★★ | ★★★☆☆ |





