一、概述

1、前言

iCamera是层层惊涛设计室推出的一款轻量级的摄像头开发调试工具,该工具可以用于市面上绝大多数摄像头的配置、调试、图像采集。

iCamera主要作为摄像头开发调试工具,暂时不针对任何用户提供源码和api调用接口的使用,如果需要二次开发请关注我们的iSensor相关文档。

iSensor+iCamera生态系统

完美实现、一套硬件、支持多种开发测试软件(共享同一个注册码,需要更新固件)。

不限于:是否含FPGA、USB2.0或USB3.0

1、 模块概述

iCamera 应用套件由一块主控制器板卡和计算机应用程序组成,主控制板连接被测或应用的摄像头,控制板为摄像头提供3.3v的电源,通过IIC总线为摄像头配置初始化参数,通过USB 2.0高速接口将图像数据传输给计算机软件,进行显示,该软件支持多种图像数据流格式,支持原始图像保存功能,简单的图像处理测试。通过选择加载不同的配置文件,达到支持多种摄像头的灵活特性。

2、 特点

l 支持数据流格式:RAW、YUV

l RAW格式序列可配置:GRBG BGGR RGGB GBRG

l YUV格式序列可配置:UYVY VYUY YUYV YVYU

l 摄像头像素支持:30w-1400w(均已测试、支持宽屏)

l 摄像头寄存器配置接口:IIC

l 摄像头数据接口:DVP 8bit (MIPI摄像头可以通过转接板)

l 视频实时显示(采集帧率最高可达200fps、实时显示帧率)

l BMP 原始图像保存功能,保存为BMP 24bpp 原始图像文件。

l 基础算法集成(实时曝光值、GAMMA、AWB等)

l 摄像头配置文件,动态加载,寄存器配置实时可配置(可以实时修改曝光时间寄存器、白平衡、增益、对比对、帧率等各自参数)

3、 应用领域

l 摄像头批量测试

l 采集效果测试

l 摄像头驱动测试

l 图像采集、保存

4、 目前已通过测试的Sensor

l OV7670、OV7725、OV9650、OV9655、OV9653、OV5642、OV5640、OV2643、OV2640、OV3640、OV5642

l MT9T001、MT9D001、MT9M001、MT9P031、MT9P001、MT9P006、MT9V032、MT9V034、MT9D112、MT9D111、MT9V111、MT9D111、MT9M111、MT9F001、MT9F002

l 其他sensor 照样轻松支持,参考模版修改配置即可

二、工作原理

1、原理框图

iCamera 工作原理框图(暂未正式发布,公测阶段)

2、固件与上位机关系

在使用我们的iCamera的客户,最容易混淆的是iCamera和iSensor的区别。

编号

项目

iCamera

iSensor

1

固件兼容

2

驱动兼容

3

上位机兼容

4

二次开发

不提供

提供Demo

5

应用

测试摄像头

采集视频

6

硬件兼容

可以

可以

特别注意:烧写不同固件,驱动可以使用同一份,但是上位机得使用对应的上位机才能正常工作。

固件名从文件名可以直接识别:

iCAMERA_5642_960P_10fps.iic

iSensor_FX2_mt9v034_VGA_62fps.iic

通过文件名直接可以判断目前烧写的固件是哪款。

也可以通过描述符字符串区分。

3、iCamera 配置命令格式

初次配置可以参考我们提供的《OV7725_RAW.icfg》作为摄像头配置模版参考修改为需要测试的对应配置文件。此文件必须保存在软件运行目录下的iCameraCfg目录

如不需要配置摄像头参数,可以跳过此节

此部分配置主要分为两部分

1、摄像头描述(此部分用于描述当前摄像头采集的图像是什么格式、多大分辨率等)

2、摄像头配置(通过此命令控制cmos摄像头寄存器,配置摄像头的对应参数)

使用的时候可以根据实际情况进行修改配置。

摄像头描述部分:

主要修改为图示四个地方

1、OV7725_RAW(此处必须与文件名相同,软件用于检验文件合法性,不带文件后缀)

