ARM Cortex-M23の特徴

ARMがセキュリティ機能を統合した新プロセッサ「Cortex-M23/M33」を発表記事から、Cortex-M23とCortex-M0/M0+の相違点、開発ポイントになりそうな箇所を抜粋し、特徴を考察します。

IoTデバイスのセキュリティ

“ネットワークに繋がるIoTデバイスには、セキュリティは必須”“
”IoTデバイスにセキュリティを普及させるには、セキュリティに対する経験が全くないエンジニアでも扱うことができる「1ドル以下のセキュアなMCU設計」が必要。このソリューションがARMv8-M TrustZone。“
”ARMv8-M命令セットは、必要最小限のベースラインセットと、浮動小数点演算などの拡張メインラインセットの2階層から成り、Cortex-M23は、ベースラインセットを実装“
”Cortex-M0/M0+は、ARMv6-M命令セット。Cortex-M23は、Cortex-M0/M0+後継の位置づけ。“

Baseline Instruction Set
Baseline Instruction Set(記事より)
Cortex-M0, M0+ and M23
Cortex-M0, M0+ and M23(記事より)

整数演算プロセサのCortex-M23

“性能レンジ:0.98MIPS/MHz、2.5CoreMark/MHz、Cortex-M0+比1.6~3.2%の性能向上”

Performance of Cortex-M
Performance of Cortex-M(記事より)

“Cortex-M23は、Cortex-M0/M0+と同じ2ステージパイプラインでミニマムパイプライニング”
“Cortex-M23は、フォンノイマンアーキテクチャ”

低コストかつ低電力にセキュリティを実装

“Cortex-MシリーズのTrustZoneは、以前からあるCortex-A向けのTrustZoneとは異なる”
“ARMv8-MのTrustZoneは、ハードウエアによるステイト遷移、セキュリティモニタソフト不要、ハードウエア遷移なのでレイテンシ少で、低速MCUでも実用的なセキュリティシステム”

※Cortex-M33に関しては、本ブログ対象ではないので、記事抜粋を割愛しております。

ハードによるセキュリティ機能実装メリット

パソコンを使う人なら、セキュリティ機能が必須で重要であることは、重々承知しています。また、その副作用として、本来の処理遂行に時たまジャマ?になることも…。性能が限られたMCUではなおさらでしょう。

イメージとしては、ウオッチドックタイマが近いと思います。開発初期やデバッグ中は機能を停止させ、最終版では、必ず動作させます。動作しても、ソフト性能がむやみに消費されることは殆どありません(というか、そのようにソフトを作ります)。

また、セキュリティに対する深い知識、経験が無くても扱えることも大歓迎です。要は、ネットワークに安全確実に繋がり、本来処理を、低価格低電力で実行できさえすれば、良いのですから。セキュリティは必須でも、あくまで付加サービスです。

Cortex-M23は、Cortex-M0/M0+の置換えヒット商品の予感がします。ARM Cortex-M0/M0+へ初挑戦する方も、既にCortex-M開発経験がある方も、楽しみなデバイスが出てきました。弊社マイコンテンプレートも現在はCortex-M0/M0+のみの対応ですが、Cortex-M23 MCU発売後は、対応する予定です。

NXPの新統合開発環境MCUXpresso

LPCマイコンとKinetisマイコンの2つを同時サポートする新しい統合開発環境(以下IDE)、MCUXpressoが2017年3月リリースに向けて開発中です。

LPCXpressoとKinetis Design StudioをMCUXpressoに一本化

Freescaleを買収したNXPのLPCマイコンにはLPCXpresso、旧FreescaleのKinetisマイコンにはKinetis Design Studio(以下KDS)が、それぞれの開発用IDEとして提供されてきました。どちらもEclipseベースのIDEなので、いつかは一本化されると思っていました。

新しいMCUXpressoのサポートマイコンリストは、コチラからダウンロードできます(ログイン必須)。Product Familyでフィルター操作をすると、下例のようにお使いのMCUの詳しい状況が判ります。

