TI Fusion应用板:多传感器数据汇聚与接口转换平台详解

📅 2026/7/29 12:46:18 👁️ 阅读次数 📝 编程学习
TI Fusion应用板:多传感器数据汇聚与接口转换平台详解

1. 项目概述与核心价值

如果你正在开发一个基于多摄像头的环视系统,或者一个融合了摄像头、雷达和激光雷达的ADAS感知原型,那么你大概率会遇到一个非常头疼的问题:传感器数据怎么高效、可靠地传回中央处理器?每个传感器都需要独立的线缆连接,线束会变得异常复杂,不仅成本高,可靠性也面临挑战,更别提在狭小的汽车空间里布线的难度了。这正是德州仪器(TI)推出Fusion应用板要解决的核心痛点。

简单来说,Fusion应用板是一个多传感器汇聚与接口转换平台。它的核心任务是把来自最多八个独立传感器的数据流,通过高度集成的方案,汇聚成两路标准的MIPI CSI-2视频流,直接输送给像TI Jacinto系列(如TDA2Px, TDA4)这样的高性能汽车处理器。想象一下,你原本需要处理八条独立的数据“河流”,现在通过这个板子,它们被合并成了两条宽阔、标准的“主干道”,系统复杂度和布线难度直线下降。

这块板子的设计充满了工程智慧。它内部集成了两颗TI的明星芯片:DS90UB960-Q1四通道解串器。每颗960可以接收四路来自传感器的FPD-Link III高速串行数据,然后合并输出一路四通道的CSI-2。这样一来,两颗芯片就完成了八进二出的壮举。更妙的是,它支持Power over Coax,也就是通过单根同轴电缆,同时为远端传感器模块供电并传输高速数据和控制信号,这简直是车载传感器布线的“福音”,一根线解决所有问题,传输距离还能达到15米。

对于开发者而言,这块板子的价值在于它提供了一个经过验证的、立即可用的参考设计。你不需要从零开始设计复杂的SerDes(串行器/解串器)电路、处理棘手的信号完整性问题、或是琢磨如何给多个同型号传感器分配I2C地址。Fusion板已经把这些底层硬件和基础配置问题都解决了,你拿到手,接上传感器和处理器EVM,按照指南配置好跳线和开关,就能快速搭建起一个多传感器数据采集的硬件框架,把精力集中在更上层的算法开发、数据融合和应用验证上。无论是做环视泊车、前视感知还是多传感器融合的自动驾驶demo,它都是一个极佳的起点。

2. 硬件架构深度解析

2.1 核心芯片:DS90UB960-Q1 解串器的工作原理

Fusion板的灵魂是那两颗DS90UB960-Q1芯片。要玩转这块板子,必须理解这颗芯片在做什么。FPD-Link III是TI针对汽车应用推出的一种高速串行链路技术,它的 serializer(串行器,如DS90UB953-Q1)安装在传感器端,将并行的传感器数据(通常是MIPI CSI-2)转换成高速串行信号,通过一根差分线对(同轴或双绞线)进行长距离传输。而位于中央端的deserializer(解串器),也就是UB960,负责接收这个串行信号,将其还原成标准的MIPI CSI-2数据,送给处理器。

UB960的强大之处在于其四通道聚合能力。一颗芯片有四个独立的接收通道,每个通道可以连接一个传感器。但它不是简单地将四路CSI-2并行输出,而是能够将它们复用(MUX)到单一的一个CSI-2端口上输出。这个端口可以是1、2或4个数据通道(Lane)。在Fusion板上,设计为使用4个数据通道的输出模式,以提供足够的带宽来承载四个传感器合并后的数据流。你可以把它理解为一个四车道合并成一车道的智能交通枢纽,通过时分复用的方式,让四个来源的数据有序地通过一条高速路。

注意:虽然UB960支持将四路输入合并输出,但这需要处理器端的CSI-2接收控制器能够解析这种多路复用的数据流。TI的Jacinto处理器SDK中通常提供了相应的驱动程序和解复用配置,这是软件层需要配合的关键点。

2.2 板载电源管理与Power over Coax (PoC) 机制

Fusion板的电源设计考虑了车载环境的严苛性和灵活性。它支持两种供电模式:

  1. 来自EVM供电:通过专用的J40连接器,从TDA2Px或TDA4 EVM取电。这种方式适合桌面原型开发,接线简洁。
  2. 独立供电:通过J14连接器,接入6V至65V的宽范围输入,模拟真实的汽车电池环境。板载的SEPIC和Buck电路会将其转换为板子所需的3.3V、1.8V、1.1V等电压。

