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

AN1559 AP-RX64M-0A WM-RP-10サンプルプログラム解説

N/A
N/A
Protected

Academic year: 2022

シェア "AN1559 AP-RX64M-0A WM-RP-10サンプルプログラム解説"

Copied!
87
0
0

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

全文

(1)

アプリケーションノート

AN1559 ALPHA PROJECT Co.,LTD.

目 次

1. 概要 ... 3

1.1 概要 ... 3

1.2 本サンプルプログラムについて ... 6

1.3 ネットワーク構成イメージ ... 8

1.4 動作モード ... 9

1.5 開発環境 ... 10

1.6 ワークスペースについて ... 10

2. サンプルプログラムの構成 ... 11

2.1 TCP/IP サンプルプログラム ... 12

2.1.1 フォルダ構成 ... 12

2.1.2 ファイル構成 ... 13

2.2 TCP/IP バイパスモードサンプルプログラム ... 15

2.2.1 フォルダ構成 ... 15

2.2.2 ファイル構成 ... 16

3. 動作説明 ... 18

3.1 ビルド・デバッグ方法 ... 18

3.2 動作説明 ... 18

3.2.1 サンプルプログラム概要 ... 18

3.2.2 サンプルプログラム動作内容 ... 20

3.2.3 TCP/IP サンプルプログラムの設定パラメータ ... 22

3.2.4 TCP/IP バイパスモードサンプルプログラムの設定パラメータ ... 25

3.2.5 サンプルプログラムの動作フロー(初期化処理) ... 28

3.2.6 サンプルプログラムの動作フロー(WLAN モード) ... 29

3.2.7 サンプルプログラムの動作フロー(BT モード) ... 39

3.2.8 サンプルプログラムの動作フロー(BLE モード) ... 45

3.3 WLAN/Bluetooth 共存モード(TCP/IP バイパスモード時限定) ... 50

3.4 SPI クロック ... 51

AP-RX64M-0A

WM-RP-10 サンプルプログラム解説

第2版 2021年01月27日 Fig1.2-1 動作モード設定

1版 2011年06月06日 JSW3

Fig1.2-1 動作モード設定 1版 2011年06月06日

(2)

5.1 概要 ... 54

5.2 SPI ... 54

5.2.1 SPI 仕様 ... 54

5.2.2 初期化 ... 55

5.2.3 コマンド制御 ... 55

5.2.4 非同期メッセージ ... 56

5.2.5 INTR 割り込み信号のアクティブ ... 56

5.2.6 INTR 割り込み発生条件 ... 56

6. Redpine Signals 社提供 API ... 57

6.1 概要 ... 57

6.2 サンプルプログラムで使用している API ... 58

6.2.1 初期化で使用する API ... 58

6.2.2 WLAN モードで使用する API ... 59

6.2.3 BT モードで使用する API ... 69

6.2.4 BLE モードで使用する API ... 75

6.3 API の使用について ... 83

6.4 補足事項 ... 84

7. 参考資料 ... 86

2021 年 1 月時点において Redpine Signals 社は買収によりシリコンラボラトリーズ社に統合されました。

本ドキュメントでは旧社名 Redpine Signals で記載されておりますので、ご注意ください。

(3)

1. 概要

1.1 概要

本アプリケーションノートでは WM-RP-10 用サンプルプログラムについて解説します。

本サンプルプログラムは「無線 LAN」「Bluetooth Classic」「Bluetooth Low Energy」の各無線通信において、ク ライアント機能やアクセスポイント機能、あるいは、スレーブ機能やマスター機能などの各種機能を動作確認できる プログラムです。

また、本サンプルプログラムは WM-RP-10 に内蔵された TCP/IP プロトコルスタックを使用して動作する「TCP/IP サンプルプログラム」と、内蔵のプロトコルスタックを使用せずにユーザが外部で用意したプロトコルスタックを使 用して動作する「TCP/IP バイパスモードサンプルプログラム」の 2 種類を用意しています。

サンプルプログラムの構成イメージは以下の通りです。

TCP/IP サンプルプログラムの構成イメージ

ホスト CPU

アプリケーション

ネットワーク通信処理部

デバイスドライバ SPI 通信 ミドルウェア

WM-RP-10 用 API 群/Redpine 社提供 API 群

WM-RP-10 インタフェースドライバ

WiFi プロトコルスタック

RF トランシーバ

RF コントロールドライバ(WiFi/Bluetooth)

Bluetooth プロトコルスタック

(4)

TCP/IP バイパスモードサンプルプログラムの構成イメージ

ホスト CPU

アプリケーション

ネットワーク通信処理部

デバイスドライバ SPI 通信 ミドルウェア

WM-RP-10 用 API 群/Redpine 社提供 API 群

WM-RP-10 インタフェースドライバ

WiFi プロトコルスタック

RF コントロールドライバ(WiFi/Bluetooth)

Bluetooth プロトコルスタック

RF トランシーバ WiFi プロトコルスタック

(TCP/IP)

(5)

各モードの動作内容と動作確認に必要な機器を以下に示します。

モード 動作内容 動作確認に必要な機器例

■WLAN モード

WLAN Client モード ・アクセスポイントへの接続

・TCP クライアント ソケット通信 (1 秒経過ごとに 1 バイト送信、

エコーバック)

ネットワーク通信可能な PC/スマート フォン

アクセスポイント

Wi-Fi Direct モード ・Wi-Fi Direct による接続 TCP サーバ ソケット通信 (エコーバック)

Wi-Fi Direct に対応した PC/スマートフ ォン

(WM-RP-10 同士の通信不可)

Enterprise Security Client モード

・アクセスポイントへの接続

・TCP クライアント ソケット通信

(1 秒ごとに 1 バイト送信、エコーバック)

ネットワーク通信可能な PC アクセスポイント

RADIUS サーバ(EAP-PEAP (MS-CHAPv2)認証方式対応)

Access Point モード ・アクセスポイントの生成

・TCP サーバ ソケット通信 (エコーバック)

ネットワーク通信可能な PC/スマート フォン

■Bluetooth Classic モード ※これ以降、Bluetooth Classic は BT と略して示します。

Slave モード ・SPP(Serial Port Profile)通信

・エコーバック

BT Master 動作、SPP 通信可能なスマ ートフォン

Master モード ・SPP 通信

・1 秒経過ごとに 1 バイト送信

・エコーバック

BT Slave 動作、SPP 通信可能なスマー トフォン

■Bluetooth Low Energy モード ※これ以降、Bluetooth Low Energy は BLE と略して示します。

Peripheral モード ・GATT バッテリーサービス

・1 秒経過ごとにバッテリー値の更新

BLE スキャン動作可能なスマートフォ ン

Central モード ・GATT バッテリーサービスの参照 GATT バッテリーサービスの通信に対 応したスマートフォン

(6)

1.2 本サンプルプログラムについて

本サンプルプログラムは、ルネサス エレクトロニクス株式会社提供のミドルウェアおよびドライバを AP-RX64M-0A に 移植しています。

各ミドルウェアおよびドライバの詳細については、以下の資料を参照してください。

入手につきましては、ルネサス社ウェブサイトの下記のページにて、検索を行ってください。

FIT モジュールにつきましては、Smart Configurator から入手することも可能です。

ルネサス エレクトロニクス社 RX64M サンプルコード

https://www.renesas.com/jp/ja/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus /rx64m-high-performance-32-bit-microcontrollers-achieving-455coremarkmhz-546coremark-rxv2-core-employed

#documents

● BSP

・資料名

RX ファミリ ボードサポートパッケージモジュール Firmware Integration Technology 機能名称:BSP <R01AN1685 Rev 5.20>

● BYTEQ

・資料名

RX ファミリ バイト型キューバッファ(BYTEQ) モジュール Firmware Integration Technology 機能名称:その他 <R01AN1683 Rev 1.80>

● CMT

・資料名

RX ファミリ CMT モジュール Firmware Integration Technology 機能名称:タイマ <R01AN1856 Rev 4.00>

● GPIO

・資料名

