360环视辅助驾驶硬件系统方案---OV2715+DS90UB913+DS90UB914+FPGA

  1、前置摄像头

高级驾驶员辅助系统中的摄像头系统可以分析视频内容,以便提供车道偏离警告(LDW)、自动车道保持辅助(LKA)、远光灯/近光灯控制和交通标志识别(TSR)。在前视黑白摄像头中,图像传感器会向配备DSP扩展的双核MCU提供传入视频帧,以进行图像处理。其他系统要求包括提供适当的物理通信接口、电源、可选的DRAM以及可降低系统成本的嵌入式闪存。

 2、后置摄像头

智能后视摄像头可在本地对视频内容进行分析,以实现物体与行人侦测。此外,它们还支持全面的本地图像处理及图形叠加创建。它们能够测量物体距离,并触发制动干预。这种功能可以帮助驾驶员安全倒车,方便他们停入车位。

  3.环视泊车辅助系统

多摄像头环视泊车辅助系统可以采集车辆四周的图像,并以虚拟俯视图的形式在屏幕上显示。视角会根据行车轨迹而动态移动,提供车辆四周360度的画面。高级系统通常采用LVDS或快速以太网等经济高效型链路,部署4到5个高动态范围(HDR) 100万像素摄像头。可以使用视频压缩来减少所需的通信带宽并降低布线要求(例如,可以使用非屏蔽双绞线或同轴电缆)。

360环视辅助驾驶硬件系统方案---OV2715+DS90UB913+DS90UB914+FPGA

多camera组成的360环视辅助驾驶硬件系统方案:

360环视辅助驾驶硬件系统方案---OV2715+DS90UB913+DS90UB914+FPGA单camera模组方案:

360环视辅助驾驶硬件系统方案---OV2715+DS90UB913+DS90UB914+FPGA

串口解串芯片器件选型:

TI公司的DS90UB964-Q1是多功能摄像头集线器,可通过FPD-Link III接口连接4个独立视频数据流所收到的串行摄像头数据,与DS90UB913A/913Q串行器相结合时,可接收来自100万像素图像传感器的数据,并在30Hz或60Hz帧速率下支持720p/800p/960p分辨率,主要用在汽车ADAS系统如环视系统,照相机监视系统,传感器融合以及安全和监视系统

360环视辅助驾驶硬件系统方案---OV2715+DS90UB913+DS90UB914+FPGA

FPGA器件选型:

360环视辅助驾驶硬件系统方案---OV2715+DS90UB913+DS90UB914+FPGA

camera sensor与串行/解串+FPGA组成的硬件系统:

360环视辅助驾驶硬件系统方案---OV2715+DS90UB913+DS90UB914+FPGA

camera模组系统结构图:

360环视辅助驾驶硬件系统方案---OV2715+DS90UB913+DS90UB914+FPGA

双摄像头组成的硬件系统:

360环视辅助驾驶硬件系统方案---OV2715+DS90UB913+DS90UB914+FPGA

OV2715-1E芯片的参数:

360环视辅助驾驶硬件系统方案---OV2715+DS90UB913+DS90UB914+FPGA

OV2715-1E芯片的内部结构图:

360环视辅助驾驶硬件系统方案---OV2715+DS90UB913+DS90UB914+FPGA

控制类: 
IICSDA – IIC总线的数据线 
IICSCL – IIC总线的时钟线

数据传输类: 
CAMRST – 复位CMOS摄像头模块 
CAMCLK – 摄像头模块工作的系统时钟(24MHz) 
CAM_HREF – 行同步信号 
CAM_VSYNC – 帧同步信号 
CAM_PCLK – 像素时钟 
CAMDATA0~7– 数据线 

调试问题:

static Xuint8 iicData[][2] =
{
    {0x4C,0x01}, //Enables write enable for Port 0
    {0x58,0x58}, //I2C passthrough enabled and back channel frequency select
    {0x5C,0xB0}, //Sets serializer alias to B0

    {0x5D,0xD8}, //Sets slave ID for imager to (0x6C << 1)
    {0x65,0xDA}, //Sets slave alias for imager to (0x6D << 1)

    {0x6D,0x7E}, //Configures port to coax mode and FPD III to RAW10 mode
};

ZYNQ芯片通过IIC配置了934芯片后,继续配置0V2715,为什么用示波器无法探测到OV2715的I2C信号?

解答1:

ZYNQ有没有时钟拉伸的功能?

FPDlink的串行器和主控芯片通信的时候,可以通过IIC直接解决。

但是当主控芯片读远端的解串器和下游设备通信的时候,需要通过FPDlink的芯片解码实现,也就是在从主机给下游的设备通讯的时候,在获取acknowledge这个信号的时候,需要等待,也就是主控芯片需要能接受时钟拉伸的功能。

可以解决的方法有两个:

1. 设置I2C的通信速度较慢,可以尝试小于30kHz

2. 编辑FPGA的IIC通讯程序,让它能接受时钟拉伸的功能。

时钟拉伸相关资料请参考FPDlink数据手册。

解答2:

ZYNQ和 0V2715通信,需要配置Slave ID[0]和Slave Alias [0]这两个寄存器。即0X5D和0X65.

0X5C serializer alias是指的host和 remote seralizer(DS90UB933)通信需要配置的寄存器。

 把这行 {0x5C,0xB0}, //Sets serializer alias to B0去掉试试呢?