一种环境光检测的方法和系统 【技术领域】
本发明涉及信号处理技术,特别涉及一种环境光检测的方法和系统。
背景技术
随着资源的日益减少,节能已经成为各种电子设备、自动控制设备等的技术发展方向。环境光检测技术应节能的需求而被广泛应用,使得带背光的设备(例如带液晶显示器和发光二极管显示器的设备)能够根据检测的环境光的强度自动调节背光亮度或者关闭背光,从而达到节能的目的。
在现有的环境光检测技术中,光检测装置和模数转换器(ADC)是必不可少的组成器件,其中,光检测装置主要由光电二极管组成,用于获取环境光检测数据,例如光强度信号,该数据为模拟信号。ADC用于将光检测装置获取的环境光检测数据进行模数转换得到数字信号,并提供系统访问接口供控制系统读取,如图1所示。但是,现有技术中采用的ADC均为专用ADC芯片,其提供的系统访问接口为本地总线(Local Bus)或I2C总线等专用总线,这就需要控制系统在对ADC输出的环境光检测数据进行读取时,需要针对本地总线或I2C总线等专用总线进行专门地设计,增加了系统设计的复杂度和系统成本。
【发明内容】
有鉴于此,本发明提供了一种环境光检测的方法和系统,以便于降低系统设计的复杂度和系统成本。
一种环境光检测的系统,该系统包括:带有模拟语音信号输入接口的专用CPU芯片以及光检测装置;
所述光检测装置,用于将获取的光检测信号输出给所述专用CPU芯片;
所述专用CPU芯片包括:控制单元、模数转换单元、总线转换单元、先入先出FIFO缓存、直接存储器访问DMA单元和内存;
所述控制单元,用于根据用户的设置控制模拟语音输入接口接收来自光检测装置的光检测数据,并开启DMA;在关闭DMA后,从所述内存中读取光检测数据,并对该光检测数据进行分析处理;
所述模数转换单元,用于将模拟语音输入接口接收到的光检测数据进行模数转换后提供给所述总线转换单元;
所述总线转换单元,用于将接收到的光检测数据从并行数据模式转换为串行数据模式后,送入所述FIFO缓存;
所述DMA单元,用于开启时,从所述FIFO缓存中读取光检测数据并写入所述内存;关闭时,停止从所述FIFO缓存中读取光检测数据。
一种环境光检测的方法,光检测装置与带有模拟语音信号输入接口的专用CPU芯片的空闲模拟语音信号输入接口连接,该专用CPU芯片中包括控制单元、模数转换单元、总线转换单元、FIFO缓存、DMA单元和内存;该方法包括:
与光检测装置连接的模拟语音信号输入接口在控制单元的控制下,接收来自所述光检测装置的光检测数据;所述模拟转换单元将该光检测数据进行模数转换后提供给所述总线转换单元;所述总线转换单元将接收到的光检测数据从并行数据模式转换为串行数据模式后,送入所述FIFO缓存;
所述DMA单元在所述控制单元的控制下开启时,从所述FIFO缓存中读取光检测数据并写入所述内存,在所述控制单元的控制下关闭时,停止从所述FIFO缓存中读取光检测数据;所述控制单元在关闭所述DMA后,从所述内存中读取光检测数据并进行分析处理。
由以上技术方案可以看出,本发明提供的方法和系统,巧妙地将带有模拟语音信号输入接口的CPU芯片与光检测装置相结合,充分利用了现有带模拟语音信号输入接口的CPU芯片的空闲接口,无需对CPU芯片的原有结构和参数等进行变更,采用已有的硬件资源来替代专用的ADC,避免了针对访问接口的专用总线进行专门的设计,降低了系统设计的复杂度,也降低了系统成本。
【附图说明】
图1为现有技术中的环境光检测系统结构图;
图2为本发明实施例提供的系统结构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
为了避免针对专用ADC提供的专用总线进行复杂的设计,发明人注意到在许多带有模拟语音信号输入接口的CPU芯片,其模拟信号输入接口往往没有得到充分利用,例如IP电话终端的专用CPU芯片中,集成了多路模拟语音信号输入接口,但在实际应用中,多路信号输入接口通常并没有全部占用。并且,这些CPU芯片内部都已经具备对模拟信号进行特殊处理的ADC、缓存、总线甚至直接存储器访问(DMA)等硬件资源,具备较高的处理速率,因此,发明人提出可以将这些带有多路模拟信号输入接口的CPU芯片直接与光检测装置结合用于环境光检测系统中。
下面利用IP电话终端(IPPHONE)中带有多路模拟语音信号输入接口的专用CPU芯片来进行环境光检测进行详细描述,将该专用CPU芯片中的空闲模拟语音信号输入接口与检测装置直接连接,如图2所示,该专用CPU芯片原用于对输入地模拟语音信号进行处理,本发明无需对该专用CPU芯片的结构做任何更改,也无需对DMA的参数进行更改,仅需要在控制单元处针对输入的光检测数据进行控制策略的修改。
光检测装置将获取的光检测信号输出给专用CPU芯片。
控制单元根据用户的设置控制模拟输入接口接收来自光检测装置的光检测数据并开启DMA,ADC将该光检测数据进行模数转换后送入串并总线转换接口。
由于ADC输出的光检测数据为并行数据,因此,串并总线转换接口将该并行数据转换为串行数据后,由多通道串行端口(McSP)将转换为串行数据的光检测数据送入先入先出(FIFO)缓存。其中,串并总线转换接口和McSP可以由一个总线转换单元实现。
DMA在开启状态时从FIFO缓存中读取光检测数据并送入内存中的FIFO队列,在关闭状态时停止从FIFO缓存中读取光检测数据。
控制单元在关闭DMA后,从内存中的FIFO队列中读取光检测数据并进行分析处理。
在上述过程中,对于ADC、串并总线转换接口、McSP和FIFO等都没有进行变更,对光检测数据的处理方式与对语音模拟信号的处理方式相同。但是,对于语音数据,由于语音模拟数据是连续的,即使没有语音帧为了保持连续性语音模拟数据中也会存在空闲帧,因此,DMA会对FIFO缓存中的语音数据进行不间断的读取,不会存在关闭状态,并且,为了避免DMA的写入以及控制单元的读取对内存的冲突,在内存中存在两级缓存。
然而,对于光检测数据并不是不间断的,控制单元在进行分析处理时也无需获取所有的光检测数据,并且,环境光变化远慢于语音,不需要很高的实时性,因此,可以由控制单元控制DMA的开启和关闭,在读取内存时关闭DMA。在DMA开启后,DMA不会判断内存中的FIFO队列是否已满,而是不间断地向内存中的FIFO队列写入数据,直至被关闭。
该控制单元对DMA的控制可以通过对寄存器的设置进行。另外,可以利用定时器周期性地控制DMA开启和关闭,例如,控制DMA开启1s后关闭1s,即读取1s的光检测数据后,关闭1s供控制单元读取内存中的FIFO队列;也可以按照用户的需求实时地控制DMA开启和关闭,例如在要获得某个时刻的光检测数据时,在这个时刻切换模拟输入接口来接收光检测装置,并开启DMA,在获取一段时间后,关闭DMA供控制单元读取内存中的FIFO队列。
由于DMA对内存的写入和控制单元对内存的读取是分离的,因此,在内存中仅需要设置一级缓存,从而更加节省内存。由于光检测数据并不像语音数据那样严格要求实时性和完整性,因此,内存中的FIFO队列可以灵活地进行选取,不必受到诸如DMA定时和中断时长等DMA参数的限制。
在上述专用CPU芯片中,模拟输入接口、DMA和内存均提供了控制接口受控制单元的控制,本发明的方法可以通过加在在控制单元上的软件完成上述模拟输入接口的切换、DMA的开启和关闭、内存的分配和读取到的控制,另外,还可以完成现有的对各单元参数的配置,例如DMA参数的配置等。
由以上描述可以看出,本发明提供的方法和系统,巧妙地将带有模拟语音信号输入接口的CPU芯片与光检测装置相结合,充分利用了现有带模拟语音信号输入接口的CPU芯片的空闲接口,无需对CPU芯片的原有结构和参数等进行变更,采用已有的硬件资源来替代专用的ADC,避免了针对访问接口的专用总线进行专门的设计,降低了系统设计的复杂度,也降低了系统成本。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。