[发明专利]Android系统Sensor HAL层兼容多种同种Sensor设备的移植处理方法及装置有效
申请号: | 201310016831.3 | 申请日: | 2013-01-17 |
公开(公告)号: | CN103353835A | 公开(公告)日: | 2013-10-16 |
发明(设计)人: | 银兰凤 | 申请(专利权)人: | 珠海全志科技股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 李双皓;陈振 |
地址: | 519080 广东省珠海市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | android 系统 sensor hal 兼容 多种 同种 设备 移植 处理 方法 装置 | ||
技术领域
本发明涉及Sensors的硬件抽像层处理技术领域,特别是涉及一种Android系统Sensor HAL层兼容多种同种Sensor设备的移植处理方法及装置。
背景技术
硬件抽象层HAL(Hardware Abstraction Layer),硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。Sensor硬件抽象层将底层的硬件与上层的应用有效的隔离,并作为其中的纽带,读取底层硬件的数据,进行相应的转换之后提交给系统进行使用。硬件抽象层的实现比较简单,主要任务为描述相应的设备以及数据的处理,各方面实现也不是一个标准,因为实现起来灵活多变。
从软硬件测试的角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件测试工作的并行进行成为可能。
Sensors Hardware Module也就是Sensor硬件抽象层,一般称其为Sensors的HAL层。HAL层将底层的硬件与上层的应用有效的隔离,并作为其中的纽带,读取底层硬件的数据,进行相应的转换之后提交给系统进行使用。硬件抽象层的实现比较简单,移植过程中,需要关注三处关键点,如下图1所示:Android的传感器系统结构。
一、填充硬件中使用Sensor的相关信息。
Sensors的相关信息由Sensor_t结构体进行描述,该结构体主要用于函数get_Sensors_list()中,用于获得传感器列表。
二、HAL层中SetDelay以及enable函数的实现。
SetDelay函数主要是控制硬件设备上报数据的速度;enable函数主要是控制硬件设备的使能,也就是是否工作的开关。函数实现的关键点一为Kernel driver实现相对应的SetDelay以及enable的接口控制设备的上报数据时间以及使能开关;二为HAL层中需要找到Kernel driver函数的接口路径,进行相对应的读写,进而实现SetDelay以及enable功能。
三、数据的读取主要是找到Driver中注册的设备,并将其打开进而读取其中的数据。数据的处理主要是处理数据的方向以及将数据转换为系统可使用的数据格式。
某些Sensor的数值方向还会受到硬件设计的影响,以mma7660重力感应器(GSensor)为例,硬件设备中的方向将影响数据的方向性,如下图2所示:
在现有技术中,使用条件编译的方法定义配置不同的模组使用的模组名称,方向值以及相应的Sensor的Sensor_t结构体。
现有技术的常用方法的缺点是:当发现配置的模组的方向不正确时以及换用另外一种模组时,需要重新的配置以及编译;在已经编译好的固件中修改模组的方向参数时,需要到源文件中的目录下执行一次更新的命令之后在编译,修改的方向值才会生效。
发明内容
本发明提供了一种Android系统Sensor HAL层兼容多种同种Sensor设备的移植处理方法及装置,实现多种Sensor设备的兼容,并能够动态的判断硬件设备来进行相应接口的实现,从而可以方便快速的替换Sensor设备,而不需要进行新的编译以及配置。
基于上述问题,本发明提供的一种Android系统Sensor HAL层兼容多种同种Sensor设备的移植处理方法,具体包括如下步骤:
根据Linux系统中支持的Sensors驱动,对Sensor HAL层进行初始化处理;在初始化时,设置驱动平台所支持的所有模组的名称及转换值;预设Gsensor 方向值路径及Sensor设备的路径,预设Gsensor方向变量的识别名称并配置相应的方向变量配置文件;针对不同Sensor设备设置相应的Sensor_t结构体;其中,设置的每个模组的名称与Sensor设备注册到Linux输入子系统中的设备名称一一对应;
在Sensors设备的Driver注册到Linux的输入子系统后,Sensors HAL层根据生成Sensors设备对应的节点,确定获取当前已注册的Sensors设备的名称及模组;
在Android HAL层确定获取当前已注册的Sensor设备名称后,根据预设的Sensor设备方向值的路径,读取所述方向变量配置文件并解析预设的Sensor方向值,比对所述预设的Sensor方向值与所需Sensor方向值,调整Sensor设备的方向;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海全志科技股份有限公司,未经珠海全志科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310016831.3/2.html,转载请声明来源钻瓜专利网。