世界規模の宇宙センシング技術

次世代ネットワークIOWN(アイオン)で紹介した、低軌道人工衛星と無線免許不要IoTデバイス(LPWA:Low Power Wide Area端末)の宇宙センシング実証実験が2024年度に予定されています。

この宇宙センシング技術は、世界中で低コストIoTデータの衛星センシングを可能にします。

低コストIoTデータ衛星センシングプラットフォーム

衛星センシングプラットフォームとLPWA端末(出展:NTT技術ジャーナル2022.10)
衛星センシングプラットフォームとLPWA端末(出展:NTT技術ジャーナル2022.10)

従来の世界規模データセンシングは、専用衛星や免許が必要な専用無線周波数を使うため高価です。

NTTとJAXA(宇宙航空研究開発機構)が2024年度打ち上げ予定の革新的衛星技術実証4号機は、地上用のLPWA端末の免許不要無線周波数:920MHz帯、送信電力:0.1W程度を介して低軌道衛星と通信します。

この通信により、LPWA端末の小容量データを世界規模で収集できる低コストIoT衛星センシングプラットフォームの実証実験が可能です。

LPWA端末

LPWAは、低消費電力、低ビットレート、広域カバレッジが特徴で、その端末の多くは無線免許が不要です。

この地上用LPWA端末を、通信網が無い山間部や河川、海上など世界中のあらゆる場所へ設置しても、衛星を介したグローバルなIoTデータセンシングが可能になります。

気象データ収集や防災対策など多くの新しいIoTサービスへ発展する可能性は大きいでしょう。

技術実証イメージ(出展:NTT 2023年2月10日)
技術実証イメージ(出展:NTT 2023年2月10日)

地上のLPWA端末と低軌道衛星との通信は、シンプルです。LPWA端末の測定データは、衛星搭載メモリへ一時蓄積され、衛星の基地局上空の飛来タイミングで蓄積データが一括ダウンロードされます。

LPWA端末には、衛星からのコマンドによる再起動処理などが必要になるそうです。

宇宙ビジネス

多くのIoTセンサを組込んだスマートホームICTインフラへも応用できそうです。スマホ衛星通信も可能な時代です。ソニーは、2050年50兆円市場との試算もある地球みまもりプラットフォーム向けエッジAIカメラセンサを開発しました。

地球みまもりプラットフォームコンセプト(出展:ソニーR&Dセンタ)
地球みまもりプラットフォームコンセプト(出展:ソニーR&Dセンタ)

2030年実現を目指すIOWN(Innovative Optical and Wireless Network)により、従来通信網制約や国境の枠を超えた新しいIoTサービスや宇宙ビジネスが期待できそうです。

IoT MCU開発者は、革新的衛星技術実証4号機の打ち上げも注目しましょう。



8/16ビットMCU置換えを狙う32ビットMCU

半導体不足が続いています。対策として、8/16ビットMCU置換えを狙った、汎用低コストの新しい32ビットMCUを2種紹介します。

STマイクロ:STM32C0シリーズ

STマイクロ、2023年1月12日、低価格なSTM32C0シリーズ(Cortex-M0+:48MHz、Flash:16K/32K、RAM:6K/12K)を発表。

STM32C0とSTM32G0の位置づけ(出展:STMサイト)
STM32C0とSTM32G0の位置づけ(出展:STMサイト)

ルネサス:RA2グループ

ルネサス、2021年10月13日、省スペース低消費電力向けにRA2E2グループ(Cortex-M23:48MHz、Flash:64K、RAM:8K)を、RA2シリーズへ追加。

RA2E2評価ボードのMCU基板アートワーク
RA2E2評価ボードのMCU基板アートワーク

8/16ビットMCU置換え最新32ビットMCU特徴

  • 少数ピン/小型パッケージ
  • 小容量Flash/RAM
  • 低消費電力
  • 低価格(8/16ビットMCUと同等)

8/16ビットMCU置換えを狙う32ビットMCU特徴です。置換え32ビットMCUと言えば、古くからNXP:LPC800シリーズが有名なので、本稿は省略しました。

動作周波数が高くても、Sleepなどの超低消費電力動作時間も長く、実働消費電力は驚くほど小さくなります。また、古い8/16ビットMCUよりも入手性に優れます。

置換え32ビットMCUメリット

旧MCU開発は、周辺回路ドライバなども自主開発することが多く、ドライバとアプリケーションの境界も開発者毎にバラバラでした。最新MCU開発は、ドライバはベンダHAL API生成ツールが自動生成します。

その結果、開発者は、アプリケーション開発に集中でき、ソフトウェア開発費も安くなります。

※HAL API:MCUハードウェアに依存しない(Hardware Abstraction Layer)API。シリーズ/グループが異なっても開発アプリケーション流用が容易。

