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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

の2つを示しました。

複製不可な暗号鍵生成技術:Chip DNA

IoTデバイスのセキュリティ対策に、IC製造プロセスのサブミクロン単位の違いを利用したデバイス固有の鍵を生成する技術:Chip DNAを使った製品DS28E38がマキシムから発表されました。

Chip DNAは、デバイスの指紋認証、顔認証に相当すると言えそうです。Maximは、暗号鍵の複製や外部からの解析も不可能なため、セキュア認証はChip DNA方式に変わると考えています。

また、MOSFETデバイスに自然発生するランダムアナログ特性を利用して暗号鍵を生成し、使用後は鍵が消える、つまりワンタイムパスワード的に使える技術もあるそうです。

ソフト➡ハード➡次世代セキュリティ:DS28E38

次世代暗号鍵
次世代暗号鍵(出典:マキシム、記事)

スマホでの指紋認証の手軽さは、誰もが経験しています。Chip DNAは、ハードウエアセキュリティよりも更にセキュリティが優れています。

Chip DNAでipv4のアドレス枯渇のようなことが無いならば、決定打と言えそうです。しかも、1ドル未満のコストで実現できるそうなので、SOC:System on a chipでIoT MCUに実装すればセキュリティ問題は解決するかもしれません。

DS28E38
DS28E38(出典:記事、マキシム)

ISDN終了とIoTキラーアプリ

2020年以降、現行のISDN公衆交換電話網Public Switched Telephone Network:PSTNが、Internet Protocol:IP網へ全面移行します。ISDNの次の世代はATM:Asynchronous Transfer Modeと思いその研究開発が社会人スタートだった私には隔世の感があります。データ中心のコンピュータIP網が次世代ISDNの解に決まったからです。

IoTキラーアプリ

障害予測、適応型診断、状態適用型メンテナンス、これらが産業用IoTキラーアプリ候補だという記事があります。キラーアプリとは、技術を爆発的に普及させるアプリケーションのことです。

記事の中で、“キラーアプリケーションは、新技術の普及を促進するとともに、多くの場合、基板となるコンポーネントの複雑さを覆い隠す。大多数のユーザーは、その技術から得られるメリットを求めるのであり、その内部構造には関心がない”という記述があります。

これは真理です。ATMがIPに負けたのも、キラーアプリの成せる業です。

アプリよりのIoTマイコンテンプレート

販売中のマイコンテンプレートは、汎用性を重視しています。
しかし、IoT向けのマイコンテンプレートには「汎用性よりも、よりアプリよりのテンプレート提供」が求められそうです。記事を参考にIoTマイコンテンプレートの構成を検討します。

Qualcomm、10nmプロセスのSnapdragon 835発表

NXPを買収したQualcommがSnapdragon 835を発表しました。この発表の解説記事:“820比で消費電力25%削減、GPU性能25%向上、Windows 10へも対応”から、今後のIoTマイコン開発を予測します。

マイコン製品のロングライフ化

バッテリ機能低下のスマホは文鎮化します。3年使い続けた私のNexus5:2300mAhも、最近はどう工夫しても半日程度しかバッテリが持ちません。500回と言われるリチウムイオン電池の充電サイクルは、とうに過ぎているので仕方ないことです。

数年のライフでも許されるスマホと違って、組込用途のIoTマイコン:MCU製品は、一度設置されると10年程度はメンテなしで動作する必要があります。MCU製品のロングライフ化が、開発トレンドになると思います。(IoT端末の必須技術も参照)。

MCUハードの進化は、スマホMPUやパソコンCPUの後追いです。NXPのLPC8xxの2017年ロードマップのように、半導体プロセス進化と共に、新たな低電力マイコンが発売されます。
MCUソフトは、動作周波数を下げる、不要な周辺回路を停止するなどの定番手段がありますが、低電力化の要求は、ソフト記述テクニックそのものにも影響を与えるかもしれません。

