嵌入式开发者社区

标题: DSP采集图像 [打印本页]

作者: lijie    时间: 2014-12-19 15:20
标题: DSP采集图像
DSP对两个摄像头传感器采集图像,大神们有什么好的建议和方法吗,6748只有一个VPIF口,求大神指点

作者: lijie    时间: 2014-12-19 15:54
VPIF口可以支持两个摄像头的采集吗

作者: 希望缄默    时间: 2014-12-20 12:30
lijie 发表于 2014-12-19 15:54
VPIF口可以支持两个摄像头的采集吗

VPIF 是有两个通道的
在部分模式下可以使用

拿 uPP 接口接口实现也可以啊

作者: lijie    时间: 2014-12-22 10:11
希望缄默 发表于 2014-12-20 12:30
VPIF 是有两个通道的
在部分模式下可以使用

用upp接口实现的话,你能不能给我稍微详细的说点,感激不尽

作者: lijie    时间: 2014-12-23 08:12
希望缄默 发表于 2014-12-20 12:30
VPIF 是有两个通道的
在部分模式下可以使用

用upp接口实现的话,你能不能给我稍微详细的说点,帮我一下吧,不胜感激

作者: 希望缄默    时间: 2014-12-23 09:51
lijie 发表于 2014-12-23 08:12
用upp接口实现的话,你能不能给我稍微详细的说点,帮我一下吧,不胜感激
...

这个跟你具体设备有关~
你实现 CMOS 需要的时序就可以了

作者: lijie    时间: 2014-12-23 14:37
希望缄默 发表于 2014-12-20 12:30
VPIF 是有两个通道的
在部分模式下可以使用

VPIF 是有两个输入通道的(0和1)
在部分模式下可以使用,如在BT.656模式下可不可以用CMOS摄像头进行采集?我在手册上看的

作者: lijie    时间: 2014-12-23 16:54
lijie 发表于 2014-12-23 14:37
VPIF 是有两个输入通道的(0和1)
在部分模式下可以使用,如在BT.656模式下可不可以用CMOS摄像头进行采集 ...


BT656这种模式,行、场信号是嵌入在数据流中,是不是就不能用这种模式了呀?

作者: lijie    时间: 2014-12-24 15:08
lijie 发表于 2014-12-22 10:11
用upp接口实现的话,你能不能给我稍微详细的说点,感激不尽

我用upp接口试了,配置了三个中断口,VSYNC(场同步),HSYNC(行同步),PCLK(像素时钟),为上升沿触发,场和行两个中断可以触发,但是PCLK像素时钟触发不了,不知道为什么?

作者: Lewis    时间: 2014-12-24 18:58
不明白你是怎么配置的三个中断口,下面是upp接收数据的时序图,1、将cmos的像素时钟接CLOCK,
2、行同步信号接ENABLE,
3、忽略START和WAIT,
4、定义好接收数据的大小就可以接收
[attach]135[/attach]




作者: lijie    时间: 2014-12-25 09:11
我用的普通IO口配置的:行、场和像素
void SetupIntc(void)
{GPIOIntTypeSet(SOC_GPIO_0_REGS, 85, GPIO_INT_TYPE_RISEDGE);
    // 配置  GPIO5[6] 为上升沿触发
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 11, GPIO_INT_TYPE_RISEDGE);
    // 配置  GPIO0[10] 为上升沿触发
    GPIOIntTypeSet(SOC_GPIO_0_REGS, 64, GPIO_INT_TYPE_RISEDGE);
// 配置  GPIO3[15] 为上升沿触发

GPIOBankIntEnable(SOC_GPIO_0_REGS, 3);
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 0);
    GPIOBankIntEnable(SOC_GPIO_0_REGS, 5);
        // 注册中断服务函数
        IntRegister(C674X_MASK_INT15, FRAME_INT);
//        // 映射中断到 DSP 可屏蔽中断
        IntEventMap(C674X_MASK_INT15, SYS_INT_GPIO_B5INT);
//
//        // 使能 DSP 可屏蔽中断
        IntEnable(C674X_MASK_INT15);

        // 注册中断服务函数
        IntRegister(C674X_MASK_INT14, LINE_INT);
//        // 映射中断到 DSP 可屏蔽中断
        IntEventMap(C674X_MASK_INT14, SYS_INT_GPIO_B3INT);
//
//        // 使能 DSP 可屏蔽中断
        IntEnable(C674X_MASK_INT14);

        // 注册中断服务函数
        IntRegister(C674X_MASK_INT7, PIXCLK_INT);
//        // 映射中断到 DSP 可屏蔽中断
        IntEventMap(C674X_MASK_INT7, SYS_INT_GPIO_B0INT);
//
//        // 使能 DSP 可屏蔽中断
        IntEnable(C674X_MASK_INT7);}
其中FRAME_INT(场),PIXCLK_INT(像素),LINE_INT(行),为中断服务函数。


void FRAME_INT(void)
{

    // 禁用 GPIO BANK 5 中断
    GPIOBankIntDisable(SOC_GPIO_0_REGS, 5);
                    // 清除 GPIO BANK 5 中断状态
                   IntEventClear(SYS_INT_GPIO_B5INT);
                    if(GPIOPinIntStatus(SOC_GPIO_0_REGS, 85) == GPIO_INT_PEND)
                    {

                            Flag0=1;
                            // 清除 GPIO5[4] 中断状态

                    GPIOPinIntClear(SOC_GPIO_0_REGS, 85);
                    // 清除 GPIO5[6] 中断状态

                    }

                   GPIOBankIntEnable(SOC_GPIO_0_REGS, 5);

}
来一个上升沿,我就让Flag0=1,不知道哪里有问题

作者: Lewis    时间: 2014-12-31 17:48
没开缓存,中断的响应速度可能会不够,没使用缓存中断响应要几个微秒的时间

作者: lijie    时间: 2015-1-4 10:12
Lewis 发表于 2014-12-31 17:48
没开缓存,中断的响应速度可能会不够,没使用缓存中断响应要几个微秒的时间
...

怎么开缓存,求指点

作者: bit0rain    时间: 2015-1-5 10:23
lijie 发表于 2015-1-4 10:12
怎么开缓存,求指点

参考facedetect就可以了





欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4