既に実装済みの旧8/16ビットMCU機能を最新32ビットMCUへ置換える時も、この最新MCU開発環境が使えるため、効率的なソフトウェア開発が可能です。更に、置換えだけでなく、新機能追加、IoTやセキュリティなど高機能アップグレートも容易です。

最新汎用32ビットMCUは、半導体不足にも有効です。紹介したSTマイクロ、ルネサスいずれも、上位MCUへの置換えが可能な基板アートワークができるピン配置を採用しています。

つまり、IoT時代に合わせた開発スキルやソフトウェア発展性があり、基板ハードウェア持続性も期待できるなど、8/16ビットMCU置換え汎用32ビットMCU採用には、多くのメリットがあります。

STM32G0テンプレート、RAベアメタルテンプレート

STM32C0シリーズ開発には、STM32G0Xテンプレート、RA2グループ開発には、RAベアメタルテンプレートがお役に立てます。



持続可能MCU開発

半導体不足やサプライチェーン変化など様々な外部要因により、やむをえず開発中のMCUデバイスが変わる場合があります。MCU開発を持続可能にする1案を示します。

MCUと制御対象分離

MCUデバイスが例え変わっても、MCUと制御対象間のインタフェースが同じなら開発の持続は可能です。

もちろん開発ツールや制御APIは、MCUベンダやデバイスで異なります。しかしながら、開発した制御シーケンスや注意点などの取得済み開発ノウハウは、そのまま新しいMCUデバイスへも適用できます。

簡単に言うと、頭(MCU)と手足(制御対象)、目などのセンサ入力を分離し、万一の際に、頭(MCU)交換が可能な分離インタフェースを使ってMCU開発することです。

本稿はMCU互換性に主眼を置きますが、分離インタフェース採用で制御対象やセンサも交換可能です。

つまり、機能単位の高性能化、低価格化も分離インタフェース導入で容易になります。

分離インタフェース多数派

PMODインタフェースとPMODモジュール(出展:RS DesignSpark)
PMODインタフェースとPMODモジュール(出展:RS DesignSpark)

MCUと制御対象を分離するインタフェースも色々あります。例えば、PMODです。

センサやアクチュエータから成る既製PMODモジュールを、Lego™ブロックのように連結し制御対象の機能追加ができます。連結実現のため、I2CやSPI利用が基本です。

別例が、Arduinoです。

多くの主要ベンダMCU評価ボードにArduinoコネクタが採用中です。右下に示すように、デジタル入出力ピン、アナログ入力ピンなど、ピンが物理的に機能分離しています。

ArduinoコネクタコンパチブルMCU評価ボード例
ArduinoコネクタコンパチブルMCU評価ボード例

既製Arduinoモジュールも多く、しかも安価に入手できます。また、機能別ピンのため、手持ちセンサなどを接続し動作を試すのも簡単です。

元々はArduinoやRaspberryなどのMPU(Micro Processor Unit)向け分離インタフェースでしたが、シンプルで使い易いためMCU評価ボードにもArduinoコネクタ適用例が多く、分離インタフェースの多数派となりました。

Tips:MCU端子は、複数機能から選択が可能です。そこで、Arduinoピン機能を優先して選択し、この選択した端子から先に使用すると、MCU交換時の互換性が高まります。

Arduinoプロトタイプシールド

Arduinoモジュールは、別名シールドと呼ばれます。シールドを複数スタック接続し機能追加も可能です。

MCU評価ボードのArduinoコネクタにスタック接続し、付属する小型ブレッドボード上で簡単な回路も追加できるプロトタイプ向けのシールドが、Arduinoプロトタイプシールドです。

Arduinoプロトタイプ シールド
Arduinoプロトタイプ シールド

このシールドには、2個のLEDと1個のSWが実装済みです。MCU評価ボードへ、LEDやSWを簡単に追加でき、手持ち部品などを使ってプロトタイプ開発する場合に最適だと思います。

評価ボードへArduinoプロトタイプシールドを追加しスレッド毎にLED点滅中
評価ボードへArduinoプロトタイプシールドを追加しスレッド毎にLED点滅中

まとめ:持続可能MCU開発

世界平和やサプライチェーン変化などの外部要因により、開発中のターゲットMCUデバイスやベンダが変わる場合がありえます。

万一MCUデバイスが変わっても、MCU開発を持続可能にするため、各ベンダMCU評価ボードに多数採用のArduinoコネクタを使ったMCUと制御対象分離構成を示しました。

Arduinoプロトタイプシールドを、プロトタイプMCU開発に適す使用例として示しました。



技術者と世界平和

2022年最後の投稿、つまり、週番号が追加されたMint 21.1 MATE Week 52の金曜投稿です。

Mint 21.1 MATEはカレンダに週番号が追加
Mint 21.1 MATEはカレンダに週番号が追加

ロシアのウクライナ侵略から始まった2022年は、世界平和と技術者の関連性を強く感じました。Rapidusなどの半導体新会社設立や、クリエイタ的エンジニア米中対立も根底には平和への危機感があると思います。

