FPV图传

方案定制

联系我们

深圳市创研数字通讯有限公司

联系人:罗先生

手机:13692246378

电话:0755-85299996

邮箱:lokiqi@qq.com

网址:http://www.idc-rf.com

地址:深圳宝安35区东方鼎泰文创科技园212

产品分类

基于NVP6124的AHD 1080P高清FPV图传和车载及内窥镜方案

您的当前位置: 首 页 >> 新闻中心 >> 电子内窥镜方案

基于NVP6124的AHD 1080P高清FPV图传和车载及内窥镜方案

发布日期:2020-05-06 作者: 点击:

基于NVP6124的AHD 1080P高清FPV图传和车载及内窥镜方案

项目要求:

2路AHD 1080P/720P模拟视频输入,还有两路AV in输入,一共四个画面。

用nvp6124b来转换后AV输出或显示屏输出或HDMI输出。应用于:

u遥控玩具、航模

u视频监控

u可视化门铃

u FPV航拍

u智能家居

u魔术博弈

u医用显微镜

u情具用品

u耳、鼻、口、皮肤内窥镜

u电子眉毛笔。

u工业管道内窥镜

u可视钓鱼

 

软件初始化:

一、单分辨率视频采集

在sample程序中,需要采集那种分辨率的摄像头,只要对下面两个寄存器的值进行配置;

typedef struct _nvp6124_chn_mode

{

unsigned char ch;

unsigned char vformat; 

unsigned char chmode; 

}nvp6124_chn_mode;

typedef struct _nvp6124_opt_mode

{unsigned char chipsel;

unsigned char portsel;

unsigned char portmode;

unsigned char chid;

}nvp6124_opt_mode;

其中两个主要的参数;vformat,portsel 确定采集的分辨率,

960H: vformat = NVP6124_VI_SD;                 

portsel = NVP6124_OUTMODE_4MUX_SD

720P:  vformat = NVP6124_VI_720P_2530;     portsel = NVP6124_OUTMODE_2MUX_HD;

1080P:vformat = NVP6124_VI_720P_2530;   portsel = NVP6124_OUTMODE_2MUX_FHD;

当你需要不同通道接不一样的摄像头的时候,就可以通过ch、vformat和portsel来确定接入摄像头的分辨率;

二、自适应视频采集1、摄像头分辨率检测

通过nvp6124对摄像头分辨率进行检测,这里获取IOC_VDEC_GET_INPUT_VIDEO_FMT的值得到接入摄像头的分辨率;

nvp6124_input_videofmt vfmt;

ioctl(fd, IOC_VDEC_GET_INPUT_VIDEO_FMT, &vi_fmt);

res = vi_fmt.getvideofmt[ch];    

(1)res = 2 ,   960H  分辨率摄像头

(2)res = 128 , 1080P 分辨率摄像头

2、自适应参数配置

NVP sample程序,是不支持自适应采集的,需要对vformat,portsel的枚举进行添加,nvp6124驱动中是有支持的, 只需要sample程序更新下面两个枚举就行;

enum

{

NVP6124_VI_SD = 0,           //960x576i(480)

NVP6124_VI_720P_2530,        //1280x720@25p(30)

NVP6124_VI_720P_5060,        //1280x720@50p(60)

NVP6124_VI_1080P_2530,        //1920x1080@25p(30)

NVP6124_VI_1920H,            //1920x576i(480)

NVP6124_VI_720H,            //720x576i(480)

NVP6124_VI_1280H,            //1280x576i(480)

NVP6124_VI_1440H,            //1440x576i(480)

NVP6124_VI_960H2EX,           //3840x576i(480)

NVP6124_VI_HDEX,            //2560x720@25p(30)

NVP6124_VI_BUTT

};

typedef enum sample_vi_6124_mux_e

{

NVP6124_OUTMODE_1MUX_SD = 0,

NVP6124_OUTMODE_1MUX_FHD,

NVP6124_OUTMODE_2MUX_SD,

NVP6124_OUTMODE_2MUX_FHD_X,

NVP6124_OUTMODE_4MUX_SD,

NVP6124_OUTMODE_4MUX_HD_X,

NVP6124_OUTMODE_4MUX_HD,

NVP6124_OUTMODE_2MUX_FHD,

NVP6124_OUTMODE_1MUX_HD_X,   

NVP6124_OUTMODE_1MUX_FHD_X,

NVP6124_OUTMODE_4MUX_FHD_X,

NVP6124_OUTMODE_4MUX_MIX,

NVP6124_OUTMODE_2MUX_MIX,

NVP6124_OUTMODE_BUTT

}SAMPLE_VI_6124_MUX_E;

如果需要自适应,需要设置 vformat = NVP6124_OUTMODE_4MUX_MIX;

960H: portsel = NVP6124_VI_960H2EX;

