ARM Cortex-M0+準拠セキュリティ強化プロセサCortex-M23発表

Cortex-M Series Lineup
Cortex-M Series Lineup

ARMは、Cortex-M0+準拠でセキュリティ機能を強化したCortex-M23を発表しました。本ブログはこれまで、低価格低消費電力のCortex-M0/M0+コアを対象としてきましたが、これにCortex-M23も加えます。

Cortex-Mシリーズに於けるCortex-M0/M0+プロセサの位置付けは、コチラの記事をご覧ください。

Cortex-M23コア

ARMサイトによると、Cortex-M23は、IoTデバイスに必須と言われるハードによるセキュリティを強化したTrustZoneを搭載し、Cortex-M0+ソフト再利用が可能です。
IoT向きCortex-M0/M0+という位置付けだと思います。

Comparison of Cortex M23 and Cortex M0+
Comparison of Cortex M23 and Cortex M0+

Cortex-M23コアのMCUが登場すれば、本プログでフォローします。勿論、対応テンプレートも開発する予定です。

米Qualcomm、NXPを300億ドルで買収か?

2015年、Freescaleを買収したNXPを、スマートフォンで有名なクアルコムが300億ドル以上で買収するかもしれないというニュースが飛び込んできました。

記事によると、買収目的は、スマホ市場の成長が停滞しつつあるので、組込と車載市場へ参入することで、買収が成立すれば、半導体業界史上、最大規模のM&Aになるそうです。

クアルコム製品でスマホによく用いられているSnapdragonを使ったシングルボードコンピュータ:SBCは、チップワンストップのコチラで参照できます。

個人的観測ですが、このところNXPに限らずマイコンベンダーの新製品開発が鈍っている気がします。IoT無線規格の見極めや、Eclipse Neon対応かなと思ってきましたが、業界再編の可能性も影響しているかもしれません。

IoTマイコン市場規模予測

9月26日の日経テクノロジーOnlineに“孫社長ですら過小評価、ARMはIoT時代に君臨する”という記事から、IoTマイコン開発者が、上司を説得し開発費を交渉する時や、自分自身のモチベーションアップに役立ちそうなキーワード、数値をピックアップします。

※記載内容は、全て記事から抜粋しております。

ARMはMicrosoftとIntelのウインテル以上

MicrosoftとIntel連合がパソコンの覇者であることは間違いありません。しかし、パソコン低迷とともにIntelチップの売上げも2015年は3億個弱と低下しつつあります。一方、ARMチップは、2015年が145億個でうなぎ上りに増加しており、1個あたり10円がARM社の収入とすると、2015年売上げ1791億円も納得できます。

Chip Sales number
チップ売上げ個数(記事より抜粋)

IoT時代のネット接続デバイス数

  • Cisco Systems社予測……500億個(2020年)
  • Trillion Sensors Universe(米国推進)での世界センサー数……1兆個(2020年)
  • コンピュータ性能が全人類能力を超えるシンギュラリティ時のセンサー数……250兆個(2045年)

これらデバイスの半分、50%に低消費電力が最大の特徴であるARMプロセサが使われると、125兆円のARM社売上げも予測可能です。この結果、半導体売上高トップ10にARM社がランクインし、2030年頃には、1位Intelや2位Samsungを脅かす可能性が高いでしょう。

半導体産業を牽引するのは、パソコンやスマホではなくIoTだ

以上の数値などから今後、半導体産業を牽引するのは、IoTであり、ARMはIoT時代に君臨するでしょう。

ARMコアが業界標準になった時の差別化技術

9月23日の日経テクノロジーOnlineに“技術も市場も混沌としたIoT、ソフトバンクだけが視界明瞭”という記事で、興味深い内容を2つ見つけたので抜粋します。

記事は、ソフトバンクのARM買収の意味と影響を分析しています。

差別化はアナログ技術

“IoTマイコンに於けるARM優位性がこのまま維持され事実上の業界標準になれば、MCU各社の差別化技術はアナログ分野になる。”

本ブログで扱う低価格MCUコアは、ARM Cortex-M0/M0+がデファクトスタンダードで、Runesas 1社のみが独自RL78-S1/S2/S3コアです。そのRunesasも9月13日に、電圧制御やのアナログ分野に強みがある米インターシルの買収を発表しました。記事の予想は、正しいと思います。

センサー、通信マイコン、電源ICがIoT端末必須技術

“IoT端末の必須技術は、センサー、通信マイコン、電源ICの3つ。”