PoC是这块板子的一大亮点。传统方案中,传感器模块需要独立的电源线和数据线。PoC技术通过在同轴电缆的中心导体和屏蔽层之间注入直流电源,利用安装在电缆两端的电感-电容(LC)滤波网络来实现直流电源与高速交流数据信号的分离。在Fusion板上,每个传感器输入通道都有一套这样的PoC滤波电路。

板上有两个关键的电压选择跳线:J22(Bank2,摄像头)J27(Bank1,雷达/通用)。每个跳线都可以选择为连接的传感器提供5V或12V电源。这个选择至关重要:

  • 5V:适用于功耗较低的摄像头模块。
  • 12V:适用于需要更高功率的雷达模块或某些高性能摄像头。
  • 不插跳线:如果你使用自带电源的传感器(如通过HSD连接且单独供电),或者该通道暂时不用,务必保持跳线为空,否则可能造成电源冲突或浪费。

实操心得:在连接传感器前,务必先确认传感器模块的供电需求,并对照板子上的丝印(J22, J27)设置正确的电压跳线。接错电压是烧毁传感器模块最快的方式之一。建议用万用表在传感器连接器上测量一下电压,确认无误后再插线。

2.3 灵活的I2C拓扑与Aliasing(别名)寻址

在多传感器系统中,I2C地址冲突是一个常见问题。很多摄像头模组使用的图像传感器(如OV系列)出厂I2C地址是固定的。如果你连接了四个一模一样的摄像头,它们在同一I2C总线上地址相同,主机就无法区分和单独访问它们。

Fusion板通过DS90UB960的“Aliasing”功能优雅地解决了这个问题。其原理是:UB960作为I2C总线上的一个“代理”或“路由器”。每个连接到UB960通道的物理传感器,其真实的I2C地址(Slave ID)可以被UB960映射到一个由软件配置的、唯一的“别名地址”(Slave Alias)上。

从主机处理器(如TDA2Px)的角度看,它访问的I2C设备是UB960本身,以及一系列“别名地址”。当主机向某个“别名地址”发送命令时,UB960会拦截这个命令,并将其转发到对应的物理传感器通道上。这样,即使八个物理传感器地址完全相同,在主机看来,它们也是八个地址不同的独立设备。

Fusion板上的I2C控制权可以通过拨码开关S3进行选择,非常灵活:

  • MSP430控制:板载的MSP430微控制器可以作为默认的I2C主机,初始化UB960和传感器。
  • EVM(SoC)控制:这是最常用的模式。处理器通过CSI-2连接器上的I2C线路直接控制整个板卡和所有传感器。
  • 外部MCU控制:通过板上的J6/J11/J15接口,接入你自己的微控制器进行底层控制。

这种设计使得你可以根据开发阶段灵活选择控制方式。早期调试可以用MSP430或外部MCU,而最终系统集成时,则完全由主SoC控制。

3. 板卡接口与配置详解

3.1 传感器连接器:Bank1与Bank2的区别

Fusion板将八个传感器接口分为两个组,或称两个“Bank”:

  • Bank2 (J23, J24, J25, J26):这四个是纯同轴(Coax)连接器。它们只能使用同轴电缆连接,支持PoC。通常用于连接摄像头模组。
  • Bank1 (J28-J35):这八个接口(四对)设计更为灵活。每一对(如J28和J29)对应同一个物理通道,但通过拨码开关S3.3来选择使用同轴(Coax)还是双绞线(HSD)
    • J28, J30, J32, J34 是同轴接口。
    • J29, J31, J33, J35 是HSD接口。
    • 关键限制:对于Bank1,你必须统一选择。要么全部四个通道都用同轴(接J28,30,32,34),要么全部用HSD(接J29,31,33,35)。不能混用。

为什么要有HSD选项?同轴电缆虽然能同时传数据和电源,但功率传输能力有限(PoC)。对于一些功耗较大的传感器(如某些雷达模块),HSD是更好的选择,因为它有独立的电源引脚,可以提供更大的电流。HSD使用差分双绞线传输数据,抗干扰能力也很强。

3.2 核心配置拨码开关与跳线

硬件配置是让Fusion板工作的第一步,任何错误都可能导致无法通信甚至损坏设备。请务必在断电状态下操作。

