• 検索結果がありません。

RE KB グループ Bluetooth Low Energyプロトコルスタック Evaluation Kit RE KB ホストサンプル アプリケーションノート

N/A
N/A
Protected

Academic year: 2021

シェア "RE KB グループ Bluetooth Low Energyプロトコルスタック Evaluation Kit RE KB ホストサンプル アプリケーションノート"

Copied!
37
0
0

読み込み中.... (全文を見る)

全文

(1)

RE01 1500KB グループ

Bluetooth

®

Low Energy プロトコルスタック

Evaluation Kit RE01 1500KB ホストサンプル

要旨

本アプリケーションノートでは、Evaluation Kit RE01 1500KB と RL78/G1D BLE Module Expansion Board を使用してセンサ情報を Bluetooth 通信で送信する方法を説明します。

ホストサンプルは、Bluetooth Low Energy プロトコルスタックの Modem 構成を使用した Evaluation Kit RE01 1500KB で動作する Host MCU プログラムで、UART 2 線分岐接続方式で接続した RL78/G1D BLE Module Expansion Board 上の RL78/G1D モジュール(RY7011)を制御します。

本書では、ホストサンプルが動作するハードウェア構成、ソフトウェア構成、スマートフォンと通信の確 認をする手順やBluetooth の通信シーケンスについても記載します。

動作確認デバイス

Evaluation Kit RE01 1500KB (製品型名: RTK70E015DSxxxxxBE)

RL78/G1D BLE Module Expansion Board (製品型名: RTKYRLG1D0B00000BJ)

関連資料

資料名 資料番号

和文 英文

Bluetooth Low Energy プロトコルスタック

ユーザーズマニュアル R01UW0095J R01UW0095E

API リファレンスマニュアル 基本編 R01UW0088J R01UW0088E

サンプルプログラムアプリケーションノート R01AN1375J R01AN1375E

rBLE コマンド仕様書 R01AN1376J R01AN1376E

RL78/G1D ユーザーズマニュアル ハードウェア編 R01UH0515J R01UH0515E RL78/G1D モジュール ユーザーズマニュアル ハードウェア編 R02UH0004J R02UH0004E ファームウェア ユーザーズマニュアル R01UW0160J R01UW0160E モジュール制御ソフトウェア R01AN3362J R01AN3362E RE01 グループ (1.5M バイトフラッシュメモリ搭載製品) RE01 グループ (1.5M バイトフラッシュメモリ搭載製 品) ユーザーズマニュアル ハードウェア編 R01UH0796J R01UH0796E

(2)

目次

1. 概要 ... 4 2. 開発環境 ... 5 2.1 ハードウェア環境 ... 5 2.2 ソフトウェア環境 ... 5 3. ホストサンプル構成 ... 6 3.1 デバイス構成 ... 6 3.1.1 PmodTMインタフェース ... 7 3.2 ソフトウェア構成 ... 8 3.3 周辺機能構成 ... 9 3.4 ファイル構成 ... 11 4. ビルド手順 ... 13 4.1 IAR EWARM ... 13 5. 通信動作確認手順 ... 13 5.1 GATTBrowser のインストール ... 13 5.2 ホストサンプルの実行 ... 14 5.2.1 IAR EWARM ... 14 5.3 スマートフォンを使用した通信動作確認 ... 15 5.3.1 Android デバイスでの通信動作確認 ... 15 5.3.2 iOS デバイスでの通信動作確認 ... 16 6. 動作 ... 17 6.1 rBLE コマンドと rBLE イベントの動作 ... 17 6.2 メインループの動作 ... 18 6.3 UART 2 線分岐接続方式 ... 19 6.3.1 送信動作 ... 19 6.3.2 受信動作 ... 20 6.3.3 応用回路 ... 21 7. 通信シーケンス ... 22 7.1 メインシーケンス ... 22

7.2 Step1. rBLE Initialize シーケンス ... 23

7.3 Step2. GAP Initialize シーケンス ... 23

7.4 Step3. Broadcast シーケンス ... 24

7.5 Step4. Connection シーケンス ... 24

7.6 Step5. Profile Enable シーケンス ... 25

7.7 Step6. Remote Device Check シーケンス ... 26

7.8 Step7. Pairing シーケンス ... 27

7.9 Step8. Start Encryption シーケンス ... 29

7.10 Step9. Profile Communication シーケンス ... 29

(3)

8. 付録 ... 31

8.1 ROM・RAM サイズ ... 31

8.2 参考文献 ... 31

8.3 用語説明 ... 32

Bluetooth® のワードマークおよびロゴは、Bluetooth SIG,Inc. が所有する登録商標であり、ルネサス エ レクトロニクス株式会社はこれらのマークをライセンスに基づいて使用しています。その他の商標および登 録商標は、それぞれの所有者に帰属します。

(4)

1. 概要

本アプリケーションノートでは、Evaluation Kit RE01 1500KB と RL78/G1D BLE Module Expansion Board を使用してチップの温度センサ情報を Bluetooth 通信で送信する方法を説明します。

ホストサンプルは、Bluetooth Low Energy プロトコルスタック(BLE プロトコルスタック)の Modem 構成 を使用したEvaluation Kit RE01 1500KB で動作する Host MCU プログラムです。UART 2 線分岐接続方式注 1で接続したBLE MCU の RL78/G1D BLE Module Expansion Board を構成する RL78/G1D モジュール

(RY7011)を制御します。

RY7011 には出荷時に動作確認用のモジュールファームウェアが書き込まれており、Host MCU プログラ ムからBLE プロトコルスタックの rBLE API注2を用いて制御することができます。

【注】 1. UART のデータ信号線である TxD、RxD に加えて、Host MCU がデータ送信時に BLE MCU を起 床させるためのWAKEUP 信号線を持ちます。WAKEUP 信号線は Host MCU の TxD を分岐して BLE MCU の WAKEUP と接続します。Host MCU と BLE MCU 間の接続については、「6.3.3 応 用回路」を参照してください。

2. BLE プロトコルスタック API の詳細については、「Bluetooth Low Energy プロトコルスタック API リファレンスマニュアル」(R01UW0088)を参照してください。

(5)

2. 開発環境

ホストサンプルのビルドと動作確認で使用する開発環境を示します。

2.1 ハードウェア環境

ホストマシン • PC/ATTM互換機 • プロセッサ :1GHz 以上(ハイパースレッディング,マルチコア CPU に対応) • メイン・メモリ :推奨2G バイト以上 • ディスプレイ :1024×768 以上の解像度,65536 色以上

インタフェース :USB 2.0(Evaluation Kit RE01 1500KB との接続)  開発ボード

• Evaluation Kit RE01 1500KB (RTK70E015DSxxxxxBE)

RL78/G1D BLE Module Expansion Board (RTKYRLG1D0B00000BJ) スマートフォン(タブレット) Android デバイス、または iOS デバイス

2.2 ソフトウェア環境

OS Windows 7 以降 統合環境/コンパイラ 下記の統合環境とコンパイラの組み合わせを使用してください。 • IAR EWARM V8.42.1 / IAR C/C++ Compiler for ARM 8.42.1 • CMSIS Driver Package Rev1.01

サンプルプログラムは下記のEWARM オプションを使用しています。 • C/C++コンパイル最適化を「高」に設定しています

• 一般オプション/ライブラリオプション/Printf フォーマッタを「極小」に設定しています • 一般オプション/ライブラリオプション/Scanf フォーマッタを「小」に設定しています

(6)

3. ホストサンプル構成

3.1 デバイス構成

「図 3-1 デバイス構成」に本アプリケーションノートで使用するデバイス構成図を示します。 Local Device(Slave)は、Host MCU にあたる Evaluation Kit RE01 1500KB と、BLE MCU にあたる RL78/G1D BLE Module Expansion Board で構成されます。BLE ボードは PMOD1 で接続され、UART 2 線 分岐式接続で通信します。

Remote Device(Master)は、Android デバイスまたは iOS デバイスのスマートフォンを使用します。

3-1 デバイス構成 ホストサンプルの動作概要は以下のとおりです。  rBLE API を使用し以下の動作を実行。  プログラム実行後、自動的にアドバタイジングを開始。  Remote Device からの接続要求により接続を実行。  Remote Device から要求があれば、ペアリング/暗号化を実行し接続。  Remote Device からの Indication 許可により、