RX ファミリ GPIO モジュール Firmware Integration Technology 機能名称:I/O 設定 <R01AN1721 Rev 3.00>

● RSPI

・資料名

RX ファミリ RSPI モジュール Firmware Integration Technology 機能名称:RSPI <R01AN1827 Rev 2.01>

(※)資料をダウンロードする際にはルネサスエレクトロニクス株式会社の My Renesas への登録が必要となります。

(7)

● ネットワーク通信

・資料名

RX ファミリ イーサネットモジュール Firmware Integration Technology 機能名称:Ethernet <R01AN2009 Rev 1.16>

RX ファミリ システムタイマモジュール Firmware Integration Technology 機能名称:組み込み用 TCP/IP M3S-T4-Tiny <R01AN0431 Rev 1.00>

RX ファミリ Ethernet ドライバと組み込み用 TCP/IP M3S-T4-Tiny のインタフェース変換モジュール Firmware Integration Technology

機能名称:組み込み用 TCP/IP M3S-T4-Tiny <R01AN0311 Rev 1.07>

RX ファミリ 組み込み用 TCP/IP M3S-T4-Tiny モジュール Firmware Integration Technology 機能名称:組み込み用 TCP/IP M3S-T4-Tiny <R01AN0051 Rev 2.08>

● USB PCDC

・資料名

USB Basic Host and Peripheral Driver Firmware Integration Technology 機能名称:USB <R01AN2025 Rev 1.26>

RX ファミリ USB Peripheral Communications Device Class Driver (PCDC) Firmware Integration Technology 機能名称:USB <R01AN2030 Rev 1.26>

● TCP/IP サンプルプログラム

・資料名

RX ファミリ 組み込み用 TCP/IP M3S-T4-Tiny を用いたサンプルプログラム 機能名称:TCP/IP(サンプルプログラム) <R01AN0312 Rev 1.06>

● USB PCDC サンプルプログラム

・資料名

USB ペリフェラルコミュニケーションデバイスクラスドライバ(PCDC)による

USB ホストとの USB 通信を行うサンプルプログラム Firmware Integration Technology 機能名称:USB(サンプルプログラム) <R01AN2238 Rev 1.23>

(※)資料をダウンロードする際にはルネサスエレクトロニクス株式会社の My Renesas への登録が必要となります。

(8)

1.3 ネットワーク構成イメージ

本サンプルプログラムの各機能におけるネットワーク構成イメージ図を示します。(図中のボードは AP-RX63N-0A です)

WLAN Client モード

アクセスポイント経由で、無線通信を行います。

Wi-Fi Direct モード

WM-RP-10 とスマートフォンなどの端末同士が直接無線通信を行います。

※WM-RP-10 同士の接続は行えません。

Enterprise Security Client モード

エンタープライズセキュリティ対応アクセスポイント経由で、無線通信を行います。

アクセスポイント

+RADIUS サーバ

(9)

Access Point モード

WM-RP-10 側がアクセスポイントとなり、スマートフォンなどの端末が WM-RP-10 に接続して、無線通信を行います。

BT Slave モード

BT Master モード

BLE Peripheral モード

BLE Central モード

WM-RP-10 とスマートフォンなどの端末同士が直接無線通信を行います。

1.4 動作モード

本サンプルプログラムは、AP-RX64M-0A で動作します。CPU 動作モード、各メモリ設定につきましては、

「AP-RX64M-0A ハードウェアマニュアル」をご確認ください。

(10)

1.5 開発環境

本サンプルプログラムは統合開発環境 CS+を用いて開発されています。

開発に使用した開発環境、コンパイラのバージョンは次のとおりです。

ソフトウェア バージョン 備考

CS+ 8.0.1 -

RXC 2.08.00 RX ファミリ用 C/C++コンパイラパッケージに付属

(※)

Smart Configurator v2.2.0 -

※「RX ファミリ用 C/C++コンパイラパッケージ」です。ルネサス エレクトロニクス社のウェブサイトより評価版をダウン ロードできます。

1.6 ワークスペースについて

本サンプルプログラムのプロジェクトファイルは次のフォルダに格納されています。

サンプルプログラム フォルダ 備考

TCP/IP サンプルプログラム プロジェクトフォルダ

\Sample\ap_rx64m_0a_wmrp10 -

TCP/IP バイパスモード サンプルプログラム プロジェクトフォルダ

\Sample\ap_rx64m_0a_wmrp10_bypass 使用する TCP/IP プロトコルスタックは

「M3S-T4-Tiny(ルネサス エレクトロ ニクス社製)」

(11)

2. サンプルプログラムの構成

本章では、サンプルプログラムの中でも WM-RP-10 の動作に関わる箇所を中心に記述し、ミドルウェア・ドライバ等のファ イルに関しては説明を省略している箇所があります。

【サンプルプログラム一覧】

TCP/IP サンプルプログラム

(内蔵スタックモード)

TCP/IP バイパスモードサンプルプログラム

(バイパスモード)

WLAN Client モード WLAN Client モード

Wi-Fi Direct モード Enterprise Security Client モード Enterprise Security Client モード Access Point モード

Access Point モード WLAN Client モード + BT Slave モード BT Slave モード WLAN Client モード + BT Master モード BT Master モード WLAN Client モード + BLE Peripheral モード BLE Peripheral モード WLAN Client モード + BLE Cenral モード BLE Central モード Access Point モード + BT Slave モード

Access Point モード + BT Master モード Access Point モード + BLE Peripheral モード Access Point モード + BLE Cenral モード

(12)

2.1 TCP/IP サンプルプログラム

2.1.1 フォルダ構成

サンプルプログラムは、共通して使用するフォルダ(デバイスドライバ、ミドルウェア等)と、WM-RP-10 の動作モード ごとで異なるアプリケーション用フォルダとで構成されています。

ap_rx64m_0a_wmrp10

DefaultBuild 動作用ワークフォルダ src

smc_gen SmartConfigurator 生成フォルダ

usb_dev USB ドライバソースフォルダ

wmrp10_apis WM-RP-10 制御

app アプリケーション

inc アプリケーションヘッダ

モード機能部 共通使用部

(13)

2.1.2 ファイル構成

■共通して使用するファイル

<Sample\ap_rx64m_0a_wmrp10>

<Sample\ap_rx64m_0a_wmrp10\src>

<Sample\ap_rx64m_0a_wmrp10\src\usb_dev>

r_usb_pcdc_descriptor.c ・・・ USB Func ディスクリプタ情報ファイル r_usb_pcdc_echo_apl.c ・・・ USB Func 仮想 COM 処理ソースファイル usbf_dev.h ・・・ USB Func ドライバヘッダファイル

<Sample\ap_rx64m_0a_wmrp10\src\usb_dev\inc>

r_usb_pcdc_apl.h ・・・ USB Func 仮想 COM エコーバック処理ヘッダファイル r_usb_pcdc_apl_config.h ・・・ USB Func 設定ヘッダファイル

<Sample\ap_rx64m_0a_wmrp10\src\wmrp10_apis>

WM-RP-10 制御プログラムです。

詳しくは「6. Redpine Signals 社提供 API」で説明します。

ap_rx64m_0a_wmrp10.mtpj ・・・ プロジェクトファイル

ap_rx64m_0a_wmrp10.rcpe ・・・ e2studio 用プロジェクトファイル

main.c ・・・ メイン関数

buffer_rw.c ・・・ バッファ処理ソースファイル

buffer_rw.h ・・・ バッファ処理ヘッダーファイル

cmt_dev.c ・・・ タイマドライバソースファイル

cmt_dev.h ・・・ タイマドライバヘッダーファイル

spi_dev.c ・・・ SPI ドライバソースファイル

spi_dev.h ・・・ SPI ドライバヘッダファイル

(14)

■モードごとのファイル

<Sample\ap_rx64m_0a_wmrp10\src\app>