1. 主配置拨码开关 S3:这是一个4位拨码开关,位于板卡中央区域。

  • S3.1 (MSP430使能)
    • OFF:启用板载MSP430微控制器。此时MSP430将尝试作为I2C主机初始化系统。
    • ON:禁用MSP430(将其保持在复位状态)。这是最常用的设置,当你希望由EVM上的主SoC或外部MCU来控制时,必须拨到ON。
  • S3.2 (I2C主机选择)
    • OFF:I2C控制权交给MSP430。
    • ON:I2C控制权交给EVM(SoC)或外部MCU。如果你使用TDA2Px等EVM,此开关必须拨到ON
  • S3.3 (Bank1接口类型选择)
    • OFF:Bank1使用HSD(双绞线)接口(连接J29,31,33,35)。
    • ON:Bank1使用Coax(同轴)接口(连接J28,30,32,34)。务必与你实际连接的线缆类型一致!
  • S3.4:未使用,保持默认即可。

2. 解串器模式开关 S4 和 S5:这两个开关用于设置DS90UB960的工作模式,必须与连接的传感器串行器型号匹配。

  • S4:控制Bank2(纯Coax口)的UB960模式。对于使用DS90UB953-Q1串行器的摄像头模组,应设置为CSI Mode/Coax。根据手册表格,对应开关位为:S4.3=OFF, S4.2=ON, S4.1=OFF, S4.0=ON。
  • S5:控制Bank1的UB960模式。这里有两种情况:
    • 如果Bank1用Coax,且传感器端是UB953,则设为CSI Mode/Coax:S5.3=OFF, S5.2=ON, S5.1=OFF, S5.0=ON。
    • 如果Bank1用HSD,且传感器端是UB953,则设为CSI Mode/HSD:S5.3=ON, S5.2=OFF, S5.1=ON, S5.0=OFF。

3. 传感器电源跳线 J22 和 J27:

  • J22 (Camera Power):为Bank2的四个Coax接口(J23-J26)选择供电电压。跳线帽横插在中间和对应电压引脚上。
  • J27 (Radar Power):为Bank1的接口(无论是Coax还是HSD)选择供电电压。
  • 选项:不插(无输出), 5V, 12V。再次强调,连接传感器前务必确认电压!

3.3 与TI Jacinto处理器EVM的连接

Fusion板通过底部的一个高速连接器与TI的EVM相连。这个连接器传输的是标准的MIPI CSI-2信号和I2C控制信号。

物理连接:你需要将Fusion板通过支架固定在TDA2Px或TDA4 EVM的上方,然后将CSI-2 FPC排线(通常随板附赠)一端连接到EVM的CSI-2插座,另一端连接到Fusion板底部的插座。确保连接器锁扣扣紧,接触可靠。

电气连接:除了CSI-2数据通道,关键的连接还包括:

  • I2C_SCL_SOC / I2C_SDA_SOC:EVM通过这两根线作为I2C主机控制Fusion板和所有传感器。
  • GPIO7_7 (I2C_SW_SOC):这是一个至关重要的信号。EVM需要将此GPIO输出为高电平,才能从硬件上确保自己获得I2C总线控制权,覆盖掉拨码开关的设置。这通常在EVM的启动脚本或设备树中进行配置。
  • SYNC_Bank1 / SYNC_Bank2:这些同步信号可用于让EVM触发所有传感器进行同步曝光或采集,对于多传感器数据的时间对齐非常有用。

注意事项:不同型号的EVM(如TDA2Px和TDA4)可能使用不同的连接器或线缆。请务必使用Fusion板套件中为对应EVM提供的转接板或线缆。错误的连接可能无法通信甚至损坏接口。

4. 上电启动与基础调试流程

4.1 标准上电配置步骤(以TDA2Px EVM为例)