弊社が言うIoTマイコン各社が、アナログ技術を強化すれば、センサーインタフェースへ適用するでしょう。
例えば、オペアンプ実装などです。また、MCUとMPU/SCB間無線技術も、仕様が固まれば、当然実装されます。

これらが実装済みのIoTマイコンが、待ち遠しいです。ROMやRAMの容量次第では、マイコンテンプレートの活きる場所もありそうです。また、ARMと親和性が高いEclipseベースのIDEであっても、その使い勝手や、アナログ技術の取り込み方法の上手さもMCU選択の重要な基準となると思います。

追記:Cypress PSoC Creator 3.42.4が、3.25.0に更新されています。更新は、Update Managerから簡単に実行できます。

新生NXPマイコンラインアップ

NXPがFreescaleを買収後、新生NXPのARMコアMCU製品ラインアップが一目で解る図を見つけたので掲載します。
出典は、組込みシステム向けコンテンツ・プロバイダ)インスケイプ様のマガジンVOLUME.13:「さらなる高みへ。新生NXPのマイコン戦略に迫る MCU約1,100ラインアップ。シナジー効果の最大化へ」です。

NXP+FreescaleのARM Cortex MCUラインアップ

NXPサイトは、NXPのLPCマイコンと旧FreescaleのKinetisマイコンがそれぞれ別ページで示されるので、経営統合後のARM Cortex MCU製品ラインアップが分かりにくいのが現状です。

既存ユーザにはページ分離記載で問題ないでしょうが、以前記載した今後を予想するには、下図が解りやすいと思います。

NXP ARM Cortex MCU Lineup
NXP ARM Cortex MCU Lineup(記事より抜粋)

左側の汎用MCUでは、Cortex-M0/M0+でLPC800、LPC1100/1200とKinetis Lシリーズが競合しています。IDEも、それぞれのMCU対応にLPCXpressoとKinetis Design Studioの2種を提供中です。
一方、右側の特定用途MCUでは、Kinetisシリーズにより製品補完がされたことが解ります。

出典記事に、各MCUの詳しい特徴が解りやすく記載されております。

統合により、NXPは、ARMコア提供数は(恐らく)世界最大で、MCUコアのデファクトスタンダードCortex MCUのリーダーです。今後の動向が気になります。

CortexーM0/M0+対応マイコンテンプレート

弊社は、コスト重視で8/16ビット市場の置換えを狙う32ビットMCUコアCortex-M0/M0+を使ったLPC8xx、LPC111x、Kinetis Eに対してマイコンテンプレートを販売中です。動向によっては、このラインアップも変わるかもしれません。

※Kinetis Lシリーズは、Kinetis Eとソフト、ピン互換性があります。Kinteis EテンプレートのLシリーズへの適用は、弊社へお問合せください。

mbed OS 5リリース

2016年8月5日、ARM mbed OS 5がリリースされました。mbed OS 5対応評価ボードは、現在39種類あります。本プロブ対象のARM Cortex-M0/M0+クラス評価ボードは、このうち6種ありました。

上記ページのHardwareタグでBoardsを選択し、Filterでmbed OS 5をチェックすると対応ボードが一覧表示されます。

Cortex-M0/M0+クラスのRTOS必要性

コスト重視のARM Cortex-M0/M0+マイコン:MCUに、リアルタイムOS:RTOSが必要か否かは、意見が分かれるところです。RTOSを使うためのROM/RAMのオーバーヘッドと、無線通信ドライバ/ライブラリの必要性がポイントだと思います。

FreeRTOSの場合は、ライブラリを除くと約5KB ROMが必要であることを以前示しました。mbed 5 OSは、BLEなどの各種無線通信をサポートしますが、コア部分は、(おそらく)同程度だと思います。
※MCUとMPU/SBC間の無線通信規格はコチラにまとめています。

IoT向けMCU実現には、無線通信機能は必須です。ここを1からMCUに実装するのは結構大変です。RTOSライブラリで提供されれば、Cortex-M0/M0+クラスMCUへの適用も現実的になるかもしれません。

一方、CypressのPSoC 4 BLEやPRoCは、RTOSを使わずにBLE通信を実現済みです。

Cortex-M0/M0+クラスへのRTOS適用は、まだ不透明だと思います。しかし仮にRTOSが誰にでも安心して使えるようになると、残念ながら弊社販売中のマイコンテンプレートは不要になるかもしれません。

マイコンテンプレート対抗馬は、本記事のmbed OS 5、FreeRTOSです。

ソフトバンク、ARM買収を発表

