メインコンテンツに移動

RXファミリのソフトウェアの歴史と今後の展望 #11 - Navigating the TCP/IP Implementation Challenges with RX Family -

画像
Hiroki Ishiguro
石黒 裕紀
主幹技師
掲載: 2023年10月5日

身近な電子機器がインターネットにつながり始めています。RXファミリといえば工場自動化用の装置などに多く採用されていますが、他には例えば空調設備やエレベータ制御や照明設備制御などのビルオート分野でも採用され、そのネットワーク機能が利用されています。

私は2003年入社以来、一貫してルネサスマイコン用のTCP/IPプロトコルスタックを開発してまいりました。

RXファミリ用 TCP/IPプロトコルスタック [M3S-T4-Tiny]
https://www.renesas.com/software-tool/tcpip-protocol-stack-m3s-t4-tiny-rx-family

その経験値から申しますとIoT化の課題は「TCP/IPをどのように実装するか」にあると考えています。

課題をさらに明確化してみます。Windows 95が発売された1995年頃、Windowsが動作するCPUの動作周波数は100~200MHzであり、2023年現在、RXファミリの主力製品であるRX65Nの最大動作周波数は120MHzとなっており、これは1995年頃に発売されたWindows 95が実行されるCPUの動作周波数(100~200MHz)と同等です。当時からWindows 95搭載のパソコンはSSL等の暗号通信を伴い、インターネットに接続されていました(実際にはSSL(現在はTLSと呼ばれています)が広く使われ始めたのは2000年代に入ってからです)。これを考えると、RX65N等のMCUでも、インターネットへの接続が可能であるはずです。
ですが、一定の先進的なユーザのみが自社製品のIoT化に取り組んでいる状況に思えます。そこには何らかの障壁があると考えられます。その障壁こそが「TCP/IPをどのように実装するか」であり、その対応方法としては「Windows 95のようなインターネット機能搭載のOSが普及する」となると考えます。

本ブログシリーズでたびたび紹介している通り、上記課題に対する対応策として、ルネサスではAWSおよびマイクロソフトとパートナーシップを結び、ルネサスマイコン向けのリアルタイムOS「FreeRTOS」「Azure RTOS」の開発を共同で進めてまいりました。

クラウドソリューションのページ:https://www.renesas.com/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus/cloudsolutions

今回は、「TCP/IPをどのように実装するか」について少し技術面にフォーカスして解説してみようと思います。TCP/IPを理解するための基本的な前提として、「OSI参照モデル」を挙げることができます。これはコンピュータネットワーキングに慣れている方にとってはお馴染みの概念かもしれません。コンピュータおよびその内部の電気信号そのものを表す物理層を第1層とし、第2層から第7層までをソフトウェアが扱うデータ処理を役割毎に階層構造化した概念です。 IoTデバイスで使われる主要プロトコルとその機能についても合わせて以下表にまとめました。

画像
OSI reference model

 

パソコンやスマートフォンなどの汎用的なOSが搭載されている電子機器の場合、第2層から第6層までの機能はOSに内包され、第7層: アプリケーション層の開発者にOS機能として提供されます。同様に、RXファミリを搭載したMCUベースの組み込みシステムでは、第2層から第6層までの機能は「FreeRTOS」や「AzureRTOS」のようなリアルタイムOSに内包され、第7層:アプリケーション層は開発者にOS機能として提供されます。従来はリアルタイムOSと第2層から第6層までの機能が分離され各ソフトウェアベンダから提供されていたため、このような状況では、ユーザーは第7層のアプリケーション開発に進む前に、基盤となる第2~6層の構築に取り組まなければならないという課題がありました。また、現状のWifi/セルラー等の無線モジュールの場合、第1~4層までが無線モジュール側、第5~7層までがMCU側というように、OSI参照モデル自体を異なるコンピュータ間で橋渡ししながら実装するというかなりアクロバティックな構成になっています。さらには、MCU側でも無線モジュール側でもTLSやTCP/IP等のデータ処理を行うためのCPUが必要となりシステム全体で消費電力において不利となります。また、MCU側でMQTTやTLSの実装を行う場合、無線モジュール側のMQTTやTLSは利用しないことになり、関連するプログラム格納用のメモリが無駄になります。

画像
Wireless Modules like WiFi or Cellular

 

Ethernetの場合はすでに第1層をMCU内蔵(信号変換部のみ外部チップ(PHYチップと呼ばれる))とし、第2~4層までをもMCU側でソフトウェアとするコスト最適な構成がここ10年間で市場に浸透したので、無線モジュールにおいても、同様の変化がこれから起きていくものと考えられます。

画像
Ethernet

 

今回解説したように、ネットワークシステムの構築は非常に興味深いものであるのと同時に、時代を追うごとに実現可能な最適な構成が移り変わっていきます。特に無線モジュールをMCUベースのIoTシステムで活用する場合は、OSI参照モデルを強く意識した設計が非常に重要となります。ルネサスとしては、常にお客様との対話を通じて時代に即した最良のソリューションを提供することを心掛けています。そのため、お客様がアプリケーション開発に注力できるよう、「FreeRTOS」「Azure RTOS」などのリアルタイムOSの開発に引き続き取り組んでまいります。

この記事をシェアする