发明内容
有鉴于此,本发明的主要目的是提供一种实现图像采集的方法、装置及系统,以解决现有技术中使用camera控制器的主控CPU芯片进行图像采集存在的所需信号复杂,硬件布线资源消耗较大且成本高,且实现不灵活的问题。
为解决上述问题,本发明提供的技术方案如下:
一种实现图像采集的方法,所述方法包括:
主控芯片向图像采集传感器发送时钟信号,以使所述图像采集传感器启动图像数据的采集,所述图像采集传感器具有遵循SPI协议的两线串行外设接口,所述串行外设接口SPI包括SPI时钟线和图像数据传输线;
主控芯片接收到触发信号后,通过I2C控制器接口向所述图像采集传感器的像素采集模组发送一个复位信号,然后开始通过SPI控制器接口接收所述图像采集传感器采集的图像数据;
对采集到的图像数据进行软件解析,完成图像采集。
相应的,所述方法还包括:
所述主控芯片通过所述I2C控制器接口向所述图像采集传感器发送初始化信号,所述初始化信号包括工作模式、配置信息以及工作频率参数,以便配置所述图像采集传感器传输时为主模式,并配置所述图像采集传感器的时序模式;
配置所述SPI控制器接口传输时为从模式,并配置所述SPI控制器接口的时序模式与所述图像采集传感器的时序模式相同。
相应的,所述对采集到的图像数据进行软件解析,包括:
当接收到的图像数据长度达到与设定帧同步头的长度相同时,判断所述当前帧图像数据的帧开始数据包是否与设定帧同步头相同,如果是,开始对采集到的当前帧图像数据进行软件解析。
相应的,所述对采集到的当前帧图像数据进行软件解析,包括:
判断所述当前帧图像数据的行开始数据包是否与设定行同步头相同;
判断所述当前帧图像数据的行结束数据包是否与设定行结束头相同;
判断所述当前帧图像数据的行图像数据量是否与设定行图像数据量相同;
判断所述当前帧图像数据的行数统计量是否与设定行数统计量相同;
如果判断结果均为是,则当前帧图像数据采集正常,继续通过主控芯片的SPI控制器接口接收所述图像采集传感器采集的下一帧图像数据。
相应的,所述方法还包括:
如果判断结果中的任一项为否,则通过所述I2C控制器接口向所述图像采集传感器的像素采集模组发送一个复位信号,重新开始通过主控芯片的SPI控制器接口接收所述图像采集传感器采集的新的一帧图像数据。
一种实现图像采集的装置,所述装置包括:
第一发送单元,用于向图像采集传感器发送时钟信号,以使所述图像采集传感器启动图像采集,所述图像采集传感器具有遵循SPI协议的两线串行外设接口,所述串行外设接口SPI包括SPI时钟线和图像数据传输线;
第一复位单元,用于接收到触发信号后,通过I2C控制器接口向所述图像采集传感器的像素采集模组发送一个复位信号;
图像采集单元,用于通过SPI控制器接口接收所述图像采集传感器采集到的图像数据;
图像解析单元,用于对采集到的图像数据进行软件解析,完成图像采集。
相应的,所述装置还包括:
第一初始化单元,用于通过I2C控制器接口向所述图像采集传感器发送初始化信号,所述初始化信号包括工作模式、配置信息以及工作频率参数,以便配置所述图像采集传感器传输时为主模式,并配置所述图像采集传感器的时序模式;
第二初始化单元,用于配置所述SPI控制器接口传输时为从模式,并配置所述SPI控制器接口的时序模式与所述图像采集传感器的时序模式相同。
相应的,所述图像解析单元当接收到的图像数据长度达到与设定帧同步头的长度相同时,判断所述当前帧图像数据的帧开始数据包是否与设定帧同步头相同,如果是,开始对采集到的当前帧图像数据进行软件解析。
相应的,所述图像解析单元包括:
第一判断子单元,用于判断所述当前帧图像数据的行开始数据包是否与设定行同步头相同;
第二判断子单元,用于判断所述当前帧图像数据的行结束数据包是否与设定行结束头相同;
第三判断子单元,用于判断所述当前帧图像数据的行图像数据量是否与设定行图像数据量相同;
第四判断子单元,用于判断所述当前帧图像数据的行数统计量是否与设定行数统计量相同;
结果分析子单元,用于如果所述第一判断子单元、所述第二判断子单元、所述第三判断子单元以及所述第四判断子单元的判断结果均为是,则当前帧图像数据采集正常,所述图像采集单元继续通过SPI控制器接口接收所述图像采集传感器采集的下一帧图像数据。
相应的,所述装置还包括:
第二复位单元,用于如果所述第一判断子单元、所述第二判断子单元、所述第三判断子单元以及所述第四判断子单元的判断结果中的任一项为否,则通过所述I2C控制器接口向所述图像采集传感器的像素采集模组发送一个复位信号,所述图像采集单元重新开始通过SPI控制器接口接收所述图像采集传感器采集的新的一帧图像数据。
一种实现图像采集的系统,所述系统包括:
主控芯片以及图像采集传感器;所述图像采集传感器具有遵循SPI协议的两线串行外设接口,所述主控芯片包含遵循SPI协议的SPI控制器接口,所述图像采集传感器通过SPI控制器接口与所述主控芯片相连;
所述图像采集传感器,用于图像数据的采集;
所述主控芯片为上述的实现图像采集的装置。
由此可见,本发明具有如下有益效果:
本发明实施例通过主控芯片上较为普及的SPI控制器接口与具有串行外设接口的图像采集传感器相连,实际只需使用SPI控制器接口的时钟信号和图像数据传输信号两根信号线,即可实现图像的采集,布线简单硬件消耗小;SPI控制器接口在主控芯片上较为普及,不再需要特殊的带有camera控制器的主控CPU芯片进行图像采集,降低了成本;另外,本发明实施例通过软件进行图像数据的解析,不需要SPI控制器接口再增加特殊的硬件操作,用于对数据图像进行解析,实现非常灵活,更易于产品的升级换代。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
本发明实现图像采集的方法、装置及系统,是针对现有技术中利用带有camera控制器的主控CPU芯片进行图像采集的方式,需要8位数据线信号,外加工作时钟和像素传输时钟以及复位和供电信号接口,以及帧同步和行同步信号,需要的接口信号比较多,硬件布线资源消耗较大、成本较高的问题。提出利用SPI(Serial Peripheral Interface,串行外设接口)sensor即具有SPI接口的图像采集传感器与基于SPI控制器接口的主控芯片相连,在一些嵌入式电子产品的主控CPU芯片上缺少Camera并口控制器或者使用camera并口控制器不方便的情况下,能很容易的实现快速有效的图像数据采集目标;且利用软件进行图像数据的解析,可以不需要SPI控制器增加特殊的硬件对图像数据进行解析。SPI是一种高速同步串行口。收发独立、可同步进行。即一种可以工作在全双工方式的串行总线,简单通用,并且比较高速。
基于上述思想,参见图1所示,本发明实现图像采集的方法实施例一可以包括以下步骤:
步骤101:主控芯片向图像采集传感器发送时钟信号,以使图像采集传感器启动图像数据的采集,图像采集传感器具有遵循标准的SPI协议的两线串行外设接口SPI,串行外设接口SPI包括SPI时钟线和图像数据传输线。
主控芯片可以理解为主控CPU(Central Processing Unit,中央处理器)芯片,主控芯片包含SPI控制器接口,主控芯片与图像采集传感器相连,图像采集传感器例如摄像头,同样需要具有SPI接口,以保证图像采集传感器与主控芯片之间通过SPI接口进行串行数据传输。
主控芯片与图像采集传感器所具有的SPI接口均为遵循SPI协议的两线串行外设接口,包括SPI时钟线和图像数据传输线两根信号线。
参见图2所示,主控芯片与图像采集传感器相连,打开主控芯片的CAM_MCLK时钟,主控芯片可以向图像采集传感器发送CAM_MCLK时钟,为图像采集传感器提供稳定的工作时钟,以启动图像采集传感器所有逻辑电路都能够正常工作,并开始进行图像采集。主控芯片与图像采集传感器通过SPI接口的SPI时钟线SPI_CLK和图像数据传输线SPI_MOSI两根数据线相连。
步骤102:主控芯片接收到触发信号后,通过I2C控制器接口向图像采集传感器的像素采集模组发送一个复位信号,然后开始通过SPI控制器接口接收图像采集传感器采集的图像数据。
根据应用的需求,用户或者外部设备可以向主控芯片发送开始图像采集的触发信号,主控芯片接收到触发信号后,可以启动主控芯片的SPI控制器采用从模式接收图像采集传感器采集的图像数据。
SPI控制器可以支持主模式或从模式两种模式,主模式可以理解为提供传输数据的时钟信号和启动数据传输发送端,从模式可以理解为数据的传输被动响应端。作为主模式的一端可以提供和控制SPI数据的传输启动时间和请求,以及传输时钟SPI_CLK。
因为主控芯片作为从模式,当接收到触发信号后,启动从模式的SPI控制器接口开始接收图像数据,那么图像采集传感器SPI sensor作为主模式可能已经向主控芯片发送了很多数据,而主控芯片启动从模式的SPI控制器接口接收数据的时候,是一个随机、不确定的时刻,对于一帧完整的图像数据采集是可能不同步的,即主控芯片可能不能在一帧图像数据的开始时刻开始接收数据。
因此在主控芯片开始接收图像采集传感器采集的图像数据之前,向图像采集传感器的像素采集模组发送一个复位信号,将图像采集传感器SPI sensor的图像采集控制器电路进行复位,这样一方面不会使图像采集传感器SPIsensor工作参数丢失,另一方面也不需重新初始化SPI sensor而耗费大量的时间,同时,最关键的是能够保证主控芯片从图像采集传感器采集当前帧数据的开始时刻接收数据,接收到的图像数据是一帧完整的图像。
参见图2所示,由图像采集传感器作为主模式提供传输时钟SPI_CLK,通过图像数据传输线SPI_MOSI进行数据传输。
步骤103:对采集到的图像数据进行软件解析,完成图像采集。
主控芯片对采集到的图像数据进行软件解析,如果解析成功则可以代表当前帧图像采集正常,基于软件进行图像数据的解析,不需要再增加特殊的硬件对图像数据的帧同步和行同步信号进行解析。
在本发明的一些实施例中,对采集到的图像数据进行软件解析可以包括:当接收到的图像数据长度达到与设定帧同步头的长度相同时,然后再判断当前帧图像数据的帧开始数据包是否与设定帧同步头相同,如果是,开始对采集到的当前帧图像数据进行软件解析。
即软件解析可以根据图像数据的帧开始数据包长度达到与设定帧同步头的长度相同且解析出来的数据内容与设定帧同步头内容相同,则认为是一帧图像数据的开始,触发开始进行当前帧图像的解析。
对于主控芯片的SPI控制器接口,在接收数据的时候,可以有两个状态,其中一个状态是,当接收的数据量达到一定数量时,用于缓存数据的缓存Buffer会显示空、满、半满的状态,根据这些状态,主控芯片CPU会完成接收数据搬移处理、数量统计以及图像数据解析;另外一个状态是,一定时间到达后,Buffer中没有再数据接收的时候,显示timeout超时中断状态,则通知主控芯片CPU处理buffer中剩余的数据。
基于主控芯片的处理数据的方法,对采集到的图像数据帧同步信号进行解析,当接收的图像数据长度与设定帧同步头的长度相同时,例如设定帧同步头的长度为4字节,且如果解析出的帧开始数据包与帧同步头代码内容相同,就可以认为是一帧图像数据的开始,对接收的每一行数据进行解析,在完成所行数据解析完成后,解析帧结束同步信号。
具体的,在本发明的一些实施例中,对采集到的当前帧图像数据进行软件解析可以包括:
判断当前帧图像数据的行开始数据包是否与设定行同步头相同;
判断当前帧图像数据的行结束数据包是否与设定行结束头相同;
判断当前帧图像数据的行图像数据量是否与设定行图像数据量相同;
判断当前帧图像数据的行数统计量是否与设定行数统计量相同;
如果判断结果均为是,则当前帧图像数据采集正常,继续通过主控芯片的SPI控制器接口接收图像采集传感器采集的下一帧图像数据。
在本发明的一些实施例中,基于上述实施例,本发明实施例的方法还可以包括:
如果判断结果中的任一项为否,则通过I2C控制器接口向图像采集传感器的像素采集模组发送一个复位信号,重新开始通过主控芯片的SPI控制器接口接收图像采集传感器采集的新的一帧图像数据。
另外,在本发明的一些实施例中,在主控芯片向图像采集传感器发送时钟信号之前,实现图像采集的方法还可以包括:
主控芯片通过I2C控制器接口向图像采集传感器发送初始化信号,初始化信号包括工作模式,配置信息以及工作频率参数等等,以便配置图像采集传感器传输时为主模式,并配置图像采集传感器的时序模式。
配置SPI控制器接口为传输时为从模式,并配置SPI控制器接口的时序模式与图像采集传感器的时序模式相同。
通过主控芯片的I2C控制器接口对图像采集传感器的工作模式和相关参数进行配置,相关工作频率参数可以设定图像采集中图像的大小、格式等信息。SPI协议中支持四种时序模式,根据实际情况,设置SPI控制器接口和图像采集传感器为相同的时序模式,才能保证同步采集图像数据的正确性。
参见图3所示,本发明实现图像采集的方法实施例二可以包括以下步骤:
步骤301:主控芯片通过I2C控制器接口向图像采集传感器发送初始化信号,初始化信号包括工作模式、配置信息以及工作频率参数等待,以便配置图像采集传感器传输时为主模式,并配置图像采集传感器的时序模式。
步骤302:配置SPI控制器接口传输时为从模式,并配置SPI控制器接口的时序模式与图像采集传感器的时序模式相同。
步骤303:主控芯片向图像采集传感器发送时钟信号,以使图像采集传感器启动图像数据的采集,图像采集传感器具有遵循SPI协议的两线SPI接口。
步骤304:接收触发信号。
步骤305:向图像采集传感器发送复位信号,通过主控芯片的SPI控制器接口接收图像采集传感器采集的图像数据。
步骤306:当接收到的图像数据长度达到与设定帧同步头的长度相同时,判断当前帧图像数据的帧开始数据包是否与设定帧同步头相同,如果是,进入步骤307,如果否,返回步骤305。
步骤307:判断当前帧图像数据的行开始数据包是否与设定行同步头相同,如果是,进入步骤308,如果否,返回步骤305。
步骤308:判断当前帧图像数据的行结束数据包是否与设定行结束头相同,如果是,进入步骤309,如果否,返回步骤305。
步骤309:判断当前帧图像数据的行图像数据量是否与设定行图像数据量相同,如果是,进入步骤310,如果否,返回步骤305。
步骤310:判断当前帧图像数据是否全部采集完成,如果是,进入步骤312,如果否,进入步骤311。
步骤311:继续通过主控芯片的SPI控制器接口接收图像采集传感器采集的图像数据,并进入步骤307。
步骤312:判断当前帧图像数据的行数统计量是否与设定行数统计量相同,如果是,进入步骤313,如果否,返回步骤305。
步骤313:判断图像采集是否结束,如果是,进入步骤314,如果否,结束。
步骤314:继续通过主控芯片的SPI控制器接口接收图像采集传感器采集的图像数据,并进入步骤306。
另外,在本发明的一些实施例中,本发明实施例时序图像采集的方法还可以包括:将解析后的图像发送到固态存储外设或者发送给显示屏显示。
通过上述实施例的说明可以看出,一般传统的图像采集方法,其主控芯片包含camera控制器接口,需要采用8根数据线cam_data[7:0],一根行同步cam_hsync,一根帧同步信号cam_vsync,还有图像采集传感器的工作时钟cam_mclk,图像数据传输时钟cam_pclk,以及初始化信号I2C_CLK和I2C_SDA从这种结构来看,其需要的主控芯片必须有专门的camera控制器接口,才能和这种并口的图像采集传感器完成图像的采集,解析过程。并且这种并行接口,需要的信号线比较多,应用起来硬件上处理比较复杂,且成本较高。
与现有技术相比,本发明实施例只需要很简单的1根SPI时钟线SPI_CLK和1根图像数据传输线SPI_MOSI,即可以完成图像数据的采集和行同步,帧同步的解析。
这样,本发明实施例通过主控芯片上较为普及的SPI控制器接口与具有串行外设接口的图像采集传感器相连,实际只需使用SPI控制器接口的时钟信号以及数据信号两根信号线即可实现图像的采集,布线简单硬件消耗小;SPI控制器接口在主控芯片上较为普及,不再需要特殊的带有camera控制器的主控CPU芯片进行图像采集,降低了成本;另外,本发明实施例通过软件进行图像数据的解析,不需要SPI控制器接口再增加特殊的硬件对数据图像进行解析,实现灵活,更易于产品的升级换代。
相应的,本发明还提供一种实现图像采集的装置实施例,参见图4所示,该装置包括:
第一发送单元401,用于向图像采集传感器发送时钟信号,以使图像采集传感器启动图像采集,图像采集传感器具有遵循SPI协议的两线串行外设接口SPI,串行外设接口SPI包括SPI时钟线和图像数据传输线;
第一复位单元402,用于接收到触发信号后,通过I2C控制器接口向图像采集传感器的像素采集模组发送一个复位信号;
图像采集单元403,用于通过SPI控制器接口接收图像采集传感器采集的图像数据;
图像解析单元404,用于对采集到的图像数据进行软件解析,完成图像采集。
在本发明的一些实施例中,本发明实现图像采集的装置实施例还可以包括:
第一初始化单元,用于通过I2C控制器接口向图像采集传感器发送初始化信号,初始化信号包括工作模式、配置信息以及工作频率参数,以便配置图像采集传感器传输时为主模式,并配置图像采集传感器的时序模式;
第二初始化单元,用于配置SPI控制器接口传输时为从模式,并配置SPI控制器接口的时序模式与图像采集传感器的时序模式相同。
在本发明的一些实施例中,图像解析单元当接收到的图像数据长度达到与设定帧同步头的长度相同时,判断当前帧图像数据的帧开始数据包是否与设定帧同步头相同,如果是,开始对采集到的当前帧图像数据进行软件解析。
在本发明的一些实施例中,参见图5所示,图像解析单元可以包括:
第一判断子单元501,用于判断当前帧图像数据的行开始数据包是否与设定行同步头相同;
第二判断子单元502,用于判断当前帧图像数据的行结束数据包是否与设定行结束头相同;
第三判断子单元503,用于判断当前帧图像数据的行图像数据量是否与设定行图像数据量相同;
第四判断子单元504,用于判断当前帧图像数据的行数统计量是否与设定行数统计量相同;
结果分析子单元505,用于如果第一判断子单元、第二判断子单元、第三判断子单元以及第四判断子单元的判断结果均为是,则当前帧图像数据采集正常,图像采集单元继续通过SPI控制器接口接收图像采集传感器采集的下一帧图像数据。
在本发明的一些实施例中,本发明实现图像采集的装置实施例还可以包括:
第二复位单元,用于如果第一判断子单元、第二判断子单元、第三判断子单元以及第四判断子单元的判断结果中的任一项为否,则通过I2C控制器接口向图像采集传感器的像素采集模组发送一个复位信号,图像采集单元重新开始通过SPI控制器接口接收图像采集传感器采集的新的一帧图像数据。
在本发明的一些实施例中,本发明实现图像采集的装置实施例还可以包括:
第二发送单元,用于将解析后的图像发送到固态存储设备或者发送给显示屏显示。
相应的,本发明实施例还提供一种实现图像采集的系统实施例,同样可以参见图2所示,该系统包括:
主控芯片以及图像采集传感器;图像采集传感器具有遵循标准的SPI协议的两线串行外设接口SPI,主控芯片包含遵循SPI协议的SPI控制器接口,图像采集传感器通过SPI控制器接口与主控芯片相连;
图像采集传感器,用于图像数据的采集;
主控芯片,用于向图像采集传感器发送时钟信号,以使图像采集传感器启动图像数据的采集,图像采集传感器遵循SPI协议的两线具有串行外设接口SPI,串行外设接口SPI包括SPI时钟线和图像数据传输线;接收到触发信号后,通过I2C控制器接口向图像采集传感器的像素采集模组发送复位信号,开始通过主控芯片的SPI控制器接口接收图像采集传感器采集的图像数据;对采集到的图像数据进行软件解析,完成图像采集。
在本发明的一些实施例中,主控芯片还可以用于主控芯片通过I2C控制器接口向图像采集传感器发送初始化信号,初始化信号包括工作模式、配置信息以及工作频率参数,以便配置图像采集传感器传输时为主模式,并配置图像采集传感器的时序模式;配置SPI控制器接口传输时为从模式,并配置SPI控制器接口的时序模式与图像采集传感器的时序模式相同。
在本发明的一些实施例中,对采集到的图像数据进行软件解析的实现可以为:
当接收到的图像数据长度达到与设定帧同步头的长度相同时,判断当前帧图像数据的帧开始数据包是否与设定帧同步头相同,如果是,开始对采集到的当前帧图像数据进行软件解析。
在本发明的一些实施例中,对采集到的当前帧图像数据进行软件解析的实现可以为:
判断当前帧图像数据的行开始数据包是否与设定行同步头相同;
判断当前帧图像数据的行结束数据包是否与设定行结束头相同;
判断当前帧图像数据的行图像数据量是否与设定行图像数据量相同;
判断当前帧图像数据的行数统计量是否与设定行数统计量相同;
如果判断结果均为是,则当前帧图像数据采集正常,继续通过主控芯片的SPI控制器接口,接收图像采集传感器采集的下一帧图像数据。
在本发明的一些实施例中,主控芯片还可以用于如果判断结果中的任一项为否,则通过I2C控制器向图像采集传感器的像素采集模组发送一个复位信号,重新开始通过主控芯片的SPI控制器接口接收图像采集传感器采集的新的一帧图像数据。
在本发明的一些实施例中,主控芯片还可以用于将解析后的图像发送到固态存储设备或者发送给显示屏显示。
本系统实施例的工作原理是:
首先使用主控芯片的I2C接口对图像采集传感器spi sensor的工作模式和相关参数进行初始化,在SPI协议中,SPI控制器接口可以做主模式,也可以做从模式,作为主模式的一方可以提供和控制SPI数据的传输启动时间和传输时钟SPI_CLK,可以定义图像采集传感器spi sensor的图像数据输出模式为主模式。然后初始化主控芯片的SPI控制器接口作为从模式。SPI协议中支持四种时序模式,需要根据实际情况,按照图像采集传感器spisensor规格书的要求,设置图像采集传感器spi sensor和主控芯片的SPI控制器接口为相同的时序模式,才能保证同步采集图像数据的正确性。
打开主控芯片的cam_mclk时钟,向图像采集传感器发送时钟信号,为spi sensor提供稳定的工作时钟,启动spi sensor的图像采集功能。
根据主控系统的应用需求,在接收到系统的触发信号后,主控芯片可以启动图像采集功能,通过SPI控制器接口接收外部图像采集传感器spi sensor外设采集发送过来的图像数据。
因为主控芯片的SPI控制器接口做为从模式,因此只能被动的接收图像采集传感器spi sensor传过来的数据和时钟spi_clk。当主控芯片启动图像采集的应用的时候,图像采集传感器spi sensor做为主模式,可能已经向主控芯片的SPI控制器接口发送了很多数据,而主控芯片启动从模式的SPI控制器接口接收数据的时刻,是一个随机,不确定的时刻,对于一帧完整的图像数据采集是不同步的,可能已经丢失了很多的数据,无法解析出一帧完整的图像数据。因此在主控芯片每次启动采集之前,需要向图像采集传感器发送复位信号,将spi sensor的图像采集控制器电路进行复位,其作用是让图像采集传感器spisensor丢弃当前帧的采集,开始下一帧的采集,这样既不会使spisenor工作参数丢失,也不会因为重新初始化spi sensor耗费大量的时间,还能保证主控芯片开始采集图像的时候,能快速接收spi sensor送出的下一帧图像数据。
图像数据正常的传输顺序一般如下:首先接收帧开始数据包,重复接收行开始数据包、行图像数据到行结束数据包,完成一帧图像的N行图像数据采集,最后接收帧结束数据包。
其中,帧开始数据包的格式如下,可以看出一共是24位共4字节:
行开始数据包的格式为:
行开始同步码code[23:0] |
包的d[7:0] |
图像数据大小data_width[15:0] |
行结束数据包格式的格式为:
行结束同步码code[23:0] |
包的id[7:0] |
帧结束数据包格式的格式为:
sync code[23:0] |
packet_id[7:0] |
对于一般主控芯片的标准SPI控制器接口,在接收数据的时候,可以有两个状态:第一种状态,当接收的数据达到一定数量时,缓存数据的Buffer会显示空,满,半满的状态,根据这些状态,或者是对应的中断信号,CPU会用查询或者中断的方式,及时的响应,本发明实施例为了提高系统的效率和采集图像的性能采用中断的方式,当buffer中的数据达到一定的状态时,就产生系统中断通知CPU将buffer中的数据搬移到内存中,完成图像数据的统计和进行图像的解析。第二种状态,预设时间到达后,buffer中再没有新的数据接收的时候,就显示timeout超时状态,产生系统中断,通知主控的CPU,处理buffer中剩余的数据,将buffer中的数据搬移到内存中,完成图像数据的统计和进行图像的解析。
基于主控芯片的SPI控制器接口接收数据的处理方法,对采集到的图像数据进行解析,当接收的数据刚好为4字节的时候,如果其解析出来的数据与帧同步头代码相同,就认为是一帧图像数据的开始。
然后对接收的每一行图像数据进行软件解析,如果解析出来的数据有如下问题之一:行开始同步头代码错误;行结束同步头代码错误;行图像数据量错误;一帧的行数统计量错误。那么主控芯片的软件就会丢弃当前帧的所有数据,并进行spi sensor图像采集控制器电路复位,重新开始新一帧的图像数据。如果当行数据采集正确,那么就继续采集,直到将当前帧的所有图像数据采集完,并解析出对应的图像数据。
在解析到图像的帧完成同步信号后,判断行数量是否与预设需求一致,如果是则认为此帧正常完成采集,并根据应用的需要,将采集到的数据作为一个文件存储到固态硬盘上,断电也不会丢失,或者将其作为一帧图像数据,发送给显示屏进行显示。
在当前帧采集正常的情况下,不用复位图像采集传感器spi sensor,继续采集下一帧,完成下一帧的图像采集和解析。通过以上过程,可以实现软件实时的同步spi sensor的图像数据采集,达到快速采集的性能,而且不需要主控芯片的SPI控制器接口,增加特殊的硬件电路修改,即可完成spi sensor传输协议的帧同步和行同步硬件解析功能,使这种图像采集方法更加通用性,低成本灵活性,也能通过中断的方式,让主控CPU芯片的系统反应性能更好的发挥。
这样,本发明实施例通过主控芯片上较为普及的SPI控制器接口与具有串行外设接口的图像采集传感器相连,实际只需使用SPI控制器接口的时钟信号以及数据信号两根信号线即可实现图像的采集,布线简单硬件消耗小;SPI控制器接口在主控芯片上较为普及,不再需要特殊的带有camera控制器的主控CPU芯片进行图像采集,降低了成本;另外,本发明实施例通过软件进行图像数据的解析,不需要SPI控制器接口再增加特殊的硬件对数据图像进行解析,实现灵活,更易于产品的升级换代。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。