假设我们要搭建一个八摄像头系统,全部使用同轴连接,并由EVM供电和控制。以下是详细的步骤:

  1. 断电准备:确保Fusion板、EVM和所有传感器均未上电。
  2. 硬件安装:将Fusion板通过铜柱和螺丝稳妥地安装在TDA2Px EVM上方。将配套的CSI-2 FPC排线两端分别牢固地插入EVM和Fusion板的CSI-2插座。
  3. 设置拨码开关
    • S3: 设置为[ON, ON, ON, x]。含义:禁用MSP430(S3.1=ON),I2C由EVM控制(S3.2=ON),Bank1使用Coax(S3.3=ON)。
    • S4 (Bank2模式):设置为[OFF, ON, OFF, ON],即CSI Mode/Coax。
    • S5 (Bank1模式):设置为[OFF, ON, OFF, ON],即CSI Mode/Coax。
  4. 设置电源跳线
    • 根据你的摄像头模组规格(假设需要5V),将J22J27的跳线帽都设置在5V位置。
  5. 连接传感器:使用同轴电缆,将八个摄像头模组分别连接到Bank2的J23-J26和Bank1的Coax接口(J28, J30, J32, J34)。
  6. 供电连接:使用配套的电源线,将EVM的12V输出连接到Fusion板的J40接口。此时先不要给EVM上电
  7. EVM软件配置:确保TDA2Px EVM上运行的Linux或QNX系统已经包含了支持DS90UB960的驱动程序,并且在设备树(Device Tree)或启动脚本中,正确配置了CSI-2接口和GPIO7_7(将其设置为输出高电平)。这是软件成功识别Fusion板的关键。
  8. 系统上电:首先给EVM上电,然后通过EVM给Fusion板供电。
  9. 观察状态:上电后,观察Fusion板上的状态LED:
    • D5 (3.3V), D6 (1.8V), D7 (1.1V) 应该常亮,表明板载电源工作正常。
    • D10 如果亮起,表明5V PoC升压电路工作。
    • 其他LED(D11-D19)是MSP430的备用GPIO,默认可能不亮,取决于固件。
  10. 系统验证:登录EVM的操作系统,使用I2C工具(如i2cdetect)扫描I2C总线。你应该能看到DS90UB960的I2C地址(通常为0x30和0x32),以及通过Aliasing功能映射后的各个传感器地址。如果能看到这些设备,说明硬件连接和基础配置成功。

4.2 软件层面关键配置解析

硬件就绪后,软件配置是让数据流动起来的关键。在基于Linux的TI SDK中,主要涉及两个部分:

1. 设备树配置:你需要修改EVM的设备树源文件(.dts),添加DS90UB960解串器的节点,并将其链接到处理器的CSI-2端口和I2C总线上。以下是一个简化的示例框架:

&i2c3 { /* 假设UB960连接在I2C3总线 */ status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&main_i2c3_pins_default>; ds90ub960_1: deserializer@0x30 { compatible = "ti,ds90ub960"; reg = <0x30>; /* UB960的I2C地址 */ csi-lanes = <4>; /* 使用4条CSI-2 Lane */ >/* 在设备树中配置GPIO7_7为输出高电平 */ &gpio7 { pinctrl-names = "default"; pinctrl-0 = <&fusion_i2c_sel_pins>; fusion-i2c-sel-hog { gpio-hog; gpios = <7 GPIO_ACTIVE_HIGH>; /* GPIO7_7 */ output-high; line-name = "fusion_i2c_sel"; }; };

配置完成后,重新编译设备树并更新EVM。系统启动后,你应该能在/dev目录下看到对应的视频设备节点(如/dev/video0/dev/video7),可以使用v4l2-ctl等工具进行抓图或录像测试。

5. 常见问题排查与实战经验

5.1 上电无反应或LED不亮

  • 问题现象:连接电源后,板卡上所有LED均不亮。
  • 排查步骤
    1. 检查电源:首先用万用表测量J40或J14输入端的电压,确认是否有12V输入。
    2. 检查保险丝:板卡上可能有保险丝,检查是否熔断。
    3. 检查拨码开关S3.1:如果S3.1设置在OFF(启用MSP430),但MSP430没有程序或损坏,可能导致整个I2C总线锁死,影响其他电源管理芯片的初始化。建议在首次调试时,将S3.1设置为ON(禁用MSP430),优先使用EVM控制。
    4. 测量板载电压:使用万用表测量测试点TP1(3.3V)、TP2(1.8V)、TP3(1.1V),看各级电源是否正常输出。

5.2 I2C设备扫描不到

  • 问题现象:在EVM系统内使用i2cdetect -l列出总线,再i2cdetect -y [总线号]扫描,找不到DS90UB960的设备地址(0x30, 0x32等)。
  • 排查步骤
    1. 确认物理连接:检查CSI-2排线是否插紧,有无歪针。
    2. 确认拨码开关重点检查S3.2是否为ON(EVM控制),以及S3.1是否为ON(禁用MSP430)。
    3. 确认EVM GPIO:这是最容易被忽略的一点。必须确保EVM上的GPIO7_7被配置为输出高电平。你可以通过EVM的GPIO调试工具(如gpiod)或直接测量该引脚电压来验证。如果为低电平,I2C控制权可能仍在MSP430或悬空状态。
    4. 检查I2C上拉电阻:I2C总线需要上拉电阻。虽然板卡已集成,但可以测量SCL和SDA线对地电压,在空闲时是否被拉高(通常接近3.3V)。
    5. 分步排查:断开所有传感器,只保留Fusion板与EVM连接,先尝试扫描UB960的地址。如果依然不行,问题可能出在板卡或EVM配置上。

5.3 传感器被识别,但无视频数据流

  • 问题现象i2cdetect能看到传感器别名地址,但v4l2-ctl --list-devices看不到视频设备,或尝试抓图时失败。
  • 排查步骤
    1. 检查传感器供电:用万用表在传感器连接器上测量电压,确认5V/12V PoC输出正常。
    2. 检查解串器模式开关确认S4和S5的设置与传感器端的串行器型号完全匹配。如果传感器用的是DS90UB953,就必须选择“CSI Mode”对应的开关组合。一个常见的错误是Coax/HSD模式选错。
    3. 检查设备树配置:确认设备树中CSI-2数据通道(data-lanes)的数量和映射关系配置正确,并且与Fusion板的物理连接一致。确认remote-endpoint链接正确。
    4. 检查传感器配置:有些传感器模组需要通过I2C进行初始化才能输出视频流。确保你的驱动或应用代码正确初始化了传感器(如写入分辨率、帧率等寄存器)。
    5. 查看内核日志:使用dmesg | grep csidmesg | grep ub960查看内核驱动加载和初始化过程中是否有错误信息。

5.4 多传感器时间同步问题

  • 问题现象:多个摄像头的画面在时间上对不齐,导致融合算法出现重影或错位。
  • 解决方案
    • 硬件同步:利用Fusion板提供的SYNC_Bank1SYNC_Bank2信号。将这两个信号从EVM的GPIO引出,连接到处理器的GPIO输入。在软件中,可以配置处理器生成一个同步脉冲信号,并通过CSI-2连接器反馈给UB960,再由UB960通过FPD-Link III转发给所有连接的传感器,触发它们同时开始曝光。
    • 软件时间戳:在驱动层面,为每一帧图像打上高精度的时间戳(使用系统的单调时钟)。在后处理时,根据时间戳进行对齐。虽然可能有微秒级的偏差,但对于帧率不高的应用(如30fps)通常可以接受。
    • 使用UB960的帧同步功能:DS90UB960本身支持一定的帧同步机制,可以通过配置寄存器,让多个通道的输出在CSI-2接口上对齐。这需要仔细阅读UB960的数据手册并进行寄存器配置。

5.5 实战经验与选型建议

  • 线缆选择:对于PoC应用,务必使用特性阻抗为50欧姆的优质同轴电缆。劣质电缆会导致信号衰减严重,通信不稳定。电缆长度尽量不要超过15米的设计极限。
  • 电源估算:在规划系统时,计算总功耗非常重要。如果连接了多个高功耗传感器(如某些雷达),EVM的12V输出(通过J40)可能功率不足(手册提示总方案不超过60W)。此时,强烈建议使用独立的外部电源通过J14为Fusion板供电,避免拉垮EVM的电源导致系统不稳定。
  • 散热考虑:两颗DS90UB960和多个电源芯片在工作时会产生热量。在封闭环境或长时间满负荷运行时,注意板卡的通风散热。可以考虑添加小型散热片或使用风扇辅助散热。
  • 静电防护:汽车电子开发环境需要特别注意ESD。在插拔传感器线缆和板卡时,尽量佩戴防静电手环,尤其是在干燥的冬季。

Fusion应用板作为一个强大的开发平台,其价值在于将复杂的高速串行接口和电源管理硬件设计封装好,让开发者能聚焦于传感器数据的应用层处理。理解其硬件架构、熟练掌握配置方法、并能系统化地排查问题,是高效利用这块板子进行ADAS和自动驾驶原型开发的关键。从环视拼接、前向碰撞预警到更复杂的多模态融合感知,它都能提供一个坚实可靠的硬件数据入口。