导言:高级驾驶员辅助系统(ADAS)正在迅速成为新一代中高档汽车的新卖点,目前宝马、奔驰、奥迪等高档汽车已经将ADAS作为标配,国内中档汽车制造商和技术分销商也不甘人后,竞相研发ADAS,以便能在这一快速发展的新兴市场分到一杯羹。目前,实现ADAS的常用方式有DSP、FPGA和MPU三种,但FPGA优秀的多通道高清处理能力有望使它成为未来ADAS的主流实现方式。欲知如何用FPGA来快速实现ADAS,请看以下Xilinx汽车高级驾驶员辅助系统专家独家分享的设计秘诀。
过去五年来,汽车产业在驾驶员辅助 (DA)系统方面取得了显著进步,在切实丰富驾驶体验的同时,为驾驶员提供了宝贵的周边路况信息。自上个世纪 90 年代早期以来,高级 DA 系统开发人员一直在为实现更安全、更舒适的驾驶体验而努力。过去二十年里,超声停车辅助、自适应巡航控制、车道偏离警告系统等 DA 功能已在高端汽车中得到部署和采用。
近来,汽车制造商新增了后视摄像头、盲点检测和环视系统等选项。除超声停车辅助功能外,DA系统的应用量仍然有限。但据市场调研公司 Strategy Analytics 预测 DA 系统的应用将在未来十年出现显著增长。
除了政府立法因素和消费者对安全功能的强烈关注,远程传感器和用于提取和解读关键信息的相关处理算法的创新,也在促进 DA 系统应用的增长。随着时间的推移,这些 DA 系统将变得更加复杂,并且从高端车辆进入主流车辆,而 FPGA 处理功能将扮演主要角色。
驾驶员辅助传感技术发展趋势
传感器研发人员借毗邻市场(如手机摄像头)的他山之玉,开发出了不仅能用于汽车环境,还能满足严格成本控制的器件。无独有偶,开发人员使用基于 PC 的工具对复杂处理算法进行了优化,并将其移植到嵌入式平台上。
虽然超声传感技术一直主导市场,IMS Research 研究机构(图 1)认为未来几年将是摄像头传感器的天下。
.jpg)
图 1 驾驶员辅助传感器市场
摄像头传感器的独特之处就是能够同时提供原始输出和经处理的输出。来自摄像头的原始视频可直接显示向驾驶员,用于确认和评估危险状态,这是其它类型的远程传感器无法企及的(比如雷达)。
另外(或者说同时),视频输出可使用图像分析功能进行处理,提取关键信息,比如行人的位置和运动。开发人员可在一组摄像头的基础上,绑定多种消费功能,扩大这种摄像头传感器数据的“双重用途”,如图 2 所示。
.jpg)
图2 绑定多重汽车功能
① 环视系统 ② 后视摄像头 ③ 车尾盲点监测 ④ 盲点检测光流 ⑤ 用于行车道偏离警告的实时车道跟踪系统
⑥ 用于智能头灯控制的头灯/尾灯检测功能 ⑦ 立体可视原型
从这些应用,我们可以总结出一些关于适用于基于摄像头的 DA 系统的处理平台的要求:
•它们必须同时支持视频处理和图像处理。其中视频处理指的是正确处理原始摄像头数据,并显示给驾驶员;图像处理指运用分析功能从视频流中提取信息(例如运动)。
•它们必须为与同时运行的功能有关的算法提供并行数据路径。
•鉴于众多新功能要求百万像素级图像分辨率,连接功能和存储器带宽与原始处理能力同等重要。
[member]
满足 DA 处理平台要求
满足 DA 处理平台要求
FPGA 能够很好地满足 DA 处理平台的要求。例如,在集成有车尾盲点警告功能的宽视野单摄像头系统中,DA 系统旨在校正车后区域的图像畸变,提供正确的图像。
另外,目标检测算法和动作估算算法可以在目标从侧面进入预计的车辆路径时生成音频警告。
图 3 显示了摄像头信号如何在视频处理功能和图像处理功能之间分配。执行这些功能的原始处理能力会很快超过串行数字信号处理器 (DSP) 所具备的能力。并行处理配合硬件加速是一款可行的解决方案。
图3 视频处理和图像处理功能
FPGA 为解决各种处理策略提供高度灵活的架构。在 FPGA 逻辑中,将摄像头信号分别馈给到彼此独立的视频处理和图像处理 IP 模块是一件简单的事情。与必须在各项功能之间时分复用资源的串行处理实现方案不同,FPGA 能够独立运行处理模块以及为处理模块提供时钟。
另外,如果有必要修改处理架构,FPGA 能够重新编程硬件模块。这是采用专用标准产品 (ASSP)以及专用集成电路 (ASIC) 的解决方案所无法企及的,从而使 FPGA 实现方案在预期未来高级算法发展时,具有明显优势。
对于计算密集型处理,FPGA器件(诸如最新推出的 XA Spartan®-6 FPGA汽车系列)可提供多达 180 个带预加法器的乘法累加器 (MACC)。
FPGA 实现方案的另一大优势就是器件可扩展性。由于 OEM 厂商期望绑定更多功能,处理需求会增加。例如,后视摄像头可能需要采用单目测距算法,为驾驶员提供目标距离信息。这项新增功能要求另一条并行处理路径。
在专用 ASIC 或 ASSP 中实现上述扩展即便不是不可能,但也会带来麻烦,除非设计人员提前为这种扩展采取预防措施。
如果试图在串行 DSP 上实现此项功能,就需要对软件设计进行彻底的重新架构,即便是移植到功能更强大的 DSP 系列器件之后也是如此(如果可以)。
相比之下,基于 FPGA 的实现方案可以添加新的功能模块,充分利用此前尚未使用的 FPGA 逻辑,同时基本不影响现有模块。即便新功能要求的资源多于原始器件上所能提供的,部件/封装组合也一般能支持移植到密度更大的器件(即拥有更多处理资源的器件),无需重新设计电路板或现有的 IP 模块。
最后,FPGA 的可重编程性能够让相互排斥的 DA 功能重用同一芯片。以后视摄像头为例,当车辆倒车时,其功能非常有用,不过采用基于 FPGA 的系统在车辆向前行驶时也可以使用同一传感器和处理电子设备,比如盲点探测功能。
在该应用中,系统通过分析摄像头图像来判断被探测目标的位置和相对运动。由于这项功能及其相关处理功能与倒车时需要的功能不同,不需要同时处理,系统可以根据车辆的状态,在数百微秒时间内重新配置 FPGA 逻辑。这样就可以用很少的费用完全重用 FPGA,以提供完全不同的功能。
满足 DA 外部存储器带宽要求
除了原始处理性能,采用摄像头的 DA 应用要求较高的外部存储器访问带宽。支持集中处理的多摄像头系统(如四摄像头环视系统)对此要求最为严苛。假定图像大小为 4 百万像素(1,280x960),色彩处理为 24 位,性能为每秒30帧 (FPS),将图像存储在外部缓冲区中则要求 3.6Gb/s 的内存访问带宽。
如果需要同时读取和写入图像,则要求内存访问带宽翻倍到 7.2Gb/s。在 80% 读/写突发效率下,则要求内存访问带宽提高到 8.5Gb/s。该估算还不包括其它暂时存储或代码访问需求。有这样的要求,很明显基于摄像头的 DA 应用属于内存超带宽应用。
这些系统也通常需要存储器控制器;但要低成本地添加一个存储器控制器,要求高效率的系统级设计。开发人员再度可以借助 FPGA 的灵活性来满足这一要求。XA Spartan-6 提供两种硬化的存储器控制器模块 (MCB) 供设计人员配置 4 位、8位或 16 位 DDR、DDR2、DDR3 或 LPDDR 存储器接口。设计人员可为 MCB 配备高达 400MHz 的时钟,为 16 位宽度存储器器件提供 12.8Gb/s 的内存访问带宽。
另外,如果采用两个 MCB,原始带宽就倍增至 25.6Gb/s。两个 MCB 既可独立工作,也可通过 FPGA 逻辑协同工作,提供 32 位虚拟数据带宽。
总而言之,FPGA 存储器控制器可提供定制的外部存储器接口设计选项,以满足 DA 带宽需求并优化各个成本组成部分(存储器器件类型、PCB 层数等)。
片上存储器资源的 DA 图像处理需求
除了外部存储器需求,基于摄像头的 DA 处理还能受益于片上存储器。片上存储器可用作线路缓冲器,来处理流视频或分析图像数据模块。拜耳转换、透镜畸变校正、光学流运动分析均为要求视频线路缓冲器的功能示例。出于简单的定量分析目的,已检验使用 12 位像素拜耳图形强度信息生成 24 位颜色数据的拜耳转换功能。
原始流视频处理采用双三次插值处理,要求缓冲四线路图像数据。将 12 位密度数据打包到 16 位的单元上,需要每线提供约 20.5kb 的存储容量,或者为四线路数据供提供 82kb 的存储空间。
FPGA以 Block RAM 的形式提供片上存储器资源。XA Spartan-6 系列提高了 Block RAM逻辑比,用以支持图像处理需求。XA Spartan-6 能够提供容量介于 216kb 到 4.7Mb 之间的 Block RAM 存储器。该存储器采用时钟速率为320MHz 、容量为 18kb 的双端口模块构建而成。
通过高速串行接口传输视频数据
另一个 DA 处理平台问题与远程安装的摄像头和中央处理模块或显示模块之间的视频数据传输息息相关。当今大部分摄像头装置主要依赖模拟复合视频传输(例如 NTSC)。
但这种方法给高级 DA 系统带来了几大问题。场交错会降低目标识别和运动估算算法的效果;模拟信号易于受电气噪声的影响,从而劣化图像质量;随着数字成像器的出现,复合视频 (CVBS) 格式的转换还会造成不必要的系统成本。
首选方法是使用数字传输机制。并行传输 12 位数据会造成线缆和接头成本不菲,因此考虑采用低压差分信号 (LVDS) 或以太网技术的串行方案。串行化像素数据要求使用带高速接口的器件。12 位像素深度的 30FPS 百万像素成像器每秒可以生成 500Mb 以上的数据。
XA Spartan-6 器件提供的差分 I/O 能够以超过 1Gb/s 的速率运行。该系列的几个产品还提供时钟速率高于 3Gb/s 的串行收发器。可以将这些高速 I/O 功能与 FPGA 逻辑相结合,用于在 FPGA 器件自身内部实现新兴的 LVDS SerDes 信号协议,从而减少外部组件,降低系统成本。
并行和串行 DA 处理的功能分区
以支持车尾盲点警告功能的单摄像头系统为例,很明显,虽然车尾盲点警告是一个串行决策流程,但视频和图像处理功能均受益于并行处理和硬件加速技术。故一个能够同时支持两种类型的处理的平台具有明显优势。
赛灵思的 FPGA 支持如 XA Spartan-6 器件中提供的 MicroBlazeTM 32 位 RISC 嵌入式处理器这样的软处理器的实例化。将全功能处理器与 FPGA 逻辑相结合,可以实现理想的功能分区,即将受益于并行处理或硬件加速的功能实现在 FPGA 逻辑中,而将更适合串行处理的功能实现在软件中,由 MicroBlaze 处理器负责执行。
虽然 MicroBlaze 处理器能够支持片上系统 (SoC) 架构,但赛灵思 7 系列器件中的可扩展处理平台仍采用了硬化的 ARM® 双核 Cortex TM-A9 处理器以及一组硬化的外设。赛灵思 7 系列器件针对的是最为复杂的 DA 系统。
结论
从事 DA 处理平台设计的系统设计人员必须考虑架构的灵活性、平台的可扩展性、外部存储器带宽、片上存储器资源、高速串行接口和并行/串行处理分区。
最大的难题在于要在满足这些要求和保持有竞争力优势的产品成本结构之间实现最佳平衡。要实现此目的,FPGA 技术是标准 ASSP 和 ASIC 方法可行的替代方案。尤其是 XA Spartan-6 系列的资源属性为满足 DA 处理平台的要求提供了独特的选项和功能。随着当今的 FPGA 普遍采用 40nm 工艺节点以及 7 系列器件升级到 28nm 工艺,其作为 DA 处理平台的竞争优势必定在不久的将来大放异彩。
相关阅读:
汽车驾驶员辅助系统:使用 FGPA 的处理功能
http://www.52solution.com/data/datainfo/id/6610