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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于I2C和Android光传感器驱动开发

基于I2C和Android光传感器驱动开发   摘 要:分析了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]

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档