ソフトバンクは、IoT戦略の加速を目的に、英ARM株式100%取得し買収することを発表しました。

9月30日までに買収完了予定です。IoTデバイス開発の関係者にとってはサプライズニュースです。

テクノロジーのパラダイムシフト

ソフトバンク発表資料(免責事項にふれる可能性があるため非掲載)によると、現在のモバイルインターネットの次のパラダイムシフトはIoTです。また、ARMベースSoC:System on Chipの出荷台数は、148億個(2015年)で、未だに発展段階の成長を続けていることが解ります。

ARM Cortex-M0/M0+を用いる本ブログ対象の組込用途マイコン:MCUや、IoTコンピュータ:MPU/SBCなどの2020年市場予測も掲載されています。今後Cortex-M0/M0+の採用を検討されている開発者の方々にも有用な情報です。

SoftBank+ARM

組込の世界では、実質ルネサスのみであった日本プレーヤーに、株主とはいえソフトバンクが参加することは、日本人として少し嬉しい気がします。
しかし、孫社長の後継者問題、英国EU離脱のARM陣営への財務基盤強化などが、今後IoT、特にMCU分野にどう影響するかは、要注意でしょう。

SoftBank携帯で、IoT MCUソフトウエア開発を行う状況が来るかもしれません。

解説:マイコン評価ボード

マイコン開発には、各社が低価格で提供している評価ボードは必須です。
弊社マイコンテンプレートも、各ベンダの評価ボードで開発しています。この評価ボードを解説します。

採算度外視の低価格、高信頼ハードウエア

ソフト開発者に「確実に動くハードウエア」を「低価格」で提供する、これが評価ボードです。

マイコン開発には、「専用」のソフトウエアと「専用」のハードウエアの両方が必要です。そして片方のデバッグには、もう片方にバグが無いことが必須です。つまり、ソフトデバッグには、バグなしのハードが必須なのです。そこで、バグなしで確実に動作する「汎用」ハード、これが各ベンダ提供の評価ボードです。

但し、専用ハードがいずれ開発されるので、汎用の評価ボードは低価格とならざるをえない運命です。高ければ誰も買ってくれないからです。しかし開発者にとっては、以下のように優れた教材と言えます。

  1. ソフト開発者が、専用ハードが出来上がる前にソフトデバッグ可能な環境を自由に構築できる
  2. ハード開発者が、そのまま専用ハードにも使える高信頼ハード設計を学べる
  3. マイコン初心~中級者が、ベンダ標準のデバッグ技術で低価格な開発環境を使って自習できる
  4. 評価ボードは、各ベンダフォーラムで多くの情報が記載されており、適用サンプルソフトも多い

ターゲットMCU、デバッグインタフェース、拡張コネクタの3構成

評価ボードは、ターゲットMCU、デバッグインタフェース、拡張コネクタの3つから構成されます。

NXPの評価ボード:LPCXpresso LPC812とルネサスのRL78G13-Stick、CypressのCY8CKIT-042 の例を示します。

LPCXpresso LPC812構成
NXP LPCXpresso LPC812構成
RL78G13-Stick構成
Runesus RL78G13-Stick構成
CY8CKIT-042構成
Cypress CY8CKIT-042構成

ターゲットMCU

ターゲットMCUとは、開発MCUそのものの部分です。残りのデバッグインタフェースと拡張コネクタは、ターゲットMCUが異なっても同一です。

拡張コネクタ

最近はArduino用シールドコネクタを拡張コネクタに用いる評価ボードが多いです。これは、市販Arduinoシールドの種類が増えたため、上手く探せれば汎用の評価ボードに複数のArduinoシールドを拡張コネクタで接続し、専用ハードに近い、いわば「疑似専用ハード」を市販品のみで作れます。ボード単位のハード部品化がもたらした結果と言えます。

個人的には、シールドよりも、mbed – Xpresso Baseboardの方がより低コストで疑似専用ハード実現ができると思っています(こちらに詳しく記載しました)。

デバッグインタフェース

デバッグインタフェースは、IDEデバッグ機能を使うために必要な部分で、ターゲットMCUのシリアル入出力とパソコンUSBを変換する機能もここに含みます。この機能専用のマイコンが実装されることが多くなりました。このマイコンでデバッガ機能も代行するので、別途デバッガを購入せずにソフトデバッグが可能です。

MCUがARM Cortex-M0/M0+の場合には、ARM標準のCMSIS-DAPでMPUコアをデバッグできるインタフェースも実装されます。CMSIS-DAPはこちらの記事も参照してください。