LPC1114/5 Support状況
LPC1114/5 Support状況

本ブログ対象のLPC1114/5とKinetis K/Lは、2017年3月にサポートされる予定です。

MCUXpressoもEclipseベースIDEで、無料版でもコードサイズ制限なしで使えるなど、数々の嬉しい特徴を備えています。LPCXpressoとKDSの最も異なる部分、API生成/提供方法がMCUXpressoでどのようになるかは、今のところ不明です。

IDEのAPI生成/提供方法

マイコンテンプレート使用中IDEのAPI生成/提供方法をまとめました。現状は3種類です。

API生成/提供方法
API生成/提供方法 概要 使用IDE
別ライブラリ IDEに別途APIライブラリを追加し利用 NXP:LPCXpresso(LPCOpen)
API生成ツール IDEで周辺回路を設定しAPI生成 Freescale:KDS

ルネサス:コード生成

SCH生成ツール IDE回路図で周辺回路を設定しAPI生成 Cypress:PSoC Creator

API生成ツールを使う方法は、周辺回路の知識が豊富でないと設定しにくいので、SCH生成ツールのCypress:PSoC方式が、動作イメージが把握し易く使い勝手が良いと個人的には思います。また、シンプルなのは、別ライブラリ提供のNXP:LPCXpresso方式ですが、MCUXpressoがこの方式になる可能性は、KDS統合も考えると少ないと思います。

いずれにしても来年は、この新しいMCUXpressoでNXPとFreescaleのマイコンテンプレートを、6月末を目途に作り直す予定です。興味がある方はすぐに現状マイコンテンプレートを購入されても、ご購入後1年以内のテンプレート更新は無償で行いますのでご安心ください。

米クアルコム、NXPを470億ドルで買収

先日の記事で記載した米クアルコムは、現地時間の2016年10月27日、NXPを約470億ドルで買収したと発表しました。

Qualcomm to acquire NXP
Qualcomm to acquire NXP

NXPのPresident & CEOのRick Clemmer氏から関係者宛(ユーザ登録のみの私も含む)メールで判明しました。

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時代に君臨するでしょう。

効率的マイコン習得の評価ボード

“学問に王道なし”とは言いつくされた諺です。しかし効率的にマイコンを習得する1番の方法は、ベンダー評価ボードを使うことだと私は思います。理由は、価格と確実動作、サンプルソフトの多さです。複雑な内容を理解、習得するには、文章説明だけでは限界があります。マイコンは、1つでも設定を間違うと、動作しない状態になるのも理由です。

ところが、このベンダー評価ボードも数多くあり、どれが良いか初めての開発者には分かり難い面も多いでしょう。そこで、個人的に最も好きなCypressマイコンの評価ボードを例に、評価ボードを分類し、特徴を解説します。

Cypressマイコンが好きな理由

ルネサス)RL78/G1x、NXP)LPC8xx/LPX111x、Kinetis L/Kと比較して、私がCypress)PSoC/PRoCが好きな理由は、ハード的にはアナログ/デジタル両方の機能が豊富な点、ソフト的にはIDEのPSoC Creatorが使いやすい点です。
また、Cypressサイトも他社より情報が豊富で充実しています。豊富なだけでなく、きちんと整理、分類されているので、検索も容易です。内容が良く解った技術者がサイトを構築すると、このようになると思います。

4種類のCypressマイコン評価ボート

そんなCypressマイコンの評価ボードは、4種類に分類されます。他社サイトでは、評価ボードが一覧で表示されることが多いのですが、最初にこのような分類が無いと混乱します。

