新闻中心

EEPW首页>汽车电子>设计应用> 通过FPGA设计安全的高级辅助驾驶系统

通过FPGA设计安全的高级辅助驾驶系统

作者: 时间:2016-10-29 来源:网络 收藏
通过FPGA设计安全的高级辅助驾驶系统

图4显示了单前端摄像机应用中的图像处理器模块。由于具体实现各不相同,因此,并没有详细介绍的具体执行过程,但是对于在更高抽象级别上介绍不同分析步骤这样的目的来说已经足够了。

图像传感器配置

假设由HPS系统对传感器进行配置。图5显示了图像传感器配置涉及的模块。一个或者两个Cortex—A9CPU执行代码,数据通过I2C模块从DDR存储器传送至传感器。DDR存储器和L2高速缓存的单错误纠正双错误探测(SECDED)纠错码(ECC)功能保护相关的存储器。奇偶校验功能保护CPU的L1高速缓存。这包括TAGRAM,以及全局历史缓冲和分支预测单元的分支目标访问高速缓存。传感器配置相关的逻辑(CPU、L3互联、I2C等等)只能使用一次,没有特殊的诊断。要探测可能出现的故障时,可以采用写入和回读方法。例如,CPU0向传感器写入配置数据,CPU1将其回读。后续进行写入数据和回读数据对比,能够探测到写会话过程中引入故障。一个CPU写数据,另一个CPU读回数据,这样做的优点是能够探测到其中一个CPU中的永久故障。只有一个CPU用于写读会话时,可以采用各种软件来探测永久故障。但是,由于需要对CPU内部功能进行详细的分析,增加了软件的复杂度,因此,这实现起来难度很大。

通过FPGA设计安全的高级辅助驾驶系统

汽车中使用的某些传感器支持在每一图像帧的辅助扫描线中传送某些配置寄存器数据。通过这一功能,可以检查每一帧的传感器设置,不需要通过I2C接口来读取寄存器。不需要CPU开销,传送帧数据时就可以在中实现这种检查。

上面所有的配置寄存器测试的优点是,不仅覆盖了Cyclone V SoC故障,而且还有传感器外部接口或者传感器内部带来的故障。某些应用会使用更复杂的处理器体系结构,在总线上进行内部诊断。但是内置诊断机制不一定覆盖I2C模块中的故障和外部故障,仍然需要考虑这些故障,采用与前面讨论的相似的机制。在这一场景中,增加的处理器诊断功能带来的优势有限。

底层图像处理

图6显示了图像处理级涉及到的模块。在很多情况下,图像传感器通过并行视频接口连接至图像处理器。对于Cyclone V SoC应用,可以例化Altcra视频和图像处理套装的视频端口,用于接收来自传感器的数据。然后,将这些数据传送至图像预处理模块。数据处理完成后,被写入到DDR存储器中。

通过FPGA设计安全的高级辅助驾驶系统

大部分图像传感器含有传送定义好的测试帧的功能,不需要传送正常的图像数据。定义好输入数据后,也就定义了图像处理模块的输出数据。然后进行后续测试。例如,通过对输出数据进行循环冗余校验(CRC),找到系统中出现的任何永久故障。这种测试覆盖了整个数据通路中的永久故障。它支持对外部连接问题进行测试,测试视频端口和图像处理模块中的问题,以及DDR存储器数据传输过程中出现的问题。检查永久故障的另一方法是在架构中实现测试码型发生器,可以将其复用到视频端口的输入通路上。定义好的测试码型覆盖了整个通路中的很多故障。

某些图像传感器还具有在每一帧中传送帧计数器等其他功能。这一功能有助于探测帧间隙,或者像素时钟、帧同步问题等。除此之外,视频端口实现了每一行像素数以及行数计数器功能。如果计数器与设置好的数值不一致,则产生一个中断。这也可以用于探测像素时钟,以及垂直和水平同步问题。

还应该探测到FPGA中一个模块传输数据时数据的变化。前面提到的测试码型或者测试帧方法涵盖了大部分永久故障,但是,探测不到瞬时故障。实现各种图像流水线时,会出现瞬时故障。使用Altera Avalon流协议在模块之间传输数据时,可能会例化两个不同的接口,保证瞬时故障对两个通路中的数据传输有不同的影响。不同图像流水实例见图7。

通过FPGA设计安全的高级辅助驾驶系统

在很多设计中,也需要使用存储器缓冲来临时存储数据。对于这种情况,也可以例化奇偶校验或者SECDEDECC,这是因为FPGA架构中的用户存储器已经为具体实现提供了所需的奇偶校验位。

数据最终被写入到DDR存储器之后,在传输时,应随时计算数据的校验和。可以针对每一帧或者帧中的每一行来完成这一工作。在大部分情况下,由于后面的中间级处理可以按行或者模块来读取数据,很容易检查这些数据,因此,可以按行来进行这一工作。Altera提供了CRC引擎,可以在用户设计的不同部分来例化它,产生流数据CRC校验和。在牛成的数据上附加校验和也能够覆盖F2H桥接和DDR控制器中可能出现的故障。然后由SECDED ECC以及校验和来保护DDR中的数据。需要考虑的另一种故障是数据地址可能会改变。为避免覆写其他关键的应用数据,DDR存储器控制器实现了存储器保护功能,可以定义20种不同的存储器区,它们有不同的访问权限,而主机可以访问某些特定的区域。

中间级图像处理

只查看图像中关注的特征,减少了生成数据。数据减少后,由于故障会导致后续处理步骤中丢失目标,因此,丢失特征的风险增大了,也增大了应用程序出现错误的风险。图8显示了中间级图像处理涉及的模块。

通过FPGA设计安全的高级辅助驾驶系统

需要读回前面图像预处理级产生的数据以及存储在外部DDR存储器中的数据,以便进行各种图像处理。由于前面的数据附加了CRC校验和,因此,可以再次对其进行检查,查看数据存储在外部存储器期间是否被修改,或者传送至FPGA时是否被修改。



评论


相关推荐

技术专区

关闭