汎用マイコンかアプリケーション特化マイコンか

大別するとマイコン:MCUには、汎用マイコンとアプリケーション特化マイコンの2種類があります。

弊社は、下記理由から汎用マイコン:General Purpose MCUを主として扱います。

  1. 対象ユーザとマイコンが多い
  2. 低価格で入手性の良い評価ボードが多い → オリジナルハードウェア開発にも役立つ
  3. 無償開発環境:IDEでもマイコンソフトウェア開発ができる
  4. 応用範囲が広い汎用マイコン開発の方が、顧客、開発者双方にとって有益である

汎用マイコンとは何か?に対しては、マイコンベンダ各社サイトのGeneral PurposeのMCUを指します。一方、アプリケーション特化マイコンとは、モータ制御、ワイヤレス制御、5V耐性などが代表的です。

かつては5Vマイコンが普通でしたが、現在は3.3V動作以下です。その結果、5V耐性がアプリケーション特化マイコンにカテゴライズされました。このように、時代や多数派に合わせて汎用の定義は変わります。高度なセキュリティや無線通信が必須のIoTマイコンも、いずれこの汎用マイコンにカテゴライズされると思います。

本投稿は、4番目の理由の追風となる記事を見つけたので紹介します。

汎用マイコンの動向記事

  1. “G”と”L”で考える発展途上の産業エレクトロニクス市場、2018年3月13日、EE Times Japan
  2. 産業FAは「汎用」「多数」の時代に、国産マイコンが変化を支える、2018年2月5日、TechFactory

最初の記事の”G”は、Global、”L”は、Localを意味します。マイコンベンダも、マイコンを使うユーザも、どのマイコンを使うかは暗中模索で混迷しているが、いずれはLocalからGlobalへ移行すると筆者は考察しています。

2の記事は、産業用FAが専用、少量装置から、AI:人工知能を利用した汎用、多数装置の時代に入ったと分析し、ルネサスRZ/AシリーズにAI機能を組込んでこの時代変化に対応すると宣言しています(関連投稿のSTMはコチラ、ルネサスはコチラを参照)。

どちらの記事も、アプリケーション特化マイコンより汎用マイコンの方が、より多く利用されると予想しています。マイコンベンダにとっても、汎用品で大量生産ができ供給コストも下げられます。

お勧めはプロトタイピング開発

FPGAにソフトウェアIPを組込み、より柔軟制御を目指したことや、高分解能ADCマイコンで精密測定などの開発も行いましたが、技術的に得るものは多くても開発時間が予定より長くなり、結局収支は赤字だった経験があります。

パソコンCPUと同様、汎用マイコン処理能力やセンサ能力も半導体製造技術とともに年々向上します。特に処理能力が必要なIoTマイコンは、コア動作速度を上げる、ディアルコアを採用するなど、ここ数年で急激に向上しています(PSoC6は、Cortex-M0+ 100MH動作、Cortex-M4 150MHz動作)。

弊社も今後の組込開発は、汎用マイコンを使い、より早く低コストで装置化する方が、顧客、開発側双方にとって有益だと考えます。開発期間が長いと、その間により高性能マイコンが発売されたりするからです。つまり、プロトタイピング開発をお勧めします。

プロトタイピング開発した装置が仮に能力不足であった場合は、その不足部分のみに改良を加える方がリスクも低く、確実に目的を達成できます。プロトタイピングの意味は、この能力不足部分を明確にし、低コスト低リスクで成功への道筋を探すことも含まれています。

汎用マイコンテンプレート

開発の立ち上げを早くすることがプロトタイプ開発の第1歩です。弊社マイコンテンプレートは、

  • 汎用マイコンの評価ボード上で動作確認済み
  • 複数サンプルソフトウェアをそのまま使った時分割の並列処理可能
  • 開発のつまずきを防ぐ豊富なTips満載のテンプレート説明資料添付

などの特徴があります。汎用マイコンテンプレートを活用し、効率的なプロトタイピング開発ができます。

マイコンソフト開発の基礎知識と初心者、中級者向け開発方法(最終回)

前回までで初心者、中級者向けマイコンソフトの基礎知識と開発方法に、俯瞰視野でサンプルソフトを選び、サンプルソフト初期設定とループ内処理をライブラリとして評価ボードで動作確認しながら開発するサンプルソフトファーストの方法を述べました。

この方法は、サンプルソフトをジグソーパズルのピースとし、各ピースを弊社マイコンテンプレートへ入れさえすれば開発できるので、楽しくラクにマイコンソフトウェア開発ができます。

サンプルソフトを組合せるマイコンソフトウェア開発
サンプルソフトを組合せるマイコンソフトウェア開発

日本人は、サンプルソフトのコメントや概要記述の英語が苦手です。最終回は、ソフトウェアに使われる英語、特にサンプルソフト英語の扱い方を示し、本開発方法を総括します。

マイコンサンプルソフトの英語コメントは重要

初期設定+無限ループ内の1周辺回路制御という構造:フォーマットが決まっているマイコンサンプルソフトは、英語圏開発者によるものが殆どです。