汎用双方向通信(General Purpose Communication Profile : GPCP)を有効化。  Remote Device からの測定開始ワード('S'または's')により、

RE01 内蔵温度センサで測定したチップ温度を BLE で繰り返し送信。

プログラム実行のための簡易的なスケジューラのみ実装。

対向デバイスは、スマートフォン(Android デバイスまたは iOS デバイス)を想定。

Evaluation Kit RE01 1500KB

RL78/G1D BLE Module Expansion Board

スマートフォン (タブレット)

PMOD1

Local Device (Slave) Remote Device (Master)

(7)

3.1.1 PmodTMインタフェース

「図 3-1 デバイス構成」の PmodTMインタフェース・コネクタピンアサインを示します。各ピンで使用 している機能を青字で示します。

(1) PMOD1

表 3-1 PMOD1 コネクタピンアサイン

Evaluation Kit RE01 1500KB PmodTM RL78/G1D BLE Module Expansion Board

機能名 ピン番号 ピン番号 ピン番号 機能名

P610/SSLB0_B 73 1 2 P30/INTP3/RTC1HZ

P609/TXD2_C/MOSIB_B 74 2 8 P11/SI00/RxD0/TOOLRxD/SDA00/(TI06)/(TO06) P608/RXD2_C/MISOB_B 75 3 7 P12/SO00/TxD0/TOOLTxD/(TI05)/(TO05) P607/CTS2_C/RSPCKB_B 76 4 9 P10/SCK00/SCL00/(TI07)/(TO07) GND - 5 - GND VCC - 6 - VDD P606/SCK2_C/SSLB2_B 77 7 - N.C P605/TXD9_C/SSLB1_B 78 8 24 RESET# P302/CTS5_C/CTS5_B 70 9 - N.C P303/RXD5_C 69 10 23 P40/TOOL0 GND - 11 - GND VCC - 12 - VDD

(8)

3.2 ソフトウェア構成

Host MCU である RE01 と、BLE MCU である RY7011 のソフトウェア構成図を示します。RY7011 には 出荷時に動作確認用ファームウェアが書き込まれており複数のプロファイルに対応しています。本書では汎 用双方向通信(General Purpose Communication Profile : GPCP)を使用します。その他のプロファイルにつ いては、「RL78/G1D モジュール ファームウェア ユーザーズマニュアル」(R01UW0160)の「7. プロファ イル」を参照してください。

図 3-2 ソフトウェア構成

Host MCU は、MCU 周辺機能の制御と BLE MCU との通信を実行するための低レベル周辺ドライバ、周 辺ドライバ、RSCIP(Renesas Serial Communication Interface Protocol)と、rBLE API をアプリケーショ ンに提供するためのrBLE_Host と、システムを制御するためのホストアプリケーション、GATT API を使用 したGeneral Purpose Communication Profile(GPCP)で構成されます。

低レベル周辺ドライバは、コード生成ツールが自動生成します。RSCIP、rBLE_Host は BLE プロトコル スタックに含まれており、ソースコードが提供されます。ソフトウェア開発時は、BLE プロトコルスタック が提供する最新のソースコードをご使用ください。

表 3-2 Host MCU ソフトウェア構成

ソフトウェア 機能 ソフトウェア開発

Host Application rBLE の初期化

rBLE コマンドの実行スケジューリング rBLE イベントコールバックの登録 コーディングが必要 General Purpose Communication Profile (GPCP) GATT API を使用した独自プロファイル コーディングが不要 (ソースコード提供) 注 1

rBLE_Host rBLE API 提供

イベントコールバックの実行

コーディングが不要 (ソースコード提供) 注 1

RSCIP シリアル通信プロトコルの制御 コーディングが不要

(ソースコード提供) 注 1

Peripheral Driver Host MCU 周辺機能の制御 コーディングが必要

Low Level Peripheral Driver Host MCU 周辺機能のプリミティブな制御 コーディングが不要 (ツール自動生成) 注 2 【注】 1. ソフトウェア開発用コードファイルは BLE プロトコルスタックが提供。 Host Application rBLE_Host RSCIP Peripheral Driver

Low Level Peripheral Driver

RE01 (Host MCU)

Modem Application rBLE_Core Profile Host Stack Controller Stack Se ri al D ri ve r Peripheral R W KE (O S) RY7011(BLE MCU-Modem) Peripheral RF Driver RF/BB R SCI P Serial Serial Pe ri ph er al D ri ve r General Purpose Communication Profile GPCP GATT Database

(9)

BLE MCU は、RF/BB を制御するための RF ドライバ、Sample Custom Profile の GATT Database、 Host/Controller スタック、Profile、rBLE_Core と、Host MCU と通信するためのシリアル通信ドライバ、 RSCIP と、システムを制御するための RWKE(Renesas Wireless Kernel Extension)、Modem アプリケー ションで構成されます。これらは「RL78/G1D モジュール モジュール制御ソフトウェア」(R01AN3362)で ビルド環境が提供されます。

表 3-3 BLE MCU ソフトウェア構成

ソフトウェア 機能

Modem Application RSCIP と rBLE の制御

RWKE システム全体のスケジューリングとメモリ資源の管理

RSCIP シリアル通信プロトコルの制御

Peripheral Driver/Serial Driver BLE MCU 周辺機能の制御 rBLE_Core rBLE_API 提供

Profile プロファイル機能の提供

Host Stack GAP、GATT、SM、L2CAP 機能の提供

GPCP GATT Database General Purpose Communication Profile の GATT Database Controller Stack LL 機能の提供

3.3 周辺機能構成

Evaluation Kit RE01 1500KB で使用する RE01 の周辺機能を以下に示します。 表 3-4 周辺機能

周辺機能 用途 必要性(注)

クロック発生回路 RE01 の動作周波数設定に使用します 必須

ポート P610: RL78/G1D BLE Module Expansion Board との UART 2 線分岐式接続の WAKEUP 端子として使用します。 P605: RL78/G1D BLE Module Expansion Board のリセット 解除端子として使用します。

必須

P009: Evaluation Kit RE01 1500KB の LED0 で使用します。 P008: Evaluation Kit RE01 1500KB の LED1 で使用します。 P007: Evaluation Kit RE01 1500KB の LED2 で使用します。

任意

シリアル-UART2 Evaluation Kit RE01 1500KB と RL78/G1D BLE Module Expansion Board の UART 通信に使用します。

必須

非同期汎用タイマ rBLE のタイマ機能に使用します。 必須

【注】 Host MCU が rBLE を使用するために最低限必要とする周辺機能を「必須」、その他を「任意」とし ます。

(10)

3-5 周辺機能設定 周辺機能 設定項目 設定 クロック発生回路 高速オンチップオシレータ クロック 32MHz 低速内蔵発振クロック 32.768kHz CPU と周辺クロック 32000(fIH)kHz ポート P009 出力

(Evaluation Kit RE01 1500KB LED0)

P008 出力

(Evaluation Kit RE01 1500KB LED1)

P007 出力

(Evaluation Kit RE01 1500KB LED2)

P610 出力

(RL78/G1D BLE Module Expansion Board WAKEUP 端子)

P605 出力

(RL78/G1D BLE Module Expansion Board RESET 端子) シリアル SAU0 - UART2 - 受信 データ・ビット長 8 ビット データ転送方向 LSB パリティ パリティなし ストップ・ビット長 1 ビット固定 受信データ・レベル 標準 転送レート 115200(bps) 受信完了割り込み 低 コールバック機能 受信完了 エラー シリアル SAU0 - UART2 - 送信 転送モード 単発モード データ・ビット長 8 ビット データ転送方向 LSB パリティ パリティなし ストップ・ビット長 1 ビット 送信データ・レベル 標準 転送レート 115200(bps) 送信完了割り込み 低 コールバック機能 送信完了 非同期汎用タイマ(AGT) インターバル時間 10ms 割り込み 通常割り込み(AGT0_AGTI, AGT1_AGTI) 優先度レベル 3

(11)

3.4 ファイル構成