bt_slave.c ・・・ BT Slave モードサンプルプログラム bt_master.c ・・・ BT Master モードサンプルプログラム ble_peripheral.c ・・・ BLE Peripheral モードサンプルプログラム ble_central.c ・・・ BLE Central モードサンプルプログラム wlan_ap.c ・・・ Access Point モードサンプルプログラム wlan_client.c ・・・ WLAN Client モードサンプルプログラム wlan_direct.c ・・・ Wi-Fi Direct モードサンプルプログラム

wlan_eap.c ・・・ Enterprise Security Client モードサンプルプログラム wlan_tcp.c ・・・ TCP server、TCP client サンプルプログラム

sample.c ・・・ サンプルアプリケーションメインプログラム

<Sample\ap_rx64m_0a_wmrp10\src\app\inc>

bt_slave_config.h ・・・ BT Slave モード用パラメータ定義 bt_master_config.h ・・・ BT Master モード用パラメータ定義 ble_peripheral_config.h ・・・ BLE Peripheral モード用パラメータ定義 ble_central_config.h ・・・ BLE Central モード用パラメータ定義 wlan_ap_config.h ・・・ Access Point モード用パラメータ定義 wlan_client_config.h ・・・ WLAN Client モード用パラメータ定義 wlan_direct_config.h ・・・ Wi-Fi Direct モード用パラメータ定義

wlan_eap_config.h ・・・ Enterprise Security Client モード用パラメータ定義 wlan_tcp_config.h ・・・ TCP server、TCP client 用パラメータ定義

sample.h ・・・ サンプルアプリケーションメインヘッダ

(15)

2.2 TCP/IP バイパスモードサンプルプログラム

2.2.1 フォルダ構成

サンプルプログラムは、共通して使用するフォルダ(デバイスドライバ、ミドルウェア等)と、WM-RP-10 の動作モード ごとで異なるアプリケーション用フォルダとで構成されています。

ap_rx64m_0a_wmrp10_bypass

DefaultBuild 動作用ワークフォルダ src

smc_gen SmartConfigurator 生成フォルダ tcp_sample TCP/IP ソースフォルダ

usb_dev USB ドライバソースフォルダ

wmrp10_apis WM-RP-10 制御

app アプリケーション

inc アプリケーションヘッダ

共通使用部

モード機能部

(16)

2.2.2 ファイル構成

■共通して使用するファイル

<Sample\ap_rx64m_0a_wmrp10_bypass>

<Sample\ap_rx64m_0a_wmrp10_bypass\src>

<Sample\ap_rx64m_0a_wmrp10_bypass\src\tcp_sample>

config_tcpudp.c ・・・ TCP/UDP 設定ファイル echo_srv.c ・・・ TCP/UDP 通信ファイル echo_srv_sample.h ・・・ TCP/UDP 通信ヘッダファイル ether_dev.h ・・・ Ethernet デバイスヘッダファイル

<Sample\ap_rx64m_0a_wmrp10_bypass \src\usb_dev>

r_usb_pcdc_descriptor.c ・・・ USB Func ディスクリプタ情報ファイル r_usb_pcdc_echo_apl.c ・・・ USB Func 仮想 COM 処理ソースファイル usbf_dev.h ・・・ USB Func ドライバヘッダファイル

<Sample\ap_rx64m_0a_wmrp10_bypass \src\usb_dev\inc>

r_usb_pcdc_apl.h ・・・ USB Func 仮想 COM エコーバック処理ヘッダファイル r_usb_pcdc_apl_config.h ・・・ USB Func 設定ヘッダファイル

<Sample\ap_rx64m_0a_wmrp10_bypass\src\r_t4_driver_rx\src>

ether_callback.c ・・・ Ethernet コールバックファイル

t4_driver.c ・・・ TCP/IP M3S-T4-Tiny インタフェース変換ファイル

timer.c ・・・ Ethernet 用タイマファイル

timer.h ・・・ Ethernet 用タイマヘッダファイル

<Sample\ap_rx64m_0a_wmrp10_bypass\src\wmrp10_apis>

WM-RP-10 制御プログラムです。

詳しくは「6. Redpine Signals 社提供 API」で説明します。

ap_rx64m_0a_wmrp10_bypass.mtpj ・・・ プロジェクトファイル

main.c ・・・ メイン関数

buffer_rw.c ・・・ バッファ処理ソースファイル

buffer_rw.h ・・・ バッファ処理ヘッダーファイル

cmt_dev.c ・・・ CMT カウンタデバイスファイル

cmt_dev.h ・・・ CMT カウンタデバイスヘッダファイル

ether_app.c ・・・ Ethernet アプリケーションデバイスファイル ether_app.h ・・・ Ethernet アプリケーションヘッダファイル

spi_dev.c ・・・ SPI デバイスファイル

spi_dev.h ・・・ SPI デバイスヘッダファイル

(17)

■モードごとのファイル

<Sample\ap_rx64m_0a_wmrp10_bypass\src\app>

bt_slave.c ・・・ BT Slave モードサンプルプログラム bt_master.c ・・・ BT Master モードサンプルプログラム ble_peripheral.c ・・・ BLE Peripheral モードサンプルプログラム ble_central.c ・・・ BLE Central モードサンプルプログラム wlan_ap.c ・・・ Access Point モードサンプルプログラム wlan_client.c ・・・ WLAN Client モードサンプルプログラム

wlan_eap.c ・・・ Enterprise Security Client モードサンプルプログラム

sample.c ・・・ サンプルアプリケーションメインプログラム

<Sample\ap_rx64m_0a_wmrp10_bypass\src\app\inc>

bt_slave_config.h ・・・ BT Slave モード用パラメータ定義 bt_master_config.h ・・・ BT Master モード用パラメータ定義 ble_peripheral_config.h ・・・ BLE Peripheral モード用パラメータ定義 ble_central_config.h ・・・ BLE Central モード用パラメータ定義 wlan_ap_config.h ・・・ Access Point モード用パラメータ定義 wlan_client_config.h ・・・ WLAN Client モード用パラメータ定義

wlan_eap_config.h ・・・ Enterprise Security Client モード用パラメータ定義 wlan_tcp_config.h ・・・ TCP server、TCP client 用パラメータ定義

sample.h ・・・ サンプルアプリケーションメインヘッダ

(18)

3. 動作説明

3.1 ビルド・デバッグ方法

サンプルプログラムを CPU ボード上で実行するためには、ビルドしたサンプルプログラムの実行ファイルを CPU ボードに ダウンロードする必要があります。

サンプルプログラムのビルド方法および CPU ボードにサンプルプログラムをダウンロードする方法については、

アプリケーションノート「AN1526 RX 開発環境の使用方法(CS+、Renesas Flash Programmer)」に 詳細な手順が記されていますので、参照してください。

また、開発環境を使用する際のプロジェクト設定については「4. 開発環境使用時の各設定値」をご参照ください。

3.2 動作説明

3.2.1 サンプルプログラム概要

サンプルプログラムの概略フローを以下に示します。

本サンプルプログラムは、大きく分けて以下の 3 つの構成で成り立っています。

電源起動直後の「初期化処理」部

ネットワークに参加するまでの「接続処理」部

ネットワークに参加した後でデータ通信を行う「イベント処理」部

初期化フロー WLAN モード 初期設定 WLAN Client モード TCP server 動作 Wi-Fi Direct モード TCP client 動作 Enterprise Security Client モード

Access Point モード

BT モード初期設定 Slave モード SPP 通信動作

Master モード

BLE モード初期設定 Peripheral モード キャラクタリス

ティックの 送受信動作 Central モード

初期化処理 接続処理 イベント処理

初期化フロー

どのモードでも最初に行う共通の処理です。周辺機能の初期化、WM-RP-10 モジュールの初期化などを行います。

WLAN モード初期設定

WLAN モードの初期設定を行い、次に各モードの処理を行います。モードの処理と TCP server/client の処理は別々の関 数で構成されているため、呼び出す関数を入れ替えれば、TCP server でも TCP client でも動作させることができます。

BT モード初期設定

BT モードの初期設定を行い、次に各モードの処理を行います。

(19)

本サンプルプログラムはデフォルトで「WLAN Client モード」が動作するよう設定されています。

その他の動作モードで動作を確認する場合は、下記ソースコードの赤字をそれぞれの動作モードに対応した値に変更してくだ さい。

