引自《蓝牙笔记》公众号。
最近花时间看了一天AliOS-Things,看得出Ali雄心勃勃,想在IOT领域大展拳脚,一统江湖。
AliOS里也有自己的Kernel:Rhino(犀牛),以前没听过,不知道成熟度怎么样,建议Ali把熊大的RT-Thead尽早收归门下,RT-Thread已经支持的上百家Chip,可以直接变现成AliOS的资源,对推广AliOS大大有利,就不要自己艰难的花时间自己移植或是等chip厂商一个一个的接入了。RT-Thread也可以抱上Ali这颗大树,能快速成长。相比较AMZN的战斗就迅速有效的多,AMZN 为了加速推广自己的Alexa和AWS到IOT设备,直接购买了嵌入式市场市占第二的FreeRTOS(如下图),然后将AWS内嵌到FreeRTOS,这些已经支持了FreeRTOS的厂商的chip,如果要支持AWS,那是相当简单啊,AMZN这招真是高,有钱就是任性。从FreeRTOS v10开始,License直接改成MIT License,让你免费用。
整个AliOS-Things的目录架构,还是比较容易看懂的,比如:
Kernel里放操作系统以及无限连接协议(Wifi,BLE等)。
Platform是MCU厂商放code的地方(比如STM,C-Sky等)。
build是build流程相关的脚本。
Device是一些外围设备的接入点。
Board指的应该是开发板吧。
framework是给应用层使用的接口。
不过这层大部分用的是开源的代码,风格各异,乱乱的。如果要做好Framework层,建议把这层的接口统一下,提供一致的体验。
其他就不介绍了。
关于BLE,AliOS在Kernel下的Protocols目录下有个bluetooth文件夹下放了BT的协议栈的source code,这些code不是Ali自家的:
Host的code里Copyright有时写的是Intel,有时又写的是Intel 和 Nordic,没看懂,是Nordic收购了Intel的BT IP?看这份Host 的API跟Nordic自己官网上BLE协议栈API风格很不像,Nordic没有把自己的好菜端上来。
Controller的code里的Copyright也写了Nordic和另外一个公司的名字。
有看到三家蓝牙厂商已经有在支持AliOS:Nordic,乐鑫,庆科,不知道谁家的量产过产品,哈哈。
BLE chip支持AliOS-Things,可以从三个层级来接入:
直接接Framework里的ble app framework。
庆科mk3239是这么接的,Host/Controller都用庆科自己的,这样的优势很明显,Host,Controller都是自己的,做一些power上的优化也比较容易。
接Host下的BT driver层,Controller是Chip厂商的,Host是用AliOS里的Host。
乐鑫的ESP32是这么接,这样接起来要花不少功夫把Host 和 controller的配合搞好。不过ESP32这么做也是逼不得已,ESP32自己用的是裁剪过的Bluedroid,footprint很大,在IOT产品上没有优势。希望ESP32尽早能补齐自己的短板,ESP32 也算国产BLE+WIFI chip里的翘楚。
接Controller的BTdriver。
这个就只有Nordic能做到了吧。Controller里的scheduling是非常time critical的,跟HW相关性很大。如果要接Nordic的Controller,非常难。
后面再好好研究下BLE 的API的部分。
总之希望AliOS-Things能好好坚持下去,毕竟有个有钱的阿里爸爸,好办事。
网友评论