本サンプルプログラムのファイル構成を示します。 ファイル構成の(R)表記は、BLE プロトコルスタックに含まれているファイルであることを示します。ソ フトウェア開発時は、BLE プロトコルスタックが提供する最新のコードファイルをご使用ください。 an5363_re_ble │ main.c メインプログラム・コードファイル │ r_userdefine.h ユーザ設定ファイル │

├─CMSIS ARM CMSIS 用設定・ライブラリ

├─config EWARM コンフィギュレーション ├─Device RE01 1500KB デバイスドライバ ├─Documents RE01 1500KB ドキュメント ├─Flash Debug ビルド出力ディレクトリ ├─script リンカスクリプト ├─settings EWARM プロジェクト設定 │ ├─src │ ├─HostSample │ │ ├─Platform │ │ │ ├─driver │ │ │ │ ├─serial │ │ │ │ │ uart.c UART ドライバ・コードファイル │ │ │ │ │ uart.h UART ドライバ・ヘッダファイル │ │ │ │ │ │ │ │ │ ├─temps │ │ │ │ │ temps.c 温度センサドライバ・コードファイル │ │ │ │ │ temps.h 温度センサドライバ・ヘッダファイル │ │ │ │ │ │ │ │ │ └─timer │ │ │ │ timer.c タイマドライバ・コードファイル │ │ │ │ timer.h タイマドライバ・ヘッダファイル │ │ │ │ agt.c 非同期汎用タイマ・コードファイル │ │ │ │ agt.h 非同期汎用タイマ・ヘッダファイル │ │ │ │ │ │ │ └─include │ │ │ arch.h (R) アーキテクチャ・ヘッダファイル │ │ │ compiler.h (R) コンパイラ・ヘッダファイル │ │ │ ll.h (R) 低レベルマクロ・ヘッダファイル │ │ │ rscip_api.h (R) RSCIP コールバック・ヘッダファイル │ │ │ types.h (R) タイプ定義・ヘッダファイル │ │ │ r_macrodriver.h (R) マクロ定義・ヘッダファイル │ │ │ │ │ └─rBLE │ │ ├─host │ │ │ │ rble_host.c (R) rBLE_Host コードファイル

│ │ │ │ rble_if_api_cb.c (R) rBLE API コールバック・コードファイル │ │ │ │

│ │ │ ├─gap

│ │ │ │ rble_api_gap.c (R) GAP API コードファイル │ │ │ │

│ │ │ ├─gatt

│ │ │ │ rble_api_gatt.c (R) GATT API コードファイル │ │ │ │ │ │ │ ├─sm │ │ │ │ rble_api_sm.c (R) SM API コードファイル │ │ │ │ │ │ │ └─vs │ │ │ rble_api_vs.c (R) VS API コードファイル │ │ │ │ │ ├─include │ │ │ │ db_handle.h (R) データベースハンドル・ヘッダファイル │ │ │ │ prf_sel.h (R) プロファイル選択・ヘッダファイル │ │ │ │ rble.h (R) rBLE マクロ定義・ヘッダファイル

(12)

│ │ │ │ rble_api.h (R) rBLE API・ヘッダファイル │ │ │ │ rble_app.h (R) rBLE SCP API・ヘッダファイル │ │ │ │ rble_trans.h (R) rBLE 通信・ヘッダファイル │ │ │ │ │ │ │ └─host │ │ │ rble_host.h (R) rBLE_Host ヘッダファイル │ │ │ │ │ ├─rscip │ │ │ rscip.c (R) RSCIP コードファイル │ │ │ rscip.h (R) RSCIP ヘッダファイル │ │ │ rscip_cntl.c (R) RSCIP コントロール・コードファイル │ │ │ rscip_cntl.h (R) RSCIP コントロール・ヘッダファイル │ │ │ rscip_ext.h (R) RSCIP 外部コールバック・ヘッダファイル │ │ │ rscip_uart.c (R) RSCIP シリアル制御・コードファイル │ │ │ rscip_uart.h (R) RSCIP シリアル制御・ヘッダファイル │ │ │ │ │ ├─sample_app │ │ │ app.c ホストアプリケーション・コードファイル │ │ │ r_serial.c シリアル通信・コードファイル │ │ │ r_serial.h シリアル通信・ヘッダファイル │ │ │ r_serial_int.c シリアル割り込み・コードファイル │ │ │ r_temps_app.c 温度センサ・コードファイル │ │ │ r_temps_app.h 温度センサ・ヘッダファイル │ │ │ │ │ └─sample_profile │ │ └─vuart │ │ vuart.h 汎用双方向通信共通ヘッダファイル │ │ vuarts.c 汎用双方向通信共通 Server ファイル │ │ vuarts.h 汎用双方向通信共通 Server ヘッダファイル │ │ │ └─sample_app │ r_main.c メインループ・コードファイル │ └─SVD デバイス記述

(13)

4. ビルド手順

Evaluation Kit RE01 1500KB のホストサンプルをビルドするためのプロジェクトとビルド手順を以下に示 します。

4-1 Evaluation Kit RE01 1500KB プロジェクト

IAR EWARM

Project File an5363_re_ble¥an5363_re_ble.eww

mot File an5363_re_ble¥Flash Debug¥Exe¥an5363_re_ble.mot

4.1 IAR EWARM

1. 「表 4-1 Evaluation Kit RE01 1500KB プロジェクト」の Project File に示すプロジェクトファイルを ダブルクリックします。これによりEWARM が起動します。

2. メニューの「プロジェクト(P)」→「すべてを再ビルド(B)」を選択して、ビルドを開始します。 3. 「表 4-1 Evaluation Kit RE01 1500KB プロジェクト」の IAR EWARM の mot File の欄で示すパスに

mot ファイルが生成されます。

5. 通信動作確認手順

「図 3-1 デバイス構成」で示す構成で BLE 通信の動作確認を行ないます。

5.1 GATTBrowser のインストール

スマートフォン(タブレット)に BLE の動作確認を行なうことができる GATTBrowser をインストールして ください。  Android 版 GATTBrowser https://play.google.com/store/apps/details?id=com.renesas.ble.gattbrowser  iOS 版 GATTBrowser https://itunes.apple.com/jp/app/gattbrowser/id1163057977?mt=8

(14)

5.2 ホストサンプルの実行

IAR EWARM を使用してビルドしたホストサンプルを Evaluation Kit RE01 1500KB にダウンロードして実 行します。

最初に「4.ビルド手順」に従ってプログラムをビルドしてください。Evaluation Kit RE01 1500KB と PC をUSB ケーブルで接続し、プログラムをダウンロードします。プログラムを実行すると、RL78/G1D BLE Module Expansion Board からアドバタイジングパケットの送信が開始されます。

図 5-1 通信動作確認のデバイス構成

5.2.1 IAR EWARM

1. 「4.1 IAR EWARM」を参照してプログラムをビルドしてください。

2. メニューの「プロジェクト(P)」-「ダウンロードしてデバッグ (D)」を選択し、Evaluation Kit RE01 1500KB へプログラムをダウンロードします。

3. メニューの「デバッグ(D)」-「実行(G)」を選択、または「F5」キーを押し、プログラムを実行しま す。

4. RL78/G1D BLE Module Expansion Board からアドバタイジングパケットの送信が開始されます。 スマートフォン (タブレット)

Local Device (Slave) Remote Device (Master)

USB ケーブル

EWARM を実行 Evaluation Kit RE01 1500KB

RL78/G1D BLE Module Expansion Board

(15)

5.3 スマートフォンを使用した通信動作確認

5.3.1 Android デバイスでの通信動作確認

Remote Device(Master)に Android デバイスを使用して通信動作の確認を行ないます。「図 5-2 Android デバイスでの通信動作確認」も合わせて参照してください。

1. Android デバイスにインストールした GATTBrowser を起動します。

2. デバイスの検索結果から、RTK70E015DS と表示されたデバイスと接続を開始します。 (図A1 の矢印 1)

3. 接続すると Service の一覧が表示されます。一番下までスクロールさせ Renesas Virtual UART Service の Indication Characteristic を選択します。(図 A2 の矢印 2)

