MCUとMPU二刀流開発#2

Visual Studio Codeを使ったRaspberry Pi Pico 2 MPU開発
Visual Studio Codeを使ったRaspberry Pi Pico 2 MPU開発

TrustZone対応Cortex-M33コアに変わったRaspberry Pi Pico 2のMCU開発者向けPico 2開発の2回目は、Visual Studio Code(VSC)でソフトウェア開発環境を構築し、最初のプロジェクトを作成します(二刀流開発背景やハードウェアは投稿#1参照)。

※MCU開発者向けPico 2開発とは、MCU開発者の視点でRaspberry Pi Pico 2 MPU開発を記述。
※本稿はMCU開発で使うEclipse IDEとVSCを比較。
※MCUは価格追及型、MPU/SBCは機能拡張型。

Visual Studio Code(VSC)

Visual Studio Codeインストール直後
Visual Studio Codeインストール直後

VSCは、Microsoftが開発したマルチプラットフォーム・多言語対応の新しいコードエディタです。上図英語版エディタへ、拡張機能をインストールして使います。

カスタマイズ性が高く人気の開発ツールです。MCU開発デファクトスタンダードのEclipse IDE代替としても普及し始めています。

MCUとMPUの二刀流開発者は、Eclipse IDEとVSCの2つの統合開発環境を使えることが必要です。そこで、Pico 2 MPU開発環境のVSCを構築します。

先に結論を言うと、見た目は違いますがVSCはMCU統合開発環境Eclipse IDEと殆ど同じ操作です。Eclipse IDEコマンドやViewがVSCにもありますので同じ感覚で操作できます。

※本稿のEclipse IDEとは、例えばブログ掲載中のNXP)MCUXpresso、ST)STM32CubeIDE、ルネサス)e2 studioなどのこと。どれもEclipse IDEをベースにAPI生成ツールが実装済みのMCU開発環境。

Pico 2 MPU開発環境のVSC構築

1. PC(Win/Mac/Linux)へVSCインストール(デフォルト設定でOK)
2. 拡張機能:Japanese Language Packのインストール(お好み言語インストール可能)
3. 拡張機能:Raspberry Pi Picoのインストール(Pico 1/2/W全て共通)

拡張機能のJapanese Language PackとRaspberry Pi Picoのインストール
拡張機能のJapanese Language PackとRaspberry Pi Picoのインストール

拡張機能は、左ツールバー上から5番目の拡張機能アイコンをクリックし、検索窓にキーワード、例えばJapaneseやPicoを入力して選びます。様々な拡張機能候補が表示されますので、概要などを見て適す機能を選びます。インストールをクリックすればVSCへのインストール完了です。

VSCは、結構な頻度で更新されます。左ツールバー一番下の歯車アイコンクリックで更新確認ができます。インストール済みの拡張機能も、歯車アイコンで様々な設定ができますが、デフォルト設定で問題は無いと思います。

このようにVSCは、英語版汎用エディタを開発者がカスタマイズして使います。一方、MCU開発は、デファクトスタンダードEclipse IDEをMCUベンダがカスタマイズし専用化したものを使います。一長一短がありますが、Pico 2 MPUだけでなく幅広い開発にも使えるVSCは人気上昇中です。

Pico 2 MPUのVSC開発準備

拡張機能の日本語表示は、VSC再起動後に有効になります。日本語に変わらない時は、View>Command Palletをクリックし、検索窓にJapaneseなどを入力すると、表示切替えコマンドが判りますので手動切替えができます。

Pico拡張機能インストール後、左ツールバーにMPUアイコンが現れます。これをクリックし、New C/C++ Projectをクリックした画面が、下図です。

拡張機能Raspberry Pi Picoインスト後、New C/C++プロジェクトクリック画面
拡張機能Raspberry Pi Picoインスト後、New C/C++プロジェクトクリック画面

MCU開発者にはお馴染みの開発プロジェクト名やデバッガ設定ができます。面白いのが、RISC-Vコアが選択できる点です。実はPico 2は、Cortex-M33とRISC-Vのディアルコア(!) MPUです。しかし、どちらか一方のみが開発に使えます。本稿は、Cortex-M33を使います。

Featuresは、追加ライブラリです。Pico 2は、機能拡張型MPUですので、SPI/I2Cなどのインタフェース経由でボード機能を拡張するためのライブラリです。

Pico 2サンプルプロジェクト作成

前章のNew C/C++ Project画面で、プロジェクト名や標準入出力(printf)の接続先UART0/USBを選択後、Createクリックで新規プロジェクトが作成できます。しかし本稿は、MCU開発者にお馴染みのサンプルコードから最初のプロジェクトを作成します。

New Project From Exampleでblink_simpleを選択
New Project From Exampleでblink_simpleを選択

New C/C++ Projectの3つ下New Project From Exampleをクリックし、Name欄にblink_simple、Board typeはPico 2を選択します。Locationに適当な保存先を入力し、これ以外はデフォルトでCreateをクリックするとサンプルコード:blink_simple.cが作成されます。

※Name右横▼から様々なサンプルコード選択可能。

最初はDownloading SDK and Toolchainなどがあるため、作成時間がかなりかかります。画面右下のステータスで状況が判ります。また、「作成者を信頼しますか」などの質問が来ることもあります。暫く待っていると、下記blink_simple.cが現れます。

Pico2サンプルプロジェクトblink_simple
Pico2サンプルプロジェクトblink_simple

gpio初期設定後に無限ループを実行し、この中でgpio出力のledを点滅します。MCUのLチカサンプルと同じ構成です。

Pico 2サンプルプロジェクトビルド&デバッグ

下段Compileクリックでビルドされ、サンプルなので成功結果がターミナルViewに示されます。Eclipse IDEと同じ画面構成です。

この後、#1投稿で購入したRaspberry Pi Pico 2、DebugProbeを下図のようにPCとUSB接続します。本サンプルは、UART0は使いませんが接続していても問題ありません。

Rapsberry Pi Pico 2とDebugProbeのPC接続
Rapsberry Pi Pico 2とDebugProbeのPC接続

左ツールバー上から4番目の実行とデバッグ(Ctrl+Shift+D)アイコンをクリックすると、オブジェクトがPico 2へダウンロードされ、変数などが確認できるデバッグ画面に変わります。また、Eclipse IDEデバッグでよく使う続行(F5)やステップインなどのデバッグツールバーも表示されます。これらを使ってデバッグします。

