24
2016 Microchip Technology Inc. DS00001861A_JP - p. 1 はじめに 大部分の組み込みアプリケーションには、アプリケー ション環境をサポートするためにリアルタイム通信が 必要です。RS232RN422RS485Ethernet 等の有 線通信にはインフラストラクチャが必要であるため、 容易には適用できません。 Wi-Fi ® Bluetooth ® はロー カル組み込みアプリケーションをルータ、スマート フォン、タブレット経由でクラウドに接続する ( サー ビスを呼び出す ) ための規格として登場しました。 IEEE 802.11 b/g/n/ac に基づく Wi-Fi はノート PC、ス マートフォン、スマートマシンを含む各種アプリケー ションの標準機能です。Wi-Fi はデータ転送用に十分 な帯域幅を提供しますが、プロトコル スタックが重 く、電力を多く消費します。最近、マンツーマンまた はマンツーマシン組み込みアプリケーション回路に適 した低消費電力型の Wi-Fi が開発されました。 Bluetooth はスマートフォンやタブレット向けに簡便 で一時的な接続を提供し、多くのAndroid ® およびiOS ® アプリケーションがサポートしています。 Bluetooth より、オーディオ ストリーミングやデバイス間のデー タ同期等のための接続を容易に無線化できます。 Bluetooth のデータ転送速度は初期 (Bluetooth 1.2) 1 Mbps でしたが、後に EDR (Enhanced Data Rate) バージョン (Bluetooth 2.1 + EDR) によって 3 Mbps で向上し、大容量ファイル転送をサポートするためさ らに高速な HS バージョン (Bluetooth 3.0 + HS) へと進 化しました。 多くの組み込みアプリケーションでは、センサからの 間欠的なステータス読み出し等のために、簡易なコマ ンドと制御しか使いません。これらの低デューティサ イクル アプリケーションに対応するため、Bluetooth Low Energy (BLE) が開発されました。 Bluetooth Smart 通信 Bluetooth Low Energy (Bluetooth Smart とも呼ぶ ) は、 Bluetooth 4.0 仕様の大きな特長の 1 つです。 Bluetooth Low Energy (BLE) は、センサや使い捨て機器といった 消費電力が制限されるアプリケーション向けに設計さ れています。BLE により、コイン電池で動作する低 データスループットの低デューティサイクル機器を他 のプロトコルよりも長く動作させる事ができます。 BLE の主な利点はデバイスが安価である事、MCU 理要件が軽い事、メモリを削減できる事です。また、 ボディエリア ネットワーク (BAN) 関連のアプリケー ションに非常に適しています (BAN とは、個人のネッ トワークと連動した「コネクティビティ バブル」を表 します )BLE は、クラシック Bluetooth テクノロジと同じ周波 数帯 (2.400 2.4835 GHz ISM バンド ) で動作します が、チャンネルの構成が異なります。クラシック Bluetooth 1 MHz 間隔で 79 チャンネルを構成するの に対し、 Bluetooth Smart 2 MHz 間隔で 40 チャンネ ルを構成します。 BLE 1 つのチャンネル内で GFSK (Gaussian Frequency Shift Keying) 変調方式を使って データを転送します ( クラシック Bluetooth では FSK 変調方式を使用 )BLE による無線通信の最大ビット レートは 1 Mbps、最大送信出力は 10 mW です。 Bluetooth とその仕様に関する詳細は、以下のウェブサ イトが提供する『Bluetooth Core Specification V4.0を参照してください。 http://www.bluetooth.org. Microchip 社のRN4020 認証取得済みBluetooth Version 4.1 モジュールを使うと、低消費電力の無線接続機能 をアプリケーション ( 製品 ) に追加できます。この表 面実装モジュールは完全な Bluetooth スタックを内蔵 し、簡潔な ASCII コマンドを使って UART インター フェイス経由で制御できます。RN4020 はほとんど全 ての Bluetooth SIG 標準プロファイルに加えて、ユー ザ固有のシリアルデータ転送向けに Microchip 社の低 消費電力データ プロファイル (MLDP) を内蔵していま す。スクリプティング機能を使う事で、ホスト マイク ロコントローラまたはプロセッサを必要としないスタ ンドアロン動作が可能です。RN4020 の制御または アップデートは、他のモジュールから安定した無線接 続を介してリモートで実行する事も、内蔵 UART イン ターフェイスを介して実行する事もできます。 Author: Venkatesh Bengeri and Pradeep Shamanna AN1861 Microchip 社の RN4020 モジュールと 16 ビット PIC ® マイクロコントローラを使った Bluetooth ® Smart 通信 注意 : この日本語版文書は参考資料としてご利用ください。最新情報 は必ずオリジナルの英語版をご参照願います。

