計算能力とIO速度によるポジショニング・マップ

トラ技2016年6月号は、MPU/SCBデバイスのRaspberry Pi特集号でOSにLinuxのRaspbianを適用し、

  1. IoT開発環境Node-REDによるMCUとMPU/SCBの垣根を超えたブログラミング
  2. PythonによるMPU/SCBのIO制御

などが楽しめる内容です。P45にコンピュータデバイスのポジショニング・マップが記載されています。本ブログの対象デバイスMCUとMPU/SCBの特性差が解りやすいので引用させていただきました。

IoT制御デバイスの固定ページへも同図を追加しました。特性詳細は、このページをご覧ください。

MCU & MPUSBC Poisoning Map
MCU & MPUSBC Poisoning Map(トラ技2016年6月号 P45より)

記載IoTデバイス、IDE、テンプレート動作ボード一覧追加

ブログ記載の「IoT制御デバイス」、「マイコンIDE」、「テンプレート動作ボード」が一目で解る表を追加しました。記載IoTデバイスのプルダウンメニューで表示します。

ブログ記載IoTデバイスのプルダウン表示
ブログ記載IoTデバイスのプルダウン表示

これらは、Wordpress固定ページ機能を使っていますので、通常ブログ記事よりも大きな範囲で表示します。

今後、デバイス追加や対象IDEが変化した時、テンプレート動作確認ボードを追加した時は、この表を随時更新していきます。最新のブログ対応状況をチェックする時などにご利用ください。

マイコンでBLE実現の3方法

レガシーなUARTは簡単に使えるマイコン開発者でも、BLE:Bluetooth Low Energyは、新しくかつ仕様も追加されつつあるので手を出しにくいものです。しかし、いざBLEを仕事で使う段になれば、いつものように、厳しいスケジュールでの開発が要求されます。

そのような開発者個人が、入手性が良いマイコン:MCUで電波法の縛りがある日本国内でBLE通信を自習する方法を3つ紹介します。

BLE習得3方法

仕事での開発と違い、個人でBLEの開発環境を整える場合は、「入手性とその金額」が問題になります。金額ベースで安い順に3方法を評価したのが下図です。

BLE実現3方法
BLE実現3方法

Cypress PSoC 4 BLE利用の方法1は、低コスト($49)で環境構築可能ですが、多少BLE仕様を理解する必要があります。しかし、BLEを習得するならお勧めの方法です。

BLEモジュール追加の方法2は、マイコンUART入出力にBLEモジュールを追加する方法です。
マイコン以外にBLEモジュールが必要なため、追加コスト(図示、浅草技研BLESrialの場合4000円)が必要ですが、BLEを無線のドカン(UART over BLE)として使えるので、BLEをブラックボックスとして扱えるのが魅力です。
方法1と方法2のコスト差は、使用マイコンにも依存するので大差ありませんが、後で示す仕様変更時に差が出ます。

ルネサスRL78/G1D利用の方法3は、BLE機能を持つルネサスRL78マイコンを使うので技術資料が日本語ですが、開発には高価な有償版CS+と評価ボードが必要になります。RL78マイコンを仕事で使っている場合は、有利かもしれません。

BLE仕様が変わる現状への対処

マイコンBLEの通信相手は、前回示したMPU/SBCなどのIoT向けPCの他に、スマホが使えます。

スマホBLEには、「BLE 4.0/4.1/4.2など様々な仕様」があります。多くの通信仕様のように、下位互換性がありますが、セキュリティなどの機能強化が図られており、結果、対応マイコンにはますます大容量ROMや高性能化が要求されます。

このようなBLE仕様の変化や仕様追加に対して、PSoC 4 BLE: CY8CKIT-042-BLEは、実装CPUモジュール($15)の載せ替えで対応します(コチラの記事を参照)。一方、BLEモジュール追加の方法は、モジュール購入時で仕様が固まっているので、変更には対応モジュールの再購入が必要です。

総合評価結果

入手性とその金額、BLE仕様変更への対応から、PSoC 4 BLEを使った方法1が、コスト的にも、BLEに関するCypress日本語資料も少なからずありますので、個人でBLE習得するには最も優れた方法だと思います。

IoT時代は、UARTと同じレベルでBLEを使うことが必須です。仕事でせかされる前にBLE技術を習得しませんか? 弊社PSoC 4 BLEテンプレートもお役に立てると思います。