CMSIS-DAPは、ターゲットMCUとデバッグインタフェースを切り離した後に、ソフトデバッグする時、別途ARM専用デバッガが必要ですが使えます。このように、1つの評価ボードで複数のデバッグ方法が使えるのも特徴です。

ARM系コアの場合は、ベンダ評価ボードもほぼ同じ構成で、ARM専用デバッガを1台持っていれば、ベンダ各社の評価ボードをまたがっても使えるのがメリットです。マイコン開発のデファクトスタンダートになりつつあります。

一方、デバッグインタフェースをE1コネクタでしか持たないルネサスのCPUボードをデバッグする際は、別途E1デバッガを接続しないとデバッグができません。この点は、Cortex-M0/M0+コアのMCUと比べるとコスト的に劣ると言えるでしょう。

Runesus QB-R5F104LE-TB構成
Runesus QB-R5F104LE-TB構成

デバッガ機能なしの統合開発環境:IDEの背景

シールドなどのボード単位の部品化が進んだ結果、専用ハードは、もはや既存ハードを組み合わせて、その小型化のみを行う設計、つまり専用基板化が主な開発内容と言えるかもしれません。

同様に、ソフト開発もベンダが、多くのライブラリを提供することで、専用ソフトをライブラリの組合せで完成できるレベルを目指しているようです。IDEにデバッガ機能がないArduino IDEなどは、この現れのような気がします。

ハードとソフトのオープンソース

ハード版オープンソースとしてArduinoシールドコネクタを持つ既成基板は、増えつつあります。

オープンソースを活用したソフト開発は、Unix系では当たり前です。この流れがマイコンソフトへも徐々に浸透する可能性を感じています。この場合、ハードの専用基板化開発に相当するのは、RTOS適用や弊社のマイコンテンプレートになるかもしれません。

マイコンIDE更新

扱うMCUデバイスの追加、WindowsやiOSなどのOS変更、Eclipseそのものの変更、バグ修正など様々な要因によりマイコン開発環境:IDEの更新は発生します。今回は、マイコンIDE更新について解説します。

更新通知と更新理由

マイコンアプリケーションソフト開発中ならば、リスクが増える可能性もあるIDE更新は避けたいものです。
このため「開発者が更新をするか否かを選択」できるのがマイコンIDEの特徴です。Windowsと大きく異なる点ですね。

更新判断には、「更新が発生」したか、「更新の理由」は何か、この2つを知る必要があります。この情報をIDEのWelcome画面のWebリンクで教えてくれるのがEclipseベースのIDEです。NXPのLPCXpressoの例を示します。

LPCXpresso Welcome page
LPCXpresso Welcome page

赤矢印のリンク先をみると、最新版IDEと、変更内容などが解ります。使用中のIDEと版数が異なる場合には、この内容を読んで更新判断ができます。新旧LPCXpressoは、緑囲いで示した版数毎に別フォルダへインストールされるので、IDE更新リスクがフォルダ内に閉じ込められるので安心です。

また、NXPに買収された旧FreescaleのKinetis Design Studio: KDSの例が下図です。Welcome画面に加え、Help>Check for Updatesで更新確認と新版インストールまでバックグラウンドで可能です。この機能は、LPCXpressoにはありません。

Kinetis Design Studio Check for Updates
Kinetis Design Studio Check for Updates

但し、私の環境では、ベースとなるEclipseのメジャー更新が関係しているのかもしれませんが、KDS V3.1からV3.2への更新ができませんでした。V3.2更新は、別途インストーラで可能です。やはりIDE更新確認ツールがあっても、時々サイトでIDEの最新版確認は、必要だと思いました。

また、CypressのPSoC Creatorは、Update Managerツールで更新確認とインストールができます。旧版はアーカイブ保存されるので、万一最新版にトラブルが発生しても安心です。

Cypress Update Manager
Cypress Update Manager

以上3社のマイコンIDEは、どれもEclipseベースのIDEですが、更新方法や旧版の扱いは各社異なります。

一方、ルネサス独自仕様のIDE:CS+もアップデート・マネジャーツールで更新します。独自仕様なので、細かい更新内容確認や、一部選択更新なども可能です。ツール・ニュースなどで更新、バグ情報を知らせてくれるのも役立ちます。
また、更新前に、「開発ツールをパックして保存(K)…」を実行すると、更新トラブル対策も可能です。

Runesus CS+ Packing tool
Runesus CS+ Packing Tool

マイコンIDE更新を安全にするには