720P: portsel = NVP6124_VI_HDEX

1080P:portsel = NVP6124_VI_1080P_2530;

通过不同分辨率,设置对应portsel的值,这里是SAMPLE_VI_MODE_8_1080P模式下portsel的值,但是HIS3520Dv300有个比较恶心的点,一个AD只支持2路1080P,所以如果需要使用2个AD接8路720P,在SAMPLE_VI_MODE_8_720P模式下,portsel的值应该按照下面的值设置:

960H: portsel = NVP6124_VI_1920H;

720P:portsel = NVP6124_VI_720P_2530

1080P:portsel = NVP6124_VI_1080P_2530;

3、实时检测

上面两步可以实现对接入摄像头的检测和采集,但是如果所有参数都设置完成,中间需要插拔摄像头换成不同分辨率的摄像头时,摄像头数据就不能采集了,这时需要实时检测摄像头分辨率,如果分辨率改变了,需要重新初始化和配置参数;这里vformat,portsel的值需要重新配置,还有需要重新设置VI通道属性HI_MPI_VI_SetChnAttr,启用VI通道HI_MPI_VI_EnableChn,当然,由于之前已经启用过VI通道,需要先禁用HI_MPI_VI_DisableChn,再启用。

4、内存VB配置

当设置MPP视频缓存池属性HI_MPI_VB_SetConf时,需要通过分辨率配置MPP视频缓存池的大小,一般的做法按照最大分辨率分配就行,如果在自适应情况下,需要接1080P摄像头,那么按照1920x1080去分配VB缓存大小就行,因为接其他分辨率分配VB缓存大小肯定小于1920x1080,所以按照最大分配肯定是可以的,但是如果你的内存比较小,直接使用1920x1080会浪费内存,那么可以给不同分辨率分配不同的VB块,VB缓冲池在使用过程中,是从小往大使用的;这里特别注意的一点,自适应1080P模式下960H的采集分辨率NVP6124_VI_960H2EX(3840*576)大于1080P采集的分辨率NVP6124_VI_1080P_2530(1920 * 1080),所以分配VB最大的缓冲块应该是3840*576;这里多测试,查看cat /proc/umap/vb 值,就可以找到VB块分配的规律。


5.总结:

nvp6124b的驱动在原厂给的sdk包里已经有了,直接复制过来即可。

两路视频的话是要对应两个驱动的,才能注册出两个/dev/video节点出来,所以复制一份同样的驱动代码重新命名为nvp6124bnew.c即可,把里面的名字改一下。sys_config.fex中的摄像头配置,第二路的i2c地址不要写0x060了,随便写一个其他的,否则注册失败,y因为i2c驱动不允一个adapter上两个同地址设备,然后在nvp6124bnew.c的读写中再把client->addr赋值为0x60>>1即可,这样就可以绕开该问题了。

注册成功的话会出现/dev/video2, /dev/video3连个节点

两份驱动中都是cfg->flags = CLK_POL | CSI_CH_0; 没有用到CSI_CH_1

可以在vfe.c中打印isr_irq,首先要有中断过来

测量6124b的 vclk1和vclk2应该为74M的波形

测量8根数据脚,正确的波形如下:

 

代码中寄存器0xb8可以查看4路视频是否有信号输入, 0表示有信号,1表示无信号,如如果两路视频都插入那么应该打印的时0x0c

有几块板子一个视频预览黑屏,另一个没有中断过来,预览时蓝色,用示波器测量视频输入都有信号,死活找不到原因,0xb8寄存器打印的值时0x0d,后来发现时视频输入短有个电容出问题了,更换即可

上述都没问题的话,在app中即可出现4画面预览


本文网址:http://www.idc-rf.com/news/557.html

相关标签:内窥镜方案,1080P高清FPV图传,高清内窥镜方案,无线可视钓鱼​

最近浏览:

相关新闻:

网站导航

18.png 网站首页                          18.png 关于我们

18.png 产品中心                          18.png 方案定制

18.png 新闻资讯                          18.png 联系我们

联系我们

电话:0755-85299996

手机:13692246378 罗先生

邮 箱:lokiqi@qq.com

地 址:深圳宝安35区塘坊花园一巷19号东方鼎泰文创科技园212

image.png

Copyright © http://www.idc-rf.com/ 深圳市创研数字通讯有限公司 专业从事于FPV图传,电子内窥镜,无线车载方案, 欢迎来电咨询!粤ICP备16059882号  Powered by 祥云平台  技术支持:华企立方

热推产品  |  主营区域: 深圳 上海 珠海 佛山 北京 广州 山东 图传方案定制 无人机FPV图传 无线安防发射接收

在线客服
分享 一键分享
欢迎给我们留言
请在此输入留言内容,我们会尽快与您联系。
姓名
联系人
电话
座机/手机号码
邮箱
邮箱
地址
地址