Raspberry Pi 3 Model Bの意味

Raspberry Pi 3 Model Bが発売されました。前のRaspberry Pi 2との差分は、処理能力向上とIEEE 802.11b/g/n、Bluetooth 4.1 (BLE: Bluetooth Low Energy)の無線通信機能搭載です。

Raspberry Pi 3 Model B(記事より抜粋)
Raspberry Pi 3 Model B(記事より抜粋)

IoTでは、数億~数十億個とも予想される情報収集マイコン(MCU)と、これらマイコンを束ねてクラウド側処理に適した変換処理をするRaspberry Piのようなコンピュータ(MPU、SBC)が必要です。

今回Raspberry Pi 3でIEEE 802.11b/g/n、Bluetooth 4.1(BLE: Bluetooth Low Energy)が追加実装されたことは、MCU、MPU/SBC間の通信手段としてこれら方式が有力であることを示しています。また、セキュリティや通信に処理能力が必要なので高性能化も解ります(既にこれら機能実装済みのDragonBoard 410cは、こちらを参照)。

低消費電力が要求されるマイコンMCUとの通信にはBLE、高速大容量が要求されるクラウドとの通信には無線LANが適用されると思われます。

IoT階層構造
IoT階層構造

今後のマイコン開発者には、従来通信の「UARTと同レベルでBLE習得が必須」です。

弊社マイコンテンプレートは、CypressのPSoC 4 BLEテンプレートでこの要求に対応済みです。最新のPSoC Creatorは、よりセキュリティを強化したBLE 4.2へも対応しています。BLEをUARTと同様に簡単に使ってみませんか?

DragonBoard 410cが気になる

DragonBoard 410c

入手性が良く価格も手ごろなIoT向けPCは、Raspberry Pi 2 Model Bや先日発売のRaspberry Pi Zeroが有名です。これらボードの比較は、コチラが参考になります。ボードへWindows 10 IoT Coreをインストールする記事も多くあります。

これらIoT向けPCには、ネットワークへ接続するためのEthernetポートを持っています(Pi Zero除く)。IoTセンサマイコンの情報収集や管理を行い、クラウド側コンピュータへ接続するためです。但し、マイコン側への接続は、GPIO経由でした。

ここに少し違和感を覚えていたのですが、この違和感が無いIoT向けPCが「DragonBoard™410c」です。

マルチOS対応のDragonBoard™410c

  • Android 5.1
  • UbuntuベースLinux
  • Windows 10 IoT Core

DragonBoard™410cで動作するOSは3種類です。Windows 10 IoT Coreは当然でも、Android 5.1も動作すること、IoTマイコン無線接続に使えるBluetooth 4.1を実装済みであることが気に入っています。Raspberryとの比較は、コチラを参照してください。

日本では、アロー・ユーイーシー・ジャパン株式会社とチップワンストップが独占販売するそうです。

Windows 10 IoT CoreとAndroidメリット

どちらのOSもBluetoothをサポート済みです。ボード購入時にインストール済みのAndroidには、直ぐに使えるアプリが多くあります。開発環境もVisual Studioがあれば、UWP:ユニバーサルWindowsプラットフォーム開発がなんとかなりそうです。

まだ参考記事数は少ないですが、今後いろいろな情報が出てくればと期待しています。

Windows 10クリーンインストールとVisual Studio Express 2015インストールのTips

殆どの方が、Windows 7/8.1からアックグレートしてインストしたWindows 10、リリース1ヵ月が経過し慣れた頃なので、カスタマイズされる方も多いでしょう。今回は、このWindows 10のクリーンインストとVisual Studio Express 2015のインストに関する調査結果を示します。

Windows 10クリーンインストール方法

Windows 7/8.1からアックグレートしたWindows 10は、旧OSのカスタマイズ設定と新OSのデフォルト設定がダブることがあります。簡単に元に戻せる場合もありますが、OS更新を機にクリーンインストするのも対策の一方法です。

Windows 10のクリーンインスト方法は、Webや雑誌に多くの記事がありますが、USB2.0特定ポートでしか起動できないとか、DVD起動に失敗するなど、多くの隠されたトラブルが付き物です。

この対策にWindows 10標準の「PCのリセット」をお勧めします。この方法なら、USBやDVDでのブートは不要で、しかもプロダクトキー再入力なども不要です。また、旧OSから引継いだゴミファイルなども綺麗に削除されるので、OSストレージもWindows 10本来の容量となります。

