|||
CMOS摄像芯片(CMOS Sensor)现在已经成为主流的图像器件,低价格,高分辨率,在单片机系统中使用是很合适的,不过实际却非易事。一般使用它,都需要高速CPU/DSP或者专用芯片方案配合。AVR、STM32这些低档单片机,已经有成功接口CMOS Sensor的例子,不过只能读出、显示和存储低分辨率的图像,MCU除了读图像数据,基本上没有什么能力做图像相关的处理工作。
基本的原因,图像是海量数据,一帧640x480单色图像,就有307K数据,STM32这类单片机内置RAM只有几K到几十K,无法存储,外扩大容量SRAM则成本巨高。最佳载体是SDRAM,不过低档单片机一般没有SDRAM接口。在玩OV7670、MT9M111的过程中,逐渐摸索出了一个以CPLD为控制核心接口SDRAM、用DMA原理直接将CMOS Sensor的图像数据存入SDRAM的体系。在这个体系的基础上独立分割出来fsmc-Camera模块,用背板+模块的形式开发,做应用更方便。
CMOS Sensor由8Bit数字接口输出图像数据,速率可以调整,不过要获得足够的帧率,数据时钟不能太低,一般在几MHz~几十MHz,这个速度的数据对于时钟频率
fsmc-Camera模块将CMOS Sensor、SDRAM、CPLD控制逻辑集成在一个独立模块上,以一个简单的16Bit内存扩展式端口接出,STM32 MCU可以用FSMC方式直接接口,包括:
l 130万像素的MT
l 8MByte SDRAM,CMOS Sensor输出图像直接写入SDRAM,自动将数据流组成图像帧。也可扩展成16MByte
l 16Bit地址/数据复用总线,MCU以行/列的形式寻址扩展内存,读取已存储的图像帧;读取和存储图像可以同时进行,自动切换前后帧
l 一个图像数据流抽取器LCD Scaler,直接从CMOS Sensor输出中抽取320x240图像,提供给LCD预览显示
l CMOS Sensor通用I