その後、開発環境上で必ずプロジェクトの再ビルドを行ってください。

Sample\ap_rx64m_0a_wmrp10\src\app\inc\sample.h あるいは

Sample\ap_rx64m_0a_wmrp10_bypass\src\app\inc\sample.h

#define WMRP10_MODE (WLAN_CLIENT)

各動作モードに対応する値

動作確認したいモード 設定値

WLAN Client モード(デフォルト) WLAN_CLIENT

Wi-Fi Direct モード WLAN_DIRECT

エンタープライズセキュリティ対応 WLAN Client モード WLAN_EAP

アクセスポイントモード WLAN_AP

BT スレーブモード BT_SLAVE

BT マスターモード BT_MASTER

BLE ペリフェラルモード BLE_PERIPHERAL

BLE セントラルモード BLE_CENTRAL

(20)

3.2.2 サンプルプログラム動作内容

サンプルプログラムは、下記の動作を行います。

● 本サンプルプログラムは、起動後、USB ケーブルを用いて CPU ボードの USB ファンクションポートとホスト PC の USB ポートを接続して、ホスト PC の OS に仮想 COM ポートとして認識されるまで待機します。(*1)

ユーザはホスト PC 上でターミナルソフト(ハイパーターミナルなど)を起動し、COM ポートの設定を行って接続 を行ってください(38400bps、パリティなし、ストップビット 1bit)

ターミナルソフトを用いてホスト PC が CPU ボードと接続に成功した後、CPU ボードはホスト PC から任意のデー タを受信するまで定期的に以下のメッセージを送信します。

Please put any characters to start WM-RP-10 Sample Program.\r\n

ターミナルソフト接続後、CPU ボードはホスト PC から任意のデータを受信すると、設定した動作モードに従って 対象機器とのネットワーク接続処理を試みると同時に、以下のパターンでログ表示を行います。

アプリケーション開始時 : "\r\nApplication Start\r\n"

接続成功時(イベント処理開始時) : "\r\nConnected OK\r\n"

接続失敗時 : "\r\nConnected NG\r\n"

アプリケーション終了時

(イベント処理正常終了時)

: "\r\nApplication End (Event OK)\r\n"

アプリケーション終了時

(イベント処理異常終了時)

: "\r\nApplication End (Event NG)\r\n"

また、イベント処理内で送受信を行ったデータもそれぞれログとして表示します。

*1:USB ファンクション機能を使用するために、ユーザはご使用の PC にあらかじめ USB 仮想シリアルドライバ をインストールする必要があります。

USB 仮想シリアルドライバのインストール方法につきましては、

「AN178 USB 仮想シリアルドライバ インストールガイド」を参照してください。

(21)

● 接続処理が完了後、各動作モードに従って、以下のイベント処理を行います

WLAN Client モード

エンタープライズセキュリティ対応 WLAN Client モード

→ ソケット通信

(エコーバック)

(1 秒ごとに 1 バイトをサーバに送信(「0」から始まり「9」まで、その後「0」に戻る))

Wi-Fi Direct モード アクセスポイントモード

→ ソケット通信

(エコーバック)

・ BT スレーブモード

→ SPP 通信

(エコーバック)

・ BT マスターモード

→ SPP 通信

(エコーバック)

(1 秒ごとに 1 バイトをサーバに送信(「0」から始まり「9」まで、その後「0」に戻る))

・ BLE ペリフェラルモード

→ キャラクタリスティック(バッテリーサービス)を送信

・ BLE セントラルモード

→ キャラクタリスティック(バッテリーサービス)を受信

● 電源起動後の LED は以下のパターンで点灯/消灯を行います。

接続中 : 1000ms 周期で点滅

接続成功後(イベント処理中) : 点灯

接続失敗後 : 500ms 周期で点滅

アプリケーション終了後

(イベント処理後)

: 消灯

(22)

3.2.3 TCP/IP サンプルプログラムの設定パラメータ

本サンプルプログラムのうち、TCP/IP サンプルプログラムの各動作モードにおけるパラメータを以下にまとめます。

パラメータはユーザの無線・ネットワーク環境に従って適宜変更し、お使いください。

3.2.3.1 WLAN Client モードパラメータ

項目 初期値 プログラムでの定義(wlan_client_config.h)

周波数帯域 5GHz #define BAND RSI_BAND_5GHZ

SSID TEST #define SSID "TEST"

セキュリティの種類 WPA2 #define SECURITY_MODE 2

PSK(事前共有鍵) 12345678 #define AP_PSK "12345678"

IP アドレス 192.168.1.200 #define MY_IP_ADDR "192.168.1.200"

サブネットマスク 255.255.255.0 #define NETMASK "255.255.255.0"

ゲートウェイアドレス 192.168.1.253 #define GATEWAY "192.168.1.253"

項目 初期値 プログラムでの定義(wlan_tcp_config.h)

自身のソケット Port 50000 #define CLIENT_PORT_NUM 50000

接続先ソケット IP 192.168.1.201 #define SERVER_IP_ADDR "192.168.1.201"

接続先ソケット Port 50001 #define SERVER_PORT_NUM 50001

3.2.3.2 Wi-Fi Direct モードパラメータ

項目 初期値 プログラムでの定義(wlan_direct_config.h)

周波数帯域 5GHz #define BAND RSI_BAND_5GHZ

デバイス名 WMRP10 #define DEVICE_NAME "WMRP10"

チャネル 48 #define OPER_CH 48

SSID 接尾文字 Alpha #define SSID_POST_FIX "Alpha"

PSK(事前共有鍵) 12345678 #define WFD_PSK "12345678"

Group Owner インテント 値

16 #define GO_INTENT 16

接続先デバイス名 TargetDevice #define

TARGET_DEVICE_NAME

“TargetDevice”

IP アドレス(※) 192.168.1.201 #define MY_IP_ADDR "192.168.1.201"

サブネットマスク(※) 255.255.255.0 #define NETMASK "255.255.255.0"

ゲートウェイアドレス(※) 192.168.1.253 #define GATEWAY "192.168.1.253"

項目 初期値 プログラムでの定義(wlan_tcp_config.h)

自身のソケット Port 50001 #define SERVER_PORT_NUM 50001 接続可能なクライアント数 1 #define MAX_CONNECTION 1

※クライアント動作時のみ設定可。

オーナー動作時は以下のデフォルト値で動作します。

項目 初期値

IP アドレス 192.168.100.76

(23)

3.2.3.3 エンタープライズセキュリティ対応 WLAN Client モードパラメータ

項目 初期値 プログラムでの定義(wlan_eap_config.h)

周波数帯域 5GHz #define BAND RSI_BAND_5GHZ

SSID TEST #define SSID "TEST"

認証方式 EAP-PEAP

(MSCHAPV2)

#define METHOD

#define INNER

"PEAP"

"\"auth=MSCHAPV2\""

ID test-user #define IDENTITY "\"test-user\""

パスワード 12345678 #define EAP_PASS "\"12345678\""

IP アドレス 192.168.1.200 #define MY_IP_ADDR "192.168.1.200"

サブネットマスク 255.255.255.0 #define NETMASK "255.255.255.0"

ゲートウェイアドレス 192.168.1.253 #define GATEWAY "192.168.1.253"

項目 初期値 プログラムでの定義(wlan_tcp_config.h)

自身のソケット Port 50000 #define CLIENT_PORT_NUM 50000

接続先ソケット IP 192.168.1.201 #define SERVER_IP_ADDR "192.168.1.201"

接続先ソケット Port 50001 #define SERVER_PORT_NUM 50001

3.2.3.4 アクセスポイントモードパラメータ

項目 初期値 プログラムでの定義(wlan_ap_config.h)

周波数帯域 5GHz #define BAND RSI_BAND_5GHZ

SSID TEST #define SSID "TEST"

チャネル 48 #define OPER_CH 48

セキュリティの種類 WPA2 #define SECURITY_MODE 2

暗号化の種類 CCMP #define ENCRYP_MODE 2