技術者の役割も、セキュリティやフィッシング詐欺など攻撃対策の比重が増すかもしれません。インターネットでさえ、グローバルオープンからブロック化の兆しが見えます。IoT MCUやMPU/CPU、Windowsなどの技術者開発基盤もまた、セキュリティがトリガになり発展しそうです。

個人的には、ケアレスミスの多い年でした。何らかの追加対策(?!)が必要と感じています。

さて、本年も本ブログ、および、弊社テンプレートをご利用頂きありがとうございました。
また、各位から頂いた様々なアドバイス、この場を借りてお礼申し上げます。ありがとうございました。

皆様、よいお年をお迎えください。



次世代ネットワークIOWN(アイオン)

What's IWON(出展:NTTサイト)
What’s IOWN(出展:NTTサイト)

IOWN(Innovative Optical and Wireless Network)は、2030年実現を目指すNTTの次世代ネットワークです。

IOWN技術

大容量、低遅延の光伝送路。ネットワーク遅延や揺らぎ無し。データドリブン将来社会のデータ量や消費電力増加を解決。キーテクノロジが「光電融合デバイス」、などなど実現技術に興味がある方は、コチラの記事で解ります。

IOWNサービス

IOWNが提供するサービスの一例が、コチラの遠隔医療記事です。IOWNは、ネットワーク本来の目的、離れた場所との距離を感じさせない通信を提供します。

既存ネットワークで遅延や揺らぎが生じるのは、電気信号と光信号の変換回数が多いためです。電気に比べ減衰が少ない光伝送と、光と電気を融合した光電融合デバイス、これらにより電気と光の変換回数を減らし、IOWNのオールフォトニックス・ネットワーク(APN)を実現します。

APNは、低消費電力で大容量、高品質、低遅延で揺らぎの無い理想的な伝送サービスを提供します。

さらに、WirelessのIOWNは、宇宙空間や海中でも接続します。低軌道人工衛星を用いた宇宙RAN(Radio Access Network)や、地上IoT端末と衛星を接続する宇宙センシング、さらに、海中での高速無線通信による水中ドローンなども2030年頃のIOWN 4.0で可能になります。

早くもAMDは、宇宙空間でAI処理ができる宇宙グレードSoCの信頼性評価を完了しました。

宇宙統合コンピューティング・ネットワーク(出展:SKY Perfect JSATサイト)
宇宙統合コンピューティング・ネットワーク(出展:SKY Perfect JSATサイト)

TRONプロジェクトリーダ:坂村健氏も注目

2022年11月25日の記事では、TRONプロジェクトリーダ:坂村健氏が、多くのIoTセンサを組込んだスマートホームなどのICTインフラに、電力効率100倍、伝送容量125倍、レイテンシ200分の1のIOWNが大きなインパクトを与えると語ったことが記載されています。

スマートホームでこれほど高速、大容量の公衆ネットワークが安価に使えると、個人のPCストレージは、もはや全てクラウド上に置くことも可能な気もします。

IWON特徴(出展:NTTサイト)
IOWN特徴(出展:NTTサイト)

IOWNと2030年

2030年まであと8年。リモートワークや移動時、遠距離でも低電力、大容量、低遅延、遅延揺らぎ無しの通信ニーズは、今後益々高まります。

IOWNが、これらニーズを満たし現状ネットワークの様々なボトルネックを解消した新たなサービスの実現、開発インフラになりそうです。IoT MCU開発者もまた、IOWNと2030年に向けた進化が必要です。

関連投稿:2030年のエンジニア



Rapidus(ラピダス)

Rapidusロゴ2022年11月11日、経産省キモ入りの日本国内8社(キオクシア、ソニー、ソフトバンク、デンソー、トヨタ自動車、NEC、NTT、三菱UFJ銀行)から成る次世代半導体(Beyond 2nm)製造会社:Rapidus設立(ITmedia)の記事は、世界と国内の半導体製造「10年遅れ、先端ロジック分野後進国」を取り戻すには、「異次元の取組みが必要」と報じています。

RapidusとLSTC体制で2030年までに市場規模100兆円目指す

次世代半導体プロジェクトはRapidusとLSTCの2本立て(出展:経産省サイト)
次世代半導体プロジェクトはRapidusとLSTCの2本立て(出展:経産省サイト)

年内に半導体技術の研究開発拠点:LSTC(Leading-edge Semiconductor Technology Center)も立上げ、研究開発はLSTC、製造はRapidusの2社体制で2030年までに市場規模100兆円を目指すそうです。

過去との差分

Rapidusが過去の半導体ファウンドリー設立と異なる点は、半導体ユーザ企業(ソフトバンク、デンソー、トヨタ自動車、NTT)が各10億円出資して参加している点と、Rapidus経営陣メンバーの本気度が高いことだそうです(2022年11月11日、日経xTECH)。

上記記事は、新会社への期待と不安も示しています。弊社も、RapidusとLSTCに注目していきたいと思います。

