IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第37回は、現在は入手がほぼ不可能になってしまった「Nano-RK」を取り上げる。
本連載では、基本的に現在も入手可能なリアルタイムOS(RTOS)を取り上げるように心掛けてはいる(もう存在しないRTOSの説明をしても……ということでもあるし、そうしたRTOSではそもそも資料がないので、下手をすると名前しか分からないなんてこともある)のだが、今回はちょっとこの原則から外れたRTOSを紹介したい。
「Nano-RK」はCMU(カーネギーメロン大学)で開発されたセンサーネットワーク向けのRTOSである。このNano-RK、それなりにいろいろ使われたRTOSであったが、リリースは2009年7月15日が最後であり、公式Webサイト(http://www.nano-rk.org)も2019年1月までは存在した(インターネットアーカイブで確認できる)ものの、その後は消失している。悪いことに、リポジトリはGitHubなどではなくこの公式ページの下に置かれており、それもあって既にダウンロードそのものが不可能である。厳密に言えば、米ペンシルバニア大のxLabが公開しているGitHubのリポジトリの下にNano-RKのStable版が置かれているが、これはxLabが研究のために移植したNano-RKであって、本来のものと同じかどうかは不明である(おおむね一緒だとは思うのだが)。
Nano-RKは、CMUのAnand Eswaran氏とAnthony Rowe氏、その指導教官であった教授のRaj Rajkumar氏によって作られたRTOSである。当時のRajkumar氏はCMUのReal-Time and Multimedia Systems Labに在籍しており、同氏の指導の下、ここでEswaran氏とRowe氏が構築した(Eswaran氏はどうもこの論文で博士号を取得したらしい)のがNano-RKである。
当時、Real-Time and Multimedia Systems Labでは「FireFly」と呼ばれるセンサーネットワークの構築を行っていた。リンクの先でも確認できるが、自動車内部のような小さなものから、建物や工場、公共建築物、ちょっとした都市くらいまで、非常に幅広いレンジでメッシュ型のセンサーネットワークを構築しようというものである(図1)。
このFireFlyのセンサーノード(の1つ)が図2である。FireFlyはIEEE 802.15.6のトランシーバーを持ち、ショートレンジ(50〜100m)の距離で最大250kbpsの通信が可能である。また8ビットのMCUを搭載し、輝度/音声(多分騒音センサー)/温度/湿度/加速度の各センサーを利用可能である。あと、オプションでカメラの他にAM/FMトランシーバーを搭載可能で、これを利用して時刻同期を行うことも可能になっている。
図2のものは第1世代のFireFlyであるが、第2世代ではAM/FMトランシーバーに換えてデジタルRDBS(Radio Data Broadcast System)が搭載され、こちらでは小都市クラスの面積をカバーする時刻同期が可能という話であった。このFireFlyのセンサーノードに利用されていたMCUはAtmelのATmega128Lで、8KB SRAM/128KB Flashの構成。これにChipconのCC2420というIEEE 802.15.4のモデムを搭載していた。バッテリーは単3電池2本で1〜2年の電池寿命を持つ(どんなセンシングを行うか次第)という話であった。
余談だが、連載第17回で紹介した「RIOT-OS」がサポートする「Firefly Board」は、このFireFlyとは全く関係ない。
Copyright © ITmedia, Inc. All Rights Reserved.