正文内容 评论(0

又一神级DIY!自己动手做数码相机
2011-11-02 21:12:46   编辑:上方文Q     评论(0)点击可以复制本篇文章的标题和链接

3、软件构成

3.1、数据处理

AD转换器的像素采集率可以高达2.1M像素每秒。首先,图像数据被存储在微处理器的缓冲存储器里。因为每秒2.1M的数据量对软件来说实在太过分,图像数据会存储到PLD的先进先出队列里。队列半满时触发微处理器的DRDT中断,然后微处理器一次接受一半队列的数据。队列的大小是16字节,也就是说软件的操作周期只要有像素采集率的1/8就足够。这对触发中断来说不算太快,但是仍然需要微处理器高速运行。这个项目里用了ARM7TDMI核心的快速中断请求功能(FIQ,fast interrpt request,通过编组寄存器产生低延迟中断),可惜在Cortex-M3核心中这一功能被去掉了。

当微处理器响应FIQ请求时,一些寄存器切换到FIQ的编组寄存器状态,然后FIQ例程可以直接进入/离开而省去了切换过程。为了最大化执行效率,一般来说FIQ例程是用汇编语言写的。在启用这一功能的 数据波形图 里,可以观察到8位的数据在不用存储的时候只需要0.8微秒处理,加上DMA模式下从总线写入SD卡也只用了2微秒,这样的延迟可以接受。

在每一行数据中有1094个像素,但其中有效的只有1024个。这些数据被存入内存,中断信号SYNC#在每一行数据的开始输出,用来同步第一个像素的数据。

3.2、重建图像

捕捉到的数据可以用通用的8位灰度BMP位图格式存储在MicroSD卡里,宽1024像素,长视拍摄时间而定。存储的格式是DCIMLCAMYnnnn.BMP(nnnn 是编号),和普通的数码相机几乎一样。

在使用廉价的微处理器将图像数据存入SD卡时会遇到一些困难,主要是输入的数据要在极短的时间内存进文件。这个制作中的最大数据传输率是2MB每秒。幸运的是LPC2368有一个MCI(SD/MMC卡的原生控制模式),它能提供8MB/s的数据读取和6MB/s的数据写入能力。但是这是指读写大文件时的平均速度,事实上每次读写之间都需要一些死时间用在SD卡的内部处理和文件系统上,为了避免这些浪费,一个数据缓冲器被用来在死时间中暂存数据,但是微处理器系统的内存大小是有限的,不一定有足够的空间进行缓冲。

让我们估计一下每次写数据操作所能容许的时间耗费。在这个制作里,所有32K的SRAM都用来做数据缓冲器,而程序在16K的ethernet RAM上运行。数据缓冲器分成两半,其中一块填充数据的时候另一块将数据写入闪存。 这要求在每8毫秒里写入16KB的数据,每次操作必须在下次操作之前完成 。接下来的软件技巧可以解决这个问题。

数据写入过程中最重要的延迟发生在集群分配时,在实时操作系统里这是个很大的问题,集群分配导致的死时间视情况不同可能高达数秒钟。这个制作里使用集群预分配(写入数据时用f-lseek函数申请一个比目前需要大很多的空间)来避免写入数据时进入分区表重新定位。每次写入操作都包含一个用来结束操作的集群边界条件。想象一下SD卡里的文件预先整理出一块整齐的空间给数据,这就避免了写入数据过程中大量导致延迟的未知问题。

尽管有这些用来尽可能减小死时间的方法,SD卡或多或少还有一些内部处理时间。在挑选SD卡的时候需要挑写入速度尽可能快的SD卡。我在许多牌子之间做过比较,结果发现东芝产SD卡有最小的写入延迟,也有最稳定的表现。

3.3、显示图像 

又一神级DIY:自己动手做数码相机

由于获得的图像数据都是一维的线条,它不能像传统平面成像的二维图像一样显示。为了这个问题需要一些特别的显示模式。

其中一种是范围视图,输入的图像信号连接到Y轴,就像像示波器的输入。Y轴信号表示亮度,X轴信号表示各点在线性传感器上的位置。这个模式适于用来观察感光度和聚焦情况。不同点之间数据的差距可以用来帮助对焦,当图像聚焦时,波形图上产生许多峰谷,出现最大的峰峰值表明焦距已经对上。这是现在数码相机里自动对焦功能的原型。

另外一种是卷动视图,图像向上卷动,新扫描到的图像出现在屏幕底部。这个模式能够用来调整线分辨率。最后生成的二维图像的高宽比决定于线分辨率和物体移动的速度。卷动视图能够展现出捕捉到的2D景象,但是如果被摄物体不移动就只剩下水平的线了,所以相机或者物体之一一定要在给定的运动速度下拍摄,这样才能一边观察一边调节线分辨率。

责任编辑:

  • 支持打赏
  • 支持0

  • 反对

  • 打赏

文章价值打分

当前文章打分0 分,共有0人打分
  • 分享好友:
  • |
本文收录在
#快讯

  • 热门文章
  • 换一波

  • 好物推荐
  • 换一波

  • 关注我们

  • 微博

    微博:快科技官方

    快科技官方微博
  • 今日头条

    今日头条:快科技

    带来硬件软件、手机数码最快资讯!
  • 抖音

    抖音:kkjcn

    科技快讯、手机开箱、产品体验、应用推荐...