blink_simple以外にも、様々なサンプルプロジェクトがあります。これらでPico 2 MPU理解が進みます。

Summary:MCU開発者のPico 2開発#2

最新MPU Cortex-M33コアRaspberry Pi Pico 2を使い、MCU開発者案件をMPUへも広げること、Eclipse IDE代替可能性のあるVisual Studio Code(VSC)習得を狙った投稿2回目は、以下VSC基本操作を示しました。

  • Pico 2 MPU開発環境VSC構築と開発準備
  • Pico 2サンプルプロジェクトビルドとデバッグ

統合開発環境としてのVSC操作やプロジェクト作成手順は、当然ですがMCU開発環境Eclipse IDEと殆ど同じです。但し、コマンド配置やファイル操作は、専用Eclipse IDEに一日の長があると思います。

VSCメリットは、今後期待されるAI活用プログラミングとの連携が良いことです。生成AI牽引GOMAの一角を占めるMicrosoft製だからです。

VSC基本操作を文章で書いたので長文になりました。端的に言えば、VSC操作は、MCU開発で使うEclipse IDEと同じです。Eclipse IDEで使うアイコンやコマンドはVSC画面内にあります。Pico 2サンプルを数個試せば、VSCにも慣れると思います。

Afterword:Pico 2ピン配置

サンプルコード利用時に役立つRaspberry Pi Pico 2:RP2350ピン配置を示します。本稿blink_simpleサンプルledは、GP25と判ります。また、豊富なSPI/I2Cインタフェースを使ってPico 2 MPUの機能拡張を行うのも判ります。

Rapsberry Pi Pico 2(RP2350)のピン配置
Rapsberry Pi Pico 2(RP2350)のピン配置



 

MCUとMPU二刀流開発#1

Rapsberry Pi Pico2開発環境
Rapsberry Pi Pico2開発環境

今年8月9日、英国ラズパイ財団が新しいRaspberry Pi Pico 2(以下Pico 2)を発表しました。Pico 2は、MCU開発者向けMPUです。従来MPU/SBCが採用していたCortex-Aなどの定番MPUコアから、セキュリティTrustZone対応Cortex-M33コアに変わったからです。そこで、MCU開発者向けPico 2開発の連載を始めます。

この連載で筆者を含めたMCU開発者は、最新MPU(Pico 2)のMCU的開発とVisual Studio Code(VSC)習得ができます。狙いは、開発の幅をMCUからMPUへも広げること、Eclipse IDE代替可能性もあるVSC習得の2つです。

※MCU的開発とは、例えばPico 2(RP2350、Cortex-M33 or RISC-V/150MHz、Flash/4MB、RAM/520KB)とMCUでお馴染みの表記をするなど「MCU開発者の視点でMPUを開発」ということです。

Summary:MCU開発者のPico 2開発#1

最新MPU Cortex-M33コアRaspberry Pi Pico 2を使い、MCU開発者案件のMPUへの拡幅、Eclipse IDE代替VSC習得を狙った投稿の1回目を示しました。

投稿#1内容が以下で、投稿背景とPico 2開発ハードウェアを示しています。

・MCU側からみたMPU開発の差
・MCU開発者が最新Raspberry Pi Pico 2 MPUを使うメリット
・Pico 2 MPU開発ハードウェア入手先情報
・TrustZone Cortex-M33 MCU/MPU二刀流開発の勧め

次回は、Pico 2開発ソフトウェアのVSC構築を投稿予定です。本投稿は、今後不定期に続けます。

※MCU(Micro Controller Unit)とMPU/SBC(Micro Processor Unit/Single Board Computer)の差を極簡単に言うと、MCUは価格追及型、一方、MPU/SBCは機能拡張型です(詳細は関連投稿参照)。

MPUとMCU開発差

同じCortex-M33コアでもMCU開発者とMPU開発者は異なるアプローチ
同じCortex-M33コアでもMCU開発者とMPU開発者は異なるアプローチ

MCU開発者なら当たり前の事でも、MPU側から見ると違う事柄が、コチラの記事前半で良く判ります。記事からピックアップした具体例が下記です。

・MPUは、ネイティブコード以外の開発もある
・サンプルコードは、全MPUペリフェラルをカバーしていない
・オンチップデバッグ無しのMPUボードもありJTAG/SWDの馴染みが薄い

一方、新しいPico 2が、MCU開発者に向いている理由が下記です。

・MCU開発者に馴染みがあるTrustZone対応Cortex-M33コアMPU
・MCU標準開発環境Eclipse IDE代替可能性のあるVSCが開発環境
・Windows/Macで開発できPico 2ボードとDebug Probe価格も低い
・Cortex-M33とRISC-Vのコア切替えもでき発展性に優れる
・Pico 2でオープンソースソフト/ハード開発を体験できる

つまり、MCU開発者の知識や経験を活かし、新しいPico 2 MPU開発ができます。その結果、低い障壁でMPU開発が始められます。

また、業務とは別の自分のキャリアアップにも役立つと思います(二刀流開発の勧め章参)。

Pico 2 MPU開発ハードウェア入手先

最初の図のPico 2とDebugProbeの2つが、購入するハードウェアです。

新しいPico 2は、従来比、1.5~2倍の高性能と省電力性が特徴です。DebugProbeは、専用ケースに入っており接続ケーブルも付属で使い易いです。

秋月電子通商やスイッチサイエンスなどから購入できます。秋月の方が低価格ですが、取扱数量が少ないとサイト記述があります。

・Raspberry Pi Pico 2:秋月電子スイッチサイエンス
・Raspberry Pi DebugProbe:秋月電子スイッチサイエンス

Pico 2開発環境Visual Studio Code

前述の記事後半に、Pico 2開発環境のVSC構築方法と、従来MPUで自作したデバッガー(Picoprobe)を使ったLチカプログラミングが記述されています。

但し、本連載は市販DebugProbeを使います。また、VSC構築は、次回投稿します。先行してPico 2開発環境を構築したい方は、記事を参考にしてください。

Cortex-M33 MCU/MPU二刀流開発の勧め