PSK(事前共有鍵) 12345678 #define AP_PSK "12345678"

WLAN クライアント数 8 #define MAX_WIFI_CLIENTS 8

IP アドレス 192.168.1.201 #define MY_IP_ADDR "192.168.1.201"

サブネットマスク 255.255.255.0 #define NETMASK "255.255.255.0"

ゲートウェイアドレス 192.168.1.253 #define GATEWAY "192.168.1.253"

項目 初期値 プログラムでの定義(wlan_tcp_config.h)

自身のソケット Port 50001 #define SERVER_PORT_NUM 50001 接続可能なクライアント数 1 #define MAX_CONNECTION 1

(24)

3.2.3.5 BT スレーブモードパラメータ

項目 初期値 プログラムでの定義(bt_srave_config.h)

デバイス名 BT-Slave-AP-Sa mple

#define BT_SET_LOCAL_NAME "BT-Slave-AP-Sample"

PIN コード 1234 #define BT_PINCODE "1234"

3.2.3.6 BT マスターモードパラメータ

項目 初期値 プログラムでの定義(bt_master_config.h) デバイス名 BT-Master-AP-S

ample

#define BT_SET_LOCAL_NAME "BT-Master-AP-Sample"

接続相手のデバイス名 BT-Slave-AP-Sa mple

#define

BT_REMOTE_DEVICE_NAME "BT-Slave-AP-Sample"

PIN コード 1234 #define BT_PINCODE "1234"

3.2.3.7 BLE ペリフェラルモードパラメータ

項目 初期値 プログラムでの定義(ble_peripheral_config.h) デバイス名 BLE-Peri-AP-Sa

mple

#define

BLE_SET_LOCAL_NAME "BLE-Peri-AP-Sample"

ランダムアドレス 00:23:A7:11:

22:33

#define BLE_SET_RAND_ADDR "00:23:A7:11:22:33"

3.2.3.8 BLE セントラルモードパラメータ

項目 初期値 プログラムでの定義(ble_central_config.h) デバイス名 BLE-Central-AP

-Sample

#define

BLE_SET_LOCAL_NAME

"BLE-Central-AP-Sample

"

接続相手のデバイス名 BLE-Peri-AP-Sa mple

#define BLE_SET_RAND_ADDR "BLE-Peri-AP-Sample"

ランダムアドレス 00:23:A7:44:

55:66

#define

BLE_REMOTE_DEVICE_NAME "00:23:A7:44:55:66"

(25)

3.2.4 TCP/IP バイパスモードサンプルプログラムの設定パラメータ

本サンプルプログラムのうち、TCP/IP バイパスモードサンプルプログラムの各動作モードにおけるパラメータを以下にまとめ ます。

パラメータはユーザの無線・ネットワーク環境に従って適宜変更し、お使いください。

3.2.4.1 WLAN Client モードパラメータ

項目 初期値 プログラムでの定義(wlan_client_config.h)

周波数帯域 5GHz #define BAND RSI_BAND_5GHZ

SSID TEST #define SSID "TEST"

セキュリティの種類 WPA2 #define SECURITY_MODE 2

PSK(事前共有鍵) 12345678 #define AP_PSK "12345678"

項目 初期値 プログラムでの定義(ether_app.h)

IP アドレス 192.168.1.200 #define ETHERNET_MY_IPADDR (192.168.1.200) サブネットマスク 255.255.255.0 #define ETHERNET_MY_SUBNET (255.255.255.0) ゲートウェイアドレス 192.168.1.253 #define

ETHERNET_MY_GATEWAY

(192.168.1.253)

自身のソケット Port 50000 #define ETHERNET_MY_PORT (50000) 接続先ソケット IP 192.168.1.201 #define ETHERNET_DST_IPADDR (192.168.1.201) 接続先ソケット Port 50001 #define

ETHERNET_DST_PORTNO

(50001)

3.2.4.2 エンタープライズセキュリティ対応 WLAN Client モードパラメータ

項目 初期値 プログラムでの定義(wlan_eap_config.h)

周波数帯域 5GHz #define BAND RSI_BAND_5GHZ

SSID TEST #define SSID "TEST"

認証方式 EAP-PEAP

(MSCHAPV2)

#define METHOD

#define INNER

"PEAP"

"\"auth=MSCHAPV2\""

ID test-user #define IDENTITY "\"test-user\""

パスワード 12345678 #define EAP_PASS "\"12345678\""

項目 初期値 プログラムでの定義(ether_app.h)

IP アドレス 192.168.1.200 #define ETHERNET_MY_IPADDR (192.168.1.200) サブネットマスク 255.255.255.0 #define ETHERNET_MY_SUBNET (255.255.255.0) ゲートウェイアドレス 192.168.1.253 #define

ETHERNET_MY_GATEWAY

(192.168.1.253)

自身のソケット Port 50000 #define ETHERNET_MY_PORT (50000) 接続先ソケット IP 192.168.1.201 #define ETHERNET_DST_IPADDR (192.168.1.201) 接続先ソケット Port 50001 #define

ETHERNET_DST_PORTNO

(50001)

(26)

3.2.4.3 アクセスポイントモードパラメータ

項目 初期値 プログラムでの定義(wlan_ap_config.h)

周波数帯域 5GHz #define BAND RSI_BAND_5GHZ

SSID TEST #define SSID "TEST"

セキュリティの種類 WPA2 #define SECURITY_MODE 2

暗号化の種類 CCMP #define ENCRYP_MODE 2

PSK(事前共有鍵) 12345678 #define AP_PSK "12345678"

WLAN クライアント数 8 #define MAX_WIFI_CLIENTS 8

項目 初期値 プログラムでの定義(ether_app.h)

IP アドレス 192.168.1.200 #define ETHERNET_MY_IPADDR (192.168.1.200) サブネットマスク 255.255.255.0 #define ETHERNET_MY_SUBNET (255.255.255.0) ゲートウェイアドレス 192.168.1.253 #define

ETHERNET_MY_GATEWAY

(192.168.1.253)

自身のソケット Port 50000 #define ETHERNET_MY_PORT (50000) 接続先ソケット IP 192.168.1.201 #define ETHERNET_DST_IPADDR (192.168.1.201) 接続先ソケット Port 50001 #define

ETHERNET_DST_PORTNO

(50001)

(27)

3.2.4.4 BT スレーブモードパラメータ

項目 初期値 プログラムでの定義(bt_srave_config.h)

デバイス名 BT-Slave-AP-Sa mple

#define BT_SET_LOCAL_NAME "BT-Slave-AP-Sample"

PIN コード 1234 #define BT_PINCODE "1234"

3.2.4.5 BT マスターモードパラメータ

項目 初期値 プログラムでの定義(bt_master_config.h) デバイス名 BT-Master-AP-S

ample

#define BT_SET_LOCAL_NAME "BT-Master-AP-Sample"

接続相手のデバイス名 BT-Slave-AP-Sa mple

#define

BT_REMOTE_DEVICE_NAME "BT-Slave-AP-Sample"

PIN コード 1234 #define BT_PINCODE "1234"

3.2.4.6 BLE ペリフェラルモードパラメータ

項目 初期値 プログラムでの定義(ble_peripheral_config.h) デバイス名 BLE-Peri-AP-Sa

mple

#define

BLE_SET_LOCAL_NAME "BLE-Peri-AP-Sample"

ランダムアドレス 00:23:A7:11:2 2:33

#define BLE_SET_RAND_ADDR "00:23:A7:11:22:33"

3.2.4.7 BLE セントラルモードパラメータ

項目 初期値 プログラムでの定義(ble_central_config.h) デバイス名 BLE-Central-AP

-Sample

#define

BLE_SET_LOCAL_NAME

"BLE-Central-AP-Sample

"

接続相手のデバイス名 BLE-Peri-AP-Sa mple

#define BLE_SET_RAND_ADDR "BLE-Peri-AP-Sample"

ランダムアドレス 00:23:A7:44:5 5:66

#define

BLE_REMOTE_DEVICE_NAME "00:23:A7:44:55:66"

(28)