4 Evaluation Board Types
4 Evaluation Board Types
Cypressの4種類の評価ボード比較
評価ボード分類 特徴 個人的解釈
Prototyping Kits 超低価格 単独で動作させるには十分だが、サンプルソフトテストには、外付けLEDやハードウエア追加が必要で、その手間暇がかかる。
Pioneer Kits 低価格 サンプルソフトテストに十分な外付けハードも一緒にした評価ボード。さらにArduinoコネクタ実装なので、拡張性も高い。
Arduino Shields Arduinoのシールド Arduinoコネクタ実装の拡張機能基板で、最近のマイコン開発にはArduinoコネクタがデファクトスタンダードになりつつある。
Partner Kits 高機能 高機能/高性能マイコンを評価するためのボード。

お勧めは、Pioneer Kitsです。この分類の評価ボードなら、サンプルソフトをそのままダウンロードして動作確認ができる上、Arduinoシールドを使って自分なりの拡張機能もテストできます。使用するMCUのPioneer Kitsを探して開発に着手すれば良い理由を以下に示します。

マイコン初心者トラブルの回避

経験からマイコン初心者がトラブル箇所で多いのが、MCU初期設定、IDE操作ミスです。いずれも、ユーザーマニュアルの初めの方に記述されていますが、読み間違いや勘違いにより発生します。
その結果、マイコンを思った通りに動かせず、最初の段階でつまずいてしまします。これがアセリを誘発し、さらに悪循環を生みます。チョットした事ですが、一度生じた先入観は簡単には元に戻りません。

Pioneer Kits評価ボード+サンプルソフトで確実にマイコンを動作させると、上記のミスはかなり防げます。とりあえず取説どおりに設定し、サンプルソフトが動けば、嬉しいしアセリは生じません。その後でMCUユーザーマニュアルを読めば、冷静に設定内容も理解できます。

MCUユーザーマニュアルは、文章だけで説明するが役目です。しかし、動く評価ボードを実際に操作しながら内容を理解すると、自分の勘違いやミスにすぐに気が付きます。本当に些細なミスであっても、アセリが有るのと無いのでは、雲泥の差です。

サンプルソフトソースからポイントをつかむ

サンプルソフトは、マイコン開発のバイブルです。しかし付属の説明文章は、細かい内容や、開発のポイントは記載していません。開発で重要となるこの部分は、サンプルソフトのソースから、開発者自らが獲得するのが一番良いと思います。サンプルソフトの読み方は、コチラにも記述しています。“木を見て森を見ず”にならないようにしましょう。

動作ソフトへ変更を加え経験を積む

いろいろなサンプルソフトを動かしていると、ここを変更すればもっと良いのではないか?と思う箇所も発見します。そんな時は、変更を加えトライできます。もしNGなら、その原因が解ります。NG:失敗も経験です。効率的に経験を積むことができる、これがPioneer Kits評価ボードです。

超低価格のPrototyping Kitsでも外付けハードを追加すれば、Pioneer Kitsと同様のことができます。但し、追加の手間がかかります。ハード追加時にミスが発生するとソフト開発は先へ進みません。電子工作習得やハード開発の経験を積む意味では良いのですが、ここは割り切ってソフト開発に適したPioneer Kitsを選ぶのが得策です。

まとめ

マイコンテンプレートも数年前は、Prototyping Kits的な評価ボードを使って販売した経験があります。この時は、ご購入者様からは、ハードウエアを追加したが動ないというご相談を多数頂きました。トラブル原因は、UARTのTX/RX配線ミスなどで解決しましたが、動かないとご購入者様もストレスが溜まります。

そこで、ハード追加が不要なPioneer Kits相当の評価ボードで販売すると、不動作トラブルは無くなりました。簡単に動作することが、初期段階では重要である証左と言えます。

販売中のマイコンテンプレートは、全てPioneer Kits評価ボード相当を動作ボードに選定しています。是非、お試しになり、効率的にマイコンを習得してください。

※一部、配線のみ追加するBaseboardを使って機能拡張しています。配線のみですのでハード追加に比べミス確率は低いです。Baseboardでの機能拡張については、コチラなどを参照ください。

新生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ソフトウエア開発を行う状況が来るかもしれません。