2、format=Raw(Yuv、Raw,选择摄像头的格式,注意大小写)

3、Type=BGGR(YUV或RAW的具体排列,影响显示效果)

4、imagesize=640x480(显示图像的分辨率,配置不对,可能没有输出)

命令格式

命令,地址,数据  换行

例:0x1a, 0x00, 0x42,  设置摄像头slave id为0x42

[SENSOR] 此标记代表命令配置开始,后续均为配置命令

命令列表

使用说明

1、对摄像头进行配置时,先设置slave id

2、然后使用对于命令写寄存器地址,如mt9m001,寄存器地址长度为1字节,数据长  度为2字节。

3、示意:(参考mt9m001数据手册即可看懂此命令,也可以依次类推)

0x1a, 0x00, 0xBA,  // mt9m001 sensor slave id:0xba

0x22,0x09, 0x200,  //设置mt9m001 曝光值为0x200

三、硬件介绍

本系列主要采用Cypress公司的Cy7c68013作为主控方案,采用USB2.0作为数据通信,最大传输速率可达433Mbps。Mini USB接口既作为通信接口也作为电源供电。也可以采用CYUSB3014 USB3.0方案最大传输速率达300M Byte/s。

主板可以直接为摄像头提供24Mhz 固定频率的时钟作为xclk输入。方便大多数sensor的测试。当然有的sensor转接板自带时钟,不用即可。对于FPGA的板卡,时钟也可以通过PLL输出。

SCCB总线可以通过主控芯片控制,配置摄像头寄存器参数,由上位机发送,也可以通过固件或FPGA预先配置。

17-20p可以用户自定义,作为其他特殊功能。

主板供电能力:200mA@3.3v,满足大多数sensor需求,用户也可以自行改造。

本接口支持市面上绝大多数的摄像头模块,如有不兼容,按照此标准其他型号自己做个转接板即可。

四、iCamera软件说明

1、软件安装

下载地址:http://pan.baidu.com/s/1pLtJl4R

下载后请将该软件存放在不含中文目录的路径

推荐:D:\Program Files (x86)\iCamera

注意:此目录所有文件,不能是只读

点击iCamera1.1.exe 运行,一般情况下,该软件为绿色软件,下载保存到本地磁盘即可运行。

若不能正常运行,请安装《vcredist2008sp1_x86_XiaZaiBa.zip》

软件运行效果

整体布局:

1、 菜单栏(注册、配置等)

2、 实时图像区域显示实时图像(任意分辨率)

3、 右侧属性配置(指示帧率、分辨率等参数、修改显示格式)

4、 右侧折叠隐藏区域-寄存器读写(可以实时修改寄存器配置)

属性参数设置:

显示当前分辨率、格式等

寄存器配置、曝光值获取

目录及主要文件介绍

l iCameraCfg(摄像头配置文件存放于此)

l Iic(厂家提供的所有固件,客户可以选择匹配最佳的固件测试)

l CyConsole.exe(用于升级固件)

l iCamera1.1.exe(iCamera 主程序)

到此为止、为了正常使用测试对于准备的工作有如下:

1、软件注册

2、驱动安装

3、摄像头配置文件编写

2、软件使用

使用软件前,需要检查驱动是否安装好且正常(插入usb线缆识别后)

检查固件版本是否为iCamera固件(务必核对,参考工作原理章节,page7)

准备好待测摄像头(参考下图)

更多摄像头组合欢迎关注我们的博客、QQ群、淘宝旗舰店

http://www.cnblogs.com/ccjt/

Ccjt.taobao.com

https://shop126144436.taobao.com/

开始运行软件

1、显示软件是否正常注册(非注册功能会略有限制)

2、选择对应测试的摄像头型号(选择后,下方可以看到对应的分辨率、格式等)

3、点击PLAY(若正常,点击后此按钮变为stop)

4、若采集正常,此处将看到帧率会发生变化,显示实时帧率,若为0,则不正常。

5、若图像显示效果不正确(颜色),可以通过此下拉控件配置属性

6、若要观察曝光值,修改或读取寄存器值,可以点开此处。