手順を簡単に示します。

  1. アップグレートした現状Windows 10を、コントロールパネル>バックアップと復元(Windows 7)か、または、お好きなバックアップソフトで保存(万一、クリーンインストに失敗した場合は、ここから復元するためです)。
  2. 設定>更新とセキュリティ>回復>このPCを初期状態に戻すで「開始する」をクリック後、「すべて削除する」オプションを選択。この選択肢が、「PCのリセット」です。実行後は後戻りできません。

    PCのリセット
    「PCのリセット」選択
  3. タイムゾーン選択、かんたん設定、更新プログラム取得、PC所有者などの入力を途中求められますがMicrosoftアカウント入力をスキップし、ローカルアカウント入力でWindows 10クリーンインストが完了。

クリーンインスト後のOS容量は、Pro/Homeともに20GB程度です。後は、必要なアプリを再インストすれば、クリーンなWindows 10環境が構築できます。

※万一失敗した場合は、1で作成したバックアップファイルを使って復元してください。本手順は、2台のパソコンで動作確認しておりますが、弊社は責任をもてませんので、あくまでも処理する個人の責任で実行してください。

Visual Studio Express 2015インストール方法

Windows 10と同じく最新Windows IDEのVisual Studio 2015、こちらも多く記事があります。しかし、9月3日現在、無償で一番使いやすいVisual Studio Express 2015のダウンロードはありません。

私は、無償Visual Studio Community 2015の標準インストールが、このExpress版に相当すると思います。

Visual Studio Express 2015のインストール
Visual Studio Express 2015のインストール

Visual Studio標準インストール(Typical)時は6GB、Customで全選択したFullインストール時は、24GBの容量が必要になります。弊社の場合は、従来のWindowsデスクトップアプリ、Webアプリ、Windows 10向けのUWPアプリ開発を行う予定なのでこの標準インストールで良さそうです。

* * *

OSのクリーンインストは、アプリの再インストや設定カスタマイズなど、手間暇ばかりかかる処理です。アップグレードインストならは、この手間が省けますが、旧OSの消しきれないゴミやダブった設定など、新OSにあまり相応しくないものも引き継がれます。

本記事がWindows 10のクリーンインストやVisual Studioにトライされる方の参考になれば幸いです。

ブログカテゴリ修正

マイコンのサブカテゴリを、6種のマイコンとIoT向けPCに修正しました。

ARM Cortex-M0+またはM0コアのマイコン、FreescaleのKinetisマイコン、NXPのLPCマイコン、ルネサスのRL78マイコンとR8Cマイコンです。
IoT向けのPCは、Windows 10 IoTコアを実装できるCPUボードを対象としました。

KinetisとLPCマイコンは、Cortex-M0+/M0マイコンと重複しています。
これは、Cortex-M0+/M0を重視したためで、このカテゴリから、今後新しいマイコンが発売されることを想定しています。

この基になった記事がコチラです。「Cortex-Mプロセッサを軸にしたARMのIoT戦略」の項で、市場早期対応にARMコア利用が優れていること、小さな実装面積と少ない電力要求のIoT市場にはCortex-M系が良く、Bluetoothなどの無線IPをSoC実装した新マイコン発表の可能性を示しています。

正式版がリリースされた無償Windows 10 IoTコアは、Wi-FiとBluetoothサポートなので、この新マイコンとの相性も良さそうです。

ブログ記事検索は、キーワード短縮表記をお使いください

カテゴリ修正に合わせて、過去の記事のタグ追加と修正も試みましたが、記事数が多いので断念しました。従って、記事の検索にタグを使うと、検索漏れが生じます。

ブログ記事のタグ検索
ブログ記事のタグ検索

対策として、関連記事の検索は、「検索窓にキーワードの短縮表記」をお使いください。例えば、LPC812とLPC824の記事を検索するときは、“LPC8” を入力するなどです。タグ検索よりは遅いのですが、検索漏れは防げます。よろしくお願いいたします。

ブログ記事のキーワード検索
ブログ記事のキーワード検索

次期マイコンテンプレートのターゲット考察

NXPとFreescaleの合併、予想さえしなかったことです。激動するマイコン世界ですが、現在のマイコンテンプレート状況を整理し、次期テンプレートのターゲットとなるマイコンについて考えます。