MCUとMPUの二刀流でTrustZone Cortex-M33を開発
MCUとMPUの二刀流でTrustZone Cortex-M33を開発

今から10年後、2034年の日本とエンジニアの記事は興味深いです。

日本の人口減少と共にエンジニアに求められるスキルも変わり、「高度なスキルに加え、より早く開発業務をこなす能力も求められる」という趣旨です。

本稿のPico 2 MPU開発もこの記事の趣旨がベースになっています。つまり、MCU比、MPU開発は、オープンソースソフト/ハードへの対応が良く、早い業務開発に向いています。

IoTに必須のセキュリティ機能を持つTrustZone Cortex-M33を、高度スキルを活かしたMCU、オープンソースソフト/ハードを活かしたMPU、どちらでも開発できれば、顧客要求を満たすエンジニアになれます。

顧客にとって実現手段はMCUでもMPUでも構わない、開発期間とトータルコストが問題です。この問題を解ける開発者、TrustZone対応Cortex-M33のMCUとMPU二刀流開発者が目標です(ワールドチャンピオンドジャースの大谷翔平氏のように)。

Afterword:Pico 2オープンソースハード/ソフト例

MPU/SBC(小さいコンピュータ)の拡張性を支えるオープンソースハード/ソフトは、市場に数多くあります。これらを上手く使えば、MCU比、早く大規模な開発に役立ちます。ここでは、3例を挙げます。

・AI強化:Raspberry Pi AI Kit、13TOPS NPU追加。
・表示デバイス追加:Tiny2350、カラー液晶追加。
・SSD追加:Raspberry Pi SSD Kit、256GB/512GB追加。

極簡単に言うと、機能を拡張したい時は、これらRaspberry対応のオープンソースハード/ソフトを探し、それをPico 2へ組込めばOKです。正にコンピュータへボード追加のイメージです。多くの機能ボードとボードを動かすソフトが、低コストで入手できますので、MCU比、短期間で簡単に機能拡張できるのが、MPUのPico 2です。


情報機器大転換期

情報機器(PC/スマホ/IoTデバイスなど)のハード/ソフト/使い方が、大転換期です。原因は、生成AI革命。インターネット商用解放期に匹敵する気がします。

2024年も半分終わった今、見えてきた情報機器大転換期の現状をまとめました。1章と2章が、ソフトバンクの生成AI革命の考え方、3章以降が、現状という段取りです。

ソフトバンクのAIとAGI、ASI

人類叡智の10000倍能力のArtificial Super Intelligence(出典:記事)
人類叡智の10000倍能力のArtificial Super Intelligence(出典:記事)

ソフトバンク会長兼社長の孫正義氏が、2024年6月21日の定時株主総会で、ソフトバンクは、ASI(Artificial Super Intelligence)を実現するとASCII記事が掲載しました。記事を極簡単にまとめたのが本章と次章です。

AGI(Artificial General Intelligence=汎用人工知能)とは、人間の持つ考え方、知識の「一部を機能化」した現在のAIの親玉に相当し、人間と同じか最大でも10倍程度上回る「汎用の人工知能」。先端AI研究者のテーマがこのAGIで、5年以内、場合によれば3年ぐらいでAGI時代となる。

様々な天才同士が刺激しあい進化した人類と同様、AGI同士が刺激しあい、人類進化を加速するのがASI時代。ASIは10年前後でやってくる。孫氏が決めた指標では、人間の「1万倍程度の英知」。人類20万年史上、初めて圧倒的な人口知能となり、全常識が変わるのがASI時代。

例えば、スマートロボットがASIにつながると、工場生産や道路掃除、買い物や洗濯も代行可能。自動運転も、AIが技能学習し、一度も行ったことが無い場所でもスイスイ自動運転でき、大量生産や加工、物流などはロボットに置き換わる。

ソフトバンク孫正義氏が生まれた理由・使命は、このASI実現

ASI実現手段

ソフトバンクグループ総力でASI推進(出典:記事)
ソフトバンクグループ総力でASI推進(出典:記事)

孫氏は、更にASI時代の基盤技術の1つが、現在様々な情報機器へ半導体IP提供中のArmとしました(Arm株式9割近くをソフトバンクが保有中)。

Armの強みは、設計力と低消費電力稼働で、ASIの広がりに貢献。出荷数量は上がることはあっても、下がることはない。ASI実現のため、ソフトバンクグループ総力でArm AIチップ、AIデータセンタ、AIロボットへ取組む。

Armの将来を孫氏は信じている。

制御系ハードウェア転換

Arm IPコアは、本ブログ掲載Cortex-Mシリーズをはじめ、多くのMCUベンダハードウェアにも採用中です。MCUのエッジAI化に伴い、従来シリーズよりも更に高性能なCortex-Mコア:Cortex-M85搭載MCUも発売開始となりました。

Cortex-M85特性比較(出典:ARM)
Cortex-M85特性比較(出典:ARM)

PCは、Microsoft Copilot+ PCが2024年6月18日にワールドローンチされました。40TOPS以上のNPUが注目され勝ちですが、NPUを制御するCPUにも転換が起こりつつあります。

現在、Copilot+ PC要件を満たすCPUは、QualcommのSnapdragon X Eliteだけです。このCPUも、Arm IPコアを採用中(4章)です。他社に先駆けるArm設計力が表れています。

AI処理でPCよりも先行するAIスマホは、そのCPUの多くがArmライセンスのチップです。6月20日発表のAppleパーソナルAI Intelligenceハードウェア要件は、A17 ProチップとMシリーズです。iPhone 15/15 Plus非対応のため、90%以上のiPhoneユーザは、Apple Intelligenceを使えないそうです。

これら制御系ハードウェアの転換理由は、「AI処理を実用可能なレベルで高速実行するには、ハードウェアが肝心」だからです。

つまり、生成AI革命が、従来制御系の全ハードウェアを転換させつつあるのが、今です。

ソフトウェア転換

NPUなどのAI処理ハードウェアを活かすのは、ソフトウェアです。例えば、Copilot+ PCには、Recall、Cocreator、Live Captions、Windows Studio EffectなどのAI機能が標準で備わっています。

但し更に重要な点は、これら標準AI機能の基となるWindows Copilot Runtimeを活用し、新なAIソフトウェアが開発できること、しかもArmネイティブであることです。

