# MXOS 简介
MXOS 是一个基于微控制器的互联网接入操作系统,是一个开发物联网设备的理想软件平台。
MXOS 内含一个面向 IoT 设备的实时操作系统内核,特别适合运行在资源受限的微控制设备上。MXOS 包含了底层芯片驱动、无线网络协议、射频控制技术、应用框架,此外,MXOS 还包含了网络通信协议栈,安全算法和协议,及硬件抽象层,编程工具等开发 IoT 必不可少的软件功能包。
它提供 MCU 平台的抽象化,使得基于 MXOS 的应用程序 开发不需要关心 MCU 具体件功能的实现,通过 MXOS 中提供的各种编程组件快速构建 IoT 设备软件。
#关键特性
简单来说,MXOS 是智能硬件底层的一个开源软件系统,有先进的动态功耗管理技术,可灵活适用于广泛的 MCU,具有完整的云端接入框架和应用范例,支持多种类云平台,安全可靠,便于进行二次开发。
MXOS 关键特性如下:
- 支持多种网络协议栈:Bluetooth®low energy-蓝牙, Wi-Fi,并持续增加中;
- 多 RTOS 内核可选,并且提供标准的 OSAL 层;
- 支持 Cortex-M 架构系列微控制器,提供 MCU 平台级的抽象-HAL硬件抽象层接口,使应用程序在各个MCU平台上无缝移植;
- 全自动并且高效的功耗管理;
- 支持 IPv4/IPv6 的 TCPIP 协议栈,内置可商用的传输层安全协议 TLS 协议;
- 基于 MXOS 开发的大量云接入协议,使设备数据快速直达云端;
- 面向开发者的大量demos 示例程序和说明,可以快速上手;
- 提供代码管理与维护脚本工具-mxos cube,提供完整的开发工作流管理,集版本维护,协同开发,编译下载调试为一体;
- 提供一个集成开发环境-Vscode,高度可扩展性提升开发效率;
- 为组件化开发高度定制的编译系统,实现快速的软件集成;
- 配套提供完整的设备量产技术,如:Bootloader 引导程序,量产烧录,生产测试程序等;
#系统架构
简单来说,MXOS本身包括:接口,框架,核心功能和非核心功能四部分。
#接口
MXOS 定义了两套标准的 API 接口:
- 面向底层的硬件抽象层HAL API,方便操作系统和应用程序在不同硬件平台上的移植。
- 面向上层应用的接口函数 MXOS API,应用程序通过这些接口函数实现 MXOS 提供的各项系统功能。
通过这两层标准的 API 接口,使得 MXOS 系统独立于不同的硬件设备,也使得在 MXOS 上的应用程序可以保持独立。遵照这些接口的定义开发,可以保证系统和应用的兼容性。
#框架
MXOS 中的应用框架是我们从应用中归纳的一些开发范式,开发者在框架下开发,可以以规范的方式快速地实现应用的需求。
- 应用层框架:在不需要做任何代码编写的情况下,就已经实现了基本和必需的功能框架。当然开发者也可以通过设置和直接调用 API 的方法来实现特殊的运行流程。
- 硬件配置框架:当改变了硬件设备的连接方式后(如引脚修改),可以在板级配置中快速,简单地修改连接参数。
- 云服务接入框架:云接入协议组件也为应用程序提供了简单有效的应用框架,应用程序仅需要实现和应用相关的部分即可快速实现应用功能。
#核心功能
MXOS 系统包含的核心功能,提供了嵌入式设备在物联网开发时必不可少的功能。包括:
- 实时多线程内核;
- 网络通讯协议栈;
- Wi-Fi 网络接口管理;
- 安全加密算法和协议;
- 无线网络管理;
- 文件系统;
- MXOS 系统服务和框架(核心数据存储,通知系统,本地发现,Wi-Fi配网,本地配置,命令行接口等);
- MCU 平台硬件驱动;
#非核心功能
非核心功能为应用程序提供额外的支持,简化开发难度,这些功能有:
服务:在 MXOS 上长时间运行的功能代码,本身就可以实现特定的应用功能,例如,HTTP服务器,HomeKit服务器,DHCP服务器,DNS服务器,本地配置服务器(一些服务由于通用性,已经整合在 MXOS 的核心功能中)等。
通讯协议:符合标准的网络通讯协议,例如:MQTT协议,SNTP协议,HTTP和HTTPS协议,WebSocket,阿里智能云接入协议,以及常用的云接入协议,这些功能可以在应用或者服务中被调用,实现和对端的网络设备进行数据交互。
工具:这些软件模块实现一些常用的软件对象的处理和算法,如Json工具,可以实现Json数据包的构建和解析,String工具,可以实现字符串内容的各种常用处理,URL工具可以用于协议URL地址。这些工具的目的,就是为了简化应用程序的开发难度。
今后一些不重要的非核心功能将逐步从MXOS OS中剥离,提供独立的组件,由开发者有选择性地添加。
#其它优势
除上述主要特性,MXOS 还有一些特点成为它区别于其他平台的主要优势,如:
- 易用性:MXOS 本身脱胎于庆科信息10多年的物联网终端设备开发经验,不仅仅提供一个基础的软件平台,而是提供了大量的软件工具包,并以开源方式呈现,随着版本的升级不断扩充,在开发者平台上也不断有新的软件包可以提供分享。 低功耗:针对嵌入式平台进行优化,软件和硬件的紧密结合大大降低了设备的功耗。处理器和无线网络设备相互配合,均有独立的低功耗模式,并且在必要的时候唤醒对方完成必要的数据处理。
- 安全性:安全性是物联网可用性的保证,不安全的网络通讯不仅会引起各种用户隐私泄漏问题,还会导致对用户设备的网络攻击,损毁设备,最终摧毁整个物联网服务体系,MXOS内置常用的网络安全算法和安全协议,并在性能受限的嵌入式设备上优化,通过这些功能,可以保证网络通讯的安全和保密,使应用顺利地接入各种安全的云服务。
- 和云服务的紧密联系:MXOS本身就是实现物联网终端设备的基础软件平台,目的就是方便产品实现物联网的接入。因此,MXOS本身就提供了各种云服务的交互方法,可以方便的接入国内外常用的云平台,如Fog云,机智云,阿里智能云,微信,亚马逊,Azure等。
- 无线网络和工具:MXOS 的网络连接形式是无线的,保证终端设备的可移动性,也更易于部署。MXOS当前主要支持的无线形式是Wi-Fi,配合庆科信息的Wi-Fi通讯模块可以很方便地在嵌入式设备上增加无线网络功能,通过路由器接入 Internet。 为了方便用户设定无线网络参数,MXOS 可以提供业界最全面的无线网络配置方案,支持EasyLink,AirKiss,Soft AP,WiFi WAC,在同一个MXOS固件上可以同时配合微信,阿里小智,EasyLink等实现网络配置。此外,MXOS 还支持低功耗蓝牙通讯,配合EMW3239模块可以和其它蓝牙设备互联,实现物联网网关应用。
- 量产工具:基于 MXOS 的智能物联产品已经大量地进入千家万户,在此过程中积累了大量的生产测试经验,这些经验也都融合在 MXOS 中。MXOS 内置的测试模式,可以和庆科信息的生产测试系统配合,用于生产可靠的,可追溯的智能硬件产品。
此外,MXOS本身的代码经过了大量产品的验证,各种在量产中暴露的问题也都一一得以解决。可以说,MXOS 系统是可以帮助开发者实现产品批量的绝佳的系统解决方案。
#结语
MXOS 系统也在不断的发展中,我们和广大开发者一起,不断地将新技术,新功能整合进去。同时我们将更加专注 MXOS 系统的核心功能,为大家提供更加专业,更加可靠的基础平台。在架构上,通过新技术使得基于 MXOS 的软件更加模块化,开发更加自动化。我们会加大研发新型的嵌入式设备开发方法,提供统一的集成开发环境,调试工具,导入互联网行业的开发语言,进一步简化开发。同时大力发展 MXOS 软件的发布平台,使广大开发者能够在平台上开发,管理,分享各种软件模块。