微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于单片机的低成本CMOS图像采集系统

基于单片机的低成本CMOS图像采集系统

时间:05-24 来源:互联网 点击:

信号SPI协议的时序如图7所示。

  图7SPI总线的数据传送时序图

  STM8单片机有专门的硬件SPI接口,因此可通过该接1:2采集图像数据。图像传感器SPI时钟输入引脚连接单片机的SPI_SCK口,图像传感器图像数据输出引脚连接单片机SPI_MISO口,片选SPI_CS引脚连接单片机的普通I/O口PD7。然后对硬件SPI的参数进行配置,主要包括时钟频率、工作模式、主从模式、空闲时候电平状态、触发边沿等,这些参数都可以通过单片机硬件SPI的内部寄存器的配置实现。SPI总线读取图像数据的流程如下:unsignedcharspinet_byte(void){while(!(SPI_SR&0x02));//等待总线空闲SPI_DR=Oxff;//产生时序信号硬件SPI在且仅在发送数据的时候才产生SCK时钟while(!(SPI_SR&0x01));//等待数据接收完毕returnSPI_DR;//将接收到的数据返回}3.3Flash模块软件设计SST25VF020是一款2MbitSPISerialNOR型Flash芯片,在系统中作为图像存储器使用。该Flash通过SPI的串口接收指令和数据,支持3/4的SPI协议,其工作时序如图8所示。

  图8SST25VF020的工作时序图

  从上图可以看出,CE#f氐电平使能芯片正常工作,该芯片在SCK的上升沿读入信号,在SCK下降沿的时候输出信号。STM8单片机有专门的硬件SPI接口,但是图像传感器也需要单片机的硬件sPI接口与之通信,所以系统设计了一种分时复用单片机硬件SPI接口的方式。CE#片选连接单片机的普通I/O口PD0,该I/O口在不同的时刻与图像传感器的片选PD7分别选中,如此,一个硬件SPI接口便可操作2个SPI设备。SPI时钟输入引脚连接单片机的SPI_SCK口,SI读人信号连接单片机的SPI_MOSI,SO输出信号连接单片机的SPI_MISO。硬件SPI配置与前文所述图像数据采集Sial一致。此外,与图像采集相比,在程序部分还要多加一个单片机输出信号函数。Flash模块主要功能函数如下:voidsst_send_byte(unsignedcharbyte){while(!(SPI_SR&0x02));//等待总线空闲SPI_DR=byte;//将要写入的数据byte存入SPI_DRwhile(!(SPI_SR&0x01));//等待数据发送完毕完毕tmp=SPI_DR;//清空接收缓冲区voidflashwrite_byte(unsignedlongaddr,unsignedchardata)//向缓冲区l的指定位置(0—263)写入指定字节}write_en();//写使能命令mss0();//片选端选中,低电平有效send(0x02);//写命令send((unsignedchar)(addr》》16));//发送数据的地址send((unsignedchar)(addr》》8));send((unsignedchar)addr);send(data);//发送要写入的数据mssl();//释放片选}unsignedcharflashreadbyte(unsignedlongaddr)}unsignedcharbyte;mss0();//片选端选中,低电平有效send(0x03);//读命令send((unsignedchar)(addr》》16));//发送数据的地址send((unsignedchar)(addr》》8));send((unsignedchar)addr);byte=get();//读取数据mssl();//释放片选returnbyte;}3.4图像的多帧采集和拼接模块软件设计为保存图像数据,系统引入Flash存储器,而数据转存入Flash存储器需要占用中断响应时间,这就导致了中断响应时间不够的问题。为解决这个问题,根据所采图像为静态图像这一应用背景,提出一种多帧图像的部分采集与拼接算法,在中断响应时间中,只读取图像传感器中的图像数据,而后占用两次中断的时间,把图像数据转存入Flash。每帧图像有160次中断,每帧图像只取其1/3,取3帧图像的数据,即可拼接成一幅完整的图像。多帧采集方法如图9所示。图中,实线表示捕获到的中断,虚线表示因转存人Flash错过的中断。

  图9多帧采集图像方法示意

  单片机把采集的数据按照采集时间的顺序转存入Flash数据在Flash中的排列顺序如图10所示。

  图1O图像数据在Flash中的存储顺序

  在Flash中读取图像数据的时候,按照中断次数的先后顺序读出,即第l帧第1次中断、第2帧第2次中断、第3帧第3次中断、第1帧第4次中断、第2帧第5次中断……第2帧第158次中断、第3帧第159次中断、第1帧第160次中断。这样,3帧图像的数据拼接成一幅完整的图像。在读取图像数据的同时,单片机以2个字节为单位,拼接成一个无符号整型,即一个像素点,通过RS232接口传送至上位机。

  4试验及分析
    图11是系统的实物图,硬件系统面积是(7.5×7.5)cm2,双层PCB板,系统结构简单,运行稳定。系统对图像的处理速度是4帧/s,满足实时性的要求。图12为采集的一幅图像,大小为240×320,图像格式为bmp,像素格式为RGB565,该图像是3帧图像拼接而成,是单片机通过RS232接口传输至上位机,并在显示器上显示的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top