※Armネイティブとは、汎用RuntimeがArm専用ライブラリのように無駄無く高速動作すること。

MacOSは、Arm化が進んでいます。Windowsソフトウェア開発も、下図が示す従来x86からArmネイティブソフトウェア転換を迎えているようです(詳細はコチラの記事参照)。

ArmはレガシーのPC(x86など)を大きく上回っているとアピール(出典:記事)
ArmはレガシーのPC(x86など)を大きく上回っているとアピール(出典:記事)

情報機器使い方転換

インターネット商用解放は、IT革命をもたらしました。ユーザは、PCやスマホなどの機器を使って、ネット上を検索し、情報を得るようになりました。ネットに溢れる情報の検索装置が、IT機器でした。

生成AI革命は、PCやスマホの使い方を、単なる検索装置からアシスタント代行へと転換させつつあります。つまり、より高度な情報解析や解析に基づいた提案ができる個人アシスタントとしての使い方です。

従来の情報機器を、人間的で簡単に使えるAIアシスタント化しつつあるのが、今です。

Summary:情報機器大転換期

クラウド・エッジ全基盤を提供するArm IP(出典:記事)
クラウド・エッジ全基盤を提供するArm IP(出典:記事)

生成AI革命でPC/スマホ/IoTデバイスなどの情報機器ハードウェア/ソフトウェア/使い方が、大きく転換しつつある2024年半分終了の今をまとめました。

制御系IP提供のArm株式9割保有中ソフトバンクの生成AI革命に対する考え方と、AI実用はハードウェアが肝心、ソフトウェアのArmネイティブ化、情報機器AIアシスタント化などの転換現状を示しました。

AI進化スピードは驚異的です。人間開発者も進化が必要です。現状マクロ把握のため本稿を作成しました。

Afterword:オープンソースハードウェアコア、RISC-V

Cortex-M代替として急浮上のRISC-V
Cortex-M代替として急浮上のRISC-V

ライセンス料が必要なArm IPコアの対極にあるのが、オープンソースハードウェアコアです。例えば、RISC-V。採用例は、ルネサスのRISC-V MCU/MPUや、EsperantoのAIチップに見られます。

RISC-V採用理由は、少数命令による低消費電力動作です。Arm同様、低電力動作ハードウェアの重要性が解ります。RISC-VかArmかのコア選択は、製品売上見込みとその投資額で決まると思います。

※MCU製品は、IPハードウェア以外にコンパイラ、デバッガなどソフトウェア開発ツールも必要。Armコアならツール入手も容易だが、オープンソースハードウェアコアはこれらもベンダ準備必要(関連投稿はコチラ)。

日本政府マイナンバーカード施策に、上記のような費用対効果検討が全く無いのは、原資が税金のため?😢


エッジAI導入アプローチ

市中ビデオカメラへのエッジAI応用例とどの程度TOPS能力が必要かが判る記事、STM32F3マイコンの電動自転車へのAI応用記事から、MCUとMPU/SBCのエッジAI導入アプローチの違いを説明します。

ビデオカメラのエッジAI応用例

AIビジョンプロセサHailo-15によるカメラノイズ除去、鮮明化例(出典:記事)
AIビジョンプロセサHailo-15によるカメラノイズ除去、鮮明化例(出典:記事)

上図は、左側オリジナルビデオ画像を、AI Visionプロセサ:Hailo-15を使って、ノイズ除去と鮮明化、人物認識を行った例です。

この例では、低照度下で撮影した4Kビデオ画像のノイズ除去に約100ギガオペレーション/秒(GOPS)、30フレーム/秒のリアルタイムビデオストリーミングなので3 TOPS処理能力が必要です。

Hailo-15は、AI処理能力に応じて現在3製品をラインナップしており、それぞれのTOPS値が下図です。

Hailo-15ラインナップ’(出典:HAILOサイト)
Hailo-15ラインナップ’(出典:HAILOサイト)

7 TOPSのHailo-15Lでも十分なビデオカメラエッジAI処理が可能です。カメラ外付けのHailo-15は、例えば、SBC(シングルボードコンピュータ)Raspberry Pi 5と組み合わせると面白い装置が開発できると思います。

同様のビデオエッジAI処理をMCUで実現する場合は、コチラの投稿で示したCortex-M85コア搭載RA8D1があります。

電動自転車のエッジAI応用例

2024年4月3日、STマイクロは、電動自転車搭載の汎用MCU STM32F3(Cortex-M4/72MHz、Flash/128KB)へ、無償エッジAI開発ツールSTM32Cube.AIを使って、自転車タイヤの空気圧を推定、空気を入れるタイミングを示すAI機能を実装しました。

STM32F3は、上記AI機能の他にも自転車本体の電動アシスト量制御やモータ制御も行っています。つまり、空気センサなどの追加ハードウェア無しでエッジAI機能が低コストで実装できた訳です。

STM32F3へのエッジAI応用例(出典:STマイクロ)
STM32F3へのエッジAI応用例(出典:STマイクロ)

STマイクロのMCUソフトウェアは、HAL(Hardware Abstraction Layer)APIを使って開発すると、同社の異なるMCUコアでも移植性の高いソフトウェアが作れます。

最新40nmプロセス製造のSTM32F3上位機種が、汎用STM32G4(Cortex-M4/170MHz)です。STM32G4ソフトウェア開発をご検討中の方は、弊社STM32G0x(Cortex-M0+/64MHz)テンプレートをご活用ください。
また、より低価格低消費電力なSTM32C0(Cortex-M0+/48MHz)へもG0xテンプレートが適用可能です。
詳細は、info@happytech.jpへお問い合わせください。

Summary:エッジAI導入の2アプローチ

エッジAI導入の2アプローチ
エッジAI導入の2アプローチ

実際のエッジAI応用例から、MCUとMPU/SBCではエッジAI導入アプローチが異なる事を示しました。

MCUは、STM32F3例が示すように、「追加ハードウェア無し低コストAI実装アプローチ」です。STM32Cube.AIを使い、実装MCUへソフトウェアのみでAI機能追加を行います。

MPU/SBCは、外付けHailo-15H/M/Lを使ってエッジAI処理を行います。「拡張性重視のAI実装アプローチ」です。

