基于I2C和Android的光传感器驱动开发

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:zhangyutinglzl
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:分析了android操作系统的传感器系统结构,设计并实现了基于i2c及android输入子系统的isl290023光传感器驱动程序,能够精确地根据周围环境光线的强度自动调节LCD的亮度,有效地降低智能设备的功耗,驱动成功应用于Marvell armada610平台,性能稳定。
  关键词:Android;I2C;光传感器
  中图分类号:TP311
  2007年Google推出第一款Android操作系统以后,不断地完善及增强系统功能,从最初的android1.1版本发展到最新的android4.3版本,用户体验感越来越好,是目前最流行的智能终端系统之一,它不仅改变了民众的生活爱好,还不断增加了生活的乐趣性及实用性,深受社会各界人士的热捧。为了更好的赢得用户的信赖,android智能终端设备为用户配备了各种传感器,如重力感应器、光传感器、磁场感应器及距离传感器等8种高灵敏度的传感器,他们不仅可以帮助用户在使用设备的过程中自动节省系统的耗电量,还可以为用户在户外活动中提供指南针功能,在游戏中提供重感力操作模式,增强了用户体验性及简化了操作的复杂度。其中,光传感器可以感知附近周围的光线情况,并将感知的数据上报给处理器去运算,然后自动调节设备的背光亮度,不仅可以降低系统的耗电量,还可以有效地保护用户的眼睛,市场使用价值越来越高,如何更好的发挥出其作用,值得技术人员去深入研究。
  1 Android软件体系结构
  2 Android的传感器系统结构
  传感器(sensor)对于我们来说并不感到陌生,比如日常生活中的楼道路灯、传感温度计等将物理现象转换成电子信号的机器[4-6]。Android的各类传感器设备同样是将获取外部的物理信息转换成数字信号,通过传感器系统上报给用户应用,展现出丰富的便携功能。Android传感器主要包括8种:加速度(accelerometer)、方向传感器(orientation)、光传感器(ambient light)、磁传感器(magnetic field)、距离感应器(proximity)、方向感应器(orientation)、压力(pressure)和温度传感器(temperature),它们都是基于不同的物理硬件来实现[5]。
  Android传感器系统在整个android系统中的各个层次都有涉及,其对上层的接口是上报传感器采集转换后的数据变化,同样也提供部分属性设置接口,如精度的设置等。Android传感器系统的基本结构图[7-9]如图2所示。系统结构的分布从上而下遵守android系统原理,包含java应用、传感器的java框架层、本地框架的硬件抽象层、传感器驱动程序及硬件。Android传感器应用开发使用的API主要包含在frameworks/base/core/java/android/hardware目录下的Sensor*.java文件类,实现了sensor的管理及控制,sensor事件的监听。API中的sensormanager类会通过jni的 jni/android_hardware_SensorManager.cpp调用本地库中的sensormanager服务,其会进一步调用sensor的hal层,最终根据具体的硬件配置调用具体的传感器,实现采集数据的上报。
  4 ISL290023光传感器驱动的实现
  4.2 驱动初始化
  驱动的初始化是以内核模块加载的方式运行,通过module_init()函数向内核加载驱动的初始化函数isl29023_init (),其主要是将驱动挂载到系统的I2C驱动模型中,完成设备的硬件初始化,比如设置器件相关寄存器的初始化状态、电源的省电操作模式,分配input_dev结构,定义设备支持的事件类型,通过input_register_device()函数将input_dev向内核输入子系统注册使其成为输入设备,实现的核心代码如下:
  4.3 数据计算与上报
  5 结束语
  随着android设备及其应用的发展,传感器的使用也越來越广,如何使其更稳定、更精确地工作是研究的重点。本文通过分析android传感器系统结构及其移植的内容,成功实现了基于i2c和android input的isl290023光传感器驱动,能够精确地根据周边环境光线的强度自动调节屏幕的亮度,驱动成功应用于android2.3系统,为驱动开发爱好者提供了参考价值。
  参考文献:
  [1]郭宏志.Android应用开发详解[M].北京:工业出版社,2011,6.
  [2]李刚.疯狂Android讲义[M].北京:电子工业出版社,2011,7.
  [3]吴亚峰,索依娜.Android核心技术与实例详解[M].北京:电子工业出版社,2010,6.
  [4]韩超,梁泉.Android系统级深入开发:移植与调试[M].北京:电子工业出版社,2011,2.
  [5]杨丰盛.Android技术内幕:系统卷[M].北京:机械工业出版社,2011,6.
  [6]伯内特.Android基础教程[M].张波.北京:人民邮电出版社,2009,11.
  [7]James Steele,Nelson To.The Android Developers Cookbook Building Applications with the Android SDK[M].United States:Pearson Education,Inc,2010,10.
  [8]吴茂安.基于I2C总线协议的几种传感器在Android系统中的底层软件设计与实现[D].西安:西安电子科技大学,2012,1.
  [9]李永壮,李昌兴,王欢.基于Android光线传感器的实现及数据优化算法[J].西安邮电学院学报,2012,17:75-78.
  [10]ISL290023 Data Sheet[EB/OL].Intersil Americas Inc.2009.
  作者简介:欧阳小星(1980-),男,江西吉安人,硕士,研究方向:嵌入式系统,android系统。