4. [Indication Off]をタップし、[Indication On]にします。(図 A3 の矢印 3) 5. Service の一覧に戻り、Write Characteristic を選択します。(図 A4 の矢印 4)

6. String を選択し's'を入力した後、Write をタップすると、Android デバイスから's'が送信されます。's' を受信したLocal Device(Slave)は、センサで測定した情報を Indication で送信します。

(図A5 の矢印 5)

7. Service の一覧に戻り、Indication Characteristic を選択します。Local Device(Slave)から 5 秒ごとに 送信されるセンサ情報が表示されます。(図A6 の矢印 6) 図A1 図A2 図A3 図A4 図A5 図A6 図 5-2 Android デバイスでの通信動作確認 (1) (2) (3) (5) (4) (6)

(16)

5.3.2 iOS デバイスでの通信動作確認

Remote Device(Master)に iOS デバイスを使用して通信動作の確認を行ないます。「図 5-3 iOS デバイ スでの通信動作確認」も合わせて参照してください。

1. iOS デバイスにインストールした GATTBrowser を起動します。

2. デバイスの検索結果から、Renesas-BLE と表示されたデバイスと接続を開始します。 (図B1 の矢印 1)

3. 接続すると Service の一覧が表示されます。一番下までスクロールさせ Renesas Virtual UART Service の Indication Characteristic を選択します。(図 B2 の矢印 2)

4. [Enable Indication]をタップし、[Disable Indication]にします。(図 B3 の矢印 3) 5. Service の一覧に戻り、Write Characteristic を選択します。(図 B4 の矢印 4)

6. Text を選択し's'を入力した後、Write をタップすると、iOS デバイスから's'が送信されます。's'を受 信したLocal Device(Slave)は、センサで測定した情報を Indication で送信します。

(図B5 の矢印 5)

7. Service の一覧に戻り、Indication Characteristic を選択します。Local Device(Slave)から 5 秒ごとに 送信されるセンサ情報が表示されます。(図B6 の矢印 6) 図B1 図B2 B3 図B4 図B5 図B6 図 5-3 iOS デバイスでの通信動作確認 (1) (2) (3) (5) (4) (6)

(17)

6. 動作

「図 3-2 ソフトウェア構成」で示される Host Application(以降、APP)と rBLE_Host を中心に、Host MCU プログラムの動作概要を示します。

6.1 rBLE コマンドと rBLE イベントの動作

「図 6-1 rBLE コマンドと rBLE イベントの動作概要」に rBLE コマンドと rBLE イベントの動作を示しま す。

6-1 rBLE コマンドと rBLE イベントの動作概要

1. APP は rBLE API をコールします。

2. rBLE_Host は rBLE API とパラメータを rBLE コマンドフォーマットへ変換します。 3. rBLE コマンドは RSCIP で BLE MCU へ送信されます。

4. BLE MCU は rBLE コマンドを実行した後、rBLE イベントを RSCIP で Host MCU へ送信します。 5. rBLE_Host は rBLE イベントフォーマットから rBLE イベントに変換します。

6. rBLE_Host は APP のコールバック関数を呼び出して rBLE イベントを通知します。 7. APP は次の rBLE API をコールします。

rBLE コマンド、rBLE イベントについては、「Bluetooth Low Energy プロトコルスタック rBLE コマンド 仕様書」(R01AN1376)を参照してください。

APP

rBLE_Host 7. Next Command Request (if necessary)

2. Conversion from rBLE API to rBLE Command Format

1. rBLE API Call 6. Callback Function Call (Inform rBLE Event)

BLE MCU (RY7011)

3. Send rBLE Command 4. Receive rBLE Event

5. Conversion from rBLE Event Format to rBLE Event

(18)

6.2 メインループの動作

「図 6-2 メインループ動作」にホストサンプルのメインループ動作を示します。

メインループは、APP のシーケンス処理と rBLE の API コールやイベント動作を行う APP スケジューラ と、rBLE API コマンドフォーマットの送信や rBLE Event フォーマットの受信を行う rBLE スケジューラ、 センサの測定を行うセンサスケジューラ、MCU を STOP モードに遷移させる MCU モード管理処理を実行 します。

6-2 メインループ動作

APP スケジューラは、シーケンス処理で使用するコマンド要求キューを持ち、コマンド要求キューにコ マンド要求がセットされているならばrBLE API をコールします。rBLE スケジューラからコールされたコー ルバック関数は、次のコマンド要求をキューにセットします。

rBLE スケジューラは、rBLE コマンドフォーマットや rBLE イベントフォーマットで BLE MCU と通信し ます。また、イベントキューを持ち、BLE MCU から受信した rBLE イベントがイベントキューにセットさ れているならば、APP のコールバック関数をコールします。

センサスケジューラは、センサ初期化やセンサ測定を行います。測定結果は汎用双方向通信を使用してス マートフォンへ送信します。

MCU モード管理処理は、コマンド要求キューとイベントキューに何もセットされていなければ、MCU を STOP に遷移させます。MCU は割り込みによって STOP から復帰します。

APP Scheduler (APP_Run) rBLE Scheduler (rBLE_Run) Sensor Schduler (R_TEMPS_APP_Run)

(19)

6.3

UART 2 線分岐接続方式

RL78/G1D BLE Module Expansion Board とのシリアル通信で使われる UART 2 線分岐接続方式の通信方 法について示します。本アプリケーションノートで使用するEvaluation Kit RE01 1500KB と RL78/G1D BLE Module Expansion Board との UART 2 線分岐接続方式での接続については、「6.3.3 応用回路」を参 照してください。

6.3.1 送信動作

Host MCU から BLE MCU への送信を行うには、ハンドシェイクを行う必要があります。ハンドシェイク はHost MCU から送信する REQ バイト(0xC0)と、BLE MCU から送信される ACK バイト(0x88)または RSCIP パケットによって行われます。また、ハンドシェイクを行う時にはタイマによる監視を行い、タイ ムアウト発生時にはハンドシェイクを再実行します。Host MCU の UART ドライバは、このハンドシェイク を行うため、送信状況によって5 つの状態を持ちます。

表 6-1 UART ドライバ送信状態

状態 説明

T_IDLE UART ドライバ初期化、RSCIP パケット送信完了

T_REQUESTING REQ バイト送信中

T_RCV_BF_REQUESTED ACK バイトの代わりに BLE MCU から RSCIP パケットを受信 T_REQUESTED REQ バイト送信完了(BLE MCU からの ACK バイト待ち)

T_ACTIVE RSCIP パケット送信中

Host MCU から BLE MCU への送信は必ず REQ バイトから開始されます。REQ バイトを送信した後、 Host MCU は受信状態により次の動作のいずれかに分岐します。

(a) Host MCU が BLE MCU からの RSCIP パケットを受信していない(図 6-3) (b) Host MCU が BLE MCU からの RSCIP パケットを受信中(図 6-4)

(c) ACK バイト受信タイムアウト(図 6-5)

(a) Host MCU が BLE MCU からの RSCIP パケットを受信していない

この状態は、BLE MCU から RSCIP パケットが送信されておらず、Host MCU から REQ バイトを送信し た後、Host MCU が ACK バイトの受信を待っている状態です。BLE MCU は REQ バイトを受信し ACK バ イトを送信します。ACK バイトを受信した Host MCU は、BLE MCU に RSCIP パケットを送信します。

図 6-3 Host MCU が BLE MCU からの rBLE パケットを受信していない場合の動作 TxD

RxD

T_IDLE T_REQUESTING T_REQUESTED T_ACTIVE T_IDLE REQ 送信完了 受信完了ACK RSCIP パケット 送信完了 REQ 送信開始 UART ドライバ 送信状態 RSCIP パケット 送信開始

REQ(0xC0) 1byte 目(0xC0) 最終byte(0xC0) ACK(0x88)

(20)

(b) Host MCU が BLE MCU からの RSCIP パケットを受信中

この状態はBLE MCU が RSCIP パケットを送信しており、Host MCU は RSCIP パケットを受信している 状態です。BLE MCU は REQ を受信しても ACK バイトを返さず、送信している RSCIP パケットを ACK バ イトの代わりとします。ホストはBLE MCU からの RSCIP パケットを ACK バイトの代わりとし、BLE MCU に RSCIP パケットを送信します。