ユーザが求めるAI機能は、今後益々増えます。エッジAI処理増加により、より高い電力効率で高性能な処理コアが求められるのは、MCUもMPU/SBCも同じです。

製品開発には、ある程度の期間が必要です。この期間中に増加するエッジAI処理増に耐えられる製品の処理コア選定は、重要検討ポイントになるでしょう。

関連投稿:MCUとMPUの違い

Afterword:ビデオエッジAI処理プロセス

ビデオエッジAI処理プロセス(出典:HAILO記事)
ビデオエッジAI処理プロセス(出典:HAILO記事)

最初の記事に、ビデオエッジAI処理プロセスが良く判る図があります。これを見ると、エッジAI処理がハードウェアの並列処理に向いていることも判ります。

ハードウェアは、製品化後、簡単に追加ができないため、どの程度の余力を製品ハードウェアに持たせるかは、コストとの兼ね合いで「永遠の課題」です。これは、ソフトウェアのみでAI機能を実装するSTM32Cube.AIでも同じです。製品実装済みMCUの余力を上回るAI機能追加はできないからです。

つまり、当面の安心をMCU開発者へ与えるには、最新MCUの製品利用がBetterということです。


MCUとMPUの違い

STマイクロ技術者が語るMPU Q&Aハンドブックの初回(1)に、MCU(Micro Controller Unit)とMPU(Micro Processing Unit)の違いが判り易くまとめられています。ハンドブックは、MPU関連Q&Aへと連載が続いています。

このハンドブック(1)は、MPU開発者から見た、ハード/ソフトや開発環境が、MPUとMCUではどう違うかを解説しています。視点はMPUです。MPUとMCUの差を示すには十分ですが、MCUの特徴、その良さを示す記述は少なめです(MPU連載を読者に読んでもらうために当然ですが…)。

そこで、本ブログ主題のMCU側から(1)を読み、MCU製品開発ポイントと、最新MCU/MPU動向を示します。

MCUとMPUの根本差

ハンドブック(1)集約のMPU開発者がつまずき易い8つのポイントを再掲します。詳細は、(1)を参照ください。

  1. MPUと一緒に使う部品と選び方
  2. 回路設計時の重要ポイント
  3. 基板レイアウト作成時の重要ポイント
  4. 基板にあわせて必要なソフトウェアのカスタマイズ項目
  5. 初めてのボード開発での落とし穴と確認事項
  6. MCUとMPUのソフト開発の違い
  7. 知的財産を守るためのセキュリティ知識
  8. 開発製品のタイプ別課題と確認事項

これらつまずきの原因は、「MPUは、ユーザによる周辺ハードウェア追加、複数人によるソフトウェア開発が基本」だからです。MCUとMPUの根本的な違いがここです。

※周辺ハードウェアは、電源とクロックを除くMCU/MPU単独動作必須ハードウェア。例えば、ROM/RAMなど。

※MCU基板レイアウト、ソフトウェア重要ポイントは、コチラの投稿参照。

MCUとMPUのアプリ対応差

MCUとMPUの違い
MCUとMPUの違い

つまり、MPUは、例えば高性能Cortex-Aコアプロセサへ、外付けRAMや必要なDSP/GPU/NPUを追加し、複数ソフトウェア開発を容易にするRTOSアプリ開発に使います。アプリ要求性能に対して、追加ハード選択肢も多いため、柔軟性という意味では広範囲、かつ、大規模アプリの製品開発が容易です。

一方、MCUは、RAMやDSP/NPUなどアプリ開発に必要となる周辺ハードウェアが、例えばCortex-M33などのコアプロセサと一体でパッケージ済みです。一体パッケージのため、MPU比、アプリ柔軟性や対応製品範囲は狭くなります。

「MCUは、特定アプリに必要十分なROM/RAMや周辺ハードウェアを、ベンダがパッケージ化しユーザへ提供」するため、小型・低価格な製品化が可能です。MCUはRTOS利用もできますが、小規模ベアメタルソフトウェア開発が基本です。

MCUのポイントはMPU比、シンプルです。開発アプリに適すMCUを選択することです。

MCUとMPUの最新動向

MCU/MPUに限らずPCもネット側も全ての制御系は、AI半導体と、MCU/MPU担当のエッジAIアプリ実現に向けて突進中です。

ルネサスは、低消費電力と柔軟性を備えたAIアクセラレータ:DRP-AI3(Dynamically Reconfigurable Processor for AI)をMPU向けに開発し、従来比、約17倍のAI処理や電力効率(10TOPS/W)を実現しました。この技術は、MCUへも展開されるでしょう。

DRP-AI3 に適用した軽量化技術(出典:ホワイトペーパーDRP-AI3 アクセラレータの特徴)
DRP-AI3 に適用した軽量化技術(出典:ホワイトペーパーDRP-AI3 アクセラレータの特徴)

電力効率の良いCortexM0+/M4、セキュリティ強化Cortex-M33に加え、MCUは、DSPやAI/ML性能が高いARM Heliumテクノロジ搭載Cortex-M85搭載のRA8ファミリ量産出荷が始まりました。

Microchipは、従来外付けだったPLDやFPGAのカスタムロジックを、8ビットMCUに内蔵しました。これにより、製品の部品削減・小型・低消費電力化が可能になります。8ビットが気になりますが、低価格を目指したのだと思います。

PSoC/PRoCマイコンが上記Microchipに近い特徴を持つ。

Summary:MCU開発ポイントと最新技術動向

MCUは、開発アプリケーションに応じたROM/RAMや周辺ハードウェアを、MCUベンダがパッケージ化しユーザへ提供します。このため、MPU比、小型・低価格な製品開発ができます。半面、アプリケーション柔軟性や対応範囲は、狭くなります。

従って、MCU開発は、開発アプリケーションに適すMCU選択がポイントです。

MCU/MPUは、AI処理を高速化するNPU内蔵、従来外付けカスタムロジック内蔵、Cortex-M85コア採用など、更なる高性能・小型・低価格トレンドへ向けて進化中です。

最新MCU/MPUデバイス採用により、コストパフォーマンスの優れた製品開発が期待できます。

Afterword:ディアルコアのサブコアは通信処理専用

ディアルコアMCU/MPUのサブコアは、Cortex-M4/M0+利用の通信処理専用例が多いです。これは、いつ発生するか不明、しかも、割込み優先度も高い通信処理負荷を、アプリメイン処理と分離するためです。