其他文献
<正>液膜分离技术中最关键的一步是破乳,它决定着液膜分离的效率与效果。黎念之采用绝缘电极交流电破乳’‘’,Bailes”‘、严忠等’‘’从改变电源和电极类型等方面开展研究
自1970年改革开放以来,我国居民收入不断提高,而收入差距也越来越大。本文根据我国居民收入分配总体状况、城乡居民收入分配差距、行业收入分配差距、地区收入分配差距现状,
近日,连续两则有关阿尔茨海默病新药的好消息迅速登上了微博的热搜榜。新闻称,药物能有效减缓轻度及中度患者的发病症状,尽可能地保留、改善其记忆及生活能力。中外创新药物
<正>1 引言 广泛用于机械设备的润滑油冷却器,由于油的粘度大,操作流速低,若使用光滑管设计制造,其传热性能差,一般总传热系数为350W/(m~2&#183;℃)左右。近年来,螺纹翅片管已
孟浩然的"春眠不觉晓"妇孺皆知,诗句不单朗朗上口,而且意境隽永,让人读后生出一种从甜睡酣梦中醒来,轻风细雨犹在耳,窗外春意早盎然的适意。然而,现代社会,有多少人忙工作、忙
唐代名相张九龄有诗曰:&#39;仙禁生红药,微芳不自持。幸因清切地,还遇艳阳时。名见桐君篆,香闻郑国诗。孤根若可用,非直爱华滋。&#39;大意是说,芍药不仅花香怡人,而且根可入
期刊
一年四季中,春风是最为温柔的。它带着湿润微凉,裹着鸟语花香,吹拂着吹拂着,既唤醒了大地,又抚慰了人心。不知这个&#39;五一&#39;,喜提四天小长假的您,有没有出门溜达溜达,感
期刊
由于不同气象条件会影响太阳辐照度的有效利用,这制约了太阳能的应用和发展.为了基于不同站点不同采样时刻的气象属性预测中尺度站的太阳能辐照度,依据传统卷积神经网络的框
目的 分析并研究整体护理在慢性胃炎患者中应用的临床效果。方法 选取我院在2014年2月至2015年6月收治的84例慢性胃炎患者作为研究对象,将其随机分为观察组和对照组,每组42例
以定容燃烧弹为试验平台,探究了初始压力和掺比对2-甲基呋喃汽油混合燃料火焰传播的影响.结合高速纹影成像,得到了各工况下的层流火焰传播照片,分析火焰发展形态,得到拉伸火焰传播