彼ら彼女らにとって母国語英語ベースのC言語サンプルソフトは、ソースコードだけでも理解に支障はありません。また、関数をモニタ1画面(80字x 25行)以内の行数で記述する傾向もあります。ページスクロールせずに関数全体が見渡せるからです。

C関数の行数
C関数の行数

このような英語圏開発者があえて追記するコメントは、重要事項のみです。数行にまたがるコメントならなおさらです。つまり、なぜコメントしているかを理解することが大切です。といってもソースコードのコメント英語は、解り難いのも事実です。

英語コメントはブラウザ翻訳で日本語化

ブラウザアドレス窓に「翻訳」と入力すると、ブラウザ上で翻訳ができます。長い数行の英文でも瞬時に日本語になります。

ブラウザ翻訳
ブラウザ翻訳

サンプルソフトの英語コメントが解り難い時は、ブラウザ翻訳を使い日本語で読むと内容理解に効果的です。

マイコンソフト開発の基礎知識と初心者、中級者向け開発方法(総括)

従来のマイコンソフトウェア開発は、マイコンデータシートなど理解が先、次に理解した情報のプログラミングという順番でした。この方法は正攻法ですが、初心者、中級開発者には、限られた開発期間で理解対象が多いため開発障壁が高く、プログラミングの時間も相対的に短くなります。

マイコン応用製品の早期開発には、プログラミングを先にする方法へ見直すことが必要です。

それには、初心者、中級開発者が元々持つ俯瞰視野とサンプルソフト、ライブラリ、評価ボード、ブラウザ翻訳などの既存資産を上手く利用すれば良いのです。Arduinoシールドを使えば評価ボードへの機能追加も簡単で、製品版に近い開発環境でのプログラミングも可能です。

本投稿は、初心者、中級者向けのマイコンソフト開発の基礎知識として、サンプルソフト資産が多数あること、多くのサンプルの中から対象を絞り、一種のライブラリとして動作確認しながらソフト開発をするサンプルソフトファーストの方法を示しました。

IoT時代は、RTOSやセキュリティ知識など、より多くの情報を取り込んだマイコンソフトウェア開発になります。個々の情報の相対的な重要性さえ理解していれば、情報内容の理解よりも開発するソフトウェアへ組込む能力の比重が、ますます高まるでしょう。

開発者がこだわるべきは、短い期間内で開発するソフトウェア出力です。情報理解は、開発後でもOKです。

マイコンソフト開発の基礎知識と初心者、中級者向け開発方法(第2回)

第1回では、初心者、中級者はデータシートから開発着手せず、元々持っている俯瞰視野を忘れずにマイコンソフト開発をすることが重要だと述べました。
今回は初めにまとめを示し、次にその経緯や理由を説明、どうすれば初心者中級開発者が俯瞰視野でソフト開発できるかを示します。

第2回マイコンソフト開発の基礎知識と初心者、中級者向け開発方法のまとめ

  • サンプルソフトファースト:典型的な使用例、解り易さ重視、ソフトウエア開発立場のサンプルソフトから開発着手
  • サンプルソフトは、タイトルや概要のみを読み周辺回路の要求仕様に近いものを選ぶ
  • 開発の致命的ミスを避けるため、選定サンプルソフトから使用マイコンを再評価
  • サンプルソフト処理理解より、初期設定と無限ループ内処理の記述場所でライブラリとしての流用性を重視
  • ライブラリをマイコン評価ボードで動作確認後、要求仕様へカスタマイズ
  • 選出した複数サンプルソフトを、組み合わせて1パッケージ化できるツールあり

サンプルソフトファースト

マイコンソフトウエア開発は、ソフトウエア以外にもハードウエア、半導体など多くのことを理解した上で開発するのがBestです。しかし、限られた開発期間で全てを理解するのは、対象が多くしかも広すぎるため困難です。そこで、初心者、中級者がゴール(=開発完了)を目指すのに「必要最低限」な対象のみに絞り、ゴールインできるBetterな方法がサンプルソフトファーストです。

必要最低限の対象に絞る時に使うのが、マイコンのサンプルソフト(ベンダによってはアプリケーションノート、Code Examplesとも呼ぶ)です。サンプルソフトは、そのマイコンの「典型的な使用例」を「解り易さ重視」で「ソフトウエア開発の立場」から示す資料です。

「典型的な使用例」「解り易さ重視」「ソフトウエア開発の立場」で作られ、実際に動作するサンプルソフトを、一種のライブラリとして開発に使うのが本方法の骨子です。

マイコンソフトウエア開発対象の4分類

マイコンソフト開発を、制御する対象で4つに分類し、初心者、中級者がサンプルソフトを探すべき順位付けをしたのが下表です。