周回遅れの日本国内ワクチン産業との類似性

変異型COVID19と対応ワクチン
変異型COVID19と対応ワクチン

世界と国内の「10年遅れ」と類似する事象に、COVID-19国内ワクチン開発が「周回以上の遅れ」と指摘している記事があります。この記事も、対策には「抜本改革が必要」としています。

先端半導体研究開発とCOVID-19国内ワクチン開発、全く別分野ですが、両者の日本状況は良く似ています。

ワクチン不足から類推する先端半導体不足

ワクチン接種は、現在無料です。これは、政府が海外メーカからワクチンを買上げ、無料で国民に接種しているからです。

仮に、変異型ウイルス対応ワクチンが不足し、入手困難ならどうなるでしょう? 旧型ワクチンでは変異型に対して効果が期待できない場合などは、国内パニックになるでしょう。

これと同じことが、先端半導体不足でも生じます。多くの製品や車は、半導体が性能、製品差の決め手です。先端半導体を使えないことは、日本製の新製品や新車の魅力が無いのと同等になるでしょう。

この事態を避けるためRapidusとLSTCの異次元取組みに期待し、日本の10年遅れを挽回してほしいです。

海外最新半導体製造ニュース

  • TSMC米国アリゾナ工場、3nm製造の可能性(2022年11月15日、EE Times)
  • 独)Infineon、アナログ/ミックスドシグナル/パワー半導体を新工場で製造計画(2022年11月15日、EE Times)

海外半導体製造の最新ニュースを2件示します。この分野は、Rapidusの強力ライバルが着実に進出中です。

先端IoT MCUはRTOS開発

IoT MCU開発者スキルの階層構造
IoT MCU開発者スキルの階層構造

個人レベル開発スキルもまた、Rapidusや国内ワクチン産業と同様、異次元の取組みや抜本改革無しの方法では、海外との開発競争にすらなりません。

景気後退が懸念される今、個人の開発スキルを磨き、先端技術人材になりましょう!

IoT MCU分野では、RTOS開発が先端技術だと筆者は思います。JACOB’S BLOGの5 RTOS Design Best Practicesが、とても参考になります。

関連投稿:RTOSテンプレート骨格クリエイタ的エンジニア

本稿主旨は、「危機感は大切だが、あせりは禁物。お互い切磋琢磨しましょう」です。



クリエイタ的エンジニア

エンジニアには、「作業的な人」と「クリエイタ」の2種類が存在。クリエイタ的エンジニアが、New Worldを作っていく。(その3より)

2030年向け先進テクノロジとの正しい付き合い方について、元ソニーCIO(最高情報責任者)、現在はガードナージャパン)エグゼクティブ プログラム シニアアドバイザー エグゼクティブパートナーの⻑⾕島眞時⽒と、ガードナージャパン)アナリストの亦賀忠明⽒の全3回対談記事(2022-10-28、ZDNET Japan)で、筆者が最も印象に残った箇所です。

ごく簡単に内容を抜粋し、クリエイタ的エンジニアへと成長するための記事提言をまとめました。

対談は、マネジメントとエンジニア双方への提言です。本稿は、読者の多いエンジニアに絞って抜粋しました。対談全文は、その1その2その3をご覧ください。

2030年のNew WorldとスーパーパワーAPI

2022年のテクノロジは江戸時代。2030年のテクノロジは、スーパーパワーを持つNew Worldへ劇的変化。
2022年のテクノロジは江戸時代。2030年のテクノロジは、スーパーパワーを持つNew Worldへ劇的変化。

2022年令和4年の現在を、手作業、企業論理中心の江戸時代と呼び、テクノロジ変化がもたらす2030年は、ハイブリッド・ワーク、メタバース、スーパーパワーAPIの新しい時代、これがNew Worldです。

わずか8年間で、テクノロジは、江戸時代から劇的に進化し「全く別のNew World」になります(その1)。

スーパーパワーとは、進化により想像を絶する能力をデジタルテクノロジが持つこと、そして2030年以降は、このスーパーパワーを使いこなせる企業と、そうでない企業が、明確に別れると予想しています(その2)。

スーパーパワーAPIを使ったモノづくりができるエンジニアと企業がNew Worldを作る、と結論しています(その3)。

※スーパーパワーAPI:多様化、高度化した進化テクノロジ境界がAPI(application programming interface)。様々なテクノロジ個々の深い理解は困難だが、API経由での利用は可能。つまり、1つのテクノロジ領域スキルを磨けば、他領域スーパーパワーを利用することは、比較的容易。

自分事、主体的に考える

短期間で劇的変化するNew Worldへは、人も、金も、時間も、他人事、もしくは当事者意識に欠けていては対応できません。

初めから完璧にやる必要はなく、これまで以上にアンテナの感度を上げ、注意深く、主体的に探索し、自ら的確にアクションすることが重要です(その2)。