レファレンスデサイン利用

スマホ開発は、レファレンスデザイン利用が一般的です。Nexus5もスマホOS:Androidの生みの親Google提供のレファレンスデザインの1つとも言えます。レファレンスデザインの利用目的は、独自仕様のハードや付加アプリの早期開発のためです。

従来MCU開発は、サンプルソフトと開発ボードで行ってきました。弊社マイコンテンプレートもこれに相当します。

しかし、高度なセキュリティと無線通信が必須のIoT MCU製品開発の場合は、リアルタイムOS:RTOSの実装も(おそらく)必要となります。従来の開発方法では、本来の差別化技術開発に到達する前段階で時間が掛かると思います。さらに、無線通信規格の乱立も開発時間を増やす要因です。

これらの対応にIoTマイコン開発も、mbed OS 5やFreeRTOSなどのRTOSが実装済みのレファレンスデザインキット提供が必要だと思います。例え無線規格変更やRTOS変更が生じても、キットの基本部分は同一で、無線モジュール載せ替えとRTOS APIを利用していればアプリ側の小変更で対応できるからです。

IoTマイコンには、UARTとは比べ物にならない複雑な通信処理と高度なセキュリティが必須です。数10億個とも言われるマーケットに普及させるには、スマホ開発やWindowsアプリ開発に近い新たな開発環境が要求されると考えます。

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

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

Qualcomm to acquire NXP
Qualcomm to acquire NXP

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

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から簡単に実行できます。

似通るBluetoothと無線LAN

Bluetooth 5と無線LANの類似性が増し、互いの領域に滲出、相互補完が薄れていくという記事、両規格の生立ちと規格の方向性が良く解ります。

Bluetoothと無線LANの領域

本ブログ掲載のMCUとMPU/SCB間の無線規格のページの下図で見ると、両規格の違いは、バッテリー消費量です。

Bluetooth(BLE)とLPWAの違い
Bluetooth(BLE)と無線LANの領域

記事要旨を表にしました。Bluetooth 5の機能強化点が、無線LAN側を浸食していきつつあるのが解ります。

Bluetooth 5と無線LANの生立ちと規格の方向性
  Bluetooth 5 無線LAN
