diff --git a/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md b/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md old mode 100644 new mode 100755 index 9d60860c652d5c2075bda2076b649ad7edc4ef74..79cdd29fe40c3fdc20c3d6c83254baa25a7b15f9 --- a/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md +++ b/zh-cn/device-dev/driver/driver-peripherals-sensor-des.md @@ -1,31 +1,64 @@ # SENSOR -- [概述](#section3634112111) -- [接口说明](#section20930112117478) -- [开发步骤](#section1140943382) -- [开发实例](#section257750691) -- [测试指导](#section106021256121219) +- [概述](##概述) + - [功能简介](###功能简介) + - [运作机制](###运作机制) + +- [开发指导](##开发指导) + - [接口说明](#section188213414114) + - [开发步骤](#section7893102915819) + - [开发实例](#section257750691) + - [调测验证](#section106021256121219) + + +## 概述 -## 概述 +### 功能简介 -Sensor(传感器)驱动模块为上层Sensor服务系统提供稳定的Sensor基础能力API,包括Sensor列表查询、Sensor启停、Sensor订阅及去订阅,Sensor参数配置等功能;基于HDF(Hardware Driver Foundation)驱动框架开发的Sensor驱动模型,实现跨操作系统迁移,器件差异配置等功能。Sensor驱动模型如下图1所示: +Sensor设备作为外接设备重要组成模块,通过Sensor驱动模型屏蔽硬件器件差异,为上层Sensor服务系统提供稳定的Sensor基础能力接口,包括Sensor列表查询、Sensor启停、Sensor订阅及取消订阅,Sensor参数配置等功能;Sensor设备驱动的开发是基于HDF驱动框架基础上,结合操作系统适配层(OSAL)和平台驱动接口(比如I2C/SPI/UART总线等平台资源)能力,屏蔽不同操作系统和平台总线资源差异,实现Sensor驱动“一次开发,多系统部署”的目标。Sensor驱动模型如[图1](#fig10451455446)所示: **图 1** Sensor驱动模型图 -![](figures/Sensor驱动模型图.png "Sensor驱动模型图") +![Sensor驱动模型图](figures/Sensor%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B%E5%9B%BE.png) -Sensor驱动模型对外开放的API接口能力如下: +### 运作机制 + +通过介绍Sensor驱动模型的加载以及运行流程,对模型内部关键组件以及关联组件之间的关系进行了划分,整体加载流程如[图2](#Sensor驱动模型图)所示: + +**图 2** Sensor驱动模型运行图 -- 提供Sensor HDI(Hardware Driver Interface)能力接口,简化服务开发。 -- 提供Sensor驱动模型能力接口:依赖HDF驱动框架实现Sensor器件驱动的注册、加载、去注册、器件探测等能力,提供同一类型Sensor器件驱动归一接口, 寄存器配置解析操作接口,总线访问抽象接口,平台抽象接口。 -- 提供开发者实现的能力接口:依赖HDF驱动框架的HCS(HDF Configuration Source)配置管理,根据同类型Sensor差异化配置,实现Sensor器件参数序列化配置和器件部分操作接口,简化Sensor器件驱动开发。 +![Sensor驱动模型运行图](figures/Sensor%E9%A9%B1%E5%8A%A8%E6%A8%A1%E5%9E%8B%E8%BF%90%E8%A1%8C%E5%9B%BE.png) -## 接口说明 +Sensor驱动模型以标准系统Hi3516DV300产品中的加速度传感器驱动为例,介绍整个驱动加载及运行流程: + +1. 从device info HCS 的Sensor Host里读取Sensor设备管理配置信息。 +2. HDF配置框架从HCB数据库解析Sensor设备管理配置信息,并关联对应设备驱动。 +3. 加载并初始化Sensor设备管理驱动。 +4. Sensor设备管理驱动向HDI发布Sensor基础能力接口。 +5. 从device info HCS 的Sensor Host里读取加速度传感器驱动配置信息。 +6. 加载加速度传感器抽象驱动,调用初始化接口,完成Sensor器件驱动资源分配和数据处理队列创建。 +7. 从accel_xxx_config HCS里读取加速度传感器差异化驱动配置和私有化配置信息。 +8. 加速度传感器差异化驱动,调用通用配置解析接口,完成器件属性信息解析,器件寄存器解析。 +9. 加速度传感器差异化驱动完成器件探测,并分配加速度传感器配置资源,完成加速度传感器差异化接口注册。 +10. 加速度传感器探测成功之后,加速度传感器差异化驱动通知加速度传感器抽象驱动,注册加速度传感器设备到Sensor设备管理中。 + +## 开发指导 + +### 接口说明 + +Sensor驱动模型对外开放的API接口能力如下: -Sensor驱动模型对HDI开放的API接口功能,参考表1。 +- 提供Sensor HDI(Hardware Driver Interface)能力接口,简化服务开发。 +- 提供Sensor驱动模型能力接口: + - 依赖HDF驱动框架实现Sensor器件驱动的注册,加载,去注册,器件探测等能力。 + - 提供同一类型Sensor器件驱动归一接口, 寄存器配置解析操作接口,总线访问抽象接口,平台抽象接口。 +- 提供开发者实现的能力接口:依赖HDF驱动框架的HCS(HDF Configuration Source)配置管理,根据同类型Sensor差异化配置,实现Sensor器件参数序列化配置和器件部分操作接口,简化Sensor器件驱动开发。 + +Sensor驱动模型对外开放的API接口能力的具体实现参考[表1](#table203963834718): **表 1** Sensor驱动模型对外API接口功能介绍 +
@@ -202,22 +214,17 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考表3。 | - | - | -|
---|---|---|---|
- | -+ | ||
- | + | ||
- | + | ||
int32_t SetBatch(int64_t samplingInterval, int64_t reportInterval) @@ -242,613 +249,578 @@ Sensor驱动模型要求驱动开发者实现的接口功能,参考表3。 |