3.2.5 サンプルプログラムの動作フロー(初期化処理)

どの動作モードでも最初に行う共通の処理です。

処理のいずれかでエラーが起きると、その後の処理が正常に動作しません。

エラーが起きた際はボードと WM-RP-10 の接続などをご確認ください。

1. 周辺機能の初期化

タイマ、SPI、IRQ 割り込みの初期化を行います。

2. WM-RP-10 初期化コマンド

WM-RP-10 モジュールの初期化を行います。

3. Board Ready 待ち

WM-RP-10 モジュールの初期化後、Board Ready 状態になるまで待ちます。

4. Bootload 処理

Bootload 処理を行います。INTR 割り込み信号のアクティブはここで設定します。

電源投入

2.WM-RP-10 初期化コマンド

4.Bootload 処理 3.BoardReady 待ち

「WLAN モード」「BT モード」「BLE モード」

それぞれのフローへ進む huro- 1.周辺機能の初期化

(29)

3.2.6 サンプルプログラムの動作フロー(WLAN モード)

3.2.6.1 サンプルプログラムの動作フロー(WLAN モード初期化共通部)

BT, BLE 以外の動作モードを選択した際に、本項目の処理が行われます。

1. Set Operating Mode コマンド

WM-RP-10 モジュールの動作モードと TCP/IP の機能などを設定します。

・ oper_mode : 使用する動作モードを設定します。

・ feature_bit_map : セキュリティの有無、WPS 機能の有効/無効などについて設定します。

・ tcp_ip_fieature_bit_map : モジュール内蔵のプロトコルスタックを使用するか否かを設定します。内 蔵プロトコルスタックを使用しない場合は、ソフトウェアにてプロトコル スタックを用意する必要があります。

・ custom_feature_bit_map : DFS チャネル帯の有効/無効(Access Point モードでは DFS チャネルは使 用不可)、ext_custom_feature_bit_map パラメータの有効/無効などを 設定します。

・ ext_custom_feature_bit_map : アンテナ外部接続の使用/不使用などを設定します。

1.Set Operating Mode コマンド

3.Init コマンド

2.Band コマンド

「Client モード」「Wi-Fi Direct モード」

「Enterprise Security Client モード」「Access Point モード」

それぞれのフローへ進む 初期化フロー完了

(4.Antenna Selection コマンド)

(30)

2. Band コマンド

電波の使用帯域を設定します。

3. Init コマンド

Band コマンドの次に行う必要のある初期化処理です。

4. Antenna Selection コマンド

アンテナの外部接続の使用/不使用などを設定します。(デフォルトはオンチップアンテナ有効)

サンプルはオンチップアンテナを使用するため、本コマンドは省略しています。

3.2.6.2 サンプルプログラムの動作フロー(WLAN Client モード)

動作モードを「WLAN Client モード」を指定した場合に、本項目の処理が行われます。

WLAN モード 初期設定フロー

完了

1.Set Region コマンド

2.Scan コマンド

3.PSK コマンド

4.Join コマンド

5.Set IP Parameters コマンド

「TCP client」のフローへ進む

(31)

1. Set Region コマンド

仕向地を設定します。アメリカ、欧州、日本を設定できます。

2. Scan コマンド

アクセスポイントをスキャンします。スキャン対象をすべてのチャネルにしたり、限定したりすることができます。

3. PSK コマンド

アクセスポイントの PSK(事前共有鍵)を設定します。セキュリティなしの場合、このコマンドは必要ありません。

4. Join コマンド

アクセスポイントに接続します。アクセスポイントの SSID、セキュリティの種類、データレート、送信出力レベルを設 定します。

5. Set IP Parameters コマンド

IP アドレスを設定します。DHCP の使用/不使用を設定し、使用しない場合は IP アドレス、サブネットマスク、ゲート ウェイアドレスを設定します。

なお、本コマンドは TCP/IP サンプルプログラム時にのみ使用されます。TCP/IP バイパスモードサンプルプログラムで は、ユーザが用意したプロトコルスタックの仕様に従って別途 IP アドレス等を設定してください。

(32)

3.2.6.3 サンプルプログラムの動作フロー(Wi-Fi Direct モード)

動作モードを「Wi-Fi Direct モード」を指定した場合に、本項目の処理が行われます。

「TCP server」のフローへ進む 3.メッセージ

受信?

1.Set Region コマンド

2.Configure Wi-Fi Direct Peer-to-Peer Mode

コマンド

6.Join コマンド 4.Wi-Fi Direct のメッセージ?

5.デバイス名の 取得

Yes Yes

No No WLAN モード

初期設定フロー 完了

7.Set IP Parameters コマンド

(33)

1. Set Region コマンド

仕向地を設定します。アメリカ、欧州、日本を設定できます。

2. Configure Wi-Fi Direct Peer-to-Peer Mode コマンド

インテント値、デバイス名、チャネル、SSID 接尾文字、PSK(事前共有鍵)を設定します。

インテント値は 0 から 16 までの値を設定し、相手デバイスとのインテント値を比較し、大きいインテント値を設定した デバイス側が Group Owner になります。なお、インテント値を 16 にすると強制的に GO となります。

GO になると、Wi-Fi Direct に対応していないデバイスからはアクセスポイントとして検出され、SSID は「DIRECT-[ラ ンダムな 2 文字][SSID 接尾文字]」になります。

SSID 例:DIRECT-78Alpha

(「DIRECT-」は固定文字列。「78」はランダム文字列。「Alpha」はサンプルプログラムで指定できる SSID)

3. ネゴシエーション処理(メッセージ受信待ち)

対向する Wi-Fi Direct デバイスの情報を受信待ちします。

4. Wi-Fi Direct メッセージか判断

メッセージを受信した後、データ内容を確認し、以下のレスポンス ID であれば、Wi-Fi Direct デバイスからのメッセー ジとして判断し、接続準備へ進めます。

・RSI_RSP_P2P_CONNREQ(0x30)

・RSI_RESP_WFD_DEV(0x54)

5. デバイス名の取得

Wi-Fi Direct デバイスとの接続には相手のデバイス名を必要とします。そのため、受信した Wi-Fi Direct メッセージか らデバイス名を取得します。

6. Join コマンド

接続する SSID を指定し、相手のデバイスと接続を行います。

7. Set IP Parameters コマンド

IP アドレスを設定します。DHCP の使用/不使用等を設定し、DHCP を使用しない場合は指定の IP アドレス、サブネッ トマスク、ゲートウェイアドレスを設定します。

なお、本コマンドは TCP/IP サンプルプログラム時にのみ使用されます。TCP/IP バイパスモードサンプルプログラムで は、ユーザが用意したプロトコルスタックの仕様に従って別途 IP アドレス等を設定してください。

(34)

3.2.6.4 サンプルプログラムの動作フロー(エンタープライズセキュリティ対応 WLAN Client モード)

動作モードを「エンタープライズセキュリティ対応 WLAN Client モード」を指定した場合に、本項目の処理が行われます。

1. Set Region コマンド

仕向地を設定します。アメリカ、欧州、日本を設定できます。

2. Set EAP Configuration コマンド 認証方式、ID、パスワードを設定します。

3. Scan コマンド

アクセスポイントをスキャンします。スキャン対象をすべてのチャネルにしたり、限定したりすることができます。

4. Join コマンド

アクセスポイントに接続します。アクセスポイントの SSID、セキュリティの種類、データレート、送信出力レベルを設 定します。

WLAN モード 初期設定フロー

完了

1.Set Region コマンド

2.Set EAP Configuration コマンド

3.Scan コマンド

4.Join コマンド

5.Set IP Parameters コマンド

「TCP client」のフローへ進む

(35)

5. Set IP Parameters コマンド

IP アドレスを設定します。DHCP の使用/不使用を設定し、使用しない場合は IP アドレス、サブネットマスク、ゲート ウェイアドレスを設定します。

なお、本コマンドは TCP/IP サンプルプログラム時にのみ使用されます。TCP/IP バイパスモードサンプルプログラムで は、ユーザが用意したプロトコルスタックの仕様に従って別途 IP アドレス等を設定してください。