図 6-4 Host MCU が BLE MCU からのデータを受信している場合の動作

(c) ACK バイト受信タイムアウト

REQ バイトを送信した後 Host MCU は、タイムアウトタイマを動作させます。一定時間 ACK バイトを受 信できなかった場合、REQ バイトを再送します。

6-5 ACK バイトの受信がタイムアウトした場合の動作

6.3.2 受信動作

受信時にUART ドライバの状態遷移はありません。BLE MCU からのデータを受信するために、 rBLE_Host から指定されたバイト数で BLE MCU からの RSCIP パケットを待ち受けます。

TxD RxD

T_IDLE

T_REQUESTING

T_RCV_BF_

REQUESTED T_ACTIVE T_IDLE

REQ 送信完了 RSCIP パケット 送信完了 RSIP パケット 受信完了 REQ 送信開始 RSCIP パケット 送信開始

REQ(0xC0) 1byte 目(0xC0) 最終byte(0xC0) 1byte 目(0xC0) 途中byte 最終byte(0xC0)

[ハンドシェイク] [RSCIP パケット(送信)] [RSCIP パケット(受信)] UART ドライバ 送信状態 TxD RxD T_REQUESTING T_REQUESTED T_ACTIVE T_IDLE タイムアウト REQ 再送開始 ACK 受信完了 RSCIP パケット 送信完了 UART ドライバ 送信状態 RSCIP パケット 送信開始 T_REQUESTED T_REQUESTING T_IDLE REQ 送信開始 タイムアウト タイマスタート

REQ(0xC0) REQ(0xC0) 1byte 目(0xC0) 最終byte(0xC0) ACK(0x88)

(21)

6.3.3 応用回路

RL78/G1D モジュール RY7011 と Host MCU をモデム構成で接続する応用回路を示します。 (1) Evaluation Kit RE01 1500KB と RL78/G1D BLE Module Expansion Board の接続

Host MCU に Evaluation Kit RE01 1500KB、BLE MCU に RL78/G1D BLE Module Expansion Board を使 用する構成のUART 2 線分岐接続方式図を示します。2 つのボードは PmodTMインタフェースで接続されて

いるためHost MCU の TxD ラインを分岐して RY7011 の 2 ピンへ入力することができません。代わりに Host MCU のポート機能で RY7011 の 2 ピンへ Low レベルを入力することにより、疑似的に UART 2 線分 岐接続方式で通信できるようになります。

図 6-6 UART 2 線分岐接続方式(1)

(2) RL78/G1D モジュール RY7011 との接続

BLE MCU に RY7011 を使用する構成の UART 2 線分岐接続を示します。

図 6-7 UART 2 線分岐接続方式(2) 【注】 1. /RESET 端子は、必要に応じてプルアップ/プルダウン抵抗を追加してください(RL78/G1D ユー ザーズマニュアル ハードウェア編(R01UH0515)参照)。 RxD TxD P605 P12/SO00/TxD0/TOOLTxD/(TI05)/(TO05) P11/SI00/RxD0/TOOLRxD/SDA00/(TI06)/(TO06) P30/INTP3/RCT1HZ RESET 注1

Host MCU BLE MCU (RY7011)

7 8 2 24 UART 2-wire with branch connection RxD TxD P605 P12/SO00/TxD0/TOOLTxD/(TI05)/(TO05) P11/SI00/RxD0/TOOLRxD/SDA00/(TI06)/(TO06) P30/INTP3/RCT1HZ RESET

Evaluation Kit RE01

1500KB 7 RL78/G1D BLE Module Expansion Board

8 2 24 UART 2-wire with branch connection

P610

(22)

7. 通信シーケンス

Local Device の Host MCU と BLE MCU、Remote Device であるスマートフォン、また Local Device のソ フトウェアであるHost MCU の APP と rBLE_Host、BLE MCU の rBLE_Core の通信シーケンスを示しま す。

7.1 メインシーケンス

メインシーケンス図では、処理ブロックとしてStep1~10 までを定義し、処理ブロックの順序と関連する デバイスまたはソフトウェアの範囲を示します。処理ブロックStep1~10 の詳細は次節以降に記載しま す。 図 7-1 メインシーケンス

Host MCU BLE MCU

APP (Host)rBLE (Core)rBLE

Peer Device (SmartPhone)

Step1. rBLE Initialize Step2. GAP Initialize

Step3. Broadcast

Step5. Profile Enable

Step4. Connection

Step6. Remote Device Check

Step7. Pairing

Step9. Profile Commnunication Step10. Disconnection

If this is the first time connection with the peer device, or if pairing is not executed yet in the previous connection

Step8. Start Encryption If pairing with the peer device is completed in the previous connection

(Go Back to Step3. Broadcast)

(23)

7.2 Step1. rBLE Initialize シーケンス

APP は RBLE_Init 関数をコールし、rBLE(rBLE_Host/rBLE_Core)を初期化します。rBLE の初期化が完 了しBLE MCU とのシリアル通信が確立されると、rBLE から RBLE_MODE_ACTIVE イベントが通知され ます。

図 7-2 rBLE Initialize シーケンス

7.3 Step2. GAP Initialize シーケンス

APP は RBLE_GAP_Reset 関数をコールし、GAP を初期化します。初期化が完了すると、rBLE から RBLE_GAP_EVENT_RESET_RESULT イベントが通知されます。

APP は RBLE_GAP_Set_Bonding_Mode 関数をコールし、Bonding 許可を設定します。設定が完了する と、rBLE から RBLE_GAP_EVENT_SET_BONDING_MODE_COMP イベントが通知されます。 APP は RBLE_GAP_Set_Security_Request 関数をコールし、セキュリティレベルを設定します。設定が 完了すると、rBLE から RBLE_GAP_EVENT_SET_SECURITY_REQUESET_COMP イベントが通知されま す。 図 7-3 GAP Initialize シーケンス RBLE_Init RBLE_MODE_ACTIVE

Host MCU BLE MCU

APP (Host)rBLE (Core)rBLE

Peer Device (SmartPhone)

Local Device as a Slave Remote Device as a Master

RBLE_GAP_Reset RBLE_GAP_EVENT_RESET_RESULT RBLE_GAP_Set_Bonding_Mode RBLE_GAP_EVENT_SET_BONDING_MODE_COMP RBLE_GAP_Set_Security_Request RBLE_GAP_EVENT_SET_SECURITY_REQUEST_COMP

Host MCU BLE MCU

APP (Host)rBLE (Core)rBLE

Peer Device (SmartPhone)

(24)

7.4 Step3. Broadcast シーケンス

Local Device を Slave として接続するための Broadcast を開始します。

APP は RBLE_GAP_Broacast_Enable 関数をコールし、Broadcast を開始します。開始が完了すると、 rBLE から RBLE_GAP_EVENT_BROADCAST_ENABLE_COMP イベントが通知されます。

図 7-4 Broadcast シーケンス

7.5 Step4. Connection シーケンス

Local Device からの Broadcast を受信した Remote Device は、接続を要求します。

Remote Device から Connection Request が送信され、Local Device と Remote Device の接続が確立され ると、rBLE から RBLE_GAP_EVENT_CONNECTION_COMP イベントが通知されます。

図 7-5 Connection シーケンス RBLE_GAP_Broadcast_Enable

RBLE_GAP_EVENT_BROADCAST_ENABLE_COMP Broadcast

Host MCU BLE MCU

APP (Host)rBLE (Core)rBLE

Peer Device (SmartPhone)

Local Device as a Slave Remote Device as a Master

Connection Request RBLE_GAP_EVENT_CONNECTION_COMP

Host MCU BLE MCU

APP (Host)rBLE (Core)rBLE

Peer Device (SmartPhone)

(25)

7.6 Step5. Profile Enable シーケンス

データ送信に利用するGPCP(General Purpose Communication Profile)の Server を有効化します。 APP は RBLE_VUART_Server_Enable 関数をコールし、GPCP を有効化します。有効化は、Remote Device から Indication を許可する Write Client Characteristic Configuration が送信されると完了します。 「図 7-10 Profile Communication シーケンス」を参照してください。

図 7-6 Profile Enable シーケンス RBLE_VUART_Server_Enable