作業的とクリエイタ的エンジニア

これまでは、決められた作業を的確にこなせる作業的エンジニアが求められました。これらの作業は、自動化やAI、さらにハイパーオートメーションが、とって代わります。

New Worldでは、いろいろな想像・発想ができ、創造ができる「クリエイタ的エンジニア」が活躍する時代です(その3)。

まとめ:クリエイタ的エンジニアは1日にしてならず

クリエイタ的エンジニアは1日してならず
クリエイタ的エンジニアは1日してならず

2030年向け先進テクノロジとの正しい付き合い方の記事は、対談形式のため長文です。盛りだくさんな内容の中から、エンジニア向け提言を抽出しました。

テクノロジが急変、高度化、多様化する時代は、初めから完璧を目指すより継続的改善を行い、主体的に2030年New Worldスキルを持つクリエイタ的エンジニアになれ、と提言しています。

「ローマは一日にして成らず」、クリエイタ的エンジニアも同じです。

2030年はすぐそこです。あせりは禁物ですが、できない理由を考える暇があるなら、できることを認識・判断・実行し、クリエイタ的エンジニアへの第1歩としましょう。

筆者個人は、IoT MCU RTOSテンプレート開発を最初の目標とします。



RTOSテンプレートの骨格

IoT MCU RTOSは、FreeRTOSとAzure RTOSの2種類。接続クラウドAmazon AWSやMicrosoft Azureに応じて選択する必要があります。各RTOSそれぞれにRTOSアプリケーションを開発するのは非効率です。

そこで、アプリケーション開発の基になるRTOSテンプレートの骨格を検討しました。APIはFreeRTOSとAzure RTOSで異なるものの、同一の骨格から開発するとメリットがあるからです。

結論は、単体タスク/スレッド試験も容易なメニュー表示形式RTOSテンプレート骨格とします。

RTOSアプリケーション例

Data flow diagram for a smart thermostat(出展:JACOB’S Blogに加筆)
Data flow diagram for a smart thermostat(出展:JACOB’S Blogに加筆)

RTOSアプリケーション例が上図です。複数のタスク/スレッドと各タスク/スレッドを制御するアプリケーション本体から構成されます。

アプリケーション本体とタスク間は、同期(S:セマフォ)/排他(M:ミューテッスク)/メッセージキュー(Q)などのRTOS処理待ちに応じたRTOS APIが用いられます。

FreeRTOSとAzure RTOSで処理待ちRTOS API記述が異なるものの、どちらも機能的には同じです。

また、センサやタッチスクリーン、Wi-FiなどMCU内蔵/外部回路間の制御API、いわゆるドライバ部分は、各MCUベンダ提供のAPI生成ツールで開発します。このAPI生成ツールは、ベアメタル開発で使うものと同じです。RTOS開発だからと言って別のドライバAPI生成ツールがある訳ではありません。

ベアメタル開発とRTOSとの差分は、灰色部分です。1無限ループ内で全ての処理を行うのがベアメタル、RTOSアプリケーション本体と複数のRTOS処理待ちタスク/スレッドで並列多重を行うのがRTOS、ここだけです。

ベアメタル処理とFreeRTOSタスク処理並列多重
ベアメタル処理とFreeRTOSタスク処理並列多重

メニュー形式アプリケーション特徴

メニュー 1-5 を選択してください。
(1) Process Input処理
(2) Network Manager処理
(3) 出力処理
(4) メモリ処理
(5) 印刷
(6) 処理自動実行

最初の図のような複雑な処理をベアメタル開発する時は、例えば上のようなメニュー表示形式アプリケーションがしばしば用いられます。メニューの表示は、USART接続のPC、Tera Term利用が一般的です。

このメニュー表示形式アプリの特徴は、(1)から(5)の各処理を単体デバッグできることです。

また、単体デバッグ後、(1)から(5)の処理を自動で結合する処理(6)を開発すれば、開発が完成する点も優れています。

(6)完成後は、メニュー表示をスキップし、PCを使わずにMCU単体で(6)を実行すれば、ベアメタル組込み完了です。

メニュー形式RTOSテンプレート骨格と開発手順

RTOSアプリケーション開発でもメニュー表示形式を採用します。

メリットは、単体タスク/スレッド開発、デバッグが容易な点です。RTOS開発は、タスク/スレッドの独立性がベアメタルよりも高いため、メニュー形式で開発したタスク/スレッド流用性も高く、開発ソフトウェア資産化も可能です。

弊社RTOSテンプレートは、FreeRTOSでもAzure RTOSでもメニュー形式のテンプレート骨格とします。テンプレートが用意するデフォルトメニュー数は7個、タスク/スレッド優先度もデフォルト7レベル(1から7)設定とします。優先度初期値は、どれも同一優先度(真ん中の4)とします。

※FreeRTOSは値が大きいと高優先、Azure RTOSは値が小さいと高優先で真逆に注意

