2 总体设计方案及论证2.1 总体设计方案设计主要由几个模块组成:
1). 图像采集模块:OV7670摄像头通过设置参数采集图像,将采集到的图像存储在AL422里;
2). 控制处理模块:STM32将存储在AL422内部的数字代码提取出来,同时控制液晶显示屏TFT;
3). TFT液晶显示模块:经过STM32处理后的数据在TFT上显示。
总体设计方案流程图如图2-1所示。
图2- 1 总体设计方案流程图
2.2 总体设计方案论证2.2.1 摄像头的选择- 模拟摄像头(CCD和模拟CMOS)+ LM1881
优点:成本低(LM1881只要10元,摄像头只要45元);方案实现简单(只需根据几个同步信号,开启AD连续采集即可);
缺点:需要A/D速度支持,以获得高分辨率。A/D速度与MCU总线时钟有关,所以需要超频,但MCU稳定性必须牺牲。
- 模拟摄像头(CCD和模拟CMOS) + SAA7113视频解码 + AL422B
优点:经典的图像采集方案,为各视频采集卡和其他产品所应用,能完整采集整幅图像。摄像头兼容性好,可以随时更换更好的摄像头,获得更清晰图像,而采集部分软硬件不需要做太大改变;
缺点:方案复杂,涉及大量逻辑操作,一般用CPLD或FPGA配合。在智能车比赛中,规定不能使用可编程器件,使用74做逻辑功能,控制几个芯片较为复杂,体积、可靠性都很难保证,制作难度较大。涉及IIC操作,增加调试时间难度。
优点:数字摄像头方案,采集简单,无需A/D;
缺点:与模拟摄像头+AD类似,采集分辨率与MCU频率相关。数字摄像头信号输出频率可高达13.5MHz,没有DMA功能MCU从IO读信号再写入内存,速度跟不上,同样需要牺牲稳定性进行超频使用。因为没有引入PCLK视频同步信号,直接采集CMOS数据口,有可能会采集到不稳定的数据(即CMOS数据口状态正在改变时)这一点可能造成严重的干扰。
- 数字摄像头(数字CMOS和OV7670等)+ FIFO
优点:采用FIFO作为缓冲,可以采集完整图像。图像采集分辨率与FIFO容量有关;
缺点:FIFO容量大,若使用视频FIFO,性价比较高。
选择方案:经过对以上几种方法的比较,方案四可行性比较高,同时价格也相对来说比较便宜,而且数字信号相对于模拟信号来说利用更加简单,对于现阶段的学习更方便。
2.2.2 处理芯片的选择优点:对于ATmega16的使用比较熟练;
缺点:ATmega16的flash相对较小,处理速度较慢,不适宜快速处理图像信息,对信息由一定的延时显示。
优点:flash相对于ATmega16的较大,处理速度也更加的快;
缺点:价格相对于ATmega16来说较贵。
选择方案:为了更好地处理图像信息,使数据信息更好地采集,采用STM32系列芯片来作为处理芯片。
2.2.3 图像显示器的选择优点:2.4寸TFT液晶显示屏,大小为240X320,显示图像范围较大;
缺点:TFT供电是3.3V,单片机供电为5V,需要外围转换电路。
优点:显示程序简单,可以供给5V电压,与单片机供电电压相同;
缺点:显示图像较小。
选择方案:由于STM32采集的数据为240X320X2的数据,刚好是2.4寸的TFT液晶显示屏的数据,所以使用TFT液晶显示屏比5110显示屏更加的好,这样就不需要去设置一些数据,免去一些麻烦。
2.2.4 FIFO的选择由于速度及程序存储器和数据存储器的寻址空间的限制,要存储每秒30帧,640×480像素大小的一副图像,是相当困难的,而FIFO 芯片AL422的出现,解决了这一难题。AL422是 Aver Logic 公司推出的一个存储容量为393216字节×8 位的FIFO存储芯片,其所有的寻址、刷新等操作都由集成在芯片内部的控制系统完成。AL422是一款容量很大,而且可存储一幅图像的完整信息的帧存储器芯片,AL422的工作频率可达50MHZ。
具有以下特点:
- 具有384X8Bits FIFO,支持VGA,CCIR,PAL等多种分辨率;
- 可进行独立的读写操作;
- 可高速异步串行存取,读写时钟周期为20ns;
- 内含输出使能控制,并能够自行刷新数据;
(5)工作电压为5V或3.3V,采用标准的28脚SOP封装。
选择方案:为了读取一幅完整的图像数据,同时AL422价格相对来说比较便宜,因此选择AL422作为数据中转站。
2.3 硬件设计2.3.1 处理芯片STM32的设计对于处理芯片的设计,开始考虑自己设计处理芯片整体PCB布局,考虑到可能出现双面板的问题,因此直接购买了处理芯片部分。处理芯片原理图见附加pdf文件。
2.3.2 摄像头原理图设计基于摄像头与AL422的配合使用,把摄像头与AL422直接放在一个模块上比较稳定,减少其他干扰因素(连线问题、电产生的磁场)的影响,因此把摄像头与AL422放置在一起。原理图如图2-2所示。
图2- 2 摄像头与存储器连接原理图
3 项目总结在这次设计中,经过不断地调试与改进,基于STM32的视频处理并将采集到的图像信息显示在TFT液晶显示屏上成功完成。在制作的过程中,遇到许多的问题,大概如下:
(1)在前期准备过程中,由于对于摄像头的原理及种类选择了解甚少,所以在对摄像头的种类选择过程中举棋不定;
(2)在对摄像头的基础知识有了一定了解后,对摄像头采集到的图像数据如何处理这个问题上又有了比较大的问题,是直接处理数据,还是先把采集到的图像信息存储起来再进行处理。经过比较,我们采用了后者;后者的优点在于把数据存储起来,一方面可以防止数据丢失,另外一方面可以避免一下处理太大的数据;
(3)对于摄像头方面的问题有了大概解决办法后,对于处理芯片的选择又有问题了;在前期准备用DSP作为处理芯片,由于是第一次接触并应用,对于复杂的DSP来说,在短期内把它学懂并且用来做项目是有一定困难的,其次对于DSP的购买能力也是一定的,因此,最后采用了综合效果较好的STM32作为处理芯片。
(4)在一步步把程序调通之后图像显示比较清晰,但为了精度能更高一点,于是对软件和硬件进行
经过这次项目,对于摄像头的处理方面的一些知识也有了很大的提升,另外对于处理芯片STM32的知识掌握也有很大提高,让自己也多学会了一款单片机,对于自己以后的学习打下了一定的基础。