我是靠谱客的博主 潇洒电灯胆,最近开发中收集的这篇文章主要介绍proximity sensor driver (三),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

4 proximity sensor校准

 

本节主要按以下议题展开

1) 为什么要校准

2) 如何校准

3) 固定门限校准

4) 动态门限校准

1)为什么要校准

和大多数sensor一样,proximity sensor安装到整机,需要考虑实际使用时的灵敏度、误触发etc 。如proximity sensor driver () 中提到,proximity sensor存在由Ambient light 和 Crosstalk 造成的背景噪声 a ,通俗点说就是,proximity sensor 工作时,即使没有物体遮挡,proximitysensor红外线传感器检测的ps raw data 为a ,a 大于0。所以,proximity sensor要正常工作,设置接近、远离触发门限时是需要考虑背景噪声,以消除背景噪声干扰。还有一个原因是,像大多数采用光学的sensor一样,需要校准红外发射器的发射功率,以满足实际产品的灵敏度,也能排查出物理漏光问题。

 

2) 如何校准

由1) 描述大概可以知道proximity sensor校准的方法,校准的结果就是获取背景噪声a,和红外发射器的发射功率pulse 值(不同的sensor可能不一样)。所以,校准的大概过程如下

打开proximity sensor à 设定一固定发射功率(pulse经验值)à 多次读取ps raw data à 如果ps raw data超过设定的门限值,则降低发射功率à 将ps raw data取平均值作为背景噪声a、pulse 值保存下来。

 

和校准相关的ioctl preudo code:

static int  ps_ioctl(struct file *file, unsigned int cmd,

      unsigned long arg)     

{

                   caseALSPS_CALIBRATE_PS:    //ps 校准

                            ps_calibration();

                            break;

                   caseALSPS_WRITE_CALIBRATE:     //获取 ps校准数据

                            get_ calibration_data();

                            set_ps_pulse();

                            set_ps_thres();

                            break;

}


proximity sensor 校准流程如下:


开机获取proximity sensor校准数据流程:


3) 固定门限校准

所谓固定门限校准,如上述2)所述,就是一旦出厂校准完成,高低门限值ps_threshold_low & ps_threshold_high就是固定的。

优点:逻辑相对简单

缺点:正如哲学所言万事万物都是变化的,唯一不变的是变化,proximity sensor的背景噪声 a也是变化的,会随着手机使用过程变化,如用户手机跌落导致proximity sensor结构密封性下降,CTP材质老化导致光孔透光性变化等等。所以,使用固定门限校准,存在会导致proximity sensor接近、远离触发灵敏度降低,甚至失效的可能。

 

4) 动态门限校准

动态门限校准,是指proximity sensor工作时的高低门限值ps_threshold_low & ps_threshold_high是动态的、实时的,每次打开proximity sensor会实时读取背景噪声 a,并基于a动态设置高低门限值ps_threshold_low & ps_threshold_high。

优点:可以规避固定门限校准的缺点

缺点:逻辑相对固定门限校准复杂些,早期调试工作量大些。打开proximity sensor时,如果有物体遮挡proximity sensor光孔,这时获取的背景噪声 a 接近最大值,这样会导致proximity sensor功能失效,不会触发接近、远离事件。


其实,即使是动态门限校准,也不是就不用固定门限校准,工厂出厂前还是会进行固定门限校准。只是实际使用中,高低门限值设置不是根据固定门限校准的背景噪声 a设置的,而是动态实时获取背景噪声 a 。为了解决动态门限校准初始就有物体遮住会导致proximity sensor功能失效的问题,可以引入固定门限校准机制,当动态门限校准背景噪声 a很大时,设置高低门限值还是基于固定门限校准的背景噪声 a,这样就能规避proximity sensor功能失效的问题。



最后

以上就是潇洒电灯胆为你收集整理的proximity sensor driver (三)的全部内容,希望文章能够帮你解决proximity sensor driver (三)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部