MTK平台下的sensor框架分析

MTK平台下的sensor框架分析

ID:37712651

大小:1.26 MB

页数:13页

时间:2019-05-29

MTK平台下的sensor框架分析_第1页
MTK平台下的sensor框架分析_第2页
MTK平台下的sensor框架分析_第3页
MTK平台下的sensor框架分析_第4页
MTK平台下的sensor框架分析_第5页
资源描述:

《MTK平台下的sensor框架分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、关于Android平台下的sensor介绍随着移动互联网技术的普及,人们对智能手机的需要也越来越多。而在众多智能手机操作系统之中,Android系统凭借着Google的技术支持及其开源特性在短时间内迅速占领大量的市场。传感器系统可以让智能手机的功能更加丰富多彩,所以传感器设备已经成为智能手机必备的组件之一。Android系统可以支持多种传感器,有的传感器已经在Android的框架中使用,大多数传感器由应用程序使用。本文基于MTK6582的平台上Android系统的传感器模块进行移植和开发,对Android系

2、统框架和开发环境进行了简介,对Android系统的传感器模块的驱动层和硬件抽象层的开发进行深入的分析与研究,概括并总结了传感器模块的工作原理和工作流程,对传感器的数据采集、数据传输、设备休眠和设备控制等方面进行了具体的设计与实现,最终在MTK6582的平台上实现了传感器模块的驱动层和硬件抽象层。Android系统可大致分为四部分,应用层、框架层、硬件抽象层、Linux驱动层,Android系统的传感器模块涉及到了Android系统的各个层次。应用层以Java为编程语言,一般为第三方开发的应用程序,也有一些是

3、Google自己提供的应用程序,框架层是Google自己开发的,有着完整代码的体系,提供完善的接口,以便第三方开发应用程序。硬件抽象层是能以封闭源码形式提供硬件驱动模块,可以把框架层与驱动层隔开,使得Android框架层的开发能在完全不考虑驱动程序的前提下进行。驱动层会根据硬件的设计对传感器进行初始化和寄存器的读写,使传感器正常工作。Android系统支持多种传感器,包括加速度传感器、磁力域传感器、方向传感器、陀螺仪、光线传感器、压力传感器、温度传感器、接近传感器,一般手机都支持加速度传感器、磁力域传感器、

4、方向传感器、光线传感器、接近传感器,也有一些比较高端的手机支持陀螺仪。Android系统sensor框架图:我们着重讲解硬件抽象层(hardwareabstractallevelHAL)和内核层(linux内核)1.硬件抽象层Android的HAL(硬件抽象层)是Google因应厂商“希望不公开源码”的要求下所推出的新观念,让Android不至过度依赖Linuxkernel,让Androidframework的开发能在不考虑驱动程序的前提下进行发展。2、内核层Android的核心系统服务依赖于Linux2.

5、6内核,包括各种设备的驱动,如显示驱动、键盘驱动、Flash内存驱动、照相机驱动(CameraDriver)、音频驱动(AudioDriver)、蓝牙驱动(BluetoothDriver)、WiFi驱动、BinderIPC驱动,以及PowerManagement(电源管理)、进程管理、内存管理、安全性管理和网络协议栈等操作系统的基本部件。1、HAL层的实现:当Android系统启动时,SystemManager启动SensorDevice服务frameworks/base/cmds/system_serve

6、r/library/system_init.cpp1property_get("system_init.startsensorservice",propBuf,"1");2if(strcmp(propBuf,"1")==0){3//Startthesensorservice4SensorService::instantiate();5}①SensorDevice()首先调用hw_get_module()函数获得Sensor设备模块,②调用sensors_open这个工具函数,打开Sensor设备模块(调用其

7、methods->open函数指针),返回Sensor设备的操作接口(这些接口在HAL层实现),保存在mSensorDevice中调用sensors_open函数,函数接着调用module->methods->open()方法,这个open方法在哪里实现了??如下:③调用Sensor模块的get_sensors_list方法获得传感器列表,在调用get_sensors_list之前,系统已初始化sSensorList结构体,说明系统中有哪些sensor资源。④依次激活这些设备并且添加到mActivation

8、Count设备信息向量中。⑤最终调用dev->device.poll=data__poll函数,实现读取sensor数据。staticintdata__poll(structsensors_poll_device_t*dev,sensors_event*data,intcount){structsensors_data_context_t*ctx=(structsensors_data_context_t*)de

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。