生立ち RS-232C代替無線規格、シンプルなネットワークスタックで低消費電力 IPネットワークの無線化
周波数(Hz 2.4G 2.4G/5G
通信速度/距離 複数デバイス間の低速少量データ 数100Mbps~数Gbps、100m(max)
機能強化点 速度:2Mbps
通信範囲:4倍
ブロードキャスト容量:8倍
コネクションレス通信サポート
暗号化サポート
セキュリティ規格WEP:Wired Equipment PrivacyからWPA:Wi-Fi Protected Accessへ

無線LAN側は、スリープモード利用で省電力強化の方向ですが、実用化には時間がかかるそうです。

この規格の見通しが立つまでは、無線機能搭載MCUの選定が、しづらいです。結果、CypressのPSoCアナログ特化製品のような、無線規格変更に柔軟に対応できるコプロセサ化も必要かもしれません。

※本時期内容は、MCUとMPU/SCB間無線規格ページへ追記しました。

広範囲IoT向け無線規格「LPWA」

IoT向け無線規格「LPWA」の全貌の記事2つを紹介します。LPWAとは、Low Power Wide Areaの略で、マイコン:MCUとIoT向けコンピュータ:MPU/SBC間通信ではメジャーなBluetoothなどの近距離無線に対して、より広い範囲のIoT向けの通信規格のことです。

1つ目が、IoT向け通信に価格破壊をもたらす「LPWA」、2つ目が、いよいよ日本上陸、LPWAの最有力候補「LoRaWAN」の実力は?です。通信コストとオープン仕様というキーワードが登場します。

低電力な長距離通信技術:LPWA

BluetoothとLPWAとの違いを示すのが、1つ目記事より抜粋した下図です。3GやLTE技術で問題となる通信コストや初期投資を抑える新技術がLPWAで、低速かつ一回の通信量も数10バイト程度に抑えて、バッテリー消費量を数年または10年以上も可能とするのを目標としています。

Bluetooth(BLE)とLPWAの違い
Bluetooth(BLE)とLPWAの違い(記事より抜粋)

低通信コスト

主なLPWA技術が下表です。SIGFOXは、フランスやスペインなどで、1回線あたり年間1ドルで既にサービス開始済みで、800万回線契約があるそうです。LoRaWANは、韓国SKテレコムが日本円換算月額32円で提供中です。

主なLPWA技術
主なLPWA技術(記事より抜粋)

オープン仕様

これらLPWAは、キャリアの提供サービスです。日本では、LoRaWANが最有力候補だそうです。その理由は、Wi-Fiのように誰もがその技術を利用しサービスを提供できるオープンな仕様と、免許不要帯の利用にあります。

日本国内LoRaWANフィールドテストの結果、 6㎞程度の最大伝送距離と、20~30km/h以下の低速移動体通信が確認できたようです。

オープンイノベーション

デファクトスタンダードやオープン仕様は、マイコン:MCU開発にとっても無視できません。マイコンで産み出す機能実現とその維持のために、低コストや代替デバイスの検討も無視できないからです。

マイコン開発者自身の意識も、このオープン仕様の流れに沿う必要があるのかもしれません。オープンイノベーション白書が無料でダウンロードできますので、意識改革の手始めに目を通すのも良いと思います。

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

IoT無線規格「Z-Wave」

欧米のホームセキュリティと室内温度コントロール、ホテルなどで実績があり普及が進むIoT無線規格が「Z-Wave」です。Z-Waveの国内動向記事によると、2015年のZ-Wave認証製品の累計出荷台数は6000万デバイス超、2016年には1億デバイス出荷が確実だそうです。

日本では未知な部分が多いIoTを、実サービスへ適用した例と、その出荷台数がインパクトある内容ですので、記事要旨を示します。

BLEの課題とZ-Waveの対策

  1. Wi-Fi環境下での干渉
  2. 石造りの家庭が多い欧州では、減衰が多い
  3. 通信距離が最大7~10m程度と短い
  4. 端末の増設に弱い

スマホ等で普及しているIoT無線通信の1つBLE:Bluetooth Low Energyの上記4課題に対して、Z-Waveは、これら課題を解決する下記特徴を備えているそうです。

  1. Wi-Fiとの干渉に強い
  2. 150m四方の通信距離
  3. 最大232個の端末増設が容易
  4. 低消費電力でバッテリー駆動の完全互換センサに数多く採用中

記事より抜粋したZ-Waveと他のIoT無線規格の比較を示します。

Z-Waveと他IoT無線規格の比較
Z-Waveと他IoT無線規格の比較(記事より抜粋)

日本国内でZ-Wave普及が遅れる理由

利用できる周波数解禁が海外比10年以上遅れていること、スマホによる家電や照明操作が電気用品安全法により規制されていること、火災警報器の厳しい基準などが原因だそうです。

また、欧米スマートホームのスタイルをそのまま導入できない日本の治安の良さも一因だそうです。

メッシュ網

技術解説記事によると、端末識別のためにMACヘッダにユニークなIDを付与することで232個までノードに対してメッシュ網を構成するそうです。

Z-Wave Singlecast
Z-Wave Singlecast(記事より抜粋)
Z-Wave Multicast
Z-Wave Multicast(記事より抜粋)

Z-Waveデバイスと評価キット

Z-Waveを制御するデバイス開発元の米Sigma-Design製評価キットは、欧州、米国、日本向けに用意されています。

日本でも医療/介護の分野で普及する可能性があるので要注意のIoT無線規格だと思います。MCUとMPU/SCB間の無線規格一覧ページへZ-Waveを追加し、今後も注視します。