入手性の良いマイコンとテンプレート販売状況

以前紹介した入手性が良いマイコンが一目で解る、チップワンストップサイトのマイコン/開発ツール検索を今回も利用させていただきます。サイト中央のマイコン/ボードタグをクリックすると、8/16/32bit処理ビットとベンダ毎に分けられたマイコンが表示されます。

一覧表が以下です。緑色がARM仕様のマイコン、青色がベンダ仕様マイコン、赤囲みがテンプレート対応マイコンで、現在4種のテンプレートを1000円(税込)で販売中です。

入手性の良いマイコンとテンプレート提供状況
入手性の良いマイコンとテンプレート提供状況

表中NXPはARM Cortex-M0のみですが、Cortex-M0+のLPC8xxも供給しています。
32bitマイコンの主流は、緑のARMマイコンです。表内のARMコアの特徴をまとめたものが下表です。

ARMコア 名称 概要
Cortex-Mx エンベデッド プロセサ 32bitの高い処理効率を維持し、業界最先端の動作と最小限のスリープ/ダイナミック電力、最小限のダイ面積を目指し設計。以下の4サブ構成。
Cortex-M0:低消費電力マイコン
Cortex-M0+:超低消費電力マイコン
・Cortex-M3:汎用マイコン
・Cortex-M4:デジタル信号制御マイコン
Cortex-Ax アプリケーション プロセサ 高度なオペレーティングシステム:OSが実行可能なメモリ管理ユニットMMU搭載マイコン
ARMx Classic プロセサ ARM11、ARM9、ARM7などコスト効果の高いマイコン

 

32bitマイコンのテンプレート対象は、Cortex-M0/M0+です。
Cortex-M3クラスになると、高価なうえに動作周波数も70MHz以上でControlよりもComputeが得意になります。IoT向けPCのEdisonRaspberry Pi 2(Cortex-A7搭載)と競合する可能性もあります。Cortex-M0/M0+は、16bitマイコン市場の置換えも視野に入れたマイコンですので、今後の普及も期待できます。
16bitマイコンは、ルネサスの超低消費電力マイコンRL78に、RL78/G1xテンプレートを販売中です。

4種テンプレートに付記した動作電圧からみえるのは、そのマイコンの想定アプリケーションです。
FreescaleのKinetis Eは、5V耐性やノイズ耐力を高めたマイコンです。また、NXPのLPC8xxは、バッテリ駆動ができ、小ピンですがスイッチマトリクスによりピン配置の自由度が高く、LPC111xも同じくバッテリ駆動可能で、第3世代でアクティブ消費電流が116uA/MHzまで低下したマイコンです。ルネサスのRL78は、広い動作電圧がセースルポイントのマイコンです。

以上が現状マイコンテンプレートの状況です。「16bitのHigh Performanceマイコンから32bit Entry+alphaのマイコンで、容易に入手できメジャーなもの」へテンプレートを提供し、「対象マイコンの速習と早期アプリ開発」が誰でもできます。テンプレートの詳細は、マイコンテンプレートサイトを参照してください。

IoTアプリケーション向きの超低消費電力マイコンと次期テンプレート

開発アプリケーションに適したマイコンを選ぶこと、これが最も重要です。汎用マイコンでも、想定した応用の範囲内で能力を発揮するように設計されているからです。
次期テンプレートは、よりアプリケーション指向の強いマイコンを選びます。当りハズレはありますが、当たればより多くのテンプレートが売れる可能性があるからです。

プログ記載の2015年1月~2月に集中して最新マイコンドレンドを分析した結果、各ベンダは、巨大マーケットを持つ「IoTアプリと車載アプリ」へのマイコン開発に力点を置きつつあることが解りました。特に車載マイコンでのこの動きの結果、NXPとFreescaleの合併となったとも言えるでしょう。

次期テンプレートもこのドレンド:IoTアプリ向けの超低消費電力マイコンに開発します。例を挙げると、ARM Cortex-M0/M0+コアでは、より低い消費電力、高エネルギー効率と低コストを狙ったFreescaleのKinetis LシリーズやNXPのLPC82x、ルネサスRL78:S3コアでは、RL78/I1Dなどです。

これらには、従来テンプレートに添付したシンプル/メニュードリブンテンプレートに加え、IoTアプリ開発の重要なポイントになる省電力テンプレート(仮称)も加える予定です。

 