RTOSテンプレートを使って、単体のタスク/スレッドを開発し、単体タスク/スレッド完成後、並列多重の結合動作へステップアップします。多重時、各タスク/スレッドの高/低優先度変更や、タスク合併などを検討します。

メニュー形式RTOSテンプレートのデバッグ方法
メニュー形式RTOSテンプレートのデバッグ方法

もちろん、メニュー数や優先度数の増加も容易です。しかし、弊社がお勧めするIoT MCUは、低価格評価ボード搭載の汎用IoT MCUです。RTOSオーバーヘッドが少ない7程度が適当だと思います。

RTOSテンプレートを使って、第1段階ではタスク/スレッド分割と単体タスク/スレッド開発に集中し、第2段階でタスク/スレッド並列多重に関連する優先度などのRTOSパラメタ調整に集中します。段階を踏んだ集中開発ができるため、複雑なRTOSアプリケーションの早期開発に役立ちます。

弊社RTOSテンプレートは、FreeRTOSまたはAzure RTOS個別対応済みのバージョンを販売予定です。但し、RTOSテンプレートの骨格がFreeRTOS/Azure RTOSで同じことをご購入者がご理解済みなら、FreeRTOS APIとAzure RTOS API変換も、比較的容易だと思います。

ベアメタルテンプレートとの違い

弊社ベアメタルテンプレートは、主に開発初心者から中級者が対象です。メニュー表示形式など、複雑な構成のテンプレートを提供するよりも、シンプルで解り易いソースコードの方が適しています。

一方、RTOSテンプレートは、ベアメタル開発経験者、つまり中級以上の開発者が対象です。

テンプレート付属説明資料も異なります。ベアメタルテンプレート付属説明資料は、各ベンダのIDEやAPI開発ツールの基本的使い方、開発つまずき回避のTipsなどを記述しています。具体例は、RAベアメタルテンプレート説明資料をご覧ください。

RTOSテンプレート付属説明資料は、既知のベアメタル関連説明は省き、ベアメタルとRTOSの差分や、実践的なRTOS Tipsの説明を加えます。具体例は、NXP版FreeRTOSテンプレート説明資料をご覧ください。

まとめ

FreeRTOSとAzure RTOS同一のメニュー形式RTOSテンプレート骨格構想を示しました。

弊社RTOSテンプレートを使えば、単体タスク/スレッド開発に集中でき、効率的、段階的なRTOSアプリケーション開発が可能です。開発単体タスク/スレッドは、独立性が高いので、ソフトウェア資産化も容易です。

また、接続クラウド変更に伴うFreeRTOSとAzure RTOSのAPI変更も、同じテンプレート骨格利用のため容易です。

本構想に基づいたAzure RTOSテンプレート、FreeRTOSテンプレートは、本年度末発売予定です。現在販売中のNXP版FreeRTOSテンプレートも、本構想用に改版を予定しております。

弊社RTOSテンプレート骨格について、皆様のご意見などを現在募集中です。お気軽にinfo@happytech.jpへお寄せください。

関連投稿リンク

組込み開発 基本のキ:暗号技術の仕組み

組込み開発 基本のキ:暗号技術の仕組み
組込み開発 基本のキ:暗号技術の仕組み

デイビッド・ウォン著、⾼橋 聡 訳、⽇経クロステックの4記事:暗号技術の要旨をまとめました。

組込み開発と暗号技術

暗号技術は、数学が基礎です。暗号を使えば、秘密が守られることを科学的に立証する必要があるからです。しかし、暗号を使う立場の組込み開発者は、数式よりも、暗号の仕組み理解の方が重要です。

仕組み中心の暗号技術解説記事が、下記⽇経クロステック4記事です。組込み開発 基本のキ、暗号仕組み理解に丁度良いと思います。各記事の要旨を抜粋します。

内容 発行日
秘密鍵の仕組み 2022年7月7日
ケルクホフスの原理 2022年7月8日
公開鍵暗号の仕組み 2022年7月12日
RSAデジタル署名 2022年7月13日

秘密鍵の仕組み

誰にでも読める平文を、暗号文へ変換する時に使う鍵が、秘密鍵。暗号文を元の平文へ復号する時も「同じ秘密鍵」を使う。

この送受双方の同じ秘密鍵利用が、対称秘密鍵暗号方式。送受参加者が多いと、鍵が漏洩するなど実用性低下の欠点もあるが、古代より使われてきた。

ケルクホフス原理

暗号/複合時に用いるアルゴリズムは、一般に公開しても良い。例えば、ウェブページ閲覧時のAES(Advanced Encryption Standard:⾼度暗号化標準)など。

公開アルゴリズムのセキュリティを保証する手段が、秘密鍵。

公開鍵暗号の仕組み

送受それぞれ「別の秘密鍵」と、「公開できる鍵」の2種類を使うと、送信側の秘密鍵が受信側で計算可能。これが、「非対称」の公開鍵暗号方式で、対称秘密鍵暗号方式の欠点を解消。