Host MCU BLE MCU

APP (Host)rBLE (Core)rBLE

Peer Device (SmartPhone)

(26)

7.7 Step6. Remote Device Check シーケンス

接続完了後は、Remote Device とのセキュリティ情報を確認します。

Remote Device アドレスが Public アドレス、または Resolvable Private Address 以外の Random アドレ スの場合、Remote Device に関するセキュリティ情報の要求として、rBLE から

RBLE_SM_CHK_BD_ADDR_REQ イベントが通知されます。APP は RBLE_SM_Chk_Bd_Addr_Req_Resp 関数をコールし、保持しているセキュリティ情報の通知またはセキュリティ情報を保持していないことを通 知します。

Remote Device アドレスが Resolvable Private Address の場合アドレス解決のための IRK(Identity Resolving Key)の要求として、rBLE から RBLE_SM_IRK_REQ_IND イベントが通知されます。APP は RBLE_SM_Irk_Req_Resp 関数をコールし、IRK を通知または IRK を保持していないことを通知します。ア ドレスが解決した場合、rBLE から RBLE_GAP_EVENT_RPA_RESOLVED イベントが通知されます。

図 7-7 Remote Device Check シーケンス RBLE_SM_CHK_BD_ADDR_REQ

RBLE_SM_Chk_Bd_Addr_Req_Resp RBLE_SM_IRK_REQ_IND RBLE_SM_Irk_Req_Resp

RBLE_GAP_EVENT_RPA_RESOLVED

Host MCU BLE MCU

APP (Host)rBLE (Core)rBLE

Peer Device (SmartPhone)

Local Device as a Slave Remote Device as a Master

If Remote Device Address is Public Address, or Random Address except Resolvable Private Address

If Remote Device Address is Resolvable Private Address

(27)

7.8 Step7. Pairing シーケンス

Remote Device との初回接続または以前の接続にて Pairing を行っていない場合、Remote Device からの Pairing 要求により Pairing シーケンスを開始します。Pairing シーケンスは PHASE1、PHASE2、暗号化開 始、PHASE3 で構成されます。

PHASE1 では、Local Device および Remote Device のペアリングフィーチャーを交換します。 Remote Device から Pairing Request が送信されると、rBLE から

RBLE_GAP_EVENT_BONDING_REQ_IND イベントが通知されます。APP は

RBLE_GAP_Bonding_Response 関数をコールし、Remote Device に Pairing Response を送信します。 PHASE2 では、STK(Short Term Key)を生成します。

TK(Temporary Key)の要求として、rBLE から RBLE_SM_TK_REQ_IND イベントが通知されます。 APP は RBLE_SM_Tk_Req_Resp 関数をコールして TK(Temporary Key)を rBLE に通知します。BLE MCU による STK の生成が完了すると、STK を使用した暗号化を開始します。

PHASE3 では、Local Device および Remote Device の暗号化キーを配布します。

LTK(Long Term Key)の要求として、rBLE から RBLE_SM_LTK_REQ_IND イベントが通知されます。 APP は RBLE_SM_Ltk_Req_Resp 関数をコールして LTK を通知し、Remote Device に Encryption

Information(LTK)を送信します。

Remote Device から Encryption Information(LTK)が送信されると、rBLE から RBLE_SM_KEY_IND イ ベントが通知されます。

Remote Device から Identity Information(IRK)が送信されると、rBLE から RBLE_SM_KEY_IND イベン トが通知されます。

(28)

図 7-8 Pairing シーケンス

Pairing Request RBLE_GAP_EVENT_BONDING_REQ_IND

RBLE_GAP_Bonding_Response Pairing Response

RBLE_SM_TK_REQ_IND RBLE_SM_Tk_Req_Resp Pairng Confirm(Mconfirm) Pairing Confirm(Sconfirm) Pairing Random(Mrand) Pairing Random(Srand) Encryption Request Encryption Response Start Encryption Request Start Encryption Response Start Encyrption Response RBLE_SM_LTK_REQ_IND

RBLE_SM_Ltk_Req_Resp Encryption Information(LTK)

Master Identification(EDIV,Rand) Identity Information(IRK) Identity Address Information Encryption Information(LTK) RBLE_SM_KEY_IND(LTK)

Master Identification(EDIV,Rand) Identity Information(IRK) RBLE_SM_KEY_IND(IRK)

Identity Address Information RBLE_GAP_EVENT_BONDING_COMP

Host MCU BLE MCU

APP (Host)rBLE (Core)rBLE

Peer Device (SmartPhone)

Local Device as a Slave Remote Device as a Master

PHASE 3: TRANSPORT SPECIFIC KEY DISTRIBUTION PHASE 2: SHORT TERM KEY(STK) GENERATION PHASE 1: PAIRING FEATURE EXCHANGE

(29)

7.9 Step8. Start Encryption シーケンス

以前の接続でPairing が完了した場合、LTK(Long Term Key)による暗号化を開始します。

Remote Device から Encryption Request が送信されると、rBLE から RBLE_SM_LTK_REQ _IND イベン トが通知されます。APP は RBLE_SM_Ltk_Req_Resp 関数をコールして LTK を通知し、Remote Device に Encryption Response を送信します。

BLE MCU は、Remote Device からの Start Encryption Request に対する Start Encryption Response を送 信します。

暗号化開始が完了すると、rBLE から RBLE_SM_ENC_START_IND イベントが通知されます。

図 7-9 Start Encryption シーケンス

7.10 Step9. Profile Communication シーケンス

GPCP(General Purpose Communication Profile)を利用し Indication によるデータ送信を開始します。 Remote Device から Indication を許可する Write Client Characteristic Configuration が送信されると、 rBLE から RBLE_VUART_EVENT_SERVER_ENABLE_COMP イベントが通知されます。