DSPやGPUと同様、サブコアは、周辺ハードウェアの一種と捉えれば理解し易いでしょう。

ネットや外部デバイスとMCU/MPU間通信は必須です。通信処理専用サブコアでメインコアと分離しておけば、開発アプリはそのままに、様々な通信プロトコルへの対応性が高まるメリットがあります。


NTT Innovative Devices

2023年9月6日、IOWN光電融合技術の規格・設計・開発・製造・販売を行うデバイス製造新会社:NTT Innovative Devicesの記者会見がNTTブログに掲載されました。

新会社:NTT Innovative Devicesは、NTT研究所の光電融合部門と最先端光電子部品メーカ:NTTエレクトロニクスの2者を統合しました。

新会社NTT Innovative Devices(出展:記者会見記事)
新会社NTT Innovative Devices(出展:記者会見記事)

NTT Innovative Devicesは、光電融合デバイス市場をネットワークだけでなくコンピューティングへも広げること、そして次世代ネットワークの電力問題を解決するミッションを持ちます。

新会社NTT Innovative Devices

NTT Innovative Devices体制(出展:記者会見記事)
NTT Innovative Devices体制(出展:記者会見記事)

NTT Innovative Devicesは、光電融合デバイスの研究開発とデバイス製造、北米、欧州、ホンコンなど世界規模の販売が目標です。

会見で示された事業戦略も、実践的かつアグレッシブで、従来にない新しい研究・開発・製造・販売スタイルを持つ会社と言えます。

従来のNTTグループ企業とは異なる日本に固執しないビジネス展開が期待できそうです(関連投稿:日本固執Change)。

地球沸騰化の電力不足を救う光電融合デバイス

デジタル世界を支えるクラウドのデータ量がこのまま増え続けると、データセンター消費電力はさらに増加し、地球温暖化へ繋がります。参考資料:光電融合技術とは、2023年8月29日、NTTブログ。

国連グテーレス事務総長が示した危機感「地球沸騰化」は、絶対に避けなければなりません。

光電融合技術は、コンピュータやネットワーク内の電気処理と光処理を融合し、電力効率100倍、伝送容量125倍、エンドエンド遅延1/200が目標の革新的デバイス技術です(関連投稿:IOWN 1.0提供開始)。

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

Summary:低消費電力化はIoT MCUへも

個々の消費電力は僅かでも、世界中で莫大な投入数量が予想されるIoT MCU。

ネットワークによる電力不足や地球環境変化は、IoT MCU開発も影響を受ける可能性があります。MCU開発者は、処理効率だけでなく、低消費電力化を意識した開発も重要になりそうです。

コチラの投稿に、間欠的な無限ループ動作と空き時間SleepによりMCU消費電力を下げる基本動作を示しています。参考にしてください。

Afterword:今年の猛暑

今年の日本の夏は暑かった。未だ猛暑は続いていますが、異常気象は電力不足に直結します。

例えば、自動車排出ガス規制のように、地球規模のエネルギー危機は、我々MCU開発者へも低消費電力開発を義務化する動きに繋がるかもしれませんね。


パスワードとパスキー

パスワードからパスキーへ
パスワードからパスキーへ

最新Chrome 116は、パスワードマネジャーデザインが新しくなり、パスワードの保存と入力が容易になりました。そこで本稿では、「パスワード」と最近話題の「パスキー」の筆者現状理解を示します。

参考資料:
1. パスワードのない世界へのマイルストーン「パスキー」、2023年6月14日

2. AppleやGoogleが対応を進める「パスキー」とは、2023年8月7日

とにかくセキュリティ関連記事は、判り難いのでポイントを簡単にまとめました。

パスワード問題

どんなに複雑なパスワードでも、それを入力したのがユーザ本人かが確認できないこと、パスワードそのものがネットワーク上に流れ第3者が盗み見ることができること、この2点がパスワード問題。

パスキー解決策

パスワード問題解決のため、指紋認証などの本人確認機能を持つ端末(PC/スマホ)のログインにパスキーを使う。パスキーで本人認証後、ネットワークログイン時に送受する情報は、端末での本人認証結果と高度に暗号化された情報。これらは、第3者が盗み見ても本人成り済ましは不可能(に近い)。

パスキーは端末間の移行・同期可能

スマホ紛失やPC買換え時の利便性向上のため、アカウント名などのユーザ情報(クレデンシャル情報)をクラウドアカウントに紐づけることによりパスキー端末間同期が可能。現状対応クラウドは、Apple、Google、Microsoft。

クラウド利用により移行利便性も兼ね備えたパスキーは、パスワードに代わるログイン方法として有力。

パスキー運用ChatGPT回答

パスキー運用に関してEdgeのChatGPT(Bingチャット)でQ&Aを得ました。

Q1)パスキーを間違えたら?
A1)パスキーは、入力回数に制限あり。一定時間経過後、再入力可能。パスキーを忘れた時は、端末リセット必要。

Q2)複数端末で同じパスキーは使える?
A2)複数端末間で同じパスキーを使える。

Q3)パスキーを間違えてリセットした時の複数端末の影響?
A3)リセットは、その端末のみ。他の端末は影響なし。

つまり、複雑なパスワードの代りに、4桁または6桁のパスキーさえ覚えておけば、同じパスキーを複数端末で使ってもログインセキュリティは安心のようです。

Summary:パスワードからパスキーへ

クラウドアカウントを組み合わせたパスキーログイン方法
クラウドアカウントを組み合わせたパスキーログイン方法

例えパスワードマネジャーが使い易くなっても、パスワード自体の問題(本人未検証)解決にはなりません。

パスキーと本人認証端末、クラウドアカウントを組み合わせたパスキーログイン方式(本人検証結果+所持情報)は、パスワードレスアクセスとして期待できそうです。

Afterword:知識情報は4/6桁が限界?

パスキーが4/6桁なのは、指紋/顔認証などの本人検証が失敗した時の代替入力のためと思います。PC/スマホログインに指紋/顔認証が「先」で、認証失敗時にパスキー入力を「代り」に求めるからです。
スマホは、認証成功時でも定期的にパスキー入力を求め、パスキー知識情報を忘れないよう保全します。

