当前位置:首页 > 消费电子 > 消费电子
[导读]介绍一种基于Rabbit3OOO单片机和CMOS摄像芯片的网络相机。着重描述CMOS摄像芯片的驱动、图像的处理,结合HTTP服务器的实现、CGI技术的运用以及图像在HTTP服务器的嵌入,实现一个比较完整的网络相机,给出相关的框图和代码。

    在家用报警系统、工业监控、智能小区中,由于原有的系统一般只能采集相关数据,然后按专有的或特定的网络传送。在应用中,用户常常反映有两大缺点。其一,不能看到现场图像。其二,监视限于特定专网,比如通过局域网、电话网、视频线监控网等。因而通过Internet进行网络摄像的需求十分迫切。


1 系统构成

    网络相机系统结构如图l所示,MEl010是10万像素的CMOS图像传感器芯片,Rabbit3000模块基于Rab-bit3000单片机。该单片机基于Z80内核,最高时钟频率可达54MHz,有6个高速串行口和56个I/O口,直接驱动512KB SRAM、512KB Flash,通过以太网接口进行网络传输时.TCP传输速率可达到6Mb/s。美国Z-World公司提供的Dynamic C开发工具提供了TCP协议栈函数支持, 以及C、汇编混合编程的功能, 非常适合网络应用。
    网络相机实现以下功能: 直接驱动MEl010 CMOS摄像芯片摄像,并进行图像处理,同时内置一个微型WEB服务器,用户可以在因特网上访问WEB页。通过CGI接口进行静态图像拍摄, 如增加SOCKET接口,也可通过Activex控件拍摄动态图像。可选择160×120彩色、320×240黑白两种图像格式。

2 CMOS摄像芯片的控制
2.1 MElO1O的结构及拍摄

    南京微盟电子的MElOlO CMOS图像传感芯片最大可拍摄352×288的彩色及黑白图像,内部功能框图如图2所示。

    该芯片的工作原理:通过Samp、SampG脚进行采样控制,即拍摄图像。拍摄后该芯片把图像各点的模拟电压存入缓冲区中,形成一个最大352×288的像素数据阵列,单片机可以通过改变行列地址ADR(8..O)逐点访问图像缓冲区。该图像缓冲实际上是把每个像素的光感应电压存入一个小电容中,通过在ADC Clk脚输入时钟脉冲,MElO1O在ADCclk的低电平期间进行模数转换,上升沿输出。然后单片机即可以从数据口ADCount(7~0)中读出对应行、列地址的像素数据。其中行与列地址共用9条地址线,由XYSEL脚产生的脉冲切换。
    具有图像缓冲区是MElO1O最大的特点,一般的CMOS传感器都必须用CPLD将图像数据以很快的速度送人RAM存储,通常为13MB/s左右,再由单片机来读取,因而接口比较复杂。MElO1O的这一特点使得Rab-bit3OOO可以直接读取,结合Rab_bit3OOO强大的网络功能,从而构成了具有特色的网络相机
    拍摄时序如图3所示。