3.2.6.5 サンプルプログラムの動作フロー(アクセスポイントモード)

動作モードを「アクセスポイントモード」を指定した場合に、本項目の処理が行われます。

1. Set Region AP コマンド

仕向地を設定します。国、ルール数、チャネル、チャネル数、送信出力レベルを設定します。

2. Set IP Parameters コマンド

IP アドレスを設定します。このコマンドを使用するタイミングが他のモードとは異なりますのでご注意ください。

なお、本コマンドは TCP/IP サンプルプログラム時にのみ使用されます。TCP/IP バイパスモードサンプルプログラムで は、ユーザが用意したプロトコルスタックの仕様に従って別途 IP アドレス等を設定してください。

WLAN モード 初期設定フロー

完了

1.Set Region AP コマンド

2.Set IP Parameters コマンド

3.Configure AP Mode コマンド

4.Join コマンド

「TCP server」のフローへ進む

(36)

3. Configure AP Mode コマンド

チャネル、SSID、セキュリティの種類、暗号化の種類、PSK(事前共有鍵)、ビーコン間隔、DTIM 間隔、端末キープアラ イブ間隔、接続可能な WLAN クライアント数を設定します。

4. Join コマンド

アクセスポイントを生成します。SSID、データレート、送信出力レベルを設定します。SSID は Configure AP Mode コ マンドと同じ内容を設定してください。

(37)

3.2.6.6 サンプルプログラムの動作フロー(TCP Server 通信)

動作モードを「Wi-Fi Direct モード」「アクセスポイントモード」を指定した場合に、ネットワークへの参加成功後、本項目 の処理が行われます。

1. Open Socket コマンド

TCP サーバのソケットをオープンします。ポート番号、接続可能な TCP クライアント数を設定します。

なお、本コマンドは TCP/IP サンプルプログラム時にのみ使用されます。TCP/IP バイパスモードサンプルプログラムで は、ユーザが用意したプロトコルスタックの仕様に従ってソケットをオープンしてください。

2. データ受信待ち

受信するフレームのうち、レスポンス ID が RSI_RSP_DATA_RECEIVE(0x00)であるものがデータです。サンプルプロ グラム中の API「wmrp10_rsi_data()」でデータ受信を待つことができます。

3. Send Data コマンド

データを送信します。ディスクリプタ、送信データ、データサイズ、IP バージョンを設定します。

サンプルではバージョンは IPv4 とし、受信したデータを設定することによりエコーバックを行っています。

なお、本コマンドは TCP/IP サンプルプログラムと TCP/IP バイパスモードサンプルプログラムでは、WM-RP-10 に送信 するデータは異なりますのでご注意ください。

Join コマンド 完了

2.データ受信?

Yes

3.Send Data コマンド

No 1.Open Socket

コマンド

(38)

3.2.6.7 サンプルプログラムの動作フロー(TCP Client 通信)

動作モードを「WLAN Client モード」「エンタープライズセキュリティ対応 WLAN Client モード」を指定した場合に、ネッ トワークへの参加成功後、本項目の処理が行われます。

1. Open Socket コマンド

TCP クライアントのソケットをオープンします。ポート番号、接続先 IP アドレス、接続先ポート番号を設定します。

なお、本コマンドは TCP/IP サンプルプログラム時にのみ使用されます。TCP/IP バイパスモードサンプルプログラムで は、ユーザが用意したプロトコルスタックの仕様に従ってソケットをオープンしてください。

2. Send Data コマンド

1 秒経過するたびにデータを送信します。ディスクリプタ、送信データ、データサイズ、IP バージョンを設定します。

サンプルではバージョンは IPv4 とし、1 秒経過時に更新したデータ、1 バイトサイズを設定しています。

なお、本コマンドは TCP/IP サンプルプログラムと TCP/IP バイパスモードサンプルプログラムでは、WM-RP-10 に送信 するデータは異なりますのでご注意ください。

3. データ受信待ち

受信するフレームのうち、レスポンス ID が RSI_RSP_DATA_RECEIVE(0x00)であるものがデータです。サンプルプロ グラム中の API「wmrp10_rsi_data()」でデータ受信を待つことができます。

Join コマンド 完了

1 秒経過?

Yes

2.Send Data コマンド

No 1.Open Socket

コマンド

3.データ受信?

Yes

No

(39)

3.2.7 サンプルプログラムの動作フロー(BT モード)

3.2.7.1 サンプルプログラムの動作フロー(BT モード初期化共通部)

動作モードに「BT スレーブモード」「BT マスターモード」を選択した際に、本項目の処理が行われます。

1. Set Operating Mode コマンド

WM-RP-10 モジュールの動作モードと TCP/IP の機能などを設定します。

WM-RP-10 モジュールの動作モードでは WLAN and BT coexistence mode を選択してください。

2. Set Local name コマンド デバイス名を設定します。

3. Set Profile Mode コマンド SPP プロファイルを設定します。

1.Set Operating Mode コマンド

3.Set Profile Mode コマンド 2.Set Local name

コマンド

「BT Slave モード」「BT Master モード」それぞれの処理へ進む 初期化フロー完了

(40)

3.2.7.2 サンプルプログラムの動作フロー(BT スレーブモード)

動作モードに「BT スレーブモード」を選択した際に、本項目の処理が行われます。

BT モード 初期設定フロー

完了

1.Set Connectability mode コマンド

2.Set Device Discovery mode コマンド

イベント判断

User pincode request イベント

User linkkey save イベント

User linkkey request イベント 3.イベント

待ち

接続完了?

Auth complete イベント

Yes

No

4.SPP イベント 待ち

SPP

受信?

5.SPP Transfer コマンド

No Yes

(41)

1. Set Connectability mode コマンド BT 接続を許可します。

2. Set Device Discovery mode コマンド

WM-RP-10 を被検索状態(スレーブモード)に設定します。

このコマンドを実行することにより Master から検索されるようになります。

limited discovering mode はタイムアウト付き、enable discovering mode はタイムアウトなしです。

3. イベント待ち・イベント判断

Master からの接続要求がイベントとして通知されます。イベントは Master の要求する接続手順により異なるため、Slave は受け取ったイベントから接続手順を判断し適切な処理を行う必要があります。

・ User pincode request イベント : PIN コードの入力要求をされたときに発生するイベントです。

これを受信することで Pincode Request Reply コマンドを実行する必 要があります。

接続を要求する Master と同じ PIN コードを設定してください。

あるいは、Master で PIN コードの入力が必要になった場合はこの値を 設定してください。

・ User linkkey save イベント : 接続完了通知を受信した時に発生するイベントです。

再接続に使用するリンクキーとともにこのイベントが通知されます。

本サンプルではリンクキーをスタック領域に保存していますが、不揮 発性メモリに保存すれば、電源 OFF、ON 後の次回接続時の Linkkey Reply で positive reply の設定が可能となります。

・ User linkkey request イベント : リンクキーの入力要求をされたときに発生するイベントです。

過去に接続したことがあり、再接続する場合に通知されることがある 場合、Linkkey Reply コマンドを実行してください。

前回接続したときのリンクキーが保存してある場合は positive reply を設定し、保存していない場合は negative reply を設定します。

・ Auth complete イベント : 接続完了通知を受信した時に発生するイベントです。

4. SPP イベント待ち

SPP を用いて Master からデータの受信待ちを行います。

5. SPP Transfer コマンド

SPP を用いて Master から受信したデータを送信します。

(42)

3.2.7.3 サンプルプログラムの動作フロー(BT マスターモード)

動作モードに「BT マスターモード」を選択した際に、本項目の処理が行われます。

続きは次のページ BT モード 初期設定フロー

完了 1.Inquiry コマンド

イベント判断

Inquiry response イベント Inquiry complete イベント 2.イベント待ち

Inquiry 完了?

イベント判断 3.Bond コマンド

Yes

No

4.イベント待ち

User linkkey request イベント

Auth complete イベント User linkkey

save イベント User pincode

request イベント

接続完了? No Yes

(43)

1. Inquiry コマンド

