背景・目的
RTOSを使った開発に興味があり、勉強中のエンジニアです。
IoTの普及に伴い、RTOSを使った開発もこれからどんどん増えていくのではという期待があります。
本記事では、IoT用途の組み込みソフト開発を念頭に置きつつ、各種RTOSの調査した結果を紹介します。
組み込みソフトのプログラミング手法
大まかに3つの手法に分類でき、各種手法の概要は以下の通りです。
- ベアメタル(OSなし)
- シングルタスク(main関数)+割り込みで設計・実装されたプログラム。
- OSを搭載するリソース(ROM,RAM)がない場合や、そもそもOSが必要ない場合に採用されます。
- 汎用OS
- 組み込みLinuxOSが搭載されたもの
- 携帯やカーナビなど、組み込み機器の中では比較的高機能な製品に採用されているようです。
- UNIX系のミドルウェアを流用でき、開発環境が充実しているため、開発効率が高い。
- RTOS
- その名の通り、リアルタイム性を重視したOS。
- 汎用OSと比べ、比較的低リソースで利用可能です。(物によりますが)
- マルチタスクなプログラミングが可能で、時間制約の厳しいタスクを優先度を高く設定することで、リアルタイム性を担保できます。
- 時間制約の厳しい処理(例えばモータ制御など)が必要とされる一方で、他の機能も並行して処理しなければならない(外部通信など)場合に有用です。
組み込み開発において、どの手法が最適解かを検討することは大変興味深いトピックであり、慎重に検討すべきですが、
安価なIoTデバイスの普及を考えた場合、直感的にRTOSの採用率は今後増えていきそうです。
各種RTOSとその動向
本記事では、「IoT」にフォーカスし、個人的に気になったトピックを紹介することとします。
(RTOSそのものの性能比較等は別途調査したいと思います。)
TRON系
概要
国産のOSで、1984年より活動が開始し国内の家電製品や自動車製品などに広く採用されています。
2018年の調査では、シェア率は60パーセントにも及ぶとのこと。
第一世代であり、最も広く普及している「μITRON」と、第二世代の「T-Kernel」があり、
TRON系の派生OSとして有名なものに「TOPPERS」があります。
IoT関連トピック
-
IoT機器標準用のプラットフォーム「IoT-Engine」を開発
- IoTエッジノードとして利用することを想定
- T-Kernelの省リソース版に当たるμT-Kernel2.0 OSを搭載
- LoWPAN対応
- 高度な機能はクラウドに任せ、エッジデバイスのリソースを最小限にする構成
- エッジデバイスは特定のクラウドに直結することを前提とすることで、セキュリティコストを下げる
- クラウド上でエッジデバイスを総体的に管理する。
- 複数の半導体メーカーと手を組み、様々な製品との相互連携を実現
FreeRTOS
概要
RealTimeEngineers社にて開発、運営されているオープンソースのOS。
ライセンス形態がGPLのため、商用利用に難がありましたが、
2017年にAmazonに買収され、MITライセンスとなったことで利用しやすくなりました。
IoT関連トピック
AWSとの連携を容易にする、各種ミドルウェアが標準搭載された「AmazonFreeRTOS」がリリースされています。特徴は以下の通り。
- TLS v1.2
- MQTT通信プロトコル
- BLE通信によるモバイル端末との接続
- OTA(無線アップデート)機能
IoTデバイスとして必要なコンポーネントは一通り揃っており、開発者はアプリケーションの開発に集中することができそうです。
MbedOS
概要
ARM社が運営している開発プラットフォーム、「mbed」上で搭載されているOS。
「CMSIS-RTOS-RTX」と呼ばれる、標準仕様に準拠し実装されたOSです。
(そもそもCMSISはARMが決めている規格なので、ARM社が開発したOSがそれに準拠するのは必然ですが)
MbedOSの他に「CMSIS-RTOS_RTX」に準拠したOSとして、「Keil RTX」があります。
ライセンス形態は、Apache2.0です。
IoT関連トピック
AmazonFreeRTOSと同様、IoTに必要となるミドルウェアが一通り提供されており、
IoTデバイスを開発する上での優位性はかなり高そうです。
- TLS v1.2
- BLE
- Wi-Fi
- LoWPAN
また、IoTデバイス管理向けのクラウドプラットフォーム「Pelion」と連携することで、HTTP通信を介した、デバイスの接続管理や、データ取得、OTAを実現できるようです。
ThreadX
概要
ExpressLogic社にて開発されたOS。
オープンソースではないため、ライセンス契約の上での利用となります。
フットプリントが最小構成で2kBとかなりコンパクトで、省リソースのCPUでも利用が可能。
IoT関連情報
2019年4月にMicrosoft社に買収されており、今後はAzureとの連携に注力していくことが予想されます。
まとめ
- IoTに必要な通信系のミドルウェアは充実しつつある
- RTOSとクラウドプラットフォームの1パッケージ化が進んでいる
- 各社クラウドプラットフォームのシェア拡大のために、RTOSもどんどん拡充されていきそう