例:配置mt9f002摄像头显示

通过修改0x0344、0x0346、0x0348、0x034A寄存器值,可以调整显示窗口。

Mt9f002为1400万像素(4608*3288),本配置显示为2560*2048,可以在摄像头固定情况下,对应上述四个寄存器,达到调整显示区域的效果,具体寄存器说明可以参考对应数据手册。

例:配置ov7725摄像头显示

使用方法和上述相同,默认发布,我们目录会自带ov7725raw配置文件,此配置显示格式为raw,分辨率为640*480,帧率17fps。

通过右侧界面,可以修改ov7725寄存器,AE值可以观察当前亮度信息,Gamma效果等。

如:修改当前帧率的方法

1、修改xclk输出到摄像头(仅针对摄像头时钟是iCamer板卡提供)

2、修改寄存器PLL部分

若修改xclk,需要修改配置文件,需要先将软件关闭,打开《OV7725_RAW.icfg》

0x1a, 0x0d, 0x00, // xclk 0、1、2  对应12M 24M 48M

注意:目前呈创发布的CC1601和CC1602支持此功能

修改寄存器

可以在配置文件直接修改好,直接一次性加载,也可以实时在右侧窗体里直接输入配置。

0x12, 0x11, 0x02  //CLKRC,Finternal clock = Finput clk*PLL multiplier/[(CLKRC[5:0]+1)*2]

= 25MHz*4/[(x+1)*2]

在此可以输入0x11,0x01代表对0x11寄存器写入0x01

这时我们可以试着写入0x00、0x01、0x02

得到如下结果:

0x00:101fps(此时已经超频,显示图像自然不如正常)

0x01:51fps

0x02:33fps

....更多的配置,请客户自行尝试

例:配置mt9v034摄像头显示

对于mt9v034摄像头,因为该摄像头无需配置任何寄存器就有默认的图像输出,而且效果也不差。默认分辨率输出为752*480。

此时我们可以参考ov7725摄像头模版修改配置文件用于测试mt9v034

如果是单色的摄像头,则不需要理会raw格式顺序,任何一种即可。

将两处分辨率修改为相同即可,也可以不初始化任何寄存器,直接填入752*480即可显示默认分辨率。
3、注册:

软件启用时,第一次使用需要进行注册,注册码可以向 shenyae86@163.com索取。需要提供用户ID进行注册。注册菜单(从文件里菜单调取)

注册联系:

QQ群:柴草电子之层层惊涛 26210916(管理员:核创)

旺旺群:柴草电子用户交流群 86067936(管理员:核创)

4、驱动安装

目前兼容的系统:

Win xp 32bit、win xp 64bit 、win7 32bit  win7 64bit 亲测完全兼容

Win8、win10有客户应用过,敬请关注。

详细步骤见用户使用手册

5、USB固件更新

如果由于各种无法解释的原因,把68013 USB芯片的EEPROM固件丢失了,需要更新固件;或者说如果需要更新最新的固件,而您又更加更新二次开发的固件,这里给出固件的更新方式。

固件的更新,是PC能够识别CX1601板卡的USB芯片,如果固件已经丢失,或者EEPROM损坏,您高超的换上了新的24LC64-I/SM,默认的设备名称与VID&PID是这个样子的:

这是由于原先安装的驱动中,我们已经预设好了默认的VID&PID,以及自定义的VID&PID。固件的更新需要使用官方的CyConsole工具,可在\固件目录下找到

打开Cyconsole工具,会自动识别PC链接的Cypress IC设备,如果固件丢失,或者换了新的EEPROM,识别到的是NO EEPROM,如下所示:

反之,应该是别到PC已安装的对应VID&PID的设备名称,如下所示:

已经烧录了固件,此时可能由于VID&PID不识别,无法更新固件。再次用于只需要将A0与GND短接,或者断开IIC的某一根线,或者断开IIC的电源,在将USB插入电脑识别NO EEPROM后再连接EEPROM即可。

以下给出固件的系在方式,使用CyConsole工具,选择Option选项下的EZ-USB Interface,如下所示:

此时,点击Lg EEPROM,选择固件目录下的iic固件,如下图

打开iic文件,下载成功后的界面如下所示:

此时,固件成功更新,恭喜您已经成功更新了最新固件。

6、USB固件修改说明

如果你手上有我们的iCamera无法驱动的摄像头,也许是寄存器格式不常规或SCCB时序稍有区别,可以联系我们进行添加。

正常情况下我们会提供多份不同应用的IIC文件供用户使用,主要特点如下。

编号

文件名

说明

1

iCAMERA_f002_QSXGA.iic

默认初始化mt9f002摄像头分辨率为2560*2048

2

iCAMERA_5642_960p_ok.iic

默认初始化ov5642,分辨率为1280*960

当然你也可以使用此固件测试ov7725或mt9v034等摄像头,只是默认初始化ov5642而已,目的为了更快捷测试ov5642

3

iCAMERA_READ.iic

寄存器可以读,默认寄存器不支持读

4

其他iic

上述版本基本使用于大多数摄像头,陆续会推出更加细化的版本,更加便捷用户使用

六、常见问题

1、USB插入未反应

请检查usb线缆是否正确

2、USB无法识别

请检查usb线缆供电是否正常,可能是线缆质量问题导致供电不足,或摄像头功耗太大。

可以先拔掉摄像头板再重新插拔usb试试

也可以通过镊子短路P2,重新上电。

3、图像显示条纹

分辨率设置不对,与上位机配置不一致,或摄像头安装不正确

更多问题请关注我们的博客或QQ群讨论

QQ群柴草电子之层层惊涛26210916

七、附录

资料介绍

本着绿色环保原则,资料包全面而精小,最终压缩为两个压缩包通过邮件或离线方式发送给客户。并不定期更新,敬请关注!

联系方式:

淘宝店铺:http://ccjt.taobao.com/https://shop126144436.taobao.com/

层层惊涛博客:http://www.cnblogs.com/ccjt/p/4469947.html

软件及资料下载地址:百度云

链接:http://pan.baidu.com/s/1ntIbt37 密码:f65x

Ps:

如有发现相关问题或相关意见或建议,请与我联系!!谢谢

还是cb的那一句话,完美是没有极限的!!

感谢:crazybingo、许sir、xiaomagee、小二马 大力支持!

附录:Win10 安装常见问题

1.打开APP时显示如图问题,可参考百度对于“应用程序并行配置不正确使用命令行sxstrace.exe”的解决办法

http://jingyan.baidu.com/article/cdddd41c620e3d53cb00e11c.html。如果方法一不行试方法二就可以得以解决。

2.打开APP,如出现下图问题,按play 没有反应的时候,把icamera文件的只读属性去掉或是检查是否将icamera文件夹置于根目录。

iCamera App Kit 使用说明的更多相关文章

  1. 基于iCamera App Kit 测试oV5640 500w分辨率 摄像头 总结

    基于iCamera App Kit 测试oV5640 摄像头 总结 iCamera App Kit 下载地址 http://pan.baidu.com/s/1kUMIwB1 可以参考下载链接的说明手册 ...

  2. 手机APP软件使用说明

    手机APP软件使用说明 一.            POLYCOM客户端(视频会议终端)登录: 1. 打开手机,找到Polycom软件,点击打开. 2. 打开软件后,界面如下,每次开会时,由会议管理员 ...

  3. isensor app kit 之 CF5642V2 OV5642 测试总结

    . 总结; 使用官哥的cf5642c-v2时,需要将isensor app kit 上的iic上拉电阻去掉,否则可能导致寄存器初始化不成功,去掉即可,使用柴草电子的模组则不需要.

  4. iSensor App Kit 测试之 MT9V111 MT9M111 MT9D111

    iSensor App Kit 可以调试测试一切常规的sensor,对于ccusb20底板,可以直接兼容官哥所有的dvp接口的摄像头,分辨率从30w到1400w均没问题. 今天又测试了三款sensor ...

  5. google pay app权限使用说明

    android.permission.CAMERA. 个人中心使用头像时需要使用该权限. android.permission.READ_PHONE.获取用户DeviceId,作为用户单点登录唯一值.

  6. App 引导界面

    App 引导界面 1.前言 最近在学习实现App的引导界面,本篇文章对设计流程及需要注意的地方做一个浅显的总结. 附上项目链接,供和我水平类似的初学者参考——http://files.cnblogs. ...

  7. iSensor APP 之 摄像头调试 OV5642

    iSensor APP 之 摄像头调试  OV5642 iSensor app 非常适合调试各种摄像头,已测试通过的sensor有: l  OV7670.OV7725.OV9650.OV9655.OV ...

  8. 基于USB3.0的双目相机测试小结之CC1605配合CS5642 双目 500w摄像头

    基于USB3.0的双目相机测试小结之CC1605配合CS5642  双目 500w摄像头 CC1605双目相机评估板可以配合使用柴草电子绝大多数摄像头应用 如:OV5640.OV5642.MT9P03 ...

  9. ASP.NET MVC5+EF6+EasyUI 后台管理系统(33)-MVC 表单验证

    系列目录 注:本节阅读需要有MVC 自定义验证的基础,否则比较吃力 一直以来表单的验证都是不可或缺的,微软的东西还是做得比较人性化的,从webform到MVC,都做到了双向验证 单单的用js实现的前端 ...