マイコンIDEの更新トラブル回避には、OS起因でない場合は、旧版のIDEへ戻せることが必要です。また、Eclipseのメジャー更新時などは、操作方法が変わることもあるので注意が必要です。
開発案件のキリが良い時期に更新するのが安全策でしょう。

マイコンIDE開発経験を活かすには

弊社マイコンテンプレートで使用中の各社IDE特徴を示します。マイコンIDEは、Eclipseベースに集約されつつあるようです。今回は、同じベースでもIDEの更新方法が異なることを示しました。

これは、EclipseベースのIDEを使う時に覚えておくと役立つのが、各社共通のエディタやデバッグなどのコア機能であることを暗示しています。他社IDE使用時に、この経験が活かせるからです。

MCU IDE Comparison
マイコンIDE比較

マイコンIDE習得のコツやTipsは、コチラのページにもまとめています。参考にしてください。

PSoC 4 BLE Pioneer Kitサンプルソフト改版

弊社推薦PSoC 4 BLE/PSoC 4開発キットのPSoC 4 BLE Pioneer Kit:CY8CKIT-042-BLE付属サンプルソフトが、2016/02/12 Revision *Hへ改版されました。Cypress Update Manager起動でUpdate可能です。

Update Manager更新失敗時の対処

殆どの場合Update Managerで更新は成功します。しかし、Windows 10の煩いセキュリティのおかげ?で時たまCY8CKIT-042-BLEのみUpdate失敗があります。この時は、CY8CKIT-042-BLEサイトから直接Download CY8CKIT-042-BLE Kit Only Packageをダウンロードし実行すれば、更新は成功します。

Cypress Update Manager成功時
Cypress Update Manager成功時

更新内容

今回の更新は、PSoC 4 BLEキットに搭載可能なBluetooth 4.2対応のPSoC 4 BLEとPRoCモジュールが増えた事への対処です(コチラの記事も参照)。但し、キットに初めから搭載されているサンプルソフトとモジュールに変更はありません。キットガイト抜粋のサンプルソフトと対応モジュール一覧が下記です。

PSoC 4 BLEサンプルソフトと対応モジュール一覧
PSoC 4 BLEサンプルソフトと対応モジュール一覧

キット搭載のROM 128KBでBluetooth 4.1対応モジュールのPSoC 4: CY8C4247LQI-BL483と、PRoC: CYBL10563-56LQXIが、デフォルトで対応するモジュールのデバイスです。(デバイス差明示のため赤表記)。

PSoC 4 BLEモジュールでは、
Bluetooth 4.1でROMが128KBから256KBへ増えたCY8C4248LQI-BLE483、
Bluetooth 4.2でROMが256KBのCY8C4248LQI-BL583、
PRoC モジュールでも、同じく
Bluetooth 4.1でROMが128KBから256KBへ増えたCYBLE10573-56LQXI、
Bluetooth 4.2でROMが256KBのCYBL11573-56LQXI、
BLEドングルもBluetooth 4.2対応のCYBL11573-56LQXIのサンプルソフト、Projectが対応します。

弊社テンプレートの適用例であるBLE_PSoCプロジェクトのリソースメータが示すように、簡単なアプリケーションでも128KB ROM/RAMの6割以上を使用しますので、デバイスROM容量が256KBへ増えたのは、納得できます(販売中のPSoC 4/PSoC 4 BLE/PRoCテンプレートはコチラを参照してください)。

テンプレート応用例BLE_PSoCのリソースメータ
テンプレート応用例BLE_PSoCのリソースメータ

残念ながら、わずか15$で追加できるBluetooth 4.2対応モジュールを未入手なので確認はできていませんが、モジュール変更時は、デバイス再選択と使用コンポーネントをBLE 4.2へ更新しさえすれば簡単にサンプルソフトを適用できそうです。

この追加モジュールのROM容量とBluetoothの対応が解りやすいのが、ガイトA.5表です。

実装モジュールのROMとBluetooth対応
実装モジュールのROMとBluetooth対応

CySmartアプリソースコード公開

Cypressは、BLEドングルの代わりにAndroidやiOSで使えるCySmartというスマホアプリも公開中です。今回、これらのソースコードも公開されました。時間と能力があれば、モバイルアプリ開発も是非トライしたいと考えています。

※弊社BLE動作テンプレートは、全てBLEドングルを使ってBLE通信動作を確認済みです。CySmart+私のNexus 5:Android 6.0.1という組合せは、原因はNexus側にあると思いますが上手く接続できないのが理由です。