BT デバイスを検索します。WLAN のスキャンに相当するコマンドです。

2. イベント待ち

BT デバイスの検索結果はイベントとして通知されます。そのイベントを待ちます。

・ Inquiry response イベント : BT デバイスの検索結果を受信した時に発生するイベントです。

目的とするデバイスの情報を検索結果から取得してください。

・ Inquiry complete イベント : BT デバイスの検索が完了した時に発生するイベントです。

3. Bond コマンド

BT デバイスに接続します。

ただし、あくまで接続の最初の手続きであり、このコマンドが成功しても接続が完了したわけではありません。

また、Bond コマンドが成功すると Bond Response イベントが通知されますが、サンプルプログラムでは Bond Response イベントにて特別な処理は行いません。

1 秒経過?

Yes

6.SPP Transfer コマンド

No 5.SPP Connect

コマンド

SPP

受信?

Yes

No 前のページの続き

7.SPP イベント 待ち

(44)

4. イベント待ち

・ User linkkey request イベント : BT デバイスとの接続に必要とするリンクキーの入力要求されたとき に発生するイベントです。

Linkkey Reply コマンドを実行してください。

過去に接続したことがあり、そのときのリンクキーを使う場合は

「positive reply」の応答をし、リンクキーがない場合は「negative reply」の応答をします。

・ User pincode request イベント : PIN コードの入力要求をされたときに発生するイベントです。

Pincode Request Reply コマンドを実行してください

・ User linkkey save イベント : PIN コードを入力した接続が成功した場合、再接続に使用するリンク キーを通知されると共に発生するイベントです。

・ Auth complete イベント : 接続完了通知を受信した時に発生するイベントです。

5. SPP Connect コマンド

SPP 通信の接続用コマンドです。接続相手のアドレスを指定して接続します。

6. SPP Transfer コマンド

1 秒ごと SPP を用いて Master から 1 バイトのデータを送信します。

7. SPP イベント待ち

SPP を用いて Master からデータの受信待ちを行います。

データを受信していた場合は、SPP を用いて受信したデータを送信します。

(45)

3.2.8 サンプルプログラムの動作フロー(BLE モード)

3.2.8.1 サンプルプログラムの動作フロー(BLE モード初期化共通部)

動作モードに「BLE ペリフェラルモード」「BLE セントラルモード」を選択した際に、本項目の処理が行われます。

1. Set Operating Mode コマンド

WM-RP-10 モジュールの動作モードと TCP/IP の機能などを設定します。

WM-RP-10 モジュールの動作モードでは WLAN and BTLE coexistence mode を選択します。

2. Set Local name コマンド デバイス名を設定します。

3. BLE Set Random Address コマンド 任意のランダムアドレスを設定します。

1.Set Operating Mode コマンド

3.BLE Set Random Address コマンド

2.Set Local name コマンド

「BLE Peripheral モード」「BLE Central モード」それぞれの処理へ進む 初期化フロー完了

(46)

3.2.8.2 サンプルプログラムの動作フロー(BLE ペリフェラルモード)

動作モードに「BLE ペリフェラルモード」を選択した際に、本項目の処理が行われます。

1. Add GATT Service Record コマンド 使用するサービスを設定します。

Bluetooth SIG であらかじめ定義されたサービスを使用するか、独自サービスを作成することができます。サンプルでは あらかじめ定義された「バッテリーサービス(Battery Service)」を設定しています。

※バッテリーサービスとは Bluetooth SIG であらかじめ定義されたサービスです。

バッテリー値の通信を想定したサービスですが、データ構造が単純で分かりやすいという特徴があります。

1.Add GATT Service Record コマンド

3.BLE Set Advertise Data コマンド

2.Add Attribute Record コマンド BLE モード 初期設定フロー

完了

4.Advertise Local Device コマンド

1 秒経過?

5.バッテリー値の更新

6.Set Local Attribute Value コマンド

Yes

No

(47)

2. Add Attribute Record コマンド

サービスのキャラクタリスティックを設定します。

キャラクタリスティックとはサービスを構成する要素のようなものであり、これも Bluetooth SIG であらかじめ定義さ れています。

まずキャラクタリスティックを宣言し、次に Read/Write 等の属性と値を設定します。

サンプルでは、バッテリー値(Battery Level)を宣言し、Read only、値は 100 を設定しています。

3. BLE Set Advertise Data コマンド アドバタイジングデータを設定します。

構成は Bluetooth SIG の Generic Access Profile(GAP)で定義されています。

4. Advertise Local Device コマンド アドバタイジングをします。

5. 1 秒経過後、バッテリー値の更新

1 秒経過するたびにバッテリー値を更新します。

6. Set Local Attribute Value コマンド

バッテリー値のキャラクタリスティックを設定します。

個々のキャラクタリスティックはハンドルで指定します。「2.Add Attribute Record コマンド」でバッテリー値のキャ ラクタリスティックを設定したときと同じハンドルを指定します。

(48)

3.2.8.3 サンプルプログラムの動作フロー(BLE セントラルモード)

動作モードに「BLE セントラルモード」を選択した際に、本項目の処理が行われます。

1.BLE Scan コマンド

5.Query Device State コマンド BLE モード 初期設定フロー

完了

目的のデバイス?

2.イベント待ち

4.BLE Connect コマンド

Connected?

6.Query Profile コマンド

7.Read Characteristic Value by UUID コマンド

Yes Yes

No

No

終了

3.BLE デバイスのアドレス取得

(49)

1. BLE Scan コマンド

BLE デバイスをスキャンします。

2. イベント待ち

Scan Response イベントを待ちます。目的とするデバイスのレスポンスが通知されるまで待ち続けます。

サンプルでは「BLE-Peri-AP-Sample」というデバイス名のレスポンスを待つようにしています。

3. BLE デバイスのアドレス取得

目的とするデバイスのアドレスを取得します。

また、BLE Scan コマンドを再発行し、Scan 動作を停止させます。

4. BLE Connect コマンド BLE デバイスに接続します。

5. Query Device State コマンド

デバイスの状態を取得します。接続状態になるまで取得を続けます。

6. Query Profile コマンド

サービスのハンドルを取得します。サービスの UUID を設定します。

サンプルはバッテリーサービスの UUID 0x180F(GATT_SERVICE_BATTERY でマクロ定義)を設定し、ハンドルを取得 しています。

7. Read Characteristic Value by UUID コマンド キャラクタリスティックを取得します。

キャラクタリスティックの UUID とハンドルを設定します。

サンプルはバッテリー値の UUID 0x2A19(GATT_CHAR_BATTERY_LEVEL でマクロ定義)と「6.Query Profile コマン ド」で取得したハンドルを設定し、バッテリー値を取得しています。

Fig 4-4  E1 エミュレータ/E2 エミュレータ Lite デバッグ時のボード設定 Fig 4-2  Flash 書き込み(USB ブートモード)時のボード設定

参照

関連したドキュメント

Let C be a co-accessible category with weak limits, then the objects of the free 1 -exact completion of C are exactly the weakly representable functors from C

“rough” kernels. For further details, we refer the reader to [21]. Here we note one particular application.. Here we consider two important results: the multiplier theorems

If the category P (C) of small presheaves on C is finitely complete, then its K-canonical topology is K-ary and induces the trivial K-ary topology on C, while every small presheaf

In their paper [10], Kumjian, Pask, Raeburn and Renault associated to each locally finite directed graph E a locally compact groupoid G, and showed that its groupoid C ∗ -algebra C

Since tournaments and undirected self-complementary circulants are particular cases of directed self-complementary circulants (hence in general C sd (n) ≥ C t (n ) + C su (n)) ,

The information herein is provided “as−is” and onsemi makes no warranty, representation or guarantee regarding the accuracy of the information, product features,

過少申告加算税の金額は、税関から調査通知を受けた日の翌日以

現行の HDTV デジタル放送では 4:2:0 が採用されていること、また、 Main 10 プロファイルおよ び Main プロファイルは Y′C′ B C′ R 4:2:0 のみをサポートしていることから、 Y′C′ B