摘要:   uData框架设计之初的思想是基于传统sensorhub概念基础之上的,结合IoT的业务场景和AliOS Things物联网操作系统的特点设计而成的一个面对IoT的感知设备处理框架。

点此查看原文:http://click.aliyun.com/m/40592/

uData诞生背景

  uData框架设计之初的思想是基于传统sensorhub概念基础之上的,结合IoT的业务场景和AliOS Things物联网操作系统的特点设计而成的一个面对IoT的感知设备处理框架。uData的主要目的是为了解决IoT端侧设备传感器开发的周期长、应用算法缺少和无云端数据一体化等痛点问题。

uData概要介绍

  uData设计之初是遵循分层解耦的模块化设计原则,其目的是为了让uData根据客户的不同业务和需求组件化做移植适配。下图是当前架构模块图,主要分kernel和framework两层,kernel层主要是负责传感器驱动,硬件端口配置和相关的静态校准,包括轴向校准等;framework层主要是负责应用服务管理、动态校准管理和对外模块接口等。

uData关键模块说明

uData,目前主要有三大模块支撑整个架构。其他模块均可以按照业务需求进行组件化配置或者增加新功能。


uData数据表

当前uData的框架中分别有三张数据表,应用服务表、抽象数据表,物理传感器表。

uData数据类型

uData主要分两种类型的数据,一种是uData的应用算法数据类型,开发者和外部模块也只和这类型的数据进行通信和交互;另外一种是物理传感器数据类别,存在于kernel的sensor驱动层,并和uData framework层进行通信和交互,暂不对外。一般情况下,每一个应用算法服务数据会订阅一个物理传感器数据,也可能一个应用算法数据基于多个物理传感器数据。

/* uData应用算法数据类型 */
typedef enum
{UDATA_SERVICE_ACC = 0,     /* Accelerometer */ UDATA_SERVICE_MAG,         /* Magnetometer */UDATA_SERVICE_GYRO,        /* Gyroscope */UDATA_SERVICE_ALS,         /* Ambient light sensor */UDATA_SERVICE_PS,          /* Proximity */UDATA_SERVICE_BARO,        /* Barometer */UDATA_SERVICE_TEMP,        /* Temperature  */UDATA_SERVICE_UV,          /* Ultraviolet */UDATA_SERVICE_HUMI,        /* Humidity */UDATA_SERVICE_HALL,        /* HALL sensor */UDATA_SERVICE_HR,          /* Heart Rate sensor */UDATA_SERVICE_PEDOMETER,   UDATA_SERVICE_PDR,     UDATA_SERVICE_VDR,UDATA_MAX_CNT,
}udata_type_e; 
/* uData物理传感器数据类型 */
typedef enum{TAG_DEV_ACC = 0,   /* Accelerometer */TAG_DEV_MAG,        /* Magnetometer */TAG_DEV_GYRO,      /* Gyroscope */TAG_DEV_ALS,        /* Ambient light sensor */TAG_DEV_PS,         /* Proximity */TAG_DEV_BARO,       /* Barometer */TAG_DEV_TEMP,       /* Temperature  */TAG_DEV_UV,         /* Ultraviolet */TAG_DEV_HUMI,       /* Humidity */TAG_DEV_HALL,       /* HALL */TAG_DEV_HR,         /* Heart Rate */TAG_DEV_SENSOR_NUM_MAX,
} sensor_tag_e;

物理传感器介绍

当前uData所支持的都是基于MEMS传感器(微机电系统,Microelectro Mechanical System)来设计实现的,下表是对现有的传感器做一个简单的介绍,可以增加对整个文档的理解和uData的认识。

uData开机流程

在本章节中,涉及介绍uData的开机流程。主要是从系统开机,到内核初始化,sensor初始化,framework初始化再到uData的framework初始化。也可以从下图中可以清楚的了解到整个初始化过程。

uData模块间通信模式

当前的uData模块间通信是基于AliOS Things的yloop异步处理机制的。当前uData所支持的异步事件按如下所示,也可以在includeaosyloop.h中查阅相关信息:

/** uData event */
#define EV_UDATA                           0x0004
#define CODE_UDATA_DEV_READ                1
#define CODE_UDATA_DEV_IOCTL               2
#define CODE_UDATA_DEV_OPEN                3
#define CODE_UDATA_DEV_CLOSE               4
#define CODE_UDATA_DEV_ENABLE              5
#define CODE_UDATA_DEV_DISABLE             6
#define CODE_UDATA_SERVICE_SUBSRIBE        7  /* 目前用于外部组件的订阅,如数据上云业务 */
#define CODE_UDATA_SERVICE_UNSUBSRIBE      8  /* 目前用于外部组件的退阅,如数据上云业务 */
#define CODE_UDATA_SERVICE_PROCESS         9
#define CODE_UDATA_SERVICE_IOCTL           10
#define CODE_UDATA_REPORT_PUBLISH          11 /* 当uData数据准备好之后,会广播事件通知相关的外部模块 */

在uData框架的framework层,目前设计了一个任务调度器(uData_service_dispatcher)和一个定时器(g_abs_data_timer)来实现整个uData的通讯机制。

数据读取方式
轮询方式(POLLING) :基于定时器发起的方式。
中断方式(PUSH/INT):基于传感器中断发起的方式。
一般业务,基本以轮询方式来读取数据都能满足业务需求,中断方式基本用于低功耗管理,系统唤醒等业务居多,比如基于加速度计的系统唤醒机制。


