TI教室 >
产品 >
无线连接 >
AliOS Things 和 TI Simplelink 的完美结合让物联网设计更加便捷 > AliOS Things 和 TI Simplelink 的完美结合让物联网设计更加便捷
- 课程目录
- 相关资源
- 课程笔记
今天很高兴参加TI的SimpleLink MCU的研讨会
今天的讲座主要会分为3个方面
一个是我们团队开发的 面对市场的AliOS Things的
回顾和主要特性的一个介绍 其次呢 AliOS Things不仅仅是
不仅仅是一个实时的操作系统 还包括一些网络特性
会简单介绍它包含了哪些网络特性 提供了哪些连接服务
最后与TI在无线方面一直有一个不错的积累
我会介绍ALIOS THINGS与TI的合作
谢谢大家
首先 对ALIOS THINGS做一个简单回顾
我们是2015年做的开发启动
然后经过两年的开发 终于在2017年10月在杭州举行的云栖大会
上发布 ALIOS THINGS 然后大部分开源
目前发布了六个版本以上 最新的版本是1.3.0
Github上已经有超过1100个关注
跟400个focus 大家感兴趣可以在Github上搜索
就可以搜到了
这里介绍了ALIOS THINGS的主要特性
左边是框架形式呈现出来
比如从下往上 都有哪些组件和模块
右边 ALIOS THINGS不仅仅是一个cornel部分 上面的一些器件
云端的SDK 还有自主研发的一些
代码仓库和组件
我们先看看左边的框图 最下面是它支持的一些
硬件 比如英特尔的IA32 64A 和ARM Cortex系列的A核
R核和M核 Xtense就是对主流的一些EXP32
和XP266的一些支持 Csky的话是对
阿里刚刚收购的一家公司 叫中天微自主研发的芯片的支持
以及对AI和一些安全芯片的支持 我们可以在上面
自定义上面的可执行环境
比如类似于RM的之列的
然后是我们可以对接不同的AOS
比如Rhino部分 Rhino是阿里自主研发的操作内核
可以对接各种嵌入的embedded Linux
到system 比如[听不清]等等之类
然后再往上 因为底下可以对接各种OS的抽象
所以可以做统一的封装 对上面做一个透明的抽象层
那这里就封装成APS的
一个API来做一些上层的性能服务
当然AliOS Things也提供了各种中间段服务
比如有一些远程系统的升级
比如firment update photo ATA
以及自主研发的私有的自主组织的一个网络协议
比如Umesh 它是基于WiFi或蓝牙
的file或麦克 可以提供自己的一些连接以及LV等等
此外 它还提供了一个通用的传感器框架
U data 是基于以前的sensor hub的模型
是一个框架 做一个上层的开发应用
它也提供了一个交换的引擎 比如Bone engine
这样我们可以用java script可以写一些简单的应用
对底层的硬件做一些简单的控制 比如你可以用java script写一个
[听不清] 就可以对接底层 做一个硬件的控制
除了这些外 我们端上的接点无非是为了上云
那AliOS THINGS也提供了一个上云的中间键
和云端连接和应用一体的服务
这样方便广大的第三方开发者
来更方面无缝的和阿里云做开发和应用
右边是它提供了一些额外的测试
还有生态运营的一些工具 这些工具的话
都是可以提供给第三方开发者方便使用
比如它有一个集成开发环境IDE
比如习惯Kell或IAR开发的一些同学
会用IED直接上手 它是一个可视化的界面
在上面可以做代码的调试 可以上传
可以去program 去upload 都是很方便
当然它也支持第三方对IDE的支持 比如Kell或者IAR
可以自动创建Krill和IAR的目录和项目
不需要我们手动添加所有的源文件
省去了麻烦的手动配置
此外提供了一个远程测试的环境
叫Udevice center
我们把各种各样的开发板做一个test bed
把test bed的能力对外输出
比如某个同学感兴趣 但手头没有很多开发板来做物联网的开发应用
就可以远程申请这个test bed
可以使用自出开发的集成环境
就可以控制编写一些应用程序 并且下载到您的
test bed里面的一些接点
最终形成物联网的一些应用 包括可以上云
跟云端进行通讯 等等
这一页就是大概总结一下
AliOS Things的一些主要特性
它不管是一体系还是整个代码的
模块化 还是IDE 它都是一个组件化的实现
比如你可以在自己的编译体系中选择你想编译的模块
比如我只能用到WiFi和BLE的一些连接功能
然后我们就可以只在的编译体系MAC file或者SCons里面
把你的跟WiFi或BLE匹配的模块
这样的目的是裁剪不需要的模块
让你的代码和image frame达到最小
另外就是我们可以无缝接入阿里巴巴的各项云服务
真正实现你的云端 你的边缘计算
你的机电端的一体化
另外一个重要的特性是可以提供各种丰富的组件
不仅仅是一个实时操作系统 比如刚才提到的
阿里云上传的umatch的连接
以及一个传感器的框架
这样都可以通过不同配置来满足不同的业务需求
包括一些商业的SDK的提供
这里是主要罗列了一些
ALIOS Things跟市场的一些操作系统
对比 就是从图中 我们可以看到
ALIOS THINGS支持的功能是比较多的
当然不仅是有一些传统的kernel的部分 还有一些
传统的协议栈 包括WiFi的配网
跟BLE的配网 所谓配网就是你的节点在
起来之后如何跟你的IP通信
从而知道这个IP可以这个节点通过云来连接
上云的服务 当然它也支持一些核心的协议
比如MQTT或者CoAP
MQTT是基于TCP的 COAP是基于UDP的
然后都需要TCP IP协议栈的支持
此外 uMesh的自助式网络呢 不仅是
不仅支持RB refrom还支持Rbb6
对物联网来说 地址是一个很有局限性的东西
比如RT thread已经不够用了 所以以后肯定是随着
RPB6基础设施的越来越完善 那肯定是
那个节点都会用到IP V6
也是6lowpan协议产生的一些应用
ALIOS THINGS也是支持一些语音交互能力
比如有一个服务叫做Link voice
就是我们可以直接调用link voice的IP R
然后就可以对你输入的语音做一些编解码
然后把编解码之后的语音传给云端
云端分析处理 然后回馈给节点端的能力
以及云连接的SDK 等等
有传感器的一个框架
此外 ALIOS THINGS对安全部分也有一个
就是特别的重视
这里看到它支持传统的TLS
以及可信执行环境的支持
以及ID2 它是阿里巴巴自主研发的一个轻量化的
认证系统 它的工作原理和传统的3A
其实差不多 但传统的3A是基于
证书 ID2是基于
24byte的一个字符串 是单向的
然后通过一系列的认证处理的话
是可以对节点做一个深度的身份处理
这里是主要介绍ALIOS THINGS的kernel部分
Rhino是一个实时的操作系统
这里是考虑到MCU对一些受限的
环境里面对资源有一些要求 比如说
ROM和RAM 在一个
单任务的环境或场景下 比如我们有一个简单的Y或E的空转
我们的ROM可以达到8个key byte
然后RAM只需要用到4个 key byte
它的终端延时也是可以达到1.5个微秒级别的
以及任务的延时可以达到2.5个微秒的级别
这是在业内比较领先的性能
这里是是介绍ALIOS THINGS提供的
传感器框架 我们把它叫做Udata
我们可以看到 它在最下面提供了丰富的传感器驱动
比如可以提供光感 引擎啊 加速器等等
这个传感器的驱动库里面
会有一些驱动器 比如你做一些操作
在上面我们封装出来一个sensor hail层
一个传感器的抽样层
这个是为了对接不同厂家提供的传感器类型
驱动 让我们提供一个统一的抽象接口
来为上层提供服务
抽象数据管理层主要是做了两个事情
一个是校准 因为你传感器上传上的数据
有可能是不太准确的 所以我们要提供一个较真
跟补偿算法 对输入的数据做一些处理
那它是通过一个VFS 一个虚拟文件系统
相当于我把每个传感器虚拟抽象成一个
文件 从而对文件做一些处理
这样是很方便用户对它做一些管理和处理的
那再往上 应用服务管理 就是我们会直接读取
抽象数据管理上报的一些数据
这些数据就是比较标准和统一的数据模型
这里等应用服务我们可以做一些上层的数据应用服务
比如我们可以做一些计步和定位的服务
比如我们可以用加速计和陀螺仪
上传的数据来计算你今天走了多少步
是计步的一个服务
再往上是对外的一些接口
比如有些客户可以定制化你自己对传感器的一些要求
或者对传感器做一些配置
Udata接下来的工作就是要
逐步增加工业领域的传感器的应用
以及工业领域对传感器基于IS485
或者2332上面的一些协议的一些传输层的更加丰富
另外ALIOS THINGS比较重要的就是
考虑到你的系统的远程升级部门 FOTA
format over the air
这里在远程升级里面 用到了一个叉分算法
就是类似于现在的apple
或者手机的图像的升级方式
我不用把整个系统的图像传输到你的节点端
这样会比较浪费你的带宽
我需要对比新图和旧图的一个不同
我们把这个不同叫做一个delta
我只需要把这个delta发给你的节点端
然后直接来处理你的旧图
来做一些更新
另外在FOTA中 我们把一个图拆分成多个
比如把一个图划分成三个部分 一个是application部分
另外是你的kernel部分 另外是你的framework部分
但是在我们大部分的场景下呢
我们的kernel部分和framework部分 不会经常用到升级
我们的application部分经常需要升级
这里我们把一张图划分成多个部分 初衷是
在一些低带宽和低速率的情况下
尤其是用电池供电的一些场景
因为做一次完整的图像升级是非常耗费电量
功耗以及带宽的
所以现在我们可以选择只升级一个application部分
或者我这次只升级一个framework部分
那尤其是对于BLE或LoRa
这样低速的网络做这样的一个升级处理
可能比你把整个图发过去
然后升级 会节省带宽 会更有效率一点
它不同的binary里面 它会在你的
都是在你的flash里面 但你的地址一定要
存在你的LD script里面 标记好说
我的这部分是从这里启动的 告诉你
这些不同的binary 下部分从哪个地方启动
从而把不同的图像储存成一个完整的图像
这页是对刚才那个
那个框图的最上面部分
就是云连接跟云端一体套件的
一个详细的阐述 比如说
link Kits我们可以把它简单理解为
对物联网领域的开发人员推出的快速上手的一个SDK
底层封装了MQTE的协议
不需要关心你的SDK是如何
publish或subscript的一些流程
我们只需要调用简单的IPI就可以把你需要的格式
发给阿里云上端 然后做一些解析
比如我们可以很简单的评价一个灯的应用
那灯的应用可能有两个属性 一个是[听不清]
这些都是你可以定义一个标准的结构体
然后这层把数据传过去
就可以很容易实现对阿里云的一个
灯的管理和控制
link voice就是我们刚才提到的
可以对物联网场景做一个智能语音服务
比如我们可以在节点调link voice提供的library
跟你的图文件 然后就可以去
把你想说的一些话做一些编解码
提供给阿里云 提供一些云控制
或者是语音点歌 语音信息查询的服务
Link WAN 主要是针对LORA网络
它是一个低功耗 远距离传输的一个
这样的一个协议 LINK WAN呢也是
把这样的一个服务提供给第三方的开发者
让他自由搭配跟LORA产品的终端产品和应用
形成一个快速和完整的解决方案
Link Edge是我们希望把一些
边缘计算 这样我们可以把一些
off load到一些边缘节点上
就是我不需要每一个大的运算都上传到云端
再做一些处理 将安全存储以及人工智能
优势拓展到边缘的话呢
可以更容易把一些边缘计算的能力
部署到边缘的资源比较多的一些
网关上或者计算能力比较好的一些
比如现在我们已经支持了在linux或者window上面
以及raspberry pi上面的一些计算的能力
其实我感觉我们把边缘计算
下放到计算能力比较强的地方的话呢
我们可以省去对云端的一个依赖
比如举例一个场景是我们的门锁
你可能跟你的边缘网关
这时候可能掉电 网络没有很好
没有到云端的一个连接的时候
同样用边缘网关对你的信号做一个处理
即使在网络不太好的情况下 你的门锁也不会打不开
这里就是介绍了我们的uDevice center就是我们的test bed
那我们每次开发提交的一个[听不清]
我们都会在这上面走一遍你所有的
PV测试 同时它也可以支持第三方的开发者
来申请你的access key
申请你想申请的一些开发板
跟数量 这样你通过使用
IDE 就可以很方便的控制你申请到的一些节点
做一些开发 看一些你最后的结果
这里是ALIOS THINGS提供的
一个开发环境 是基于VS code的
整个页面非常方便和简洁
可视化的 可以支持你的开发编译
以及调试
同时在界面上可以看到你申请的节点
那边会有主网的情形 比如在申请的节点间组成一个自助式网络
然后我们可以在这个IDE上看到拓扑的
结构 每个节点的地址
同时我们可以在IDE上做一些的操作来验证
你的节点和节点之间的流通性
这一部分是ALIOS THINGS提供的一个网络特性
我们可以看到在最左边的话呢
最上层是link
是我们刚才提到的上云的服务
中间是各种协议 比如我们支持WiFi NBLT
BLE ZigBee RORA
最下面是基于一些芯片
比如TI的CCA26
系列 以及其他各种各样的开发板
这是介绍ALIOS THINGS的一个uMESH自助式网络
架构 其实是一个私有的mesh网络协议
它应该是类似于thread的那种协议
支持WiFi BLE 802.15.4以及
它会基于ID2来完成设备认证跟秘钥的分发
让整个设备认证和秘钥分发都是和云端
连接的 不是在本地完成的
可以更加保护你的秘钥的分发过程
上面是提供了mesh API
来基于Lwave
LWIP的一个轻量级的RPV4V
的一个协议栈
再往上封装出各种socket的API
我们就可以做各种socket programing
比如发一个TCP的连接APP的连接等等
这张的话呢 是介绍socket adapter layer
SAL的话 我们设计这个模组
的初衷是应用于两个
SOC的情况
比如一个SOC跑ALISO THINGS
的部分 另外一个ALISO THINGS外接的一个模组
比如说是WiFi 或NB IOT
GPRS或者 这两个
SOC是通过两个URAT连接
可以在这个URAT上面跑一些AT cloud
然后用一个主传感器对这个
外接的模组进行一些控制
以及让它收发你想要的
流过的一些数据
目前我们已经支持WiFi
模组 还有NB lot和GPRS模组等等
最后一部分想简单介绍一下
ALIOS THINGS跟TI合作的一些进展
我们已经在CC3220上
完全接入ALIOS THINGS
也可以利用其他上云的服务来
接入阿里云link生活平台
BLE的芯片的话 我们正在移植CC2640
现在我们正在移植BLE 5.0的一些功能
如果移植完成之后的话呢
应该是能够无缝接入阿里云Link的生活平台
另外 所有支持ALIOS THINGS的TI的芯片
加入到Udevice center里面做一个完整的test bed
每个[听不清]都会走一遍TB测试
在TI的芯片上面 以及如何第三方的开发者
如果对TI的芯片感兴趣 也可以在Udevice center上申请
TI的芯片来做一些物联网开发的应用
后面应该有更多的连接芯片
来支持整个ALIOS THINGS
来做阿里云的对接
来打造阿里云的生态系统和TI的生态系统
完整的一个结合
最后 我想做一个简单的总结
就是我们做了那个ALIOS THINGS我们不仅仅想把它
做成一个简单的实时操作系统
我们希望它有更多的一些在物联网领域
更多的特性比如说你的
连接特性 你的
上云特性 这样的话 我们希望
能够把阿里云的一些资源
赋能给更广大的物联网的开发者
包括和一些MCU的厂商
比如TI 来共建这个生态
来繁荣物联网的一些生态
如果各位对ALIOS THINGS感兴趣的话呢
可以通过这个网站去访问更多的一些资源
也可以去github上watch或者
follow ALIOS THINGS的一个源代码
去做一些更详细的了解
好 谢谢大家
我今天的介绍就到这里
课程介绍
共计1课时,29分1秒
猜你喜欢
换一换
推荐帖子
- 请教下面的ADC12单通道单次转换的程序
- void main (void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗; P6SEL = 0x01; &...
- koenlee93 微控制器 MCU
- 搭建的MSP430F149电路不工作
- 投了块板子回来,结果不工作,不知道是不是画的原理图出错了,149在开发板上能工作,但放到我焊的板子上就不工作。元器件的焊接应该没问题,149使用的是XT2起振,附149原理图部分,现在怀疑是149外围电路搭建有问题。VCC3.3供电在3.2V左右,maybe you can help me,thanks. [ 本帖最后由 wzw134 于 2012-9-23 09:19 编辑 ]...
- wzw134 微控制器 MCU
- LM3S811DDLLXXRR笔记之九:IIC实现
- LM3S811用IIC的API十分方便,但一定注意顺序搞不好是搞不定的 对于IIC的读写一定要注意: 主机往IIC从模块里写或从IIC模块读出时一定要调下设地址函数, I2CMasterSlaveAddveset() 另外,尽量用中断,若不用中断注意延下时。 我的这个程序是写8字节到24c02,然后读出,若一...
- ddllxxrr 微控制器 MCU
- DSP2812 非法中断问题
- 自己做的DSP2812板子,出现如下问题:用合众达510PLUS仿真器链接上DSP,LOAD完.out文件,然后go main,到此系统都正常,这时如果点击全速运行(F5)程序立即跳到非法中断里面,每次重新加载都是如此。但是如果在main()中的while(1)之前的初始化部分加个断点,go main后点击全速运行,程序正常停在断点处,这是再继续点击全速运行,程序就可以正常运行了。每次加载后调试都...
- cools1860 微控制器 MCU