2.2图像的读取
    使Rabbit3OOO单片机的PEl,PF(7~O)与MEIOIO的地址线ADR(8~O)、PA(7~O)与数据线ADcount(7~O)相连,PB7与模数转换时钟ADCclk相连。现在以读取16O×1 2O彩色图像的一行为例,介绍读取过程,程序用汇编实现,以加快图像读取速度。读取图像时序如图4所示。

    #asm debug
    readoneline:: ;读入一行数据
    ;读取到linbuf中
    1d hl,linebuf ;指针hl指向linebuf
    ld de,16O ;一行16O像素
    ld C,
    rp _read:
    :ADC clk
    ioi lda,(PBDR);产生ADC时钟
    res O,a
    ioi ld(PBDRl,a
    set O,a
    iOi ld(PBDR),a
    ioi lda,(PADR)
    ;从PA读入数据
    ld (hl),a
    ;读入数据到linbuf,指针hl指向llnbuf的对应位
    inc hl ;指针下移
    inc c ;计数器加1
    ld a,c
    ioi ld(PFDR),a;地址加1
    dec de ;读完160像素
    jr nz,rp_read :否则读下一个
    ret
    #endasm

3 图像处理
3.1 FPN的消除
 
    由于CMOS图像传感器会产生固有噪声FPN(Fixed Pattern Noise),MElO1O要求用软件来完成噪声消除处理,否则拍出的图像表面将叠加许多细碎的色点,这些噪声点的位置大小颜色是固定的,由CMOS图像芯片及电路本身所决定。 
    FPN消除的方法是在正式拍摄前,先拍摄一张曝光时间接近于O的图像,由于FPN的存在,虽然感光接近于O,但该图像并非是均匀的全黑照片,而是会出现些彩色噪声点。将此图像存在内存中,作为参照,照一张图像,都与这张参照图像相减,从而消除FPN.
3.2彩色插值
    读出并经FPN消除后的数据实际上是RGB阵列,MN1O1O通过在感光面上蒙一层RGB彩色滤镜(可选择,若无滤镜即为黑白芯片)实现彩色功能,滤镜排列如图5所示,这是一般图像传感器使用的Mosaic Bayer滤镜,从O行算起,偶数行排列为RGRGRG…… 奇数行排列为GBGBGB……
    因此每一点的数据只代表该点的一种颜色光强度值(灰度值),还需根据相应算法进行彩色化插值处理。利用周边像素的信息,“猜测”算出该点“应该”具有的另外两种颜色光强度,从而得到完整的RGB值,构成24位真彩色图像。这种以彩色插值的方法来达到“趋近”真彩色的处理方式,其图像质量虽然不如使用真正(R、G、B)三组像素型的彩色摄像技术,但已经可以满足通常的图像检测需要。

    算法示例如下:
    设i,j分别为行数和列数,当Ri,j有i%2==O&&j%2==0时,算法为
    R=Ri,j
    G=(Gri,j-1+Gri,j+l十Gbi-1,j+Gbi+l,j)/4
    B=(Bi-i,j-1+Bi—I,j+1+Bi+l,j-1+Bi+l,j+1)/4
    对应的Rabbit3OOO的C程序为form_rfgb(){
    …

}

3.3嵌入图像到HTTP服务器
    经过RGB插值合成后已经可以得到真彩色图像,但完整的图像处理还需要进行曝光控制,γ较正,白平衡调整等。曝光控制算法主要是计算各像素亮度的平均量。自平衡调整则是由于CMOS传感器、人眼对RGB三颜色光的灵敏度不同,所以需对R、G、B三种像素的值乘以比例因子加以较正。Υ较正则主要是调整对比度。
    获得完整的图像数据后,加入BMP文件头,形成newfile,C程序代码如下:
    void makefile(){
    char newfilesize[4];
    newfilesize[0]=0x3a;文件大小
    newfilesize[1]=Oxe5;
    newfilesize[2]=O;
    newfilesize[3]=O;
    root2xmem(newfile,newfilesize,4);设置文件大小
    sspec_addxmemfile(”/databmp”,newfile,SERVE_RHTTP);嵌入HTTP服务器


4 HTTP服务器的实现
    通过基于Rabbit3OOO的模块实现HTTP服务器并不难,只需使用网页设计软件如Dreamwave、Frontpage等,设计一个网页,然后导出到Rabbit3OOO模块的HTTP服务器中即可。设网页文件名为index.html,网页中含有图片ledon.gif,存放的目录是samples/RCM32OO/pages,使用以下指令将文件导出到HTTP服务器中。
#Ximport”samples/RCM32OO/pages/index.shtml" index html
#Ximport”samples/RCM32OO,pages/ledon.gif"ledon_gif
    此外还需声明HTTP服务器中的文件类型HttpType http_types[]及设置HTTP服务器可访问文件、变量、函数的结构类型HttpSpec http_flashspec[]。
    主程序中运行HTTP服务器的相关代码如下:
main(){
    sock__init();
    while(1){
    HTTP_server();

}


5 通过CGl接口控制拍摄
    在HttpSpec http_flashspec[]中加入以下定义:
    { HTTPSPEC_FUNCTION, ”/get_photocgi”,O,get_hototoggle,O,NULL,NULL}。
    在网页中嵌入按钮图标,假设为button.gif,使其链接到”/get_photocgi”,点击网页上的button按钮时,程序将跳转执行以下函数:
    int get_hototoggle(HTTPState*state){
    get_hoto() ;拍摄图像
    cgi_redirectto(state,’data html’);跳转到data.html网页中,
    ;(该网页含所拍摄的图像文件)
    returnO:

}

即可看到所拍摄的图像。

    本文以拍摄160×120分辨率的彩色图像为例介绍。由于Rabbit3000单片机直接驱动的内存有限, 当分辨率更高,如320×240时, 一般建议存储黑白图像, 可以减少文件大小。


结 语
    结合基于互联网络的图像技术是报警系统、工业控制、智能家居发展的一个热点,主要有基于8位单片机、DSP及ARM的图像处理方案。 其底层的图像处理及CMOS图像芯片的控制有诸多相通之处。尽管基于DSP及ARM具有运算速度上的优势,但由于Rabbit3000单片机具有强大的网络支持、加密及I/0控制、串行通信、数据采集功能,结合MEl0l0的简单单片机接口,仍然具有鲜明的特点,适用于对实时图像传输要求不高的场合;并且,如果结合高性能的图像芯片,如具有MPEG4压缩功能的伟思GO7007也可以做到实时图像传输。本文所介绍的内容基于作者目前从事的智能小区项目, 已成功研制出样机。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

以下内容中,小编将对数码相机的相关内容进行着重介绍和阐述,希望本文能帮您增进对数码相机的了解,和小编一起来看看吧。

关键字: 相机 数码相机 成像原理

西班牙塞维利亚,2024年3月12日 — Teledyne Technologies旗下公司、全球成像解决方案创新者Teledyne e2v宣布扩展其Flash™ CMOS图像传感器系列,推出Flash 2K LSA,该...

关键字: 图像传感器 Flash 摄像机

近日,新型光电探测企业中智科仪(北京)科技有限公司(以下简称“中智科仪”或公司)宣布完成数千万元A轮融资,由中科创星领投,方正和生跟投。本轮融资资金将主要用于产品研发、市场拓展、优化生产流程以及科研产品库存备货,推动科研...

关键字: 光电探测 脉冲发生器 相机

作为1.0μm像素尺寸背照式(BSI)图像传感器,此次推出的新品SC1620CS基于思特威SmartClarity®-3技术打造,搭载思特威先进的小像素尺寸技术SFCPixel-SL®,集优异的高感度、高动态范围、低噪声...

关键字: 图像传感器

随着摄影的普及以及用户对高品质画面的追求,越来越多的人想要拥有一台属于自己的相机,开启创作之旅。最近相机市场持续火热,对于想要体验专业质感又注重性价比,希望物有所值、物超所值的用户来说,近期哪款相机最值得入手呢?

关键字: 相机 佳能R5 传感器

新品搭载SmartClarity®-3技术、Lightbox IR®技术以及第二代SmartAEC™技术,支持近红外感度增强、全时录像、高动态范围三大功能,兼顾超低功耗性能,为高端物联网相机带来更加出色的夜视全彩成像表现...

关键字: 图像传感器

2024年2月27日 – 提供超丰富半导体和电子元器件的业界知名新品引入 (NPI) 代理商贸泽电子 (Mouser Electronics) 是知名传感、照明和可视化解决方案供应商ams OSRAM的全球授权代理商。贸...

关键字: 图像传感器 半导体

作为0.702μm像素尺寸图像传感器,此款背照式(BSI)新品搭载思特威独特的SFCPixel-SL®技术,集高动态范围、超低噪声、PDAF相位检测对焦、低功耗等优势,以优异的暗光成像表现,赋能主流智能手机主摄,助力移动...

关键字: 图像传感器

这款背照式全局快门图像传感器采用先进的SmartGS®-2 Plus技术,依托思特威卓越的模拟电路设计,集高感光性能、低噪声、高帧率、低功耗四大性能优势于一身,可赋能工业机器视觉相机、无人机/扫地机避障系统、AR/VR...

关键字: 图像传感器

该影像传感器专为世界上最先进的摄影系统 Big Sky而定制,能够为拉斯维加斯的 Sphere球幕拍摄超高分辨率影像

关键字: 图像传感器 影像传感器
关闭
关闭