随机推荐

  1. Ubuntu 16.04安装JDK并配置环境变量

    系统版本:Ubuntu 16.04 JDK版本:jdk1.8.0_121 1.官网下载JDK文件jdk-8u121-linux-x64.tar.gz 我这里下的是最新版,其他版本也可以 2.创建一个目 ...

  2. 利用GitHub Pages + jekyll快速搭建个人博客

    前言 想搭建自己博客很久了(虽然搭了也不见得能产出多频繁). 最初萌生想写自己博客的想法,想象中,是自己一行一行码出来的成品,对众多快速构建+模板式搭建不屑一顾,也是那段时间给闲的,从前后端选型.数据 ...

  3. Java多态——代码示例

    刚开始看多态的文字定义时,总是不明白说的啥意思,看了一些示例代码后,总算知道了,其实也就是“多态”的字面意思. 如下: class A{ public void Out() { System.out. ...

  4. Leetcode算法【114. 二叉树展开为链表】

    上周通过一位小伙伴,加入了一个氛围很好的小群,人不多,但是大家保持着对知识的渴望,让我很感动. 我自己也有一个群,人数也不多,但是能真正互动起来一起学习,一起进步的,还是太少.所以,现在也在学习如何让 ...

  5. pat 1023 Have Fun with Numbers(20 分)

    1023 Have Fun with Numbers(20 分) Notice that the number 123456789 is a 9-digit number consisting exa ...

  6. linux启动与登录

    1.............rescue..............进入维护模式 (grub选项吧这是) 2.linux启动的幕后过程: 1 加电 (再一次联想服务器升级内存时,加电后有个黄色报警,过 ...

  7. 自制反汇编逆向分析工具 与hopper逆向输出对比

    经过一个阶段5次迭代之后,本逆向分析工具功能基本成形.工具的基本功能介绍请参看前面的posts. 现在就和hopper的逆向函数伪代码的功能对比一下效果.在这里并非定胜劣,因为差异可以拿来对比参照,通 ...

  8. ETCD:单机单节点

    原文地址:Setting up local clusters 设置单节点集群 对于测试环境与开发环境,最快速与简单的方式是配置一个本地集群.对于生产环境,参考集群部分. 本地单节点集群 启动一个集群 ...

  9. 嵌入式、C语言位操作的一些技巧汇总

    下面分享关于位操作的一些笔记: 一.位操作简单介绍 首先,以下是按位运算符: 在嵌入式编程中,常常需要对一些寄存器进行配置,有的情况下需要改变一个字节中的某一位或者几位,但是又不想改变其它位原有的值, ...

  10. VisualStudio2012编辑器错误

    https://blogs.msdn.microsoft.com/webdev/2014/11/11/dialog-box-may-be-displayed-to-users-when-opening ...