記事の公開図形と秘密鍵の計算例が解りやすい。

但し非対称公開鍵暗号方式は、第3者による公開鍵すり替えが可能なので、信頼性の問題は解決されない。

RSAデジタル署名

信頼性問題を解決するのが、デジタル署名。公開鍵を使って、送信者の署名が本物か偽物が検証可能。RSA以外にもデジタル署名方式あり。

このデジタル署名と非対称公開鍵暗号方式の両方を使うのが、現代の暗号化アルゴリズム全体像。

まとめ:仕組み理解でセキュリティ進化へ順応

暗号技術の仕組み理解でセキュリティ進化へ順応
暗号技術の仕組み理解でセキュリティ進化へ順応

インターネットに接続するIoT MCUには、通信セキュリティ対策は不可欠です。MCU開発側からすれば、当該セキュリティライブラリを、開発ソフトウェア/ハードウェアへ組込めば完了と思いがちです。

しかしながら、セキュリティ対策には、終わりがありません。新攻撃に対し、新たな暗号方式が登場します。MCU開発者が、複雑・高度化する暗号技術へ対応し、セキュリティ進化に追随するには、その仕組み理解は欠かせません。

本稿は、現代暗号化アルゴリズム、非対称公開鍵暗号方式とデジタル署名を説明しました。古代からの暗号技術は、インターネット出現により高度で複雑化しました。要旨の抜粋で判り難い箇所は、元記事も参照してください。

組込み開発 基本のキ:暗号技術の仕組みを理解し、IoT MCUセキュリティ進化へ順応しましょう。

組込み開発 基本のキ 過去投稿

組込み開発 基本のキ:組込み処理
組込み開発 基本のキ:RTOS vs. ベアメタル

Azure RTOS習得(6):低電力動作

STM32G4評価ボードのAzure RTOS低電力動作サンプルコード:Tx_LowPowerは、現在正常に動作しません。原因は、Stop1モード開始/Run復帰処理であることは判りました(下表の青部分)。

そこで、この低電力モード開始/復帰処理を、VCPメッセージ出力へ変更、低電力動作は保留し、Azure RTOS低電力動作プロジェクト作成方法と低電力動作の流れを説明します。

処理名 処理内容:低電力動作

(LD2:評価ボード単体)

優先度 プリエンプション閾値
メインスレッド 1) セマフォ取得を永遠に待つ
2) 取得時LD1 500ms点滅を10回実施
10 10
S1プッシュ割込み セマフォカウンタ=0時、セマフォ放出
Enter_LowPower_Mode Stop1モード開始処理 ➡ VCPメッセージ出力
Exit_LowPower_Mode Runモード復帰処理 ➡ VCPメッセージ出力

まとめ

STM32G4評価ボードのAzure RTOS低電力動作サンプルコード:Tx_LowPowerは、Stop1モード開始/Run復帰に問題があり正常動作しません。

そこで、Stop1モード開始/復帰処理を保留にし、Azure RTOS低電力動作プロジェクト作成方法と低電力動作の流れを説明しました。

Azure RTOSプロジェクトで低電力動作させるには、STM32CubeMXのConfiguration ThreadXタブLow PowerのEnter LowPower SupportとTX_LOW_POWER_TICKNESSをEnableにするだけです。

Enable後、CubeMX生成のApp_ThreadX_LowPower_Enter/Exitの中身:Enter/Exit_LowPower_Modeへ、STM32G4低電力動作7モードの設定/Run復帰処理を記述すれば、Azure RTOS低電力動作ができます。

Tx_LowPower動作

サンプルコード:Tx_LowPower の正常な動作が下記です。

1) S1プッシュでLD1が10回点滅後、Enter_LowPower_Mode実行しStop1停止
2) S1プッシュ割込処理でExit_LowPower_Mode実行しRun復帰

つまり、S1プッシュ毎にLD1が10回点滅し、その後、低電力Stop1モードで待機します。Stop1状態表示はありません。

Stop1モード動作の代わりにVCPメッセージ出力が下記です。S1プッシュでLD1が10回点滅、点滅中はVCPメッセージ出力無しです。違いは、Stop1モード動作有無です。

Stop1モード動作の代わりのVCP出力
Stop1モード動作の代わりのVCP出力

「非」動作対策の保留(NOP)

STM32CubeMXは、プログラムフレームワーク生成に優れています。Enter/Exit_LowPower_Mode内容のみを変更すれば、Stop1以外のStop2モードやSleepモードへの低電力動作変更が簡単にできます。

ちなみに、筆者は、Sleepモードへも挑戦しましたが、正常動作はしませんでした。
※Enter/Exit_LowPower_Mode正常化をご教授頂ける方は、メールを頂けると助かります。

そこで、このEnter/Exit_LowPower_Mode処理は、一旦、保留(NOP)とします。