Remote Device から'S'または`s'の文字を受信すると、RE01 内蔵温度センサで温度の測定を開始します。 rBLE Timer を使用して繰り返し測定し、RBLE_VUART_Server_Send_Indication で測定したデータを Indication データとして Remote Device へ送信します。

Remote Device は Indication を受信すると Confirmation を送信します。Local Device が Confirmation を受 信するとRBLE_VUART_EVENT_SERVER_INDICATION_CFM イベントが通知されます。

Encryption Request RBLE_SM_LTK_REQ_IND

RBLE_SM_Ltk_Req_Resp Encryption Response

Start Encryption Request Start Encryption Response Start Encyrption Response RBLE_SM_ENC_START_IND

Host MCU BLE MCU

APP (Host)rBLE (Core)rBLE

Peer Device (SmartPhone)

(30)

図 7-10 Profile Communication シーケンス

7.11 Step10. Disconnection シーケンス

Remote Device から接続の切断のための Disconnect が送信されると、切断が完了し RBLE_GAP_EVENT_DISCONNECT_COMP イベントが通知されます。

図 7-11 Disconnection シーケンス

Write Client Characteristic Configuration (Indication Configuration = START)

RBLE_VUART_EVENT_SERVER_ENABLE_COMP Write Response

Write Request ('S' or 's')

RBLE_VUART_EVENT_SERVER_WRITE_REQ Write Response

RBLE_VUART_Server_Send_Indication Indication

Confirmation RBLE_VUART_EVENT_SERVER_INDICATION_CFM

Host MCU BLE MCU

APP (Host)rBLE (Core)rBLE

Peer Device (SmartPhone)

Local Device as a Slave Remote Device as a Master

Measure temperature with built-in sensor. Transmit data repeatedly using rBLE Timer.

Disconnect RBLE_GAP_EVENT_DISCONNECT_COMP

Host MCU BLE MCU

APP (Host)rBLE (Core)rBLE

Peer Device (SmartPhone)

Local Device as a Slave Remote Device as a Master

(31)

8. 付録

8.1 ROM・RAM サイズ

「表 8-1 ROM・RAM サイズ」にホストサンプルが使用する ROM・RAM サイズを示します。

表 8-1 ROM・RAM サイズ

コンパイラ ROM (bytes) RAM (bytes)

IAR C/C++ Compiler for ARM

8.42.1 32,384 10,763

8.2 参考文献

1. Bluetooth Core Specification v4.2, Bluetooth SIG 2. Bluetooth SIG Assigned Numbers

3. Services UUID 4. Characteristics UUID

(32)

8.3 用語説明

用語 英語 説明

サービス Service サービスはGATT サーバから GATT クライ

アントへ提供され、GATT サーバはインタ フェースとしていくらかの特性を公開しま す。 サービスは公開された特性へのアクセス手 順について規定します。 プロファイル Profile 1 つ以上のサービスを使用してユースケー スの実現を可能にします。使用するサービス は各プロファイルの仕様にて規定されます。 特性 Characteristic 特性はサービスを識別する値で、各サービ スにて公開する特性やそのフォーマットが定 義されます。 ロール Role 役割。それぞれのデバイスが、プロファイ ルやサービスで規定される役割を果たすこと で、ユースケースの実現が可能になります。 コネクションハンドル Connection Handle リモートデバイスとの接続を識別するため のController スタックによって決定されるハ ンドルです。ハンドルの有効範囲は0x0000~ 0x0EFF です。

UUID Universally Unique Identifier 一意に識別するための識別子です。BLE 規 格ではサービスや特性等を識別するために 16bit の UUID が定義されています。 BD アドレス Bluetooth Device Address Bluetooth デバイスを識別するための 48bit

のアドレスです。BLE 規格ではパブリックア ドレスとランダムアドレスが規定されてお り、少なくともどちらか一方をサポートする 必要があります。

パブリックアドレス Public Address IEEE に登録し割り当てられた 24bit の OUI(Organizationally Unique Identifier)を含む アドレスです。 ランダムアドレス Random Address 乱数を含むアドレスで、以下の3 つに分類 されます。 スタティックアドレス Non-resolvable private アドレス Resolvable private アドレス

スタティックアドレス Static Address 上位2bit は共に 1 で、残 46bit は全てが 1 または0 ではない乱数からなるアドレスで す。電源断まではそのスタティックアドレス を変更できません。 Non-resolvable private アド レス Non-resolvable private

Address または上位2bit は共に 0 で、残 46bit は全てが 10 ではない乱数からなるアドレスで す。スタティックおよびパブリックアドレス と等しくてはなりません。

短い期間でアドレスを変更することで攻撃 者からの追跡を困難にする目的で使用されま す。

(33)

Resolvable private アドレス Resolvable private Address IRK と 24bit の乱数から生成されるアドレス です。上位2bit は 0 と 1、上位の残 22bit は 全てが1 または 0 ではない乱数で、下位 24bit はIRK と上位の乱数を元に計算されます。 短い期間でアドレスを変更することで攻撃 者からの追跡を困難にする目的で使用されま す。 IRK を対向機に配布することで、対向機は そのIRK を使用してデバイスを特定すること が可能です。

Broadcaster Broadcaster GAP のロールで、Advertising データを送信 します。

Observer Observer GAP のロールで、Advertising データを受信

します。

Central Central GAP のロールで、物理リンクの確立を行い

ます。Link Layer では Master と呼ばれます。

Peripheral Peripheral GAP のロールで、物理リンクの確立を受け

入れます。Link Layer では Slave と呼ばれま す。

Advertising Advertising 接続確立や、データ送信の目的のために特

定チャネル上でデータを送信します。

Scan Scan Advertising データを受信します。Scan に

は、ただ受信するのみのPassive Scan と、 SCAN_REQ を送信することで追加情報を要 求するActive Scan があります。

White List White List 接続済みやボンディング済みなどの既知デ

バイスをWhite List に登録しておくことで、 Advertising データや接続要求を受け取ること を許可するデバイスをフィルタリングするこ とが可能です。

デバイス名 Device Name Bluetooth デバイスに任意につけられたデバ

イスを識別するためのユーザフレンドリーな 名前です。

BLE 規格では、GAP の特性として GATT サーバによって対向機に公開されます。 Reconnection Address Reconnection Address Non-resolvable private アドレスを使用し

て、短い期間でアドレスを変更する場合、攻 撃者だけでなく対向機もデバイスの特定が困 難になります。そのため対向機の公開する Reconnection Address 特性に新しい Reconnection Address を設定することで再接 続時のアドレスを通知します。 コネクションインターバル Connection Interval 接続確立後に定期的にデータの送受信を行 う間隔です。 コネクションイベント Connection Event コネクションインターバルごとにデータの 送受信を行う期間です。 スーパービジョンタイムア ウト Supervision Timeout 対向機からの応答がなく、リンクが切断さ れたとみなすタイムアウト時間です。

(34)

Passkey Entry Passkey Entry ペアリング方式の一つで、互いのデバイス で6 桁の数値入力または、一方で 6 桁の数値 表示、もう一方でその数値入力を行います。

Just Works Just Works ペアリング方式の一つで、ユーザアクショ

ンを必要としません。

OOB OOB ペアリング方式の一つで、Bluetooth 以外の

通信方式で取得したデータを使用してペアリ ングを行います。

IRK Identity Resolving Key Resolvable private アドレスの生成や解決に 用いる128bit のキーです。

CSRK Connection Signature

Resolving Key 名の確認に使用されるデータ署名の作成および、受信データの署128bit のキーです。

LTK Long Term Key 暗号化に使用される128bit のキーです。使

用するキーサイズはペアリング時に同意され たサイズになります。

STK Short Term Key キー交換時に暗号化するために使用される

128bit のキーです。TK を用いて生成されま す。

TK Temporary Key STK 生成に必要となる 128bit のキーです。

Just Works の場合は 0、Passkey Entry は入 力された6 桁の数値、OOB は OOB データが TK の値となります。

(35)

改訂記録

Rev. 発行日

改訂内容

ページ ポイント

(36)

製品ご使用上の注意事項

ここでは、マイコン製品全体に適用する「使用上の注意事項」について説明します。個別の使用上の注意事項については、本ドキュメントおよびテク ニカルアップデートを参照してください。 1. 静電気対策 CMOS 製品の取り扱いの際は静電気防止を心がけてください。CMOS 製品は強い静電気によってゲート絶縁破壊を生じることがあります。運搬や保 存の際には、当社が出荷梱包に使用している導電性のトレーやマガジンケース、導電性の緩衝材、金属ケースなどを利用し、組み立て工程にはアー スを施してください。プラスチック板上に放置したり、端子を触ったりしないでください。また、CMOS 製品を実装したボードについても同様の扱 いをしてください。 2. 電源投入時の処置 電源投入時は、製品の状態は不定です。電源投入時には、LSI の内部回路の状態は不確定であり、レジスタの設定や各端子の状態は不定です。外部 リセット端子でリセットする製品の場合、電源投入からリセットが有効になるまでの期間、端子の状態は保証できません。同様に、内蔵パワーオン リセット機能を使用してリセットする製品の場合、電源投入からリセットのかかる一定電圧に達するまでの期間、端子の状態は保証できません。 3. 電源オフ時における入力信号 当該製品の電源がオフ状態のときに、入力信号や入出力プルアップ電源を入れないでください。入力信号や入出力プルアップ電源からの電流注入に より、誤動作を引き起こしたり、異常電流が流れ内部素子を劣化させたりする場合があります。資料中に「電源オフ時における入力信号」について の記載のある製品は、その内容を守ってください。 4. 未使用端子の処理 未使用端子は、「未使用端子の処理」に従って処理してください。CMOS 製品の入力端子のインピーダンスは、一般に、ハイインピーダンスとなっ ています。未使用端子を開放状態で動作させると、誘導現象により、LSI 周辺のノイズが印加され、LSI 内部で貫通電流が流れたり、入力信号と認識 されて誤動作を起こす恐れがあります。 5. クロックについて リセット時は、クロックが安定した後、リセットを解除してください。プログラム実行中のクロック切り替え時は、切り替え先クロックが安定した 後に切り替えてください。リセット時、外部発振子(または外部発振回路)を用いたクロックで動作を開始するシステムでは、クロックが十分安定 した後、リセットを解除してください。また、プログラムの途中で外部発振子(または外部発振回路)を用いたクロックに切り替える場合は、切り 替え先のクロックが十分安定してから切り替えてください。 6. 入力端子の印加波形 入力ノイズや反射波による波形歪みは誤動作の原因になりますので注意してください。CMOS 製品の入力がノイズなどに起因して、VIL(Max.)か らVIH(Min.)までの領域にとどまるような場合は、誤動作を引き起こす恐れがあります。入力レベルが固定の場合はもちろん、VIL(Max.)から VIH (Min.)までの領域を通過する遷移期間中にチャタリングノイズなどが入らないように使用してください。 7. リザーブアドレス(予約領域)のアクセス禁止 リザーブアドレス(予約領域)のアクセスを禁止します。アドレス領域には、将来の拡張機能用に割り付けられている リザーブアドレス(予約領 域)があります。これらのアドレスをアクセスしたときの動作については、保証できませんので、アクセスしないようにしてください。 8. 製品間の相違について 型名の異なる製品に変更する場合は、製品型名ごとにシステム評価試験を実施してください。同じグループのマイコンでも型名が違うと、フラッ シュメモリ、レイアウトパターンの相違などにより、電気的特性の範囲で、特性値、動作マージン、ノイズ耐量、ノイズ幅射量などが異なる場合が あります。型名が違う製品に変更する場合は、個々の製品ごとにシステム評価試験を実施してください。

(37)

ご注意書き

1. 本資料に記載された回路、ソフトウェアおよびこれらに関連する情報は、半導体製品の動作例、応用例を説明するものです。お客様の機器・システ ムの設計において、回路、ソフトウェアおよびこれらに関連する情報を使用する場合には、お客様の責任において行ってください。これらの使用に 起因して生じた損害(お客様または第三者いずれに生じた損害も含みます。以下同じです。)に関し、当社は、一切その責任を負いません。 2. 当社製品、本資料に記載された製品デ-タ、図、表、プログラム、アルゴリズム、応用回路例等の情報の使用に起因して発生した第三者の特許権、 著作権その他の知的財産権に対する侵害またはこれらに関する紛争について、当社は、何らの保証を行うものではなく、また責任を負うものではあ りません。 3. 当社は、本資料に基づき当社または第三者の特許権、著作権その他の知的財産権を何ら許諾するものではありません。 4. 当社製品を、全部または一部を問わず、改造、改変、複製、リバースエンジニアリング、その他、不適切に使用しないでください。かかる改造、改 変、複製、リバースエンジニアリング等により生じた損害に関し、当社は、一切その責任を負いません。 5. 当社は、当社製品の品質水準を「標準水準」および「高品質水準」に分類しており、各品質水準は、以下に示す用途に製品が使用されることを意図 しております。 標準水準: コンピュータ、OA 機器、通信機器、計測機器、AV 機器、家電、工作機械、パーソナル機器、産業用ロボット等 高品質水準: 輸送機器(自動車、電車、船舶等)、交通制御(信号)、大規模通信機器、金融端末基幹システム、各種安全制御装置等 当社製品は、データシート等により高信頼性、Harsh environment 向け製品と定義しているものを除き、直接生命・身体に危害を及ぼす可能性のあ る機器・システム(生命維持装置、人体に埋め込み使用するもの等)、もしくは多大な物的損害を発生させるおそれのある機器・システム(宇宙機 器と、海底中継器、原子力制御システム、航空機制御システム、プラント基幹システム、軍事機器等)に使用されることを意図しておらず、これら の用途に使用することは想定していません。たとえ、当社が想定していない用途に当社製品を使用したことにより損害が生じても、当社は一切その 責任を負いません。 6. 当社製品をご使用の際は、最新の製品情報(データシート、ユーザーズマニュアル、アプリケーションノート、信頼性ハンドブックに記載の「半導 体デバイスの使用上の一般的な注意事項」等)をご確認の上、当社が指定する最大定格、動作電源電圧範囲、放熱特性、実装条件その他指定条件の 範囲内でご使用ください。指定条件の範囲を超えて当社製品をご使用された場合の故障、誤動作の不具合および事故につきましては、当社は、一切 その責任を負いません。 7. 当社は、当社製品の品質および信頼性の向上に努めていますが、半導体製品はある確率で故障が発生したり、使用条件によっては誤動作したりする 場合があります。また、当社製品は、データシート等において高信頼性、Harsh environment 向け製品と定義しているものを除き、耐放射線設計を 行っておりません。仮に当社製品の故障または誤動作が生じた場合であっても、人身事故、火災事故その他社会的損害等を生じさせないよう、お客 様の責任において、冗長設計、延焼対策設計、誤動作防止設計等の安全設計およびエージング処理等、お客様の機器・システムとしての出荷保証を 行ってください。特に、マイコンソフトウェアは、単独での検証は困難なため、お客様の機器・システムとしての安全検証をお客様の責任で行って ください。 8. 当社製品の環境適合性等の詳細につきましては、製品個別に必ず当社営業窓口までお問合せください。ご使用に際しては、特定の物質の含有・使用 を規制するRoHS 指令等、適用される環境関連法令を十分調査のうえ、かかる法令に適合するようご使用ください。かかる法令を遵守しないことに より生じた損害に関して、当社は、一切その責任を負いません。 9. 当社製品および技術を国内外の法令および規則により製造・使用・販売を禁止されている機器・システムに使用することはできません。当社製品お よび技術を輸出、販売または移転等する場合は、「外国為替及び外国貿易法」その他日本国および適用される外国の輸出管理関連法規を遵守し、そ れらの定めるところに従い必要な手続きを行ってください。 10. お客様が当社製品を第三者に転売等される場合には、事前に当該第三者に対して、本ご注意書き記載の諸条件を通知する責任を負うものといたしま す。 11. 本資料の全部または一部を当社の文書による事前の承諾を得ることなく転載または複製することを禁じます。 12. 本資料に記載されている内容または当社製品についてご不明な点がございましたら、当社の営業担当者までお問合せください。 注1. 本資料において使用されている「当社」とは、ルネサス エレクトロニクス株式会社およびルネサス エレクトロニクス株式会社が直接的、間接的 に支配する会社をいいます。 注2. 本資料において使用されている「当社製品」とは、注 1 において定義された当社の開発、製造製品をいいます。 (Rev.4.0-1 2017.11)

本社所在地

お問合せ窓口

135-0061 東京都江東区豊洲 3-2-24(豊洲フォレシア) www.renesas.com 弊社の製品や技術、ドキュメントの最新情報、最寄の営業お問合せ窓 口に関する情報などは、弊社ウェブサイトをご覧ください。 www.renesas.com/contact/

商標について

ルネサスおよびルネサスロゴはルネサス エレクトロニクス株式会社の 商標です。すべての商標および登録商標は、それぞれの所有者に帰属 します。

図   3-1 デバイス構成 ホストサンプルの動作概要は以下のとおりです。  rBLE API を使用し以下の動作を実行。  プログラム実行後、自動的にアドバタイジングを開始。    Remote Device からの接続要求により接続を実行。    Remote Device から要求があれば、ペアリング / 暗号化を実行し接続。
表   3-1  PMOD1 コネクタピンアサイン
図   3-2 ソフトウェア構成
表   3-3 BLE MCU ソフトウェア構成
+7

参照

関連したドキュメント

GreenSun® Turf 80 plus Fe Mn is a degradable sulfur product in a granular form that can be used both as a source of plant nutrient sulfur and/or as a soil amendment for correction

♦ Smart Sense Mode allows some digital and analog peripherals to remain active to monitor and acquire data from external sensors at a very low system−level power consumption..

The wireless features of the Ezairo 7150 SL Firmware Bundle V1 support connecting to the device via standard Bluetooth low energy technology providing control over the hearing aid

The kit contains representatives of input and output schematics, netlists, and waveform used for the Low Voltage ECLinPS and ECLinPS Lite devices.. This application note will

Oracle の Sun Storage 16 Gb Fibre Channel PCIe Universal Host Bus Adapter (HBA) (パーツ番号 7101674) は、QLogic テクノロジを使用したスタンドアロンの PCIe ロー

When higher power daughter cards (listed below) are attached to the baseboard, external supply either using the power shield or direct is required.. Higher Power

本事業では、繰り返し使える容器のシェアリングサービス「 Re&Go cup 」をスターバックス の

(a) ケースは、特定の物品を収納するために特に製作しも