根据上面的各模块介绍,汇总了下图来描述了对整个uData框架的整体实现和通讯机制的理解和认识。

uData框架小结

本文主要是从uData的软件设计实现方面来实现。关于uData移植,sensor驱动开发等请参考其他相关的文档。

一种基于AliOS Things的uData感知设备软件框架相关推荐

  1. 一种基于“spark lite”和“按键自动精灵”软件的不间断跑流量方法

    本文目录 1 问题背景 2 解决方法 3 软硬件需求 4 实现步骤 4.1 spark lite软件测试 4.2 按键自动精灵软件安装设置 4.2.1 开启软件权 4.2.2 新建任务 4.2.3 运 ...

  2. 南京计算机学校李鑫,南京邮电大学李鑫等:一种基于参数扰动的芯片成品率双目标优化框架...

    原标题:南京邮电大学李鑫等:一种基于参数扰动的芯片成品率双目标优化框架 目的: 基于工艺参数扰动及环境参数扰动,实现对芯片漏电功耗成品率及芯片时延成品率的双目标优化,得到分布均匀的帕累托优化解集. 创 ...

  3. 一种基于分层设计的小家电控制板通用程序框架

    本文设计了一种基于分层设计的小家电控制板通用程序框架.分层设计有以下优点: (1)降低系统复杂度.由于每层都是相对独立的,每层可以单独实现. (2)隔离变化.通过分层设计,可以把变化的部分独立出来,让 ...

  4. 抽取+生成:一种基于背景知识的参考感知网络对话模型

    「论文访谈间」是由 PaperWeekly 和中国中文信息学会社会媒体处理专委会(SMP)联合发起的论文报道栏目,旨在让国内优质论文得到更多关注和认可. 目前,对话系统(Dialogue System ...

  5. STM32一种基于NTC的控温电路及软件实现

    NTC(Negative Temperature Coefficient)是一种随温度上升时,电阻值呈指数关系减小的热敏电阻.应用广泛,最近我们就采用了NTC来控制加热并测温,并达到了预期的效果. 1 ...

  6. 基于机器学习的网络安全态势感知

    人工智能技术与咨询 点击蓝字 · 关注我们 来源:<计算机科学与应用> ,作者杨怡等 关键词: 机器学习:态势感知:关联分析:攻击场景重建 摘要: 摘要: 在传统网络防御手段抵御攻击的基础 ...

  7. 大数据催生智慧园区_基于人工智能的智慧园区异构设备统一接入方法与流程

    [技术领域] 本发明涉及智慧园区建设技术领域,尤其涉及基于人工智能的智慧园区异构设备统一接入方法. 背景技术: 智慧园区是一种以互联网.物联网.云计算.大数据等先进信息技术为支撑,在信息服务等各个环节 ...

  8. 论文笔记-基于代码属性图和Bi-GRU的软件脆弱性检测方法

    一.摘要 ​提出了一种基于代码属性图和Bi-GRU的软件脆弱性检测方法.该方法通过从函数的代码属性图中提取出抽象语法树序列.控制流图序列作为函数表征的表征方式,减少代码表征过程中的信息的损失,并通过选 ...

  9. PU-Net:一种基于数据的3D点云上采样网络

    点击上方"视学算法",选择"星标" 干货第一时间送达 论文下载: https://openaccess.thecvf.com/content_cvpr_2018 ...

最新文章

  1. Codeforces 997 C - Sky Full of Stars
  2. 皮一皮:落伍了落伍了
  3. java 数据结构详解,数组,集合,HashMap
  4. 5g算法matlab怎么用,使用 MATLAB 开发 5G NR 设计
  5. Win7 格式化U盘
  6. 树莓派python界面编程_玩转树莓派-RaspBerry,使用Python开发定制界面
  7. 美女,真的有标准吗?
  8. java实现生成pdf_详解Java生成PDF文档方法
  9. vue+高德地图 点击地图获取经纬度和详细地址
  10. MySQL练习题(经典50题)
  11. 单片机基础:MCS-51单片机的硬件结构(附硬件结构框图)
  12. Python可视化:python画图字体设置
  13. 《史蒂夫乔布斯传》部分读书摘录
  14. 多元相关与回归分析及R使用
  15. iOS和安卓的base64
  16. HDU1864 最大报销额 01背包
  17. 《闲扯Redis九》Redis五种数据类型之Set型
  18. eclipse新建项目没有src解决办法
  19. 通达OA使用手册(一)
  20. 【五六七人口普查】我国省市两级各行业门类人口及三次产业人口比重

热门文章

  1. python训练手势分类器_python-Keras分类器的准确性在训练过程中稳定...
  2. python合并视频和音频_真没想到,Python 还能实现 5 毛特效
  3. 【LeetCode笔记】394. 字符串解码(Java、递归、栈)
  4. 在线ajax测试,在线测试 - SosoApi,简单强大的api接口文档管理平台
  5. cplex安装_Excel软件规划求解工具的安装与功能介绍
  6. element ui 多个子组件_ElementUI 技术揭秘(2) 组件库的整体设计
  7. matlab 函数 命名参数,如何处理MATLAB中的函数参数的名称/值对
  8. 这套网红试卷火了!数学老师您应该是文案出身吧?
  9. centos普通用户修改文件权限_Linux实战014:Centos创建用户并添加root授权
  10. unixODBC的使用