Using RN4020 for Bluetooth Smart Communicationww1.microchip.com/downloads/jp/AppNotes/00001861A_JP.pdfAN1861 DS00001861A_JP - p. 2 2016 Microchip Technology Inc. 図1 に、PICtail

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • AN1861Microchip 社の RN4020 モジュールと

    16 ビット PIC® マイクロコントローラを使ったBluetooth® Smart 通信

    注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジナルの英語版をご参照願います。

    はじめに大部分の組み込みアプリケーションには、アプリケーション環境をサポートするためにリアルタイム通信が必要です。RS232、RN422、RS485、Ethernet 等の有線通信にはインフラストラクチャが必要であるため、容易には適用できません。Wi-Fi® と Bluetooth® はローカル組み込みアプリケーションをルータ、スマートフォン、タブレット経由でクラウドに接続する ( サービスを呼び出す ) ための規格として登場しました。

    IEEE 802.11 b/g/n/ac に基づく Wi-Fi はノート PC、スマートフォン、スマートマシンを含む各種アプリケーションの標準機能です。Wi-Fi はデータ転送用に十分な帯域幅を提供しますが、プロトコル スタックが重く、電力を多く消費します。最近、マンツーマンまたはマンツーマシン組み込みアプリケーション回路に適した低消費電力型の Wi-Fi が開発されました。 Bluetooth はスマートフォンやタブレット向けに簡便で一時的な接続を提供し、多くのAndroid®および iOS®アプリケーションがサポートしています。Bluetooth により、オーディオ ストリーミングやデバイス間のデータ同期等のための接続を容易に無線化できます。Bluetooth のデータ転送速度は初期 (Bluetooth 1.2) に1 Mbps でしたが、後に EDR (Enhanced Data Rate)バージョン (Bluetooth 2.1 + EDR) によって 3 Mbps まで向上し、大容量ファイル転送をサポートするためさらに高速なHSバージョン (Bluetooth 3.0 + HS)へと進化しました。

    多くの組み込みアプリケーションでは、センサからの間欠的なステータス読み出し等のために、簡易なコマンドと制御しか使いません。これらの低デューティサイクル アプリケーションに対応するため、BluetoothLow Energy (BLE) が開発されました。

    Bluetooth Smart 通信Bluetooth Low Energy (Bluetooth Smart とも呼ぶ ) は、Bluetooth 4.0 仕様の大きな特長の 1 つです。BluetoothLow Energy (BLE) は、センサや使い捨て機器といった消費電力が制限されるアプリケーション向けに設計されています。BLE により、コイン電池で動作する低データスループットの低デューティサイクル機器を他のプロトコルよりも長く動作させる事ができます。BLE の主な利点はデバイスが安価である事、MCU 処理要件が軽い事、メモリを削減できる事です。また、ボディエリア ネットワーク (BAN) 関連のアプリケーションに非常に適しています (BAN とは、個人のネットワークと連動した「コネクティビティ バブル」を表します )。

    BLE は、クラシック Bluetooth テクノロジと同じ周波数帯 (2.400 ~ 2.4835 GHz ISM バンド ) で動作しますが、チャンネルの構成が異なります。クラシックBluetoothは 1 MHz間隔で 79チャンネルを構成するのに対し、Bluetooth Smart は 2 MHz 間隔で 40 チャンネルを構成します。BLE は 1 つのチャンネル内で GFSK(Gaussian Frequency Shift Keying) 変調方式を使ってデータを転送します ( クラシック Bluetooth では FSK変調方式を使用 )。BLE による無線通信の最大ビットレートは 1 Mbps、最大送信出力は 10 mW です。Bluetooth とその仕様に関する詳細は、以下のウェブサイトが提供する『Bluetooth Core Specification V4.0』を参照してください。http://www.bluetooth.org.

    Microchip社のRN4020認証取得済みBluetooth Version4.1 モジュールを使うと、低消費電力の無線接続機能をアプリケーション ( 製品 ) に追加できます。この表面実装モジュールは完全な Bluetooth スタックを内蔵し、簡潔な ASCII コマンドを使って UART インターフェイス経由で制御できます。RN4020 はほとんど全ての Bluetooth SIG 標準プロファイルに加えて、ユーザ固有のシリアルデータ転送向けに Microchip 社の低消費電力データ プロファイル (MLDP)を内蔵しています。スクリプティング機能を使う事で、ホスト マイクロコントローラまたはプロセッサを必要としないスタンドアロン動作が可能です。RN4020 の制御またはアップデートは、他のモジュールから安定した無線接続を介してリモートで実行する事も、内蔵 UART インターフェイスを介して実行する事もできます。

    Author: Venkatesh Bengeri and Pradeep Shamanna

    2016 Microchip Technology Inc. DS00001861A_JP - p. 1

  • AN1861

    図 1 に、PICtail™ ボードに実装した RN4020 モジュールを示します。

    図 1: PICtail™ ボードに実装したRN4020 モジュール

    本書には以下の内容を記載しています。

    • RN4020 モジュールと PIC24FJ シリーズ マイクロコントローラを使ったユーザ アプリケーション プラットフォーム向けのフレームワーク

    • 特に PIC24FJ128GA010 マイクロコントローラを使った場合の RN4020 モジュールとの接続

    • PIC® マイクロコントローラから RN4020 モジュールを制御するための初期 (またはリファレンス ) コード

    • PIC マイクロコントローラと RN4020 ジュールを連携させるための初期手順

    本書の目的は、Bluetooth 技術の原理や RN4020 モジュール向けコマンドの使い方を詳細に説明する事ではありません。

    DS00001861A_JP - p. 2 2016 Microchip Technology Inc.

  • AN1861

    RN4020モ ジュールと PIC24 MCUのインターフェイス フレームワーク 本書は、RN4020 モジュールと PIC24 (16 ビット ) マイクロコントローラ間の UART を介するコマンドを使った通信のインターフェイス要件とプロセスをお客様に素早く理解して頂く事を主な目的とします。図 2

    に、PIC24 MCU と RN4020 モジュールの連携を示します。入力または指令には Explorer 16 開発ボード上のスイッチを使います。ステータスは、同ボード上のLCD と LED によって示されます。

    図 2: Bluetooth Smart 通信アプリケーションの構成

    アプリケーション デモの要件以下では、ハードウェアとデモの設定に必要なソフトウェア / ユーティリティについて説明します。

    ハードウェア要件

    本デモ アプリケーションには以下のハードウェアを使います。

    • 2x BLE RN4020 PICtail™/PICtail Plus ドータボード• 2x Explorer 16 開発ボード • Microchip社製プログラミング /デバッグ用開発ツー

    ル (MPLAB® REAL ICE™、MPLAB® ICD 3、PICkit™3 のいずれか )

    • 2x 電源 (9 V/0.75 A または等価なバッテリパック )PIC マイクロコントローラと RN4020 モジュールで構成したハードウェア インターフェイスは無線ノードと呼びます ( 図 3 参照 )。無線ノードは、Explorer 16開発ボードとRN4020ドータボードを組み合わせる事で構成できます。

    ソフトウェア /ユ ーティリティ要件RN4020モジュールに基づく本デモ アプリケーションを使うと、Bluetooth BLE 対応組み込み無線ノード間の通信を評価できます。デモ アプリケーションにより、これらのノードでセンサ、アクチュエータ システム、フィットネス / 健康管理機器等をエミュレートできます。

    あるいは、ターミナル エミュレータ プログラム(Windows OS 向けの TeraTerm、MAC OS 向けのCoolTerm 等 ) を使って RN4020 モジュールを制御および監視する事ができます。これにより RN4020PICtail カードを使った各種の試験が行えます。

    本書に関連するアプリケーション ( デモソースコード )は MPLAB ワークスペースとして Microchip 社ウェブサイト (http://www.microchip.com) からダウンロードできます。コードは、MPLABX IDE の下で Microchip XC16コンパイラを使ってコンパイルします。本デモは、一方の Explorer 16 開発ボード上のスイッチを使ってコマンドを発行し、その結果を他方の Explorer 16 開発ボード上の LCD に表示します。

    PIC® 16-bit MCU (A)

    RN4020 Module(A)

    RN4020 Module(B)

    PIC® 16-bit MCU (B)

    2016 Microchip Technology Inc. DS00001861A_JP - p. 3

  • AN1861

    図3に、アプリケーション デモで使うPIC24FJ128GA010マイクロコントローラとRN4020 BLEモジュール間のピン接続を示します。

    図 3: マイクロコントローラと BLEモ ジュール間の接続

    デモのハードウェア構成

    RN4020 デモには 2 つの無線ノードが必要です。本デモでは、2 つの Explorer 16 開発ボードを使い、それぞれに全く同じ RN4020 モジュールを実装した PICtailボードを接続します。つまり、RN4020 モジュールを使った全く同じ 2 つの無線ノードを構成します。RN4020 モジュールの詳細は Microchip 社ウェブサイト (http://www.microchip.com) を参照してください。

    Explorer 16 開発ボードと RN4020 モジュールの接続

    RN4020モジュールを実装したPICtailドータボードの30 ピン PCB エッジコネクタ (J3) を Explorer 16 開発ボードの PICtail Plus コネクタに接続します。これにより、RN4020 モジュールへ 3.3 V 電源とマイクロコントローラからの 2/4 線 UART、リセット、復帰、割り込み信号が接続されます。図 4 に、Explorer 16 開発ボードにRN4020モジュールを接続した状態を示します。RN4020 モジュールを接続した Explorer 16 開発ボードの使い方とプログラミングに関する詳細は、

    『RN4020 PICtail™/PICtail Plus Daughter Board User’sGuide』(DS50002265) を参照してください。

    RN4020BLE MODULE

    PIC24FJ128GA010 MICROCONTROLLER

    UART_Tx(5)

    UART_Rx(6)

    MLDP_EV/CS/PI02(11)

    CMD/MLDP/PI04(8)

    WAKE_SW/PI03(7)

    CONNECT_STATUS/SCK/PI05 (10)

    U1Rx

    U1Tx

    GPIO(1)

    RF1

    RF8

    VDD (3.3V)

    GND GND

    CONNECT_ACTIVE/PI07 (19)

    RF6

    VDD (3.3V)

    RA4

    RA5

    RD6

    RD7 SW_S6 (SELECT)SW_S3 (SCROLL)

    LED_D8

    LED_D7RF0

    Note 1: このピンはオプションであり、本デモ アプリケーションでは使いません。

    DS00001861A_JP - p. 4 2016 Microchip Technology Inc.

  • AN1861

    図 4 に、RN4020 モジュールを取り付けた Explorer 16 開発ボードを示します。

    図 4: RN4020 モジュールを取り付けた Explorer 16 開発ボード

    準備手順

    以下の手順により、RN4020 BLE モジュールを無線ノードとして構成します。

    1. RN4020 PICtail カードを Explorer 16 開発ボードの 30 ピン カードエッジ コネクタに挿入します。Explorer 16 開発ボードは、RN4020 PICtail ドータカードのベースボードとして機能します。

    2. Explorer 16 開発ボード上の LCD には、無線ノードを設定および監視するための情報を表示できます。

    3. 9 V 電源を Explorer 16 開発ボードに接続します。 4. プログラマまたはデバッガ(MPLAB ICD3/PICKIT3)

    を Explorer 16 開発ボードに接続します。5. ウェブサイトから入手したアプリケーション デ

    モのソースコードを開きます。

    6. Release モードで、本アプリケーション デモ向けの 2 つのソースコードをコンパイルします。

    7. 適当なプログラマ (MPLAB ICD3 等 ) を使って、生成された.hexファイルを 2つの無線ノード (AとB) にプログラミングします。

    MPLAB ICD 3 を使ったプログラミング / デバッグの詳細は『MPLAB® ICD 3 インサーキット デバッガ ユーザガイド』(DS50002081) を参照してください。Explorer 16 開発ボードの詳細は『Explorer 16 開発ボード ユーザガイド』(DS51589) を参照してください。

    補遺 A ~補遺 C にはソースコード、関連ファイルの説明、セントラルノードとペリフェラル ノードの main()関数のコールグラフを記載しています。さらに、各関数のコールグラフを生成する事で、ソースコードをより深く理解する事ができます。

    Note: ソースコードのWinZipファイルに含まれているコンパイル済みの .hexファイルが使えます。

    2016 Microchip Technology Inc. DS00001861A_JP - p. 5

  • AN1861

    RN4020 デモ アプリケーションRN4020デモ アプリケーションは以下の 2手順で実行します。

    1. 一方のノードをセントラルとして設定し、他方をペリフェラルとして設定します。

    2. ノード A でスイッチ (S3 と S6) を押した時、ノード B でスイッチが ON または OFF して LED (D7と D8) が点灯または消灯します。逆の場合も同じです。

    ノード A をセントラルとして設定するデモコードを使って、最初の RN4020 モジュール ( モジュール A と呼ぶ ) をセントラル ( ノード A) として設定します。これには以下のコマンドを使います。

    1. WAKE_SW をHIGHにしてコマンドモードへ移行します ( ドータボードではこれが既定値状態です )。

    2. モジュールAのシリアルポートに接続したターミナル エミュレータを開き、パラメータを以下のように設定します。

    - baud レート : 115200- データビット : 8- パリティ : 1- ストップビット : 1- フロー制御 : ハードウェア

    3. SF,1 // 工場設定へリセットします。4. SR,92000000 // デバイスをセントラル (MLDP

    をサポート、UART フロー制御は有効 ) として設定します。

    5. R,1 // 変更した設定を反映するため再起動します。

    図 5 に BLE セントラル ( ノード A) のフローチャートを示します。

    図 5: BLEセ ントラル (ノ ード A)

    Bluetooth® Smart Central (Node A)

    Power on and Initialize

    Factory Reset and Configure

    Reboot

    If in Scan Mode?

    Search for Peripheral Device using Scroll Button (SW3)

    Yes

    Join or Connect(using SW6)

    Press Switch(Monitor LEDs on Node B)

    No

    End

    Monitor LEDs(When Switches are pressed

    in Node B)

    No If Peripheral Device

    found?(with relevant MAC ID)

    Yes

    Assert WAKE_SW pin(Module enters Active mode)

    DS00001861A_JP - p. 6 2016 Microchip Technology Inc.

  • AN1861

    図 6 と図 7 に、コンフィグレーション モードとスキャンモード中のセントラル ( ノード A) を示します。

    図 6: コンフィグレーション モード中の BLEセ ントラルノード

    SW3 SCROLL SW6 SELECT

    2016 Microchip Technology Inc. DS00001861A_JP - p. 7

  • AN1861

    図 7: スキャンモード中の BLEセ ントラルノード

    図 8 に、スクロール / 選択モード中の BLE セントラルノードを示します。図 9 に、接続モード中の BLE セントラルノードを示します。

    図 8: スクロール /選 択モード中の BLEセ ントラルノード

    DS00001861A_JP - p. 8 2016 Microchip Technology Inc.

  • AN1861

    図 9: 接続モード中の BLEセ ントラルノード

    2016 Microchip Technology Inc. DS00001861A_JP - p. 9

  • AN1861

    ノード B をペリフェラルとして設定するデモコードを使って、2 つ目の RN4020 モジュール( モジュール B と呼ぶ ) をペリフェラル ( ノード B) として設定します。これには以下のコマンドを使います。

    1. WAKE_SWをHIGHにしてコマンドモードへ移行します ( ドータボードではこれが既定値状態です )。

    2. モジュールBのシリアルポートに接続したターミナル エミュレータを開き、パラメータを以下のように設定します。

    - baud レート :115200- データビット :8- パリティ : 1- ストップビット :1- フロー制御 : ハードウェア

    3. SF,1 // 工場設定へリセットします。4. SR,32000000 // デバイスを自動アドバタイズ

    のペリフェラル (MLDP をサポート、UART フロー制御は有効 ) として設定します。

    5. R,1 // 変更した設定を反映するため再起動します。図 10 に BLE ペリフェラル ( ノード B) のフローチャートを示します。

    図 10: BLEペ リフェラル (ノ ード B)

    Bluetooth® Smart Central (Node B)

    Power on and Initialize

    Factory Reset and Configure

    Reboot

    End PIC-CMD Mode

    If in Auto-Adv.?

    Wait for Connection Request from Node A

    Yes

    Join or Connect

    Press Switch(Monitor LEDs on Node A)

    No

    End

    If Request Available?

    Monitor LEDs(When Switches are pressed

    in Node A)

    No

    Yes

    Assert WAKE_SW pin(Module enters Active mode)

    DS00001861A_JP - p. 10 2016 Microchip Technology Inc.

  • AN1861

    図11と図12に、コンフィグレーション モードと自動アドバタイズ モード中のBLEペリフェラル (ノードB)を示します。

    図 11: コンフィグレーション モード中の BLEペ リフェラル ノード

    図 12: 自動アドバタイズ モード中の BLEペ リフェラル ノード

    2016 Microchip Technology Inc. DS00001861A_JP - p. 11

  • AN1861

    図 13 に、接続時の BLE ペリフェラル ノードを示します。

    図 13: 接続モード中の BLEペ リフェラル ノード

    DS00001861A_JP - p. 12 2016 Microchip Technology Inc.

  • AN1861

    2 つのデバイスを接続するモジュールBを起動すると自動的にアドバタイズが始まり (SRコマンドによって自動アドバタイズ機能が有効になるため )、モジュール A は F コマンドを使ってモジュール B を検出します。

    F // スキャンを開始します。スキャン結果は MAC アドレス、MAC アドレスの型、デバイス名 ( 例 : 00035B0358E6,0,MCHP-LE,-50)を表示します。

    Xコマンドに続けてEコマンドを発行する事で、スキャンを停止して接続を確立します。

    X // スキャンを停止します。E,0,00035B0358E6 // パブリック MAC アドレスが0x00035B0358E6 のデバイスとの接続を確立します。

    図 14 に、ターミナル エミュレータ インターフェイスを使ったアプリケーション デモの構成を示します。

    図 14: LCD/ス イッチ インターフェイスを使ったアプリケーション デモの構成図

    Central (Node A)

    PIC® 16-Bit

    MCU

    RN4020ModuleUART1 Interface

    BT SmartCommunication

    Peripheral (Node B)

    PIC® 16-Bit

    MCU

    RN4020Module

    UART1 Interface

    LCD Display Block

    Dis

    play

    Inte

    rface

    LCD Display Block

    Dis

    play

    Inte

    rface

    I/O Block(LEDs/

    Switches)

    I/O Block(LEDs/

    Switches)

    2016 Microchip Technology Inc. DS00001861A_JP - p. 13

  • AN1861

    MLDP モードの詳細CMD/MLDP ピンを HIGH にして MLDP モードに移行すると、UART からのデータは全てデータ ストリームとしてピアデバイスに送信されます。MLDP モードを終了するには CMD/MLDP ピンを LOW にします。RN4020 モジュールは UART に「CMD」を出力してコマンドモードに戻ります。MLDP シリアル データ サービスを使う場合、CMD/MLDP ピン ( ピン 8) を使ってRN4020 を制御します。MLDP コマンドの詳細は

    『RN4020 Bluetooth® Low Energyモジュール ユーザガイド』(DS70005191) を参照してください。

    パブリック サービスのキャラクタリスティックにアクセスできる事を確認したら、MLDP サービスを開始できます。MLDP サービスはプライベート サービスの最上部に位置しますが、UART を介してプライベートキャラクタリスティックに対するバイナリデータの読み書きをルーティングする事により、透過的に機能します。2 つの RN4020 デバイス間で MLDP サービスを使うには、両方のデバイスで SR コマンドを使ってMLDP を有効にする必要があります。MLDP モードは、MLDP を有効にした 2 つの RN4020 モジュールを互いに接続した場合にのみ開始できます。MLDP モードは以下の手順により開始します。

    1. CMD/MLDP ピンを HIGH にします。RN4020 モジュールは文字列「MLDP」で応答する事で、MLDP モードの開始を知らせます。

    2. MLDP モードになると、UART からのデータは全てピアデバイスへ送信されます。

    3. AUTO_MLDP_DISABLE 機能を無効にしている場合、RN4020 モジュールはピアから MLDP データを受信している時に自動的にMLDPモードに移行します。それ以外の場合、CMD/MLDP を HIGH にしてMLDPモードに移行するまで全てのデータが無視されます。

    4. モジュール A から CMD/MLDP ピンを HIGH にアサートし、「MLDP」が UART へ出力されるまで待機します。 モジュール B が「MLDP」を出力した場合、モジュール A の UART 上で入力された内容は全てモジュール B の UART 上で表示されます。逆の場合も同じです。

    5. モジュール B の CMD/MLDP ピンを LOW にします (WAKE_HW および CMD/MLDP ピンには弱プルダウン抵抗があるため、HIGH にしなければLOW の状態を維持します )。

    6. モジュール A で、ステータスの変更がホストに通知されます。しかしモジュール A は現在 MLDPモードであり、出力 MLDP データのみが UART に送信されます。代わりに、PIO2 が HIGH になって RN4020 PICtail ボードの赤色 LED (MLDP_EV)が点灯し、UART 経由でホスト マイクロコントローラへ送信するステータス メッセージが保留中である事を知らせます。

    7. CMD/MLDPピンをLOWにしてコマンドモードを開始すると、ステータス メッセージが UART に出力されます。ステータス メッセージは最大で 256バイトまでバッファで保持可能です。

    Note: MLDP モードを終了するには CMD/MLDP ピンを LOW にします。するとモジュールは文字列「CMD」で応答します。これは UART 上に出力され、RN4020モジュールがコマンドモードに戻った事を示します。ホストコントローラは、モジュールの UART 上で利用可能なコマンドと応答を解釈する必要があります。

    DS00001861A_JP - p. 14 2016 Microchip Technology Inc.

  • AN1861

    デモの実行既に説明したように、BLE プラットフォームが通信するには一方のノードをペリフェラルとして設定し、他方のノードをセントラルとして設定する必要があります。以下の手順により、2 つの無線 BLE ノードをプログラミング、接続、試験します。

    1. 一方のボードにはBLE_Peripheral.X.production.hex ファイルを使ってプログラミングし、他方のボードにはBLE_Central.X.production.hexファイルを使ってプログラミングします。

    2. プログラミング後は、ペリフェラル デバイスは自動アドバタイズ モードで動作し、セントラル デバイスはスキャンモードで動作します。

    3. セントラルノードでは、LCD を監視用に使い、2 個のスイッチをペリフェラル ノードのスクロール /選択用に使います。

    4. スイッチ SW3 を使って特定のペリフェラル ノードが表示されるまでスクロールします。

    5. スイッチ SW6 を使って表示中のペリフェラルノードを選択します。

    6. 選択したペリフェラル ノードがセントラルノードへ接続され、RN4020 PICtail ボード上の緑(CONN) LED が点灯します。

    7. 両方のモジュールはMLDPモードへ切り換わります。

    8. ペリフェラルまたはセントラルノードでスイッチS3 または S6 を押すと、他方のノードの LED D9または D10 が点灯または消灯します。

    図 15 に、MLDP モードで接続したセントラルおよびペリフェラル ノードを示します。

    図 15: MLDPモ ードで接続したセントラルおよびペリフェラル ノード

    BLE SMART COMMUNICATION

    2016 Microchip Technology Inc. DS00001861A_JP - p. 15

  • AN1861

    NOTE:

    DS00001861A_JP - p. 16 2016 Microchip Technology Inc.

  • AN1861

    補遺 A: ソースコード

    本書に関連する全てのソフトウェアは、1 つの WinZipアーカイブ ファイルに収められています。このファイルは Microchip 社ウェブサイト (www.microchip.com)からダウンロードできます。

    ソフトウェア ライセンス使用許諾Microchip Technology Incorporated ( 以下「弊社」) が提供するソフトウェアは、弊社製品との組み合わせでのみ使われる事を目的として弊社のお客様に供給されます。

    ソフトウェアの所有権は弊社および / またはソフトウェアのサプライヤに帰属し、適用著作権法のもとに保護されています。無断複写、複製、転載は禁じられています。上記の制約に違反してソフトウェアを使った場合、使用者はライセンス使用許諾の侵害に対して民事責任を問われ、適用法のもとに罰せられます。

    本ソフトウェアは「無条件受け取り」を条件として提供されます。本ソフトウェアの商品性および特定目的に対する適合性の黙示

    保証を含む ( ただし必ずしもこれらに限定されない ) 明示、暗示、法的な保証は一切致しません。弊社は、いかなる場合も、特殊、偶発的、必然的にかかわらず、いかなる理由があろうとも、一切の賠償責任を負いません。

    2016 Microchip Technology Inc. DS00001861A_JP - p. 17

    http://www.microchip.com

  • AN1861

    補遺 B: ソースコード ファイル一覧 表 1 に、セントラルノード ( ノード A) 向けのソースファイルを示します。

    表 2 に、ペリフェラル ノード ( ノード B) 向けのソースファイルを示します。

    表 1: セントラルノード向けソースファイルファイル名 ファイルタイプ 概要

    Central .cおよび .hファイル セントラルノードのコマンド ステートマシンCentral_string .cおよび .hファイル セントラルノードに必要なコマンドおよび応答文字列Config .hファイル PIC24F デバイスの設定Config_fuse .cファイル PIC24F を設定するために使うコンフィグレーション ヒューズLCD .cおよび .hファイル LCD インターフェイスMain .cおよび .hファイル PIC24F デバイスの初期化UART .cおよび .hファイル RN4020 向け UART ドライバ インターフェイス

    表 2: ペリフェラル ノード向けソースファイルファイル名 ファイルタイプ 概要

    ADC .cおよび .hファイル 本デモ アプリケーションでは使いません。Config .hファイル PIC24F デバイスの設定Config_fuse .cファイル PIC24F を設定するために使うコンフィグレーション ヒューズLCD .cおよび .hファイル LCD インターフェイスMain .cおよび .hファイル PIC24F デバイスの初期化Peripheral .cおよび .hファイル ペリフェラル ノードのコマンド ステートマシンPeripheral_string .cおよび .hファイル ペリフェラル ノードに必要なコマンドおよび応答文字列UART .cおよび .hファイル RN4020 向け UART ドライバ インターフェイス

    DS00001861A_JP - p. 18 2016 Microchip Technology Inc.

  • 2016 M

    icrochip Technology Inc.D

    S00001861A

    _JP - p. 19

    AN

    1861

    図チン

    遺 C: ソースコードのコールグラフC-1 に、セントラルノード向けアプリケーション コード内の main()ルーから呼び出される関数を示します。

    C-1: セントラルノードのコールグラフ

  • AN

    1861

    DS

    00001861A_JP

    - p. 20

    2016 Microchip Technology Inc.

    図 C-2 に、ペリフェラル ノード向けアプリケーション コード内の main()ルーチンから呼び出される関数を示します。

    図 C-2: ペリフェラル ノードのコールグラフ

  • AN1861

    補遺 D: 参考資料本書内で参照した文書の一覧を以下に記載します。

    Microchip 社の文書• RN4020 Bluetooth® Low Energy モジュール

    (DS50002279)• RN4020 Bluetooth® Low Energy モジュール ユーザ

    ガイド (DS70005191)• RN4020 PICtail™/PICtail Plus Board User’s Guide

    (DS50002265)• Explorer 16 開発キット ユーザガイド

    (DS50001589)• PIC24FJ128GA010 Family Data sheet (DS39747F)• MPLAB® ICD 3 インサーキット デバッガ ユーザガ

    イド (DS50002081)

    その他の文書• Bluetooth Core Specification 4.1 Adopted

    Documents:https://www.bluetooth.org/en-us/specification/adopted-specifications

    • Bluetooth 4.1 GATT Definitions Browser:https://developer.bluetooth.org/gatt/Pages/Definition-Browser.aspx

    まとめ本書は、Microchip 社製 Bluetooth 製品をお使いのお客様に、Bluetooth Low Energy (BLE) と Microchip 社製BLE RN4020 モジュールの基礎知識を提供します。また、16 ビット PIC マイクロコントローラを使ってRN4020 モジュールをセントラルノードとペリフェラル ノードとして動作させるためのサンプルコードも提供します。インターフェイスとサンプルコードは、任意のユーザ アプリケーションまたはプロジェクト向けのフレームワークとして使う事もできます。

    2016 Microchip Technology Inc. DS00001861A_JP - p. 21

  • AN1861

    NOTE:

    DS00001861A_JP - p. 22 2016 Microchip Technology Inc.

  • 2016 Microchip Technology Inc. DS00001861A_JP - p. 23

    本書に記載されているデバイス アプリケーション等に関する情報は、ユーザの便宜のためにのみ提供されているものであ

    り、更新によって無効とされる事があります。お客様のアプ

    リケーションが仕様を満たす事を保証する責任は、お客様に

    あります。Microchip 社は、明示的、暗黙的、書面、口頭、法定のいずれであるかを問わず、本書に記載されている情報に

    関して、状態、品質、性能、商品性、特定目的への適合性を

    はじめとする、いかなる類の表明も保証も行いません。

    Microchip 社は、本書の情報およびその使用に起因する一切の責任を否認します。Microchip 社の明示的な書面による承認なしに、生命維持装置あるいは生命安全用途に Microchip 社の製品を使用する事は全て購入者のリスクとし、また購入者はこ

    れによって発生したあらゆる損害、クレーム、訴訟、費用に

    関して、Microchip 社は擁護され、免責され、損害をうけない事に同意するものとします。暗黙的あるいは明示的を問わず、

    Microchip社が知的財産権を保有しているライセンスは一切譲渡されません。

    商標

    Microchip 社の名称と Microchip ロゴ、dsPIC、FlashFlex、KEELOQ、KEELOQ ロゴ、MPLAB、PIC、PICmicro、PICSTART、PIC32 ロゴ、rfPIC、SST、SST ロゴ、SuperFlash、UNI/O は、米国およびその他の国における Microchip TechnologyIncorporated の登録商標です。

    FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、MTP、SEEVAL、Embedded Control Solutions Company は、米国における Microchip Technology Incorporated の登録商標です。

    Silicon Storage Technologyは、その他の国におけるMicrochipTechnology Incorporated の登録商標です。

    Analog-for-the-Digital Age、Application Maestro、BodyCom、chipKIT、chipKIT ロゴ、CodeGuard、dsPICDEM、dsPICDEM.net、dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、FanSense、HI-TIDE、In-Circuit Serial Programming、ICSP、Mindi、MiWi、MPASM、MPF、MPLAB 認証ロゴ、MPLIB、MPLINK、mTouch、Omniscient Code Generation、PICC、PICC-18、PICDEM、PICDEM.net、PICkit、PICtail、REAL ICE、rfLAB、Select Mode、SQI、Serial Quad I/O、Total Endurance、TSHARC、UniWinDriver、WiperLock、ZENA、Z-Scale は、米国およびその他の国における Microchip Technology Incorporatedの登録商標です。

    SQTP は、米国における Microchip Technology Incorporatedのサービスマークです。

    GestICとULPPは、その他の国におけるMicrochip TechnologyGermany II GmbH & Co. & KG (Microchip TechnologyIncorporated の子会社 ) の登録商標です。

    その他、本書に記載されている商標は各社に帰属します。

    ©2013, Microchip Technology Incorporated, Printed in theU.S.A., All Rights Reserved.

    ISBN: 978-1-63277-969-4

    Microchip 社製デバイスのコード保護機能に関して次の点にご注意ください。• Microchip 社製品は、該当する Microchip 社データシートに記載の仕様を満たしています。

    • Microchip 社では、通常の条件ならびに仕様に従って使用した場合、Microchip 社製品のセキュリティ レベルは、現在市場に流通している同種製品の中でも最も高度であると考えています。

    • しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解ではこうした手法は、Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事になります。このような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます。

    • Microchip 社は、コードの保全性に懸念を抱くお客様と連携し、対応策に取り組んでいきます。

    • Microchip 社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保護機能とは、Microchip 社が製品を「解読不能」として保証するものではありません。

    コード保護機能は常に進歩しています。Microchip 社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip 社のコード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著

    Microchip 社では、Chandler および Tempe ( アリゾナ州 )、Gresham( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を取得しています。Microchip 社の品質システム プロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ® コード ホッピング デバイス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関する Microchip 社の品質システムは ISO 9001:2000 認証を取得しています。

    QUALITY MANAGEMENT SYSTEM CERTIFIED BY DNV

    == ISO/TS 16949 ==

  • DS00001861A_JP - p. 24 2016 Microchip Technology Inc.

    北米本社2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel:480-792-7200 Fax:480-792-7277技術サポート : http://www.microchip.com/supportURL: www.microchip.com

    アトランタDuluth, GA Tel:678-957-9614 Fax:678-957-1455

    オースティン (TX)Tel:512-257-3370

    ボストンWestborough, MA Tel:774-760-0087 Fax:774-760-0088

    シカゴItasca, IL Tel:630-285-0071 Fax:630-285-0075

    クリーブランドIndependence, OH Tel:216-447-0464 Fax:216-447-0643ダラスAddison, TX Tel:972-818-7423 Fax:972-818-2924

    デトロイトNovi, MI Tel:248-848-4000

    ヒューストン (TX) Tel:281-894-5983

    インディアナポリスNoblesville, IN Tel:317-773-8323Fax:317-773-5453

    ロサンゼルスMission Viejo, CA Tel:949-462-9523 Fax:949-462-9608

    ニューヨーク (NY) Tel:631-435-6000

    サンノゼ (CA) Tel:408-735-9110

    カナダ - トロントTel:905-673-0699 Fax:905-673-6509

    アジア / 太平洋アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel:852-2943-5100Fax:852-2401-3431オーストラリア - シドニーTel:61-2-9868-6733Fax:61-2-9868-6755

    中国 - 北京Tel:86-10-8569-7000 Fax:86-10-8528-2104

    中国 - 成都Tel:86-28-8665-5511Fax:86-28-8665-7889

    中国 - 重慶Tel:86-23-8980-9588Fax:86-23-8980-9500

    中国 - 東莞Tel:86-769-8702-9880

    中国 - 杭州Tel:86-571-8792-8115 Fax:86-571-8792-8116

    中国 - 香港 SARTel:852-2943-5100 Fax:852-2401-3431

    中国 - 南京Tel:86-25-8473-2460Fax:86-25-8473-2470

    中国 - 青島Tel:86-532-8502-7355Fax:86-532-8502-7205

    中国 - 上海Tel:86-21-5407-5533 Fax:86-21-5407-5066

    中国 - 瀋陽Tel:86-24-2334-2829Fax:86-24-2334-2393

    中国 - 深圳Tel:86-755-8864-2200 Fax:86-755-8203-1760

    中国 - 武漢Tel:86-27-5980-5300Fax:86-27-5980-5118

    中国 - 西安Tel:86-29-8833-7252Fax:86-29-8833-7256

    アジア / 太平洋中国 - 厦門Tel:86-592-2388138 Fax:86-592-2388130

    中国 - 珠海Tel:86-756-3210040 Fax:86-756-3210049

    インド - バンガロールTel:91-80-3090-4444 Fax:91-80-3090-4123

    インド - ニューデリーTel:91-11-4160-8631Fax:91-11-4160-8632

    インド - プネTel:91-20-3019-1500

    日本 - 大阪Tel:81-6-6152-7160 Fax:81-6-6152-9310

    日本 - 東京Tel:81-3-6880- 3770 Fax:81-3-6880-3771

    韓国 - 大邱Tel:82-53-744-4301Fax:82-53-744-4302

    韓国 - ソウルTel:82-2-554-7200Fax:82-2-558-5932 または 82-2-558-5934

    マレーシア - クアラルンプールTel:60-3-6201-9857Fax:60-3-6201-9859

    マレーシア - ペナンTel:60-4-227-8870Fax:60-4-227-4068

    フィリピン - マニラTel:63-2-634-9065Fax:63-2-634-9069

    シンガポールTel:65-6334-8870Fax:65-6334-8850

    台湾 - 新竹Tel:886-3-5778-366Fax:886-3-5770-955

    台湾 - 高雄Tel:886-7-213-7828

    台湾 - 台北Tel:886-2-2508-8600 Fax:886-2-2508-0102

    タイ - バンコクTel:66-2-694-1351Fax:66-2-694-1350

    ヨーロッパ

    オーストリア - ヴェルスTel:43-7242-2244-39Fax:43-7242-2244-393デンマーク - コペンハーゲンTel:45-4450-2828 Fax:45-4485-2829

    フランス - パリTel:33-1-69-53-63-20 Fax:33-1-69-30-90-79

    ドイツ - デュッセルドルフTel:49-2129-3766400

    ドイツ - ミュンヘンTel:49-89-627-144-0 Fax:49-89-627-144-44

    ドイツ - プフォルツハイムTel:49-7231-424750

    イタリア - ミラノ Tel:39-0331-742611 Fax:39-0331-466781

    イタリア - ベニスTel:39-049-7625286

    オランダ - ドリューネンTel:31-416-690399 Fax:31-416-690340

    ポーランド - ワルシャワTel:48-22-3325737

    スペイン - マドリッドTel:34-91-708-08-90Fax:34-91-708-08-91

    スウェーデン - ストックホルムTel:46-8-5090-4654

    イギリス - ウォーキンガムTel:44-118-921-5800Fax:44-118-921-5820

    各国の営業所とサービス

    01/27/15

    http://support.microchip.comhttp://www.microchip.com

    Microchip 社のRN4020 モジュールと16 ビットPIC® マイクロコントローラを使ったBluetooth® Smart 通信はじめにBluetooth Smart 通信図1: PICtail™ボードに実装した RN4020モジュール

    RN4020モジュールとPIC24 MCUのインターフェイスフレームワーク図2: Bluetooth Smart通信アプリケーションの構成アプリケーション デモの要件ハードウェア要件ソフトウェア/ユーティリティ要件図3: マイクロコントローラとBLEモジュール間の接続デモのハードウェア構成Explorer 16開発ボードとRN4020モジュールの 接続図4: RN4020モジュールを取り付けたExplorer 16開発ボード準備手順

    RN4020デモ アプリケーションノードAをセントラルとして設定する図5: BLEセントラル (ノードA)図6: コンフィグレーション モード中のBLEセントラルノード図7: スキャンモード中のBLEセントラルノード図8: スクロール/選択モード中のBLEセントラルノード図9: 接続モード中のBLEセントラルノード

    ノードBをペリフェラルとして設定する図10: BLEペリフェラル (ノードB)図11: コンフィグレーション モード中のBLEペリフェラル ノード図12: 自動アドバタイズ モード中のBLEペリフェラル ノード図13: 接続モード中のBLEペリフェラル ノード

    2つのデバイスを接続する図14: LCD/スイッチ インターフェイスを使ったアプリケーション デモの構成図

    MLDPモードの詳細デモの実行図15: MLDPモードで接続したセントラルおよびペリフェラル ノード

    補遺A: ソースコード補遺B: ソースコード ファイル一覧表1: セントラルノード向けソースファイル表2: ペリフェラル ノード向けソースファイル

    補遺C: ソースコードのコールグラフ図C-1: セントラルノードのコールグラフ図C-2: ペリフェラル ノードのコールグラフ

    補遺D: 参考資料Microchip社の文書その他の文書

    各国の営業所とサービス