センサーノード向けに振り切りまくったRTOS「Contiki」が「Contiki-NG」へ進化リアルタイムOS列伝(16)(3/4 ページ)

» 2021年10月28日 10時00分 公開
[大原雄介MONOist]

センサーノードを構築するのに必要な要素はきちんとそろっている

 こういう制約がある一方で、先にも書いたがTCP/IPスタックやワイヤレススタックはちゃんと実装されているので、センサーノードを構築するのに必要な要素はきちんとそろっていることになる。もちろん、センサーノードというからにはセンサーとのI/Fが必要となる。ただソースを見る限り、I/Fを含むPeripheralはHALの形で抽象化はされているものの、それはライブラリレベルの抽象化であって、カーネルやドライバでは特に関与しているようには見えない。DMA転送などを煩雑に行うようなケースでは性能が出ない(割り込みハンドリングはそれほど高速にはできなそう)可能性はあるが、Port I/Oなどであれば別に問題はない。このあたりは完全に「センサーノード」向けに振ったことでの割り切りの結果、と言えなくもない。

 こうした割り切った構成は、そうしたニーズに向けた実装には便利という利点もある。Contiki自体はオープンソース(ライセンスはBSDライセンス:正確には三条項BSDライセンスが適用)で提供されており、パーソナルユースだけでなく商用利用も可能となっている。ターゲットとしても現時点でContikiではアーキテクチャとして、6502/Arm Cortex-M/Atmel AVR8/ARM7/MSP430/PIC32/ルネサスRL78/x86がサポートされており、特にArmに関してはTI/STマイクロ/Nordicの各MCUに幅広く対応している。面白いのはNXP Semiconductorsのサポートが薄いことだが、その代わり(?)にMC1322xという旧Freescale SemiconductorsのZigBee RF搭載のARM7ベースMCUがサポートされていたりするのはご愛嬌(あいきょう)だろうか。

 Contikiはその構造の簡単さもあって、特に新プロトコルのセンサーネットワークのテストベッドとして使われることも多く、また実際にトンネル火災のモニタリングシステム(図7)や侵入者検出システム、バルト海の海水モニタリングシステムなどさまざまな監視システムに採用されたり、他にも街路灯の管理やスマート電力メーターなどにも利用されたりしている。

図7 図7 「Contiki」を採用したトンネル火災モニタリングシステムの紹介 出所:web.archive.org

 開発チームもDunkels氏に加え、TI/Atmel/Cisco/ENEA/ETH Zurich(スイス連邦工科大学チューリッヒ校)/Redwire LLC/RWTH Aachen University(アーヘン工科大学)/Oxford University(オックスフォード大)/SAP/Sensinode/SICS/STマイクロ/Zolertia SLといった組織から開発者が集まってバージョンアップやメンテナンスを行っていた。ただそのDunkels氏自身は、2008年にはIPSOの立ち上げに関わっており、また2012年にはContikiをベースとした商用ソリューションを提供するThingsquareという会社を設立、現在もここのCEOである。もちろんThingsquareを立ち上げたからと言ってContikiを止めたわけではないのだが、メジャーアップデートは2011年に出てきたContiki 2.5が最後。その後、InstantContiki 3.0がSourceForgeなどに上がっているのだが、どうもこれはオフィシャルリリースではないようだ。

Copyright © ITmedia, Inc. All Rights Reserved.