Tx_LowPowerが正常化した後、改めて保留にしたEnter/Exit_LowPower_Mode処理を入れ替えれば済むからです。現状は、NOPの代わりにVCPメッセージ出力処理を選びました。

この保留対策で、Azure RTOS低電力動作プロジェクト作成方法と低電力動作の流れ理解の段階へ進めます。

Azure RTOS低電力動作プロジェクト作成方法

Azure RTOS Low Powerプロジェクト作成
Azure RTOS Low Powerプロジェクト作成

低電力動作有りと無しのプロジェクト作成差は、CubeMXのConfiguration ThreadXタブのLow Powerを開き、Enter LowPower SupportとTX_LOW_POWER_TICKNESSをEnableにするだけです。

App_ThreadX_LowPower_EnterとApp_ThreadX_LowPower_Exitは、CubeMXが生成する関数名です。この両関数の中身が、我々が開発するEnter/Exit_LowPower_Mode関数です。

つまり、Enter/Exit_LowPower_Mode中身を変えれば、その他の部分はそのままで、様々な低電力動作、例えばSleepやStop2へ対応できる作りになっています。フレームワーク生成に優れるSTM32CubeMXの利点です。

低電力動作の流れ

全てのスレッドが、待機状態になると、App_ThreadX_LowPower_Enterとその中身Enter_LowPower_Modeが実行されます。その結果、例えば、Sleepが低電力動作の場合には、MCUコアSleep+周辺回路動作になります。

割込み発生でApp_TreadX_LowPowerとその中身Exit_LowPower_Modeが実行されRun復帰、最優先スレッドが実行されます。

この低電力動作に関して、公式Azure RTOSサイトに記述は有りません。低電力動作は、個別MCU依存のためでしょう。

STM32G4低電力動作モード

STM32G4の7つの主要低電力モード(出典:STM32G4 - PWR)
STM32G4の7つの主要低電力モード(出典:STM32G4 – PWR)

そこで、STM32G4の低電力動作をまとめました。元資料は、STM32G4 – PWRLPTIMです。

STM32G4は、7種の低電力動作モードをサポートしています。Runウエイクアップ時間が11サイクルと短く、電力低減効果も高いSleepが筆者のお勧めです。

サンプルコードのEnter/Exit_LowPower_Mode処理が複雑なのは、更に効果の高いStop1だからです。

サンプルコード対応

・サンプルコードが無い時は、他の評価ボードから流用。
・サンプルコードに問題ありの時は、当該処理をNOP化、サンプルが示す内容取得。

サンプルコードは、開発TipsやKnow Howの宝庫です。しかし、残念ながら付属説明は、最低限です。説明するとキリが無いからです。そこで、弊社は、ベアメタル開発経験がある方を対象に、少し丁寧に説明を追加したつもりです。

サンプルコードと評価ボードさえあれば、実際にMCU動作が確認ができ、1から10まで記載の分厚いユーザマニュアルを読むよりも、手軽で効率的にMCU開発ができます。

サンプルコードにも、トラブルがあります。STM32G4評価ボード:NUCLEO-G474REを使ったAzure RTOS習得(2)~(5)用のサンプルコード対応をまとめたのが、本章最初の2行です。また、(2)~(5)で使ったサンプルコード名と内容が下表です。

サンプルコード名 サンプル内容(詳細リンク先参照) 備考
AzureRtos0 汎用Azure RTOSプロジェクト作成 NUCLEO-G474RE+Arduinoプロトタイプシールド動作
AzureRtosEventFlag スレッド間イベントフラグ同期 STM32G4サンプル流用動作
AzureRtosQueue スレッド間キューメッセージ送受信 NUCLEO-G0B1RE流用動作
AzureRtosMutexSema ミューティックス/バイナリセマフォ排他制御 STM32G0C1E-EV流用動作
AzureRtosLowPower 低電力動作プロジェクト作成(本稿) STM32G4サンプル非動作

最近のMCU開発は、HAL(Hardware Abstruction Layer)API利用のため、サンプルコード流用が簡単です。個別MCUハードウェアに依存しないためです。

便利なサンプルコードを活用すれば、効率的なMCU開発ができます。更に、複数サンプルコードを流用し、プロトタイプの早期開発が容易な弊社MCUテンプレートを使えば、開発効率は上がります。

STM32G4評価ボードとArduinoプロトタイプシールド、LCDやADC動作のBaseboardを使ったST版Azure RTOSテンプレート(仮名)は、年内開発予定です。NXP版FreeRTOSテンプレートは、コチラで販売中です。

評価ボードへArduinoプロトタイプシールドを追加しスレッド毎にLED点滅中
評価ボードへArduinoプロトタイプシールドを追加しスレッド毎にLED点滅中

Azure RTOSやFreeRTOSは、IoT MCU開発に必要です。ベアメタルLチカ理解に相当するRTOS機能コンポーネントの習得、個人レベルで初めてはいかがでしょう。