個人が無理せず覚えられる数字は、この桁位でしょうか? IoT MCUデバイスなら桁数をもっと増やし、セキュリティレベルを上げることもできます。

パスキーの仕組みは、指紋/顔など変えようがない超重要認証データは端末のみに保存し、ネットワークログインは認証結果など漏れても支障が少ない情報で行うことでセキュリティを高く保つ、と筆者は理解しています。

但し、ネットワークログインは、当面使い慣れたパスワードも併用するでしょう。Chrome 116のパスワードマネジャーで、パスワード自体を強固にすることも必要です。



STM32 Developer Zone

STマイクロが、STM32 MCU/MPU開発者向け総合ポータルサイトSTM32 Developer Zoneを開設しました(2023年6月)。ベテラン/初心者ともに開発に役立つページリンクが多数集約されています。

ポータルサイトのリンク構成を解かり易くするため、フォルダ形式の一覧表示にしました。

STM32 MCU Developer Zone

STM32 MCU Zone (Home) MCUプロジェクトを開始
1-MCU製品ポートフォリオ
2-開発ボード&ハードウェアツール
3-ソフトウェア開発ツール
4-組込みソフトウェア
5-ソリューション
6-開発リソース
アプリケーション別ソリューション AIソリューション
ワイアレス&コネクティビティ
セキュリティフレームワーク
コミュニティ&サポート STコミュニティ
ナレッジ共有
パートナ設計サービス
オンラインサポート(要ログイン)

下図マイクロプロセッサ:MPU(STM32MP1/Cortex-A7+Cortex-M4)以外の全マイコン:MCU情報が、このSTM32 MCU Developer Zoneに集約されています。

STM32 MCUとMPU境界(出展:STM32C0シリーズセミナ資料に加筆)
STM32 MCUとMPU境界(出展:STM32C0シリーズセミナ資料に加筆)

MPUに比べ、AIソリューション等のアプリケーション別ソリューション情報も豊富です(関連投稿:AI MCU)。

また、初心者向きMCUプロジェクト開始リンクがあり、Step1で評価ボード選択、Step2でSTM32CubeIDEを使ったMCU開発手順の説明もあります。

STM32 MPU Developer Zone

STM32 MPU Zone (Home) MPU組込みソフトウェアツールの詳細
1-MPU製品ポートフォリオ
2-開発ボード&ハードウェアツール
3-組込みソフトウェア
4-ソフトウェア開発ツール
5-ソリューション
6-開発リソース
コミュニティ&サポート STコミュニティ
ナレッジ共有
パートナ設計サービス
オンラインサポート(要ログイン)

高度なHMIや複雑処理向けのCortex-A7搭載MPUは、現在STM32MP1シリーズだけです。従って、STM32 MPU Developer Zoneサイト構成は、MCU比シンプルです。

2023年第4四半期にこのSTM32MP1に加え、Cortex-A35、Cortex-M33搭載でセキュアIndustry 4.0、およびエッジ・コンピューティング・アプリケーション向けSTM32MP2シリーズが追加予定です。

ポータルサイトHTMLとリンク構成

ウェブサイトの図や文字、ハイパーリンクの表示には、HTMLが使われます。HTMLで記述したリンク集約ポータルサイトは、肝心のリンク構成が読者に解り難い欠点があります。モニタで一度に表示できる領域が限られるため、リンク構成は、読者がサイト全体を把握した後になるからです。

そこで、本稿は、誰でも見慣れたフォルダ形式で、STM32 MCU/MPU Developer Zoneのリンク構成を示しました。

ポータルサイトは随時更新されますが、リンク構成を把握していれば、常に所望最新リンクへのアクセスも容易です。

注)本稿は、2023年6月9日現在のリンク先を示しています。最新リンクへは、MCU/MPU Developer Zoneホームからアクセスしてください。

Afterword:European Chips Act(欧州半導体法)

欧州半導体法は、EU内の製造活動強化、欧州設計エコシステム刺激、バリューチェーン全体スケールアップとイノベーションを支援するもので、これによりEUは、世界市場シェアを2030年に20%倍増させるという目標を目指しています。

STマイクロとGlobalFoundriesは、2023年6月5日、フランス・クロルで両社共同運用の300mmウエハー工場新設計画の合意を締結と発表しました。総投資額は75億ユーロの見込みで、フランス政府が最大29億ユーロを援助します。

生産だけでなく、より開発し易いMCU/MPUへ向けたオランダ)STマイクロの活用、今後も注目が必要です。



1GHz 64ビットMPU量産開始

1GHz/64ビットMPU:RZ/A3UL評価ボード構成
1GHz/64ビットMPU:RZ/A3UL評価ボード構成

2022年8月ルネサスは、最大動作周波数1GHz 64ビットMPU、RZ/A3ULの量産を始めました。本プログメインカテゴリのMCU(マイコン)では無く、比較対称のMPU(マイクロプロセッサ)のことです。

より高度なHMI(Human Machine Interface)を実現するためRTOS(FreeRTOS/Azure RTOS)採用、RISC-Vコア搭載機RZ/Fiveとも互換性を持たせる作りです。肥大化するソフトウェア資産流用、活用に重点を置いています。

ところで、2022年8月9日ITmediaのPCとは何だったのか記事の最初のページには、PC(CPU)が16→32→64ビットへと変わった41年の歴史が、23回連載記事タイトルからも判ります(詳細は、連載記事参照)。

本稿で言いたいのは、MCU(マイコン)も近い将来GHzクラス高速化へ向かうだろうと言うことです。

MCU → IoT MCU

未だに8/16ビット機も現役のMCUは、CPU程の紆余曲折や派手さはありませんが、着実に高速・大容量化が進行中です。制御規模が小さく、スタンドアロン処理も可能なMCUなので8/16ビット機でも現役です。

しかし、時代はIoT、全ての制御対象がネットワークに繋がります。OTA(Over The Air)によりセキュリティ更新や、制御ソフトウェア変更もIoT MCUでは可能です。これら処理は、セキュリティライブラリや決まった更新手順で実施されます。

つまり、プリミティブなMCU制御から、よりアプリケーション寄り、場合によってはRTOS前提のIoT MCU制御へ変わらざるを得ない状況になりつつあります。自力でこれらを開発する猛者もいるでしょう。しかし、これらは、本来注力すべき開発差別化部分ではありません。

