控制微处理器读取摄像头数据的方法及摄像头控制器技术

技术编号:2874543 阅读:154 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种控制微处理器读取摄像头数据的方法,关键在于:在摄像头和微处理器之间设置一个摄像头控制器,当摄像头向微处理器传送数据时,先将数据输出到摄像头控制器中,再由摄像头控制器通过中断方式控制微处理器从其内部读取数据。本发明专利技术还同时公开了一种实现上述方法的摄像头控制器,连接于摄像头和微处理器之间。采用本发明专利技术的摄像头控制器和控制方法,能缓存摄像头的数据并控制数据的输出,可在增加极少成本的前提下,降低微处理器的数据访问频率,充分合理地利用微处理器的处理能力,进而大幅度的提高系统性能。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及摄像头数据读取技术,尤指一种控制微处理器读取摄像头数据的方法及摄像头控制器。目前,在引进摄像头的过程中,通常引进CMOS摄像头,该CMOS摄像头与微处理器的连接关系如附图说明图1所示,CMOS摄像头11通过IO模拟方式与微处理器12相连,微处理器12不断查询IO的状态,识别CMOS摄像头11输出信号的变化情况,以便进一步处理。对于常用的互补金属氧化物半导体(CMOS)摄像头而言,参见图2所示,CMOS摄像头的输出接口主要输出以下几种信号CMOS摄像头工作时需要的时钟信号MCLK、I2C串行总线的时钟SCLK、I2C串行总线的数据SDATA、CMOS摄像头的输出数据ADC、CMOS摄像头的点时钟HCLK、CMOS摄像头的行时钟VCLK以及CMOS摄像头的帧时钟SOF。其中,ADC表示由模拟转化成的数字数据,10个比特位中3位代表红色,3位代表蓝色,4位代表绿色。图2给出了摄像头工作时上述信号的变化情况,从图中可以看出,摄像头工作时,通过HCLK信号的变化可输出每一个像素红绿蓝的数值,其中的col.48、col.49等即表示第48、49行等;当HCLK信号变化到摄像头所设定的每一行的像素值时,VCLK发生变化,指示下一行开始;当VCLK信号变化到摄像头所设置的每一列的像素值时,SOF信号发生变化,指示新的帧开始,如此周而复始,摄像头就能够正常工作了。由于现有的CMOS摄像头与微处理器之间没有摄像头控制器,一般微处理器采用通用输入输出(GPIO)方式来完成信号变化的处理。如图3所示,当系统初始化时,系统首先要设置SOF、HCLK、VCLK和ADC的初值,即初始化这些信号。当摄像头正常工作时,微处理不断查询IO的状态,微处理器对信号的处理过程如图4所示a1.判断当前采集的信号中,SOF信号是否指示新的一帧开始,如果是,则设置当前行和列的值为0,进入步骤b1,否则,直接进入步骤b1;b1.判断当前采集的信号中,VCLK信号是否指示新的一行开始,如果是,则设置当前列的值为0,且行的值加1,进入步骤c1,否则,直接进入步骤c1;c1.判断当前采集的信号中,HCLK信号是否指示新的像素点开始,如果是,则读取ADC上的数据到指定的为存储该行列像素准备的微处理器内存中,设置当前列的值加1,返回步骤a1,否则,直接返回步骤a1。从上述处理过程可以看出,由于微处理器中没有集成摄像头控制器,微处理器要通过查询IO状态来采集摄像头的输出信号,那么,当该CMOS摄像头像素较多时,微处理器必须不断的进行扫描输入,才能不断的读取该CMOS摄像头上的数据。由于CMOS摄像头的工作方式为连续工作的,因此为了保证不使数据丢失,微处理器必须将大部分性能都消耗在CMOS摄像头的数据读取上,这对于本来性能就不是很高的嵌入式微处理器来说,几乎不能够再完成其它任务了,如此使CMOS摄像头的应用有很大困难。但如果直接把CMOS摄像头集成到微处理器上,又会使微处理器的性能大大降低。另外,有些微处理器中没有设置CMOS或其它类摄像头的接口,更无法为该微处理器系统引入摄像头。本专利技术的另一目的在于提供一种摄像头控制器,使其能缓存摄像头的数据并控制数据的输出,进而提高整个系统的处理性能。为达到上述目的,本专利技术的技术方案是这样实现的一种控制微处理器读取摄像头数据的方法,其是在摄像头和微处理器之间设置一个摄像头控制器,当摄像头向微处理器传送数据时,先将数据输出到摄像头控制器中,再由摄像头控制器通过中断方式控制微处理器从其内部读取数据。该方法进一步包括摄像头控制器预先在其内部定义一段固定的内存空间来存储摄像头的输出数据。在上述方法中,摄像头控制器实时判断帧信号、行信号和列信号的变化,如果帧信号变化指示新的帧开始,则摄像头控制器设置当前行和列的值为0;如果行信号变化指示新的行开始,则摄像头控制器设置当前列的值为0,同时行的值加1;如果列信号变化指示新的像素点开始,则摄像头控制器设置当前列的值加1,且读取摄像头的输出数据,存储于摄像头控制器预先设定的内存空间中。其中,摄像头控制器读取摄像头的输出数据后,先去掉每个10位数据的最低两位,再将每四个去掉低两位的数据组合为一个32位的数据,存储于摄像头控制器预先设定的内存空间中。在读取数据的同时,当摄像头控制器设定的内存中所存储的摄像头输出数据量达到该设定内存总量的一半时,摄像头控制器产生半容量中断HALF_IRQ给微处理器。当摄像头控制器设定的内存中所存储的摄像头输出数据量等于该设定内存总量时,摄像头控制器产生满容量中断FULL_IRQ中断给微处理器。在微处理器侧,当微处理器响应半容量中断HALF_IRQ进入中断服务流程时,该方法进一步包括a1.设置数据读取的内存起始地址为0;b1.微处理器从摄像头控制器设定的内存中读取数据,读完后当前内存地址加1;c1.判断当前内存地址的值是否等于摄像头控制器所设内存总量的一半,如果不是,则返回步骤b1;否则,将摄像头控制器设定的内存空间等分为两部分,然后把前半段内存地址与后半段内存地址进行交换。当微处理器响应满容量中断FULL_IRQ进入中断服务流程时,该方法进一步包括a2.设置数据读取的内存起始地址为0;b2.微处理器从摄像头控制器设定的内存中读取数据,读完后当前内存地址加1;c2.判断当前内存地址的值是否等于摄像头控制器所设内存总量,如果不是,则返回步骤b2;否则,系统读取一个错误标志,将与该错误数据相关的数据丢弃。本专利技术还提供了一种摄像头控制器,用于设置在摄像头和微处理器之间,控制微处理器从摄像头读取数据,摄像头与摄像头控制器之间通过总线方式连接,微处理器与摄像头控制器之间以直接存储器存取(DMA)方式连接;该控制器包括数据分析读取模块,用于判断摄像头信号的变化,并根据信号变化设置参数值或读取图像数据;缓存模块,用于缓冲存储数据分析读取模块从摄像头读取的图像数据; 中断产生模块,用于判断缓存模块的当前存储状态,并根据当前存储状态产生中断给微处理器,控制微处理器从其内部读取数据。其中,所述的缓存模块为摄像头控制器预先在其内部设定的一段固定的内存空间。所述的摄像头信号为帧信号、或行信号、或列信号。所述的参数值为当前行的值、或当前列的值。所述的当前存储状态为缓存模块中存储的数据已达到总容量的一半,或缓存模块容量已满。所产生的中断为半容量中断HALF_IRQ,或满容量中断FULL_IRQ。由上述方案可以看出,本专利技术的关键在于在原有的摄像头和微处理器之间增加一个摄像头控制器,用来缓存和控制图像数据,以减轻微处理器的负担,提高系统的性能。因此,本专利技术所提供的控制微处理器读取摄像头数据的方法及摄像头控制器,由于增加了摄像头控制器,在微处理器工作时,摄像头先将数据存储到摄像头控制器中,存储到一定数量时,产生中断,微处理器再通过DMA方式,统一读取。如此,可使微处理器从繁琐的查询、判断、移位操作中解脱出来,减轻了微处理器的负担,降低了微处理器的访问率,更有利于微处理器对自身处理能力的合理分配,进而大幅提高系统性能,提高系统效率。而且,以成熟的可编程芯片作为摄像头控制器,只需要增加很小的成本,相对于系统性能的提高,性能价格比也提高了。图7为本专利技术摄像头控制器处理摄像头本文档来自技高网...

【技术保护点】
一种控制微处理器读取摄像头数据的方法,其特征在于:在摄像头和微处理器之间设置一个摄像头控制器,当摄像头向微处理器传送数据时,先将数据输出到摄像头控制器中,再由摄像头控制器通过中断方式控制微处理器从其内部读取数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘鹏
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1