IntelシニアフェローStephen Pawlowski氏によると、「これからの10年は、エレクトロニクスのイノベーションの歴史で最もエキサイティングな時代になるだろう。」だそうです。弊社マイコンテンプレートが、このエキサイティングな時代に活躍する技術者/開発者の方へ、少しでもお役立てれば幸いです。

無償mbed OS 10月15日リリース予定

mbed OSリリーススケジュール(記事より抜粋)
mbed OSリリーススケジュール(記事より抜粋)

弊社ブログ記載のARM無償提供mbed OSのリリーススケジュールが、“ARM 「mbed OS」とは何か?その詳細と動向”記事にあります。本年2015年10月15日以降には、mbed OSを試せそうです。

mbed OS層構造

mbed OSの構造(記事より抜粋し加筆)
mbed OSの構造(記事より抜粋し加筆)

ARM Cortex-M0/M0+のマイコンに無償で使えるmbed OSは、図のように各種標準通信プロトロルを提供します。ROM容量の少ないマイコンは、この中の一部を選択して実装できるそうです。

CMSISとIPv4、IPv6実装済み無償OSがC++ APIで使える10月15日が待ち遠しいです。弊社テンプレート提供中のARMマイコン、LPC812、LPC1114/5、Kinetis Eにも適用できそうです。

実物を診ないと断言はできませんが、テンプレートもこのmbed OSの上(Applicationsの層)に配置できる気がします。超うすいテンプレートだからです。勝手にライバル視してきましたが、実は、CMSISと同じ感覚でネット接続APIが使える可能性もあり、ますます待ち遠しいです。
一方、IoT向けPC:Raspberry Pi 2に無償提供されるWindows 10にとっては、強力ライバルソフトになりそうです。Raspberry Pi 2は、ARM搭載ですので、当然このmbed OSが実装できると思うからです。

Edisonを使った温度センサのツイート例

IoT向けPCならマイコン技術者でなくても、誰でもIoTアプリが簡単に開発できる記事を見つけましたので紹介します。

周囲温度をEdisonでツイート

Wiring the Internet of Things with Intel Edison and Node-REDより抜粋
Wiring the Internet of Things with Intel Edison and Node-REDより抜粋

IoT向けPCは、EdisonRaspberry Pi 2を紹介済みです。両者ともGPIO×40を持ち、見た目はマイコン評価ボードのようですが、元々PCですのでEther接続は得意です。PCボード価格も5000円以下で、高性能マイコンの評価ボードと同程度です。

簡単に記事を説明すると、EdisonのGPIOに温度センサを接続し、MRAAというライブラリとNode-REDというGUIツールを使って周囲温度をスキャンし、計測値をネットへツイートします。GPIOアクセスやGUIツールの使い方が主体の記事です。これは、OSが必須のPCでは、GPIOへの直接アクセスはできないのが一般的だからです。マイコンとは、ココが違います。

同じことをマイコンでするなら、温度センサ接続やGPIO制御などは簡単ですが、Ether接続、ましてはツイッターへの送信などは、規定プロトコルをマイコンへポーティングするだけで大変です。

マイコンとIoT向けPCの得意処理

マイコンは、センサ制御やGPIOデータ収取などの「Control」が得意です。しかし、「Compute」には高性能が必要で、ネットアクセスと並んでIoT向けPCの得意領域です。これらマイコンとIoT向けPCは、データ収集エリア近くに多数配置され、ここから集められたデータがクラウド内のデータセンタでビッグデータとして処理、加工されます。これがIoTの全体構造と考えられています。

各ベンダの最新マイコンは、このIoT内でシェア確保を狙い、ADC分解能や低消費電力、小型低価格化などのControl性能向上に力点がシフトしつつあります。IoT向けPCとの接続用に従来のUARTから、USBやBluetoothなどが汎用化するかもしれません。

一方、IoT向けPCには、ソフト開発者用としてWindows無償提供や各種ライブラリ/ツールなどで、より簡単で高機能なCompute処理の実装ができる環境が提供されます。

汎用マイコン機能見直しの兆し

マイコンとIoT向けPC、それぞれが、機能選択とコスト最適化を目指して変化しつつあるのが現状だと思います。IoTビッグマーケットに対して「競合か共存か」、両者ともに注視する必要がありそうです。