MCUハードウェア/ソフトウェアともに、市場獲得に向けて他社差別化を狙う部分と、IoTクラウド接続達成部分を、コストパフォーマンス高く共立する、これがIoT MCUの要件です。

CPU/MPU製造技術やソフトウェアのMCU転用は、過去、上記要件の解となってきました。大容量Flash内蔵が前提MCUと、外付けRAM前提CPU/MPUのハードウェア差はありますが、その転用速度は、今後更に早まると思います。

高度なHMIを体験すると元に戻れないように、MCU+クラウド→IoT MCUを顧客が体験すると、元のスタンドアロンMCUには戻れません。

ドライバ → 個別API → HAL API → マルチタスク

IoT MCUソフトウェア開発の変遷
IoT MCUソフトウェア開発の変遷

MCUソフトウェアも、40年前のドライバ開発、20年前のMCU個別API開発、10年前からはMCU共通HAL(Hardware Abstraction Layer) API開発へと変わりました。MCUソフトウェア資産化も、もはや夢ではありません。

開発部分がアプリケーション層に近づけば近づくほど、オーバーヘッドは増えます。オーバーヘッド増大や各種セキュリティライブラリなどの有効活用、RTOS利用によるマルチタスク開発には、IoT MCUの64ビット化、GHzクラス高速化も必然だと思います。

ビット幅増大は、各種巨大ライブラリ流用のためです。ここは32ビットでも十分かもしれません。しかし、高速化は、オーバーヘッド対策や、場合によってはMPU同程度の高度HMI処理、クラウドエッジでのAI処理など、IoT MCU機能実現には必須です。

製造業経済規模 → 縮小中の日本

我々開発者は、前章のIoT MCUソフトウェア開発の変遷を見ただけでもかなりの大変さ、自助努力が開発に必要であることを実感できます。

しかし、日本は、世界の先進国とは異なります。大変さや努力に対し報われることが期待できません。

日本が先進国で唯一、製造業の経済規模が縮小している国という記事や、労働者不足が、COVID-19のせいではないという記事を読むと、その理由と現状が判ります。

世界第2位から降下中の日本
世界第2位から降下中の日本

諸外国の真似をせよという気はありません。が、このままでは気が付けば、後進国になりかねないのが、今の日本です。

今こそ、日本開発者「個人」で変化に対応すべきです。少しずつでも、IoT MCUへ準備を始めませんか?

弊社NXP版FreeRTOSテンプレートは、FreeRTOSプロジェクトと同じ動作のベアメタルプロジェクトも添付済みです。アプリケーションレベルでRTOSとベアメタルを比較しながら技術習得が可能です。是非、ご活用ください。また、ST版Azure RTOSテンプレートも本年度中には開発予定です。

最後は、宣伝となってしまいました。すいません。

日本とアイルランドのIoT

北海道とアイルランド比較(出展:たび日和、アイルランドの面積ってどのぐらい?)
北海道とアイルランド比較(出展:たび日和、アイルランドの面積ってどのぐらい?)

2022年7月29日ZDNet Japan掲載、アイルランドIoT事情についての記事(前編後編)と、2022年8月1日MONOist掲載、調査結果からみる日本製造業将来と期待の記事を紹介、両国のIoT開発現状を比較します。

アイルランド

北海道 アイルランド共和国
面積 8万3,400㎡km 7万300㎡km
人口 530万人 492万人

日本と同じ島国で、面積、人口が北海道より少し小さいアイルランド共和国は、記事によると世界最大の情報通信技術(ICT)サービス輸出国です。

アイルランド国内総生産(GDP)は、世界トップ10にランク(Wikipedia)されます。

アイルランドIoT事情

ごく簡単に記事要旨をまとめます。

アイルランドは、IoTを「データ収集(Collect)」「接続(Connect)」「変換(Transform)」の3カテゴリに分類、さらに3カテゴリをまたぐ形で事業展開する企業をサポート、IoTサービス進化を現実化する研究施設もある。

「IoTビジネスに最適な国」を目指し、行政や大学などの研究機関を整備、世界各国から有力企業とノウハウを集積した結果、2022年経済成長率5.4%、2023年4.4%と予測される高い経済成長に繋がっている。

日本製造業の将来と期待

MONOist日本読者による製造業の将来と期待についてのアンケート結果が、3枚の図にまとめられています。

要旨を簡単にまとめます。

・先が読めないので予想し準備することは不可能。だから、変化に合わせた柔軟性が重要。
・リアル活動制限のコロナ禍、デジタル環境で様々な業務ができることが判明。
・日本製造業将来が明るい/暗い回答はほぼ同数で25%、残り50%はどちらとも言えない。
・AIやロボット、自動運転などの自動車分野、メタバース/ローコード技術に期待。
・日本モノづくりは、世界的に見ると特殊な立ち位置。

最後を除いては、日本に限らずどの国の企業、技術者でもさほど違わないと思います。違いは、日本の国家指針の無さ・見えなさ、変化に対するスピードの遅さだと思います。

海外比遅れる理由(出展:MONOist 15周年記念アンケートP7)
海外比遅れる理由(出展:MONOist 15周年記念アンケートP7)

まとめ:個人レベルは選択と集中

日本とアイルランドのIoT開発現状を比較しました。

関連分野が広く、しかも、各分野の奥行も深いIoTです。日本の開発者個人にとっては、アイルランドのIoT 3カテゴリ分類は、1つの「指針」になると思います。

例えば、IoTエッジMCU開発者ならば、先ずはデータ収集、次に無線/有線の接続、最後にAI向けのエッジデータ変換というように、アイルランドガテゴリに沿った技術区分と優先順位を付けることができます。

漠然とIoTを捉えるより区分と優先順位があれば、より集中、選択してIoT技術を習得できます。しかも、そのカテゴリ分けは、世界最大のIoTサービス提供実績があるアイルランドカテゴリに基づいているので、「世界的モノづくりへ通用」する可能性も高いです。

ガラバゴス技術の多い日本にいると、自身の技術がはたして世界で通用するかの不安は付きものです。

不安払拭のため、時には開発者個々人が、世界(今回はアイルランド)へと視野を広げ、自身の開発領域へフィードバックをかけ、「選択、集中した技術習得」が効果的なIoTだと思います。