マイコンソフトウエア開発対象の4分類
分類(検索順位) 概要 対象例
周辺回路(1 マイコンソフト開発の基本中の基本。
周辺回路毎にサンプルソフト多数あり。
GPIO、ADCなど
通信(2 有線通信のサンプルソフト多数あり。
IoT無線通信プロトコルは、未確定。
USART、BLE、Threadなど
RTOS(3 複数タスクのリアルタイム処理に不可欠。
IoTマイコンには必須になる可能性大。
FreeRTOS、mbed OSなど
セキュリティ(4 IoT端末に不可欠。
処理内容は専門家任せでOK。
暗号化、セキィリティICなど

周辺回路は、GPIOやADCなどマイコン内蔵ハードウエアのことです。通信も周辺回路の1つですが、通信相手や有線/無線などにより制御ソフトがかなり変わり複雑度も増しますので、別項目として抜き出しています。また、IoT端末の場合には、BLE: Bluetooth Low EnergyやThreadなどのプロトコル候補がありますが、現状は未確定です。

RTOSやセキュリティも現状マイコンでは開発対象にはなりませんが、IoTが普及する頃には大きな対象になります。

巷にはセキュリティやIoT無線通信の情報が溢れていますが、当面は不要です。周辺回路(1)と有線通信(2)のみを検索すれば、現状のマイコンソフト開発には十分です。これで、探す対象が半分になりました。

サンプルソフト選定

マイコンには多くの周辺回路が実装済みです。しかし、各回路は独立していて、使う回路のみのソフトを開発すればOKです。周辺回路毎に、多くの典型的使用例、サンプルソフトがあります。

サンプルソフトには、内容概要を説明するタイトルや記述が必ずあります。この「タイトルや概要のみを読んで」要求された開発に使えそうか否かを判断します。判断の正確さに拘る必要はありません。気楽に、面白そうだと思ったサンプルソフトでも良いので、何個かピックアップします。

サンプルソフトに要求仕様の「一部しか含まれていないものでもOK」です。最後に示す、複数のサンプルソフトを組合せて1つにできるツールがあるからです。

概要やサンプルソフトのコメントが英語表記の場合も多いです。この場合は、第3回で示す英語対応方法を参考に対応してください。ここでは、全て日本語表記として続けます。

多くのサンプルソフトの中から、タイトルや概要のみで利用可否を判断するのは、日本語ですので簡単です。この操作で、内容まで目を通すサンプルソフトの対象数は、激減します。

ルネサスのIDE CS+で示されるアプリケーションノート例が下図です。

ルネサスCS+のサンプルソフトタイトル検索例
ルネサスのCS+サンプルソフトタイトル検索例

周辺回路の中で難易度が高いのは通信です。他と同様にサンプルソフトを選んでも良いですが、後回しでもOKです。周辺回路のサンプルソフト内に通信が含まれることも多いからです。さらに、通信は周辺回路の出力通知や遠隔制御に使うことも多いので、まずは周辺回路を開発した後でOKです。

重要なのは、「サンプルソフトの選出にも俯瞰視野を使う」ことです。いきなり細部へ入らず、常に俯瞰視野から多くの情報をふるいにかけ、その後で次ステップへ進むようにしましょう。

選出サンプルソフトから判る、開発仕様とマイコンのマッチング

サンプルソフトは、典型的な使用例です。もし、開発の要求仕様が、部分的にでもサンプルソフトに含まれない時は、サンプルの選び方が間違っているか、または仕様そのものの難易度が高いと言うことです。

もしかしたら、開発に使うマイコン選定ミスの可能性もあります。半導体ベンダは、様々なマイコンを発売しています。仕様に合うマイコンを使うのが開発の第1歩です。マイコン選定ミスは致命的です。

このように、サンプルソフトの概要だけでも要求仕様とマイコンのマッチングの良さ、悪さは判ります。ここでは、マッチングは良い、つまり開発見込みがあるマイコンを選定済みとして続けます。

※残念ながら既定方針で使用マイコンが決まっており、これで仕様を満たすものを開発する例も多くあります。しかし、仕様に近いサンプルソフトが無いということは、開発リスクが高いということです。
同一ベンダから汎用/専用など多くのマイコン機種を提供中なのは、開発リスクを下げるためです。選出したサンプルソフトからマイコン選定を再評価するのは良い方法です。

サンプルソフトはフォーマットから読み(見て)ライブラリとして活用

解り易さ重視のサンプルソフトは、構造にフォーマットがあります。周辺回路の「初期設定」と「無限ループ内での周辺回路制御」です。

初期設定で周辺回路の動作、割込みかポーリングかなどが変わります。サンプルソフトは、初期設定とループ内制御の2つに分けて読み(見)ます。初期設定は、周辺回路の使い方が同じなら、そのまま流用できます。

ループ内制御は、割込みの場合は、割込みサービスルーティン:ISRがそのまま流用できます。ISRで起動されるルーティンと、ポーリング処理は、簡単に理解していれば十分です。

つまり、サンプルソフトの処理理解よりも、処理がある場所で、自分の開発出力への流用性を読む(見る)のです。自分の開発に使えるものは、そのままサンプルソフトをライブラリとして使います。解り易さ重視で作ったサンプルソフトなので、ライブラリとしても使えます。

サンプルソフト抽出ライブラリを評価ボードで動作確認後カスタマイズ

サンプルソフトから抜き出したライブラリで本当に動くかを確かめるため、マイコン評価ボードで実際に動作させ確認します。マイコンは動けば開発は楽しくなります。

サンプルソフトとマイコン評価ボードは、ラクに楽しくマイコン開発を行う必須ツールです。

評価ボードでマイコンを動かし、もしも要求仕様と異なる箇所があれば、その箇所のみカスタマイズするのが初心者、中級者開発者向けにお勧めです。このカスタイマイズ時に、初めてデータシートを参照すれば良いのです。マイコンは動作し始めるまでに手間が掛かります。動作立上げを早くすれば、ラクに開発できます。

※サンプルソフトが提供する機能が要求仕様の一部のみの場合でも、複数のサンプルソフト機能を簡単に組み合わせることができる弊社マイコンテンプレートなどのツールがあります。

つまり、サンプルソフトライブラリを活用しジグソーパズルを組むような感覚でマイコンソフトウエア開発ができます。

2018マイコンベンダ最新ニュース

弊社マイコンテンプレートで扱っております主要マイコンベンダ、NXP、ルネサス、STマイクロエレクトロニクス、Cypress各社の2018最新ニュースとRTOS関連ニュースの中から、ブログ対象MCU関連の情報をピックアップしました。

NXP

MCUXpresso IDEの新バージョン10.1.1_606がリリースされました。また、LPC8xx向けのLPCOpenライブラリv3.02もリリースされましたが、リリースノートを見てもv3.01のバグ解消は未処理のようです。

そのためか、MCUXpresso IDE v10.1.1付属LPCOpenライブラリもv2.19のままで、v3.02添付はありません。近いうちにv3.02の動作を調査する予定です。

ルネサス

インターシル社と完全統合した新生ルネサス誕生(2018年1月1日)。アナログ関連で高いスキルを持つ旧インターシル技術がRL78マイコンへも導入されそうな気配があります。Cortex-M0/M0+コアとの競争に生き残るには、汎用RL78マイコンのアナログ強化、センサ内蔵が方策なのでしょう。

但し、開発環境CS+の先行きには不安要素もあります。6月末提供予定のe2 studioのAI利用無償プラグインはRL78もカバーされますが、果たしてCS+でも同機能がサポートされるのかが気掛かりです。

e2 studio新プラグイン
e2 studio新プラグイン(記事より)

STマイクロエレクトロニクス

既にEWARM、MDK-ARM、TrueSTUDIO、SW4STM32の4種IDEをSTM32マイコン向けに提供中のSTMが、TrueSTUDIOの開発元スウェーデンのAtollic社を買収しました。

現状のEclipseベースTrueSTUDIO無償版もコードサイズ制限はなく、弊社使用中のSW4STM32無償版サイズ制限なしと機能的には同じです。このTrueSTUDIOとSW4STM32を比較し、なぜAtollicを買収したのかを探りたいと思います。

Cypress

最新マイコン評価ボードで紹介しましたCY8CKIT-062-BLE PSoC 6 BLE Pioneer Kitが、サイプレスサイトからも購入できるようになりました。また、サンプルソフト(Code Examples)も豊富に提供されています。

E-ink液晶を使ったArduinoシールドは、汎用性が高そうなので興味を惹かれます。

RTOS

mbed OS 5の新しいバージョンMbed OS 5.7.2 がリリースされました。Amazon FreeRTOSなど、MCU用RTOSの普及も2018年のトレンドになりそうです。

まとめ

2017年の半導体ベンダランキング(速報値)が発表されました。NXPは第10位(前年9位)です。2016年MCUランキングは、NXP>ルネサス>STM>Cypressの順でした。NXPとルネサスがMCUシェアの1/3を占めるのは、今年も変わらないかもしれません。

例年に比べ2018年はMCU各社の動きが早いように感じます。EVや自動運転、コネクテッドカーがMCU開発の動きに拍車をかけているのは間違いと思います。

新たな動向としては、ソフトウエア開発環境の整備です。数億、数十億個とも言われるIoTマイコン時代では、現状のようにオーダーメイドでのソフト開発では時間が掛かりすぎます。より高速で効率的なソフトウエア開発ツールやライブラリ活用術が求められるような気がします。

マイコンソフト開発の基礎知識と初心者、中級者向け開発方法(第1回)

マイコンソフトウエア開発者には、俯瞰視野(緑マーク)から開発場所(赤マーク)を捉えることが必須です。

中国の古代建築物
中国の古代建築物(Pixabay無償グラフィックより)

初心者が陥りがちなのは、1つの開発場所の理解に拘って、迷路から抜け出せなることです。ここでは、この開発の迷路にはまらずに、初心者、中級開発者がマイコンソフトウエア開発を楽しくラクにする具体的な方法を3回に分けて解説します。

マイコンソフトウエア開発の手法を書いた書籍やネット情報は、数多くあります。
これらは、奇策などを用いずに正しい開発の方法、つまり「正攻法」で書かれています。開発期限が短くプレッシャーも多い中での正攻法によるソフト開発は、習得に時間がかかり、しかも新しい用語や背景を知らない開発初心者にとっては、覚えることが多く、かなり辛い方法です。

マイコンソフトウエアの開発障壁を高くしているのが、この正攻法です。3回で示す方法は、開発障壁を下げ、マイコンソフト開発を、もっと気軽に、ラクにします。下記内容を予定しています。

  • マイコンソフトウエア開発正攻法のデメリットと、俯瞰視野(第1回)
  • マイコンソフトウエア開発制御対象の分類と、各対象のラクな開発方法(第2回)
  • ソースコード英語コメントの注意点と、英語アレルギーの対処方法(第3回)

マイコンソフトウエア開発正攻法のデメリット

マイコンソフト開発を楽しむには、コツがあります。それは、「初めにデータシートを見ない」ことです。
データシートは、上級レベル開発者が、参考書として「読む時」に威力を発揮します。元々、初心者や中級レベル開発者向けには作成されていないのがデータシートです。

先の投稿でも書いたようにデータシートはデバイスの詳細なデータ値の羅列です。この羅列から内容を見るのではなく「読む」には、値の意味と、意味を理解するためのソフトウエアとは直接馴染みが少ない半導体の基礎知識が必須です。マイコンソフト開発を長年行い基礎知識も習得していれば「読めます」が、マイコン初心者が「読む」のは、時間的に無理、非効率です。

ところが、マイコンソフトウエア開発の根拠は、データシートです。データシートにこう書いてあるから、こうソフトを開発したという理由付けです。つまり、データシートをどのように「読み」、それを「ソフトに変換」した道筋が、巷に溢れるソフト開発情報なのです。要は説明がし易いのです。

この「データシートを読み→ソフトへ変換」は、正攻法ですがデータシートが読めない人は、鵜呑みにするしかない手法です。たくさんの鵜を飲めば、そのうち解るようになりますが効率が悪く忍耐も必要です。

ポイントは、データシートは初心者や中級開発者向けでは無いことです。向いていないデータシートを使って開発着手するのでマイコンソフトウエア開発障壁は高くなるのです。

では初心者、中級開発者は、どうすれば開発障壁を高くせずにマイコンソフト開発ができるのかについては、2回目以降で示します。

初心者、中級開発者の俯瞰視野

最初の写真に戻ります。手前の入口から円形迷路をくぐり、中心の家に到達すればゴール=ソフト開発完了と考えてください(写真そのものは無関係です、念のため…)。

迷路の途中にあるのが、マイコン周辺回路ADCやGPIO、UART通信などのソフト開発対象(斜め赤マーク)です。案件によって対象は異なりますが、対象を開発できればその場所のゲートを通過でき、複数ゲート通過でゴールへ到達するゲームです。ゲームには制限時間(=開発期間)が設定されています。

開発者には開発期間内に何らかの出力、成果が求められます。出力を生むには、現在の位置と開発期間を天秤にかけ、最も出力を生む可能性の高い最短ルート検索能力が必要です。これには、俯瞰視野(緑マーク)からの現状観察は不可欠です。開発者に最も必要な能力が、この俯瞰視野です。

マイコン初心者、中級開発者は、元々初めから俯瞰視野を持っています。マイコンの中身に詳しくないことが逆に幸いしているのです。しかし、正攻法で開発を始めると、段々と視野が狭くなり、開発につまずくとそのつまずいた場所のゲート通過のみに拘る結果、迷路にハマってしまいます。

開発が思い通りに進まない(=迷路にハマった)時は、イメージだけでも良いので俯瞰視野の初心に戻り、現状分析と、例えば、周辺回路の別の使い方などの別ルート再検索を行ってください。間違ったルートでそのまま進んでも、タイムアップでゴールに到達できない可能性もあるからです。

第1回マイコンソフト開発の基礎知識と初心者、中級者向け開発方法のまとめ

  • データシートは、マイコン初心者、中級開発者向けでない
  • マイコンソフトウエア開発者は、俯瞰視野(客観視野)の初心を忘れず状況分析

の2つを示しました。

Cortex-Mシリーズはセーフ、他はアウト

新年早々、Intel、AMD、ARMなどの制御デバイス製造各社に激震が発生しました。「CPU投機的実行機能に脆弱性発見」のニュース(Intel、AMD、ARMの対応Windowsの対応Googleの対応)です。

MeltdownとSpectre
MeltdownとSpectre(Source:記事より)

※投機的実行機能:制御を最適化するためのパイプライン化、アウトオブオーダー実行などの「現代的CPU」ハードウエアに実装済みの機能。

※脆弱性:ウイルスが入る可能性がある箇所のこと、セキュリティホールとも呼ばれる。言わばアキレス腱のような箇所。もっと知りたい方は、総務省サイトの基礎知識が良く解ります。

Cortex-Aシリーズも対象、Cortex-Mシリーズは対象外(セーフ)

パイプラインやアウトオブオーダーなどの最適化機能は、殆どの制御コアに搭載されています。従って、このニュースは深刻です。ハードウエアの深い部分の脆弱性だけに、ソフトウエアのOSやパッチなどで対応できるのか、個人的には疑問ですが、セキィリティ専門家に任せるしかないでしょう。

ARMのリアルタイム系Cortex-RやCortex-Aシリーズも対象:アウト!です。
一方、本ブログ掲載のCortex-Mシリーズマイコンは、これら投機的機能が実装されていないので今回は対象外、セーフでした。

IoT端末の脆弱性対応はOTA:Over The Air更新が必須

昨年12月3日投稿のCortex-Mを用いるIoTマイコンへも、Amazon FreeRTOSなどのRTOSが期待されています。今回のような脆弱性への対応には、無線通信によるソフトウエア更新:OTA機能が必須になるでしょう(ソフトウエアには、OSとアプリの両方を含んでほしいという願望も込みです)。

時々発生する自動車リコールも、ハード起因とソフト起因の両方があります。車の場合は、ディーラーへユーザが車を持ち込めば対応できますが、組込み制御の場合は、開発者自身が動作中の現場で対応するのが現状です。今回は、Cortex-Mシリーズはたまたまセーフでしたが、同様のセキュリティ事案への対策を練る必要があると思います。

と言っても、当面できるのは、現場でIDEやUART経由の直接ソフト更新か、または、コチラの記事のような(多分高価な)パッチ配布手段しか無いかもしれません。

RTPatch適用範囲
RTPatch適用範囲(Source:記事、イーソルトリニティ)

ルネサスのNXP分析と狙う車載半導体市場

EE Times Japan、2107年12月26日にルネサスCEO、呉 文精(くれ ぶんせい)氏のインタビュー記事が掲載されています。

この中で、ルネサスが、競合NXPをどのように評価分析しているか、車載半導体のどの市場を攻めていくかを語っています。前回投稿で述べたように、車載MCUの開発動向は、弊社が扱う家庭や個人向けIoT MCUにも強い影響を与えます。記事の中から、この車載MCU開発動向に関する部分を抜粋します。

ルネサスのNXP評価分析

  • ルネサスがIntersilを買収した理由は、アナログ半導体の利益率の良さ。NXPは、もともと車載MCUに強いFreescaleを買収したので、最近のNXP車載MCU新製品は、ルネサスの脅威であり過小評価はできない。
  • QualcommによるNXP買収は、国境を越えた合併なので社風、社員の相性問題あり。ビジネスモデルもNXPとQualcommで異なる。シナジー効果を早期発揮するのは困難で、短期的にはルネサス有利。

ルネサスは、Intersilのアナログ回路を手に入れました。この結果、RL78/G11やRL78/L1Aのように、汎用MCUへアナログ回路を実装し、他社差別化の動きを加速すると思います(アナログ強化については、2017年8月3日投稿のRL78ファミリのロードマップも参照)。

ルネサスは量産車の車載半導体を狙う

  • NVIDIAやIntelは、ハイエンド(超高性能、大電力使用、高価)GPUからのアプローチ。ルネサスは、車のボリュームゾーン(量産車)に適用できる低消費電力で、低価格、 機敏な計算能力を持つMCUからのアプローチ。
    ルネサスは、量産車に載る半導体市場を狙う。

以上2項目について記事を抜粋しました。ルネサス(+Intersil)が思い描く車載半導体ビジネスが良く判る記事です。

車載メモリ

車載MCUの高性能化は必須です。もう1つの車載半導体のトピックは、メモリだと思います。

この場合のメモリとは、従来のEEPROMに相当する電源OFFでもMCU必須パラメタなどを保持できる不揮発性メモリを含みます。ルネサスの車載メモリ動向(この場合はフラッシュROMですが)は、2017年12月11日投稿で記載しています。

例えば、走行距離などは、バッテリーを外しても保持する必要があり、高信頼で不揮発データ蓄積の要求は、EV→自動運転レベルが高度になればなるほど高まります。

Cypressは、FRAM(強誘電体メモリ)という新しい技術を車載、IoT両方に提唱しています。SRAMと同様に重ね書き可能で短いアクセス時間、書換え回数も多くデータ保持期間100年(リテンション)という長さが特徴です。

FRAMと他メモリの比較(AN706-00053-1v0-J.pdfより)
FRAMと他メモリの比較(AN706-00053-1v0-J.pdfより)

FRAMの詳細は、chip1stopのCypressインタビュー記事で解ります。

*  *  *

低価格、高性能、大容量メモリのMCUは、IoT MCUの要件でもあります。EVや自動運転の技術開発は急速で、しかも車載半導体は、大量生産が期待出来るので、MCUベンダ間の競争は激化しています。車載半導体でデファクトスタンダード技術になると、IoTへもそのまま使われることは、十分あり得ます。

2018年IoT市場予測

2017年末、IoT関連の2018年~2020年頃までの市場予測記事が多く発表されました。その中から4記事をピックアップして要約を示します。IoT開発者は、開発業務への対応だけでなく、急激に変わるかもしれない市場把握も必要です。

JEITA発表 2018対前年比2%プラス成長、2020東京オリンピックまで継続、家庭や個人向けが最大市場

JEITA:Japan Electronics and Information Technology Industries Association(ジェイタ)は、日本電子工業振興協会(JEIDA:ジェイダ)と日本電子機械工業会(EIAJ)が統合したITと電機産業の業界団体で、電機という枠を超えてトヨタ自動車やソフトバンクも参加しています。12月19日発表記事が、PC Watchに掲載されています。

  • 2018年、電子情報産業の世界生産は、対前年比4%増(2兆8,366億ドル)、日本生産は前年比2%増(39兆2,353億円)の見通し。2020東京オリンピックまで成長継続。
  • IoT市場は、2030年には世界404.4兆円、日本19.7兆円とそれぞれ2016年調査の約2倍に成長する見通し。特に、今年スマートスピーカーで話題となった家庭や個人向けが一番大きな市場になる。

EVより自動運転が半導体消費は大きい

EE Times Japan12月14日掲載の新しい半導体の流れを作る、IoTと5Gによると、

  • 自動車搭載の半導体需要は、EVが400米ドル、自動運転レベル3が800米ドルで、レベルが向上すると半導体搭載額はさらに高額となる。
自動運転の半導体消費量(記事より)
自動運転の半導体消費量(記事より)

手間を考えると、車載半導体をリサイクルすることは無いでしょう。車の平均寿命を10年としても、毎年膨大な数の車載半導体が消費されることになります。さらに、顧客(車ベンダ)のMCU高性能化やメモリ量増大の要求も強いので、数兆個とも言われるIoTの家庭や個人向けMCUも、この車載MCUの流れに沿ったものへ変わるかもしれません。

自動運転で半導体消費が増える理由は、車載センサーで見えない先方の情報をネットワーク経由で取得し、運転制御に利用するからです。車載MCUに高速で膨大な計算量、大容量メモリが必要になるのもうなずけます。

セキュリティ課題と対策

ネット接続で問題となるセキュリティ課題と対策については、12月19日Tech Factory掲載の【徹底解説】つながるクルマ「コネクテッドカー」のセキュリティ課題と対策に解説(要無料会員登録)されています。

  • ウイルスバスターで有名なトレンドマクロは、家庭、自動車、工場の3領域に対してIoT戦略をとる。
  • コネクテッドカー以外のIoTデバイスでも同じセキュリティ課題が下記。ソフトウエアセキュリティが最重要。
IoTセキュリティ課題(記事より)
IoTセキュリティ課題(記事より)

組込みソフトにも、ウイスル対策ソフトをインストールすることが必要になるのでしょうか? 私はRTOSに実装してくれることを望んでいます。

IoTエンジニア不足

日経IT Pro12月19日、日本のIT人材は「IoT初心者」、エンジニア2000人調査で判明では、

  • IoTや人工知能を担う先端IT人材は、2020年には48000人不足

と分析しています。

職種が広範囲なので、実際の開発者が何人不足するかは私には不明ですが、2020東京オリンピック位までは、IoT開発者が忙しいのは確からしいです。

ここで挙げた予測の全てが確実だとは言い切れません。しかし、開発者は、ここ数年で起こるかもしれない家庭や個人向けIoT MCUの変化に対応しつつ、IoTサービス企画立案、最新技術に基づいた高速な開発技術が求められるようです。

数か月の開発期間が終わって気が付くと、浦島太郎になったということだけは避けなければなりません。

マイコンデータシートの見かた(最終回)

現役STマイクロエレクトロニクスの「メーカエンジニアの立場」から記載された、ユーザ質問の多かった事項を中心にマイコンデータシートの見かたを解説する記事(連載3回目)の最終回を紹介します。

全3回の連載記事内容

第1回:凡例、絶対最大定格、一般動作条件、電源電圧立上り/立下り(2017年10月1日投稿済み
第2回:消費電流、低消費電力モードからの復帰時間、発振回路特性(2017年10月29日投稿済み
第3回:フラッシュメモリ特性、ラッチアップ/EMS/EMI/ESD、汎用IO、リセット回路(←今回の投稿)

マイコンデータシートの見かた

3回分割のマイコン個別機能データシートの見かた、最終回ではSPIとADCの記載データ見かたが当初予定に追加されました。SPIは、接続デバイスがASICやFPGAの場合の注意点、ADCは、アナログ回路なので消費電流が大きくなる点に注意すべきだと記載されています。

当然のことですがデータシートは、データ値の羅列です。従って、そのデータ値の意味と解釈の仕方は、例えば記事図9の赤囲みコメントで付記されたようにすべきです。しかし、普通は残念ながら赤囲みコメントは、データシートには付いていません。

サンプル&ホールドタイプのA-Dコンバーターの電気的特性
サンプル&ホールドタイプのA-Dコンバーターの電気的特性(記事、図9より)

従って、この赤囲みコメントが自然に頭に浮かぶような勉強、半導体の基礎知識がマイコンを使うには必要で、その知識を背景にデータ値を読むことを記事は求めています。

連載3回範囲のデータシート見かたまとめ

  • フラッシュメモリは、高温使用時、データ保持年数が短くなる。データシート記載値は、MCU内部書込み/消去時間であり、書込み開始~終了までの作業時間ではない。書き換えビットが増えると消費電流も増える。
  • EMS/EMI/ESDは、MCUを実装した基板や使用環境に依存。データシート記載値は、MCU「単体の能力」。
  • 汎用IOは、電源電圧を下げると端子駆動能力も下がり、立上り/立下り時間が長くなる。しかし、STM32MCUは、駆動能力をレジスタで設定できるので遅くなることを抑えることができる。
  • MCUリセット回路設計時は、フィルタリング信号幅のグレーゾーンを避けることが必須。
  • SPIは、接続デバイスがASICやFPGAの場合、十分なタイミングマージンが必要。
  • ADCは、アナログ回路のバイアス電流のため消費電流が大きくなる。また電流変動で変換誤差が増える。

全て学んだ後の開発着手では遅い!

開発者に求められるのは、「開発したもの」です。

そして、多くの場合、短い期限付きです。問題は、この期限内で、なにがしかの結果、成果を出さなければ、開発者としてはNGなことです。しかし、成果を出すには勉強、知識も必要です。

初心者は、この勉強、知識の入力時間と、成果の出力時間の配分が上手くありません。ベテランになると知識も増えますが、入出力の時間配分が上手く、結局何らかの成果も生みます。特に開発者は、全行程の自己マネジメント(時間配分)にも注意を払う必要があります。

例を挙げると、夏休みの自由課題を何にし、休み中にどのように仕上げるか、です。もし提出物が無ければ、課題に取り組んでいないのと(殆ど)同じです。

残業時間制約も厳しく、開発者にとっての作業環境は厳しくなる一方です。弊社マイコンテンプレートとMCUベンダ評価ボードとの組合せは、開発者が求められる出力を早期に生み出すツールになると思います。

Amazon、IoTマイコンへFreeRTOS提供

Amazon:アマゾンがFreeRTOSをカーネルにして、IoT端末とのクラウド接続、セキュリティ確保、将来的にOTA:Over The Airによるアップデート機能をライブラリで提供というニュースが入りました。

嬉しいのは、「FreeRTOS」と「OTA機能がRTOSで提供」されることです。

Amazon FreeRTOS

IoT端末とクラウドを接続するには、IoT通信プロトコルが必要です。BLE:Bluetooth Low EnergyやThreadが有力ですが、国内外の網側事情が異なるため、実質的なIoTプロトコル実装は間違いなく大変です。

もしこのIoT通信機能が、最大手アマゾンの無償ライブラリで提供され、マイコンUARTと同様にIoT Communication APIを使え、しかもセキュリティ対策済みであるならば、IoT端末は爆発的に普及するでしょう。普及の足かせとなっているIoT通信とセキュリティ問題が解決されるからです。

Amazon FreeRTOS
Amazon FreeRTOS利用イメージ (出典:記事、AWS)

現在Amazon FreeRTOSのハードウエアパートナーは、テキサス・インスツルメンツ:TI、マイクロチップ、NXP、STマイクロエレクトロニクスの4社で、NXPは、LPC54018 IoT Module、STMは、STM32L4 Discovery Kit IoT Node評価ボードでサポートするそうです。

NXP、STMいずれもかなり高性能MCU評価ボードを使っていますが、これは高機能IoTエンド端末(≒簡易スマホ)を想定しているからだと思います。FreeRTOSカーネルなので、ROM/RAMが少ない低価格IoTエンド端末にも実装できるハズです。

弊社ブログでも紹介してきたFreeRTOS自身は、様々なベンダの低価格MCUにも実装実績があります。

残念ながら弊社のFreeRTOSサンプルソフトは、NXPのLPCXpresso824-MAX上で完全動作しているとは言えませんが、近いうちにSTMのSTM32F103RB(Cortex-M3:64MHz、ROM/RAM:128KB/20KB)で再チャレンジし、新たにFreeRTOS版のテンプレートを開発できないか検討中です。
※FreeRTOSサンプルソフトは、2020年版に更新しました。LPCXpresso824-MAXサンプルソフトは削除しました。

OTA機能

出荷後の組込みソフトを更新したいことは良くあります。但し、Windows更新でも失敗があるように、技術的にハイリスクで、また更新費用を顧客が負担してくれないこと(ノーリターン)も多いので、悩ましい事柄です。

Amazon FreeRTOSのOTAがRTOS関連のみか、または、RTOSにとってのアプリ、つまり開発ソフトも含むかは不明ですが、たとえRTOSのみであってもOTAが提供されれば好都合です。セキュリティ起因の不具合解消に役立つからです。

従来のベアメタル開発でもOTA関連の資料は、英語版で難解な記事はあります。しかし、私の場合は、結局現地でIDE書き換えの経験が多いです。リクスを少しでも下げたいのもあります。RTOSが機能提供してくれれば、責任転嫁(?)ですが助かります。

弊社FreeRTOSへの取組み

IoTクラウドサービスは、アマゾンのAmazon Web Services IoT:「AWS IoT」が先行し、マイクロソフトの「Azure IoT」、これらを追いかけるグーグルの「Weave」とアップルの「HomeKit」、その後ろにARMの「mbed Cloud」という状況だそうです。アマゾンは最先端を走っているのです。

先行アマゾンが2017年末に発表したAmazon FreeRTOSの詳細は不明ですが、IoT MCUのRTOSにFreeRTOSが有力であるのは、確実になりそうです。

FreeRTOSソフト開発の場合、タスク自体は簡単で単純な初期設定+無限ループ構成です。タスク同期やタスク通信にRTOS APIが使えれば、それ程難しくはないと(今は)考えています。この考え方が、タスクが増えたりプライオリティを変えたりしても正しいか、間違っているかは、実践経験あるのみです。

個人で実践できるFreeRTOS動作環境の構築が、弊社FreeRTOS版テンプレートの目標となりそうです。