2022年Android系统下sensor驱动架构简介及使用说明 .pdf
《2022年Android系统下sensor驱动架构简介及使用说明 .pdf》由会员分享,可在线阅读,更多相关《2022年Android系统下sensor驱动架构简介及使用说明 .pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1手机事业部本文档为瑞芯微电子手机事业部成员撰写及提供,不得用于工作之外的使用及交流。1Sensor 驱动架构简介及使用说明文件状态:草稿 正式发布正在修改文件标识:Company-Project-RD-UR当前版本:1.1作者:罗伟完成日期:2012-06-10版本日 期描述作 者审核V1.02012-6-10针对各种sensor 的共性与差异编写的统一架构,支持挂接重力传感器、地磁传感器、陀螺仪、光感、距离感应、温度感应等设备, 可以很方便地兼容不同厂家的各种 sensor。罗伟V1.12012-8-9增加 SENSOR 自动兼容,所有SENSOR 均可以同时选上, SENSOR 自动探测
2、和识别。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 2手机事业部本文档为瑞芯微电子手机事业部成员撰写及提供,不得用于工作之外的使用及交流。21.sensor 架构简介1.1编写目的到目前为止, sensor 的 android 硬件抽象层已经统一,但是各种产品和项目中仍用到了各种形形色色的传感器,并且驱动基本上是重新编写和调试一遍,然后重新解决一轮BUG。调试的时间少则一天,多则数天,如果驱动写的不好,容易引入 BUG。鉴于
3、这种情况,对所有sensor 的共性与差异进行思考后发现,其实不同的 sensor 工作原理是相似的,仅有部分有差异,例如初始化、寄存器地址、上报方式、 IOCTL等几个,其他的大部分都是相同的。因此花了数天时间设计和编写了这套 sensor 架构,该架构特别注意以下几点:兼容性好、使用简单、结构清晰、可读性强。1.2结构图整个代码存放于文件夹sensors下, 包括两个主文件sensor-dev.c和 sensor-i2c.c,几个芯片级文件夹accel、compass、gyro、lsensor、psensor、temperature 。其中,sensor-dev.c 对 sensor 操作
4、进行统一处理,包括驱动挂载、中断或轮训处理、IOCTL处理、差异性接口的统一回调处理等,sensor-i2c.c 是所有 sensor 的 i2C 操作接口,包括带寄存器和不带寄存器两种;accel 目录下存放不同类型的gsensor;compass目录下存放不同类型的地磁传感器;gyro 目录下存放不同类型的陀螺仪;lsensor目录下存放不同类型的光传感器;psensor 目录下存放不同类型的距离传感器;temperature 目录下存放不同类型的温度传感器。当然,有新的传感器类型的需求和在后面增加文件夹,例如压力传感器。图 1.1 为 sensor 驱动架构的目录树,目前仅包括手机和MI
5、D 的 SDK板上用到的所有sensor,其他的可以类似地添加。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 3手机事业部本文档为瑞芯微电子手机事业部成员撰写及提供,不得用于工作之外的使用及交流。3图 1.1sensor 驱动架构的目录树1.3架构介绍要 了 解 该 驱 动 架 构 , 先 了 解 驱 动 中 使 用 到 的 三 个 重 要 结 构 体sensor_private_data、sensor_operate、sen
6、sor_platform_data ,其中sensor_private_data 是各种 sensor的私有统一结构体, sensor_operate 是使用者调试新 sensor时需要根据具体情况填充的结构体, sensor_platform_data 是加载驱动前需要在board 里填充的结构体, 不同的 sensor需要填充的变量有所差异。struct sensor_operate char *name;/芯片名称int type;/sensor类型见sensor_type定义intid_i2c;/从sensor_id中选择,新SENSOR需要添加,该值与board文件中的type选项(
7、如.type= gs_lis3dh)对应,不能错。intrange2;/上报值的范围int read_reg;/读数据的寄存器地址名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 4手机事业部本文档为瑞芯微电子手机事业部成员撰写及提供,不得用于工作之外的使用及交流。4int read_len;/读数据的长度,单位byteint id_reg;/读CHIP_ID的寄存器地址int id_data;/正确的CHIP_ID值,需要用于判
8、断设备是否存在int precision;/数据的精度int ctrl_reg;/控制寄存器,一般用于开启和关闭设备、初始化等int ctrl_data;/控制寄存器写入的值int int_ctrl_reg;/中断控制寄存器,不需要填-1intint_status_reg;/中断状态寄存器,可用于清中断,不需要填-1int trig;/中断触发方式,如、IRQF_TRIGGER_LOW|IRQF_ONESHOT,注意,本驱动使用了线程中断方式,可以在 中 断中 直 接操 作I2C或SPI等 阻 塞式 操作, 对于电 平类 中 断请 增 加IRQF_ONESHOT。int (*active)(s
9、truct i2c_client *client, int enable, int rate);/开关回调接口int (*init)(structi2c_client *client);/sensor芯片初始化回调接口int (*report)(structi2c_client *client);/芯片读数据和上报回调接口int (*suspend)(struct i2c_client *client);/休眠操作接口,暂不需要int (*resume)(struct i2c_client *client);/唤醒操作接口,暂不需要struct miscdevice *misc_dev;/私
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Android系统下sensor驱动架构简介及使用说明 2022 Android 系统 sensor 驱动 架构 简介 使用说明
限制150内