Sensor 驱动框架的整体架构详细介绍.doc
《Sensor 驱动框架的整体架构详细介绍.doc》由会员分享,可在线阅读,更多相关《Sensor 驱动框架的整体架构详细介绍.doc(6页珍藏版)》请在三一文库上搜索。
1、Sensor 驱动框架的整体架构详细介绍背景与概述Sensor 是物联网重要的一部分,“Sensor 之于物联网”相当于“眼睛之于人类”。人没有眼睛就看不到这大千的花花世界,物联网没有了 Sensor 更是不能感知这变化万千的世界。现在,为物联网开发的 Sensor 已经很多了,有加速度计(Accelerometer),磁力计(Magnetometer),陀螺仪(Gyroscope),光感计(Ambient light sensor),接近光(Proximity),气压计(Barometer/pressure),湿度计(Humidometer)等等。这些传感器,世界上的各大半导体厂商都有出产,
2、虽然增加了市场的可选择性,同时也加大了应用程序开发的难度。因为不同的传感器厂商、不同的传感器都需要配套自己独有的驱动才能运转起来,这样在开发应用程序的时候就需要针对不同的传感器做适配,自然加大了开发难度。为了降低应用开发的难度,增加传感器驱动的可复用性,我们设计了 Sensor 驱动框架。Sensor 驱动框架的作用是:为上层提供统一的操作接口,提高上层代码的可重用性;简化底层驱动开发的难度,只要实现简单的 ops(operations: 操作命令) 就可以将传感器注册到系统上。整体框架Sensor 驱动框架的整体架构图如下:sensor它为上层提供的是标准 device 接口open/clo
3、se/read/write/control ,为底层驱动提供的是简单的 ops 接口:fetch_data/control。并且框架支持 module(模块),为底层存在耦合的传感器设备提供服务。工作原理Sensor 设备其实是对标准设备 rt_device 的一个丰富,是在原有标准设备的基础上增加了 Sensor 自己独有的一部分 属性 和 控制命令 ,如下图所示:sensor整个 Sensor 设备包括两个部分:继承自标准设备的一些特性,包括:标准的控制接口 、回调函数、device_id 等。Sensor 设备独有的部分,包括:Sensor 的类型、相关的信息、特有的控制命令、ops、以
4、及一些 数据的结构。sensor 的结构体Sensor 设备的结构体如下所示:1struct rt_sensor_device 2 3 struct rt_deviceparent; /* The standard device */ 4 5struct rt_sensor_infoinfo; /* The sensor info data */ 6struct rt_sensor_config config;/* The sensor config data */ 7 8void*data_buf; /* The buf of the data received */ 9rt_size_td
5、ata_len; /* The size of the data received */1011const struct rt_sensor_ops *ops; /* The sensor ops */1213struct rt_sensor_module *module; /* The sensor module */14;15typedef struct rt_sensor_device *rt_sensor_t;Sensor 的信息struct rt_sensor_info info 里存储的是一些与 Sensor 自身相关的信息,在 Sensor 设备注册的时候提供,在使用的过程中不应
6、修改其内容。具体成员如下所示。1struct rt_sensor_info 2 3 rt_uint8_t type;/* The sensor type */ 4 rt_uint8_t vendor;/* Vendor of sensors */ 5 const char *model;/* model name of sensor */ 6 rt_uint8_t unit;/* unit of measurement */ 7 rt_uint8_t intf_type;/* Communication interface type */ 8 rt_int32_t range_max;/* m
7、aximum range of this sensors value. unit is unit */ 9 rt_int32_t range_min;/* minimum range of this sensors value. unit is unit */10 rt_uint32_t period_min;/* Minimum measurement period,unit:ms. zero = not a constant rate */11 rt_uint8_t fifo_max;/* Maximum depth of fifo */12;Sensor 的类型暂时只有以下几种,如果有新
8、的传感器类型,可以提 PR 添加上。1#define RT_SENSOR_CLASS_ACCE(1) /* Accelerometer*/ 2#define RT_SENSOR_CLASS_GYRO(2) /* Gyroscope*/ 3#define RT_SENSOR_CLASS_MAG(3) /* Magnetometer*/ 4#define RT_SENSOR_CLASS_TEMP(4) /* Temperature*/ 5#define RT_SENSOR_CLASS_HUMI(5) /* Relative Humidity */ 6#define RT_SENSOR_CLASS_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Sensor 驱动框架的整体架构详细介绍 驱动 框架 整体 架构 详细 介绍
链接地址:https://www.31doc.com/p-3273015.html