TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf ·...

25
1 TCP_BP3591 の説明 V002 2014/03/28 ROHM 社製 WIFi モジュール BP3591 を使用して、無線 LAN により TCP/IP 通信を行うプログラムです。 簡単な文字列によるコマンド(例: LED0 ON )を受信して LED の ON/OFF を行います。 受信したデータはエコーバックされます。 無料の開発ツール Atollic TrueSTUDIO for ARM Lite (試用版) で作成したプロジェクトです。 プログラムの開始番地は 0x08000000 です。デバッグが可能です。 目次 1. CPU 基板と WiFi モジュール BP3591 との接続 .............................................................................................................................................................................. 2 1.1. 「飛石伝ひ CPU 基板」の場合 ....................................................................................................................................................................................................... 2 1.2. 「飛石伝ひ I/F 基板」の場合 .......................................................................................................................................................................................................... 3 1.3. STM32F4 Discovery 基板の場合.............................................................................................................................................................................................. 4 2. TCP/IP 通信のための Network 構成(ローカル接続)................................................................................................................................................................... 5 3. プログラム実行時の動作と動作確認 ..................................................................................................................................................................................................... 6 3.1. AccessTCP_Local プログラムで試験 ......................................................................................................................................................................................... 6 1) AccessTCP_Local プログラムの起動........................................................................................................................................................................................... 6 2) エコーバック............................................................................................................................................................................................................................................... 7 3) LED ON/OFF............................................................................................................................................................................................................................................. 7 3.2. Tera Term で試験............................................................................................................................................................................................................................... 8 1) Tera Term の起動 .................................................................................................................................................................................................................................. 8 2) IP アドレスの登録 ..................................................................................................................................................................................................................................... 8 3) TCP/IP 接続...........................................................................................................................................................................................................................................10 4) エコーバック............................................................................................................................................................................................................................................11 5) コマンド送信による LED の ON/OFF ..........................................................................................................................................................................................12 4. プロジェクトの構成.........................................................................................................................................................................................................................................13 4.1. 追加したソースフォルダ................................................................................................................................................................................................................14 4.2. フォルダ main....................................................................................................................................................................................................................................15 5. Network パラメータの設定......................................................................................................................................................................................................................16 5.1. WiFi ルータの設定 (NetworkParam.h) .................................................................................................................................................................................16 5.2. TCP/IP の Port 番号の設定 (NetworkParam.h) .............................................................................................................................................................16 5.3. TCP/IP のアドレスの設定 (NetworkParam.c)..................................................................................................................................................................16 6. TCP_BP3591 のプログラムの構造......................................................................................................................................................................................................17 6.1. 処理番号を使用したプログラムのフロー ..............................................................................................................................................................................17 6.2. 処理番号を使用したプログラムの形......................................................................................................................................................................................18 7. Network 処理モジュールの概要 ..........................................................................................................................................................................................................19 7.1.ソースフォルダ Network の下のファイル..............................................................................................................................................................................19 7.2. ソースフォルダ BP3591 ...............................................................................................................................................................................................................20

Transcript of TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf ·...

Page 1: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

1

TCP_BP3591の説明 V002 2014/03/28

ROHM社製WIFiモジュールBP3591を使用して、無線LANによりTCP/IP通信を行うプログラムです。

簡単な文字列によるコマンド(例: “LED0 ON”)を受信して LEDのON/OFFを行います。

受信したデータはエコーバックされます。

無料の開発ツール Atollic TrueSTUDIO for ARM Lite (試用版) で作成したプロジェクトです。

プログラムの開始番地は 0x08000000 です。デバッグが可能です。

目次

1. CPU基板とWiFiモジュールBP3591との接続 .............................................................................................................................................................................. 2

1.1. 「飛石伝ひCPU基板」の場合 ....................................................................................................................................................................................................... 2

1.2. 「飛石伝ひ I/F基板」の場合 .......................................................................................................................................................................................................... 3

1.3. STM32F4 Discovery基板の場合 .............................................................................................................................................................................................. 4

2. TCP/IP通信のための Network構成(ローカル接続) ................................................................................................................................................................... 5

3. プログラム実行時の動作と動作確認 ..................................................................................................................................................................................................... 6

3.1. AccessTCP_Localプログラムで試験......................................................................................................................................................................................... 6

1) AccessTCP_Localプログラムの起動 ........................................................................................................................................................................................... 6

2) エコーバック ............................................................................................................................................................................................................................................... 7

3) LED ON/OFF ............................................................................................................................................................................................................................................. 7

3.2. Tera Termで試験 ............................................................................................................................................................................................................................... 8

1) Tera Termの起動 .................................................................................................................................................................................................................................. 8

2) IPアドレスの登録 ..................................................................................................................................................................................................................................... 8

3) TCP/IP接続 ........................................................................................................................................................................................................................................... 10

4) エコーバック ............................................................................................................................................................................................................................................ 11

5) コマンド送信による LEDのON/OFF .......................................................................................................................................................................................... 12

4. プロジェクトの構成 ......................................................................................................................................................................................................................................... 13

4.1. 追加したソースフォルダ ................................................................................................................................................................................................................ 14

4.2. フォルダ main .................................................................................................................................................................................................................................... 15

5. Networkパラメータの設定 ...................................................................................................................................................................................................................... 16

5.1. WiFiルータの設定 (NetworkParam.h) ................................................................................................................................................................................. 16

5.2. TCP/IPの Port番号の設定 (NetworkParam.h) ............................................................................................................................................................. 16

5.3. TCP/IPのアドレスの設定 (NetworkParam.c) .................................................................................................................................................................. 16

6. TCP_BP3591のプログラムの構造 ...................................................................................................................................................................................................... 17

6.1. 処理番号を使用したプログラムのフロー .............................................................................................................................................................................. 17

6.2. 処理番号を使用したプログラムの形 ...................................................................................................................................................................................... 18

7. Network処理モジュールの概要 .......................................................................................................................................................................................................... 19

7.1.ソースフォルダ Networkの下のファイル .............................................................................................................................................................................. 19

7.2. ソースフォルダBP3591 ............................................................................................................................................................................................................... 20

Page 2: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

2

1. CPU基板とWiFiモジュールBP3591との接続

WiFiモジュールBP3591をアクセスするために UART(非同期シリアル通信)を使用します。

1.1. 「飛石伝ひCPU基板」の場合

1) ROHM株式会社製のWiFiモジュールBP3591と接続用基板 BP359Dとのセット

表1.1. 1) BP359Dと「飛石伝ひCPU基板」との接続信号

CN1

番号 BP359Dの信号名 CPU信号名 CPU機能名 コネクタピン番号 備考

1 GND ----- ----- -----

2 GPIO0 ----- ----- -----

3 GPIO1 ----- ----- -----

4 VCC ----- ----- +3.3V

5 VCC ----- ----- +3.3V

6 BOOT_SEL1 ----- ----- ----- 10kの抵抗でプルアップ

7 BOOT_SEL0 ----- ----- -----

8 FLASH_SEL ----- ----- -----

9 GND ----- ----- -----

CN2

番号 BP359Dの信号名 CPU信号名 CPU機能名 コネクタピン番号 備考

1 GND ----- ----- -----

2 SDDATA1 ----- ----- -----

3 SDDATA0 ----- ----- -----

4 UART_RxD PB10 UART3_TX P2-20

5 UART_TxD PB11 UART3_RX P2-19

6 GPIO6 ----- ----- -----

7 PRST PA1 I/O P2-41 Network_Reset

8 GPIO2 ----- ----- ----- Status_LED

9 GND ----- ----- -----

2) TMD3591ADとの接続

表1.1. 2) TMD3591ADと「飛石伝ひCPU基板」との接続信号

番号 TMD3591ADの信号名 CPU信号名 CPU機能名 コネクタピン番号 備考

1 VCC ----- ----- ----- +3.3V

2 VCC ----- ----- ----- +3.3V

3 PRST PA1 I/O P2-41 Network_Reset

4 GPIO0 ----- ----- -----

5 GPIO1 ----- ----- -----

6 GPIO2 ----- ----- ----- Status_LED

7 GPIO6 ----- ----- -----

8 M_ANA ----- ----- -----

9 FLASH_SEL ----- ----- -----

10 BOOT_SEL_0 ----- ----- -----

11 UART_RXD PB10 USART3_TX P2-20

12 UART_TXD PB11 USART3_RX P2-19

13 SDATA1 ----- ----- -----

14 SDATA0 ----- ----- -----

15 GND ----- ----- -----

16 GND ----- ----- -----

Status LEDの接続は 「飛石伝ひ I/F基板」 のページの I/F基板の回路図を参考にしてください。

Page 3: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

3

1.2. 「飛石伝ひ I/F基板」の場合

1) ROHM株式会社製のWiFiモジュールBP3591と接続用基板 BP359Dとのセット

I/F02基板のCN1, CN2に実装することができます。

2) TMD3591ADとの接続

I/F02基板の P10に実装することができます。

Page 4: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

4

1.3. STM32F4 Discovery基板の場合

1) ROHM株式会社製のWiFiモジュールBP3591と接続用基板 BP359Dとのセット

表1.2. 1) BP359Dと STM32F4 Discovery基板との接続信号

CN1

番号 BP359Dの信号名 CPU信号名 CPU機能名 コネクタピン番号 備考

1 GND ----- ----- -----

2 GPIO0 ----- ----- -----

3 GPIO1 ----- ----- -----

4 VCC ----- ----- +3.3V

5 VCC ----- ----- +3.3V

6 BOOT_SEL1 ----- ----- ----- 10kの抵抗でプルアップ

7 BOOT_SEL0 ----- ----- -----

8 FLASH_SEL ----- ----- -----

9 GND ----- ----- -----

CN2

番号 BP359Dの信号名 CPU信号名 CPU機能名 コネクタピン番号 備考

1 GND ----- ----- -----

2 SDDATA1 ----- ----- -----

3 SDDATA0 ----- ----- -----

4 UART_RxD PB10 UART3_TX P1-34

5 UART_TxD PB11 UART3_RX P1-35

6 GPIO6 ----- ----- -----

7 PRST PA1 I/O P1-11 Network_Reset

8 GPIO2 ----- ----- ----- Status_LED

9 GND ----- ----- -----

2) TMD3591ADとの接続

表1.2. 2) TMD3591ADと STM32F4 Discovery基板との接続信号

番号 TMD3591ADの信号名 CPU信号名 CPU機能名 コネクタピン番号 備考

1 VCC ----- ----- ----- +3.3V

2 VCC ----- ----- ----- +3.3V

3 PRST PA1 I/O P1-11 Network_Reset

4 GPIO0 ----- ----- -----

5 GPIO1 ----- ----- -----

6 GPIO2 ----- ----- ----- Status_LED

7 GPIO6 ----- ----- -----

8 M_ANA ----- ----- -----

9 FLASH_SEL ----- ----- -----

10 BOOT_SEL_0 ----- ----- -----

11 UART_RXD PB10 USART3_TX P1-34

12 UART_TXD PB11 USART3_RX P1-35

13 SDATA1 ----- ----- -----

14 SDATA0 ----- ----- -----

15 GND ----- ----- -----

16 GND ----- ----- -----

Status LEDの接続は 「飛石伝ひ I/F基板」 のページの I/F基板の回路図を参考にしてください。

Page 5: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

5

2. TCP/IP通信のためのNetwork構成(ローカル接続)

ルータと PC および CPU基板の接続は次のようになります。

ルータ

WiFiモジュール

BP3591

CPU基板

UART

PC

Page 6: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

6

3. プログラム実行時の動作と動作確認

1) プログラムを実行すると基板上の LED LD4(緑)が 1秒点灯、2秒消灯 で点滅します。

2) プログラムの動作が開始してから、BP3591とWiFiルータの接続が確立するのに、約20秒程度かかります。

BP3591のGPIO2にStatus LEDを接続している場合、接続確立中は1秒間隔で点滅します。接続が確立すると点灯した

ままになります。

ただし、コンフィグレーションが行われなかった場合など、最初から点灯したままなので注意が必要です。

20秒近く点滅した後、点灯したら接続が確立したと判断するとよいと思います。

TCP通信プログラムAccessTCP_Local または Tera Termを使用してTCP/IP通信の確認を行います。

AccessTCP_LocalはMicrosoft Visual C# 2010 Expressで作成したプログラムです。プロジェクトを公開していますので

興味のある方はご覧ください。インストールして使用する方法も説明しています。(TCP_Serverのページ)

3.1. AccessTCP_Localプログラムで試験

1) AccessTCP_Localプログラムの起動

AccessTCP_Localプログラムを起動すると、次のダイアログが表示されます。

IP Address と TCP Port Number を環境に合わせて指定してください。

Page 7: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

7

2) エコーバック

この例では、送信データに ”How are you?” と入力して、[送信] ボタンをクリックした結果、エコーバックされて受信の

部分に表示されています。

3) LED ON/OFF

a) STM32F4 Discovery基板の場合 : LED0 : LD5(赤) または LED1 : LD6(青) をON/OFFします。

b) 「飛石伝ひCPU基板」の場合 : Port1-bit6 または Port1-bit7 を ON/OFFします。

この例では “LED1 ON” を送信しました。

a) STM32F4 Discovery基板で実行している場合は、LD6(青)の LEDが点灯します。

b) 「飛石伝ひCPU基板」で実行している場合は、Port1-bit7 がONします。

Page 8: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

8

3.2. Tera Termで試験

1) Tera Termの起動

以前の設定が Serial portを使用に設定してあったので、”Cannot open COM4” のメッセージが表示されました。

[OK] ボタンをクリックします。

2) IPアドレスの登録

メニューの {Setup} -> {TCP/IP} をクリックすると次ページのダイアログが開きます。

Page 9: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

9

ルータに設定したDHCPの静的割り当てアドレスを指定して [Add] ボタンをクリックします。

ここに追加されました。[OK] ボタンをクリックしてダイアログを閉じます。

次ページに続く

Page 10: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

10

3) TCP/IP接続

メニューの {File} -> {New connection…} をクリックします。次のダイアログが開きます。

TCP/IPのラジオボタンを選択して、TCP port#: に10000を設定します。10000はTCP_Serverのプログラムの

NetParam.hで指定している番号です。

[OK] ボタンをクリックしてください。

正常に接続されると次ページの画面になります。接続できないときはエラーメッセージが表示されます。

Page 11: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

11

4) エコーバック

ABCDと PCのキーを押すとエコーバックされて画面に表示されます。

メモ帳で “LED0 ON”と書いたファイルを作成して LED0_ON.txt という名前で保存します。

メニューの {File} -> {Send file…} をクリックして LED0_ON.txt を選択して送信すると、GPIO PD14 に対応した LEDが

点灯します。

次ページにその操作を示します。

Page 12: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

12

5) コマンド送信による LEDのON/OFF

メニューの {File} -> {Send file…} をクリックすると次のダイアログが開きます。

“LED0 ON” が記述されたファイル LED0_ON.txt を選択して、[開く(O)] ボタンをクリックします。

次ページに続く

Page 13: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

13

送信した “LED0 ON” がエコーバックされてCPU基板側では対応する LEDが点灯します。

LED0_OFF.txt を送信すると、LEDが消灯します。

4. プロジェクトの構成

Work_TCP_BP3591プロジェクトを開いて、左側のプロジェクト・エクスプローラーを開いた状態です。

Page 14: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

14

4.1. 追加したソースフォルダ

1) CommonModules

共通に使用するモジュールを記述してあります。

時間待ち、文字列操作 などの処理を記述しています。

2) CommunicateHOST

TCP/IP通信で受信した “LED0 ON” などの文字列コマンドを処理します。

3) Handles

a) HandleTimer2

タイマ割り込みの初期化を記述しています。

b) HandleUART

UART(非同期シリアル通信)の初期化を行います。

4) Network

TCP/IP通信の処理を記述しています。

a) Network.h Network.c

TCP/IP通信処理の一番上位のモジュールです。BP3591のコンフィグレーションを行った後、TCP/IP通信を行います。

b) NetParam

WiFiルータに接続するためのパラメータと IPアドレスなどを設定します。

c) NetUtilities

文字列の IPアドレスを 32bitのデータに変換する処理や、32bitデータを文字列の IPアドレスに変換するなど、

Network処理に使用する共通処理を記述してあります。

5) BP3591 : フォルダ Networkの下にフォルダBP3591があります。

a) HandleBP3591

BP3591のコミュニケーションモードを使用するためのWIDの書き込み、読み込みを行います。

b) CommunicateBP3591

UARTによりBP3591と送受信する処理を行います。

c) ConfigBP3591

BP3591をコンフィグレーションします。

d) AccessBP3591

受信データからフレームデータを取り出し、種類により処理します。

TCP Serverとしての処理を行い、受信したコマンドデータの処理を行います。

6) UserPrograms

Status LED, LED0, LED1 のポート初期化と Status LEDの点滅処理を記述しています。

Page 15: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

15

4.2. フォルダ main

1) main.c

a) mainモジュール

プログラム開始のモジュールです。

I/Oの初期化、Networkの初期化 および TCP/IP通信処理を呼び出しています。

2) stm32f4xx_it.

タイマ割り込みと UARTの割り込み処理を記述しています。

Page 16: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

16

5. Networkパラメータの設定

本プログラムサンプルではWiFiルータの SSIDやアクセスのための IPアドレスなどをプログラム埋め込みにしているため、

使用環境に応じて、設定部分を変更する必要があります。

5.1. WiFiルータの設定 (NetworkParam.h)

NetworkParam.h内の下記の部分を使用するWiFiルータに合わせて書き換えてください。

項目は上から、SSID, SecurityKey, PinCode の3項目です。

//------------------------------------------------------

// WiFiルータの設定

//------------------------------------------------------

// 実際の環境に合わせて書き換えてください。

//------------------------------------------------------

#define defSSID "URoadWPS-35F14B"

#define defSecurityKEY "01234567"

#define defPinCode "76543210"

//------------------------------------------------------

5.2. TCP/IPのPort番号の設定 (NetworkParam.h)

NetworkParam.h内の下記の部分のTCP/IPにアクセスするための Port番号を実際に使用する番号に変更してください。

//------------------------------------------------------

//Port番号

//------------------------------------------------------

// 実際の環境に合わせて書き換えてください。

//------------------------------------------------------

#define defTCP_ServerPort 10000

#define defHTTP_ServerPort 10001

//------------------------------------------------------

5.3. TCP/IPのアドレスの設定 (NetworkParam.c)

NetworkParam.c内の下記の部分のTCP/IPにアクセスするためのアドレスを実際に使用するアドレスに変更してください。

上から、IPアドレス、 Maskアドレス、 Gatewayアドレス です。

//----------------------------------------------------------------------

// IP Addressの設定

//----------------------------------------------------------------------

// 実際の環境に合わせて書き換えてください。

//----------------------------------------------------------------------

uint8_t GLB_uchrIP[4] = {192, 168, 100, 109}; //Source IP Address

uint8_t GLB_uchrMaskIP[4] = {0xFF, 0xFF, 0xFF, 0x00}; //IP Address Mask

uint8_t GLB_uchrGatewayIP[4] = {192, 168, 100, 254}; //Gateway IP Address

//----------------------------------------------------------------------

Page 17: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

17

6. TCP_BP3591のプログラムの構造

TCP_BP3591のプログラムは処理番号を使用して、順次処理を行う構造をとっています。

今後、紹介する HTTP Server, Mail送信、 DDNS処理 は全てこの構造になっています。

6.1. 処理番号を使用したプログラムのフロー

処理番号を使用したプログラムの概念的なフローを以下に示します。

この例ではモジュールが 処理番号0、 処理番号1、 処理番号2 の3個の処理で構成されています。

処理番号0 -> 処理番号1 -> 処理番号2 -> 処理番号0 -> ...と処理番号0 ~ 処理番号2を繰り返します。

また、戻り値は処理中は -1、 最後の処理番号の処理で正常終了時 0、エラーが発生した場合 NG : 1以上の値を

返します。

YES

開始

処理番号による分岐

処理番号0の処理 処理番号1の処理 処理番号2の処理

処理終了? NO

処理番号 +1

終了

YES

処理終了? NO

処理番号 +1

YES

処理終了? NO

処理番号 = 0

戻り値 = -1 戻り値 = -1 戻り値 = 0

Page 18: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

18

6.2. 処理番号を使用したプログラムの形

例えば、処理番号 : uint8_t uchrJobNum を用いて次のように処理します。

この例では、通信の処理において 受信待ちをしてデータを受信したらデータの処理をして応答のための送信処理を

行っています。送信処理が終了したら受信待ちに戻ります。

//戻り値 :

// -1 : 処理中

// 0 : OK終了

// 1以上 : NG終了

int16_t 送受信処理()

{

switch(uchrJobNum){

case 0:

intReturn = 受信処理();

if(intReturn == -1){

break; //処理中

}

if(intReturn > 0){

intReturn = 1; //NG終了

break;

}

受信データによる処理と送信データ作成();

uchrJobNum++; //次の処理番号

intReturn = -1; //処理中

break;

case 1:

intReturn = 送信処理();

if(intReturn == -1){

break; //処理中

}

uchrJobNum = 0; //処理番号を0に戻す

intReturn = 0; //OK終了

break;

}

return(intReturn);

}

上記の 受信処理(); と 送信処理(); の内部も同じ構造で記述されています。戻り値が -1 の時は処理中で同じ処理番号

の部分をループして、処理がOK終了だった場合、処理番号を進めて、次の処理を行います。

Page 19: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

19

7. Network処理モジュールの概要

Network処理のためのモジュールについて概要を説明します。

プロジェクトのソースフォルダ Networkのしたに、上位モジュールを記述したファイルとBP3591をアクセスするための

モジュールが記述されたソースファイル群が格納されているソースフォルダ BP3591があります。

7.1.ソースフォルダ Networkの下のファイル

1) Network

Network処理の最上位のモジュールです。

Networkの初期化を行った後、Network通信処理をループします。

a) TransaxtNetwork

//----------------------------------------------------------------

//Network処理

//----------------------------------------------------------------

// BP3591の初期化を行った後、Network通信処理をLoopする。

//----------------------------------------------------------------

//引数 :

//uint8_t *puchrJobNum : 処理番号のポインタ

//----------------------------------------------------------------

int16_t TransactNetwork(uint8_t *puchrJobNum);

2) NetParam

a) SetNetworkParameter

Network接続のためのパラメータ、WiFiの SSID, SecurityKEYや IPアドレスなどを設定します。

//-------------------------------------------------------------

//Set parameter for Network :

//-------------------------------------------------------------

//戻り値:

// 0 : OK

// 1以上 : NG

//-------------------------------------------------------------

int16_t SetNetworkParameter(void);

3) NetUtilities

Network処理のための共通モジュールを記述してあります。

Page 20: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

20

7.2. ソースフォルダBP3591

1) AccessBP3591

a) NetworkAccessBP3591

BP3591にアクセスして Network通信を行います。

//----------------------------------------------------------------------------------------------------

//Network通信処理

//----------------------------------------------------------------------------------------------------

//引数 :

// uint8_t *puchrJobNum : 処理番号

// struct sNetworkData *pstructNetworkData : 受信したNetworkデータを格納する構造体のポインタ

//戻り値:

// -1 : 処理中

// 0 : OK終了

//----------------------------------------------------------------------------------------------------

int16_t NetworkAccessBP3591(uint8_t *puchrJobNum, struct sNetworkData *pstructNetworkData);

b) TCP_AccessBP3591

TCP通信を行います。

//----------------------------------------------------------------------------------------------------

//Access for TCP Server : TCP Server通信処理

//----------------------------------------------------------------------------------------------------

//引数 :

// uint8_t *puchrJobNum : 処理番号

// struct sNetworkExpect *pstructNetworkExpect : 取得するデータを指定する構造体のポインタ

// struct sSocket *pstructSocket_TCP : パケットの内容をセットする構造体のポインタ

//戻り値:

// -1 : 処理中

// 0 : OK終了

//----------------------------------------------------------------------------------------------------

int16_t TCP_AccessBP3591(uint8_t *puchrJobNum, struct sNetworkExpect *pstructNetworkExpect,

struct sSocket *pstructSocket_TCP);

Page 21: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

21

2) CommunicateBP3591

BP3591との通信処理を行います。

a) UART_SendBP3591

BP3591にデータを送信します。

//---------------------------------------------------------------------------------------

//Network WiFiBP3591 UART送信

//---------------------------------------------------------------------------------------

//引数 :

// uint8_t *puchrJobNum : 処理番号のポインタ

// uint16_t uintLength : 送信データ数

// uint8_t *puchrData : 送信データのポインタ

//戻り値 :

// -1 : 処理中

// 0 : OK終了

//---------------------------------------------------------------------------------------

int16_t UART_SendBP3591(uint8_t *puchrJobNum, uint16_t uintLength, uint8_t *puchrData);

b) UART_ReceiveBP3591

BP3591からデータを受信します。

//---------------------------------------------------------------------------------------

//Network WiFiBP3591 UART受信

//---------------------------------------------------------------------------------------

//引数 :

// uint8_t *puchrJobNum : 処理番号のポインタ

// uint8_t *puchrData : 受信データを格納するBufferのポインタ

// uint16_t uintLength : 受信データ数をセットするWorkのポインタ

//戻り値 :

// -1 : 処理中

// 0 : OK終了

// 1以上 : NG

//---------------------------------------------------------------------------------------

int16_t UART_ReceiveBP3591(uint8_t *puchrJobNum, uint8_t *puchrData, uint16_t *puintLength);

Page 22: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

22

c) CommunicationReceiveBP3591

BP3591からの受信データからフレームデータを取り出し、種類に見合ったデータを取得します。

//----------------------------------------------------------------------------------------------------

//受信 BP3591 : 受信したデータの種類を識別して種類に見合ったデータを取得する。

//----------------------------------------------------------------------------------------------------

//引数 :

//uint8_t *puchrJobNum : 処理番号

//struct sNetworkData *pstructNetworkData : 受信したNetworkデータを格納する構造体のポインタ

//戻り値:

// -1 : 処理中

// 0 : OK終了

//----------------------------------------------------------------------------------------------------

int16_t CommunicationReceiveBP3591(uint8_t *puchrJobNum, struct sNetworkData *pstructNetworkData);

d) GetReceiveDataAndSetFlag_BP3591

フレームデータから種類に見合ったデータを取得します。

//----------------------------------------------------------------------------------------

//Data取得とflagセット : 受信データの種類(WID/DATA)によりフラグをセットして種類に見合ったデータを取得する。

//----------------------------------------------------------------------------------------

//引数 :

//uint8_t *puchrReceiveData : 受信データが格納されたBufferのポインタ

//struct sNetworkData *pstructNetworkData : 受信したNetworkデータを格納する構造体のポインタ

//戻り値:

// 0 : OK

// 1 : NG and Continue

// 2 : NG and End

//----------------------------------------------------------------------------------------

int16_t GetReceiveDataAndSetFlag_BP3591(uint8_t *puchrReceiveData,

struct sNetworkData *pstructNetworkData);

Page 23: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

23

3) ConfigBP3591

a) InitializeBP3591

BP3591との通信に使用する UARTを初期化し、BP3591をコンフィグレーションします。

//--------------------------------------------------------------------------------------

//WiFi BP3591初期化

//--------------------------------------------------------------------------------------

//引数 :

// uint8_t *puchrJobNum : 処理番号のポインタ

// struct sNetworkData *pstructNetworkData : 受信したNetworkデータを格納する構造体のポインタ

// struct sNetworkExpect *pstructNetworkExpect : 取得するデータを指定する構造体のポインタ

//戻り値:

// -1 : 処理中

// 0 : OK

// 1 : NG

//--------------------------------------------------------------------------------------

int16_t InitializeBP3591(uint8_t *puchrJobNum, struct sNetworkData *pstructNetworkData,

struct sNetworkExpect *pstructNetworkExpect);

b) EnterCommunicationMode

BP3591をコミュニケーションモードにします。

//---------------------------------------------------------------------------

//コミュニケーションモードに移行

//---------------------------------------------------------------------------

//引数 :

// uint8_t *puchrJobNum : 処理番号のポインタ

//戻り値:

// -1 : 処理中

// 0 : OK

// 1 : Timeout

//---------------------------------------------------------------------------

int16_t EnterCommunicationMode(uint8_t *puchrJobNum):

Page 24: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

24

c) ConfigurationBP5391

BP3591をコンフィグレーションします。

//------------------------------------------------------------------------------------

//コンフィグレーションBP5391 : 接続するWiFiのSSIDやBP3591のIP Address, Port番号などを設定する。

//------------------------------------------------------------------------------------

//引数 :

// uint8_t *puchrJobNum : 処理番号のポインタ

// struct sNetworkExpect *pstructNetworkExpect : 取得するデータを指定する構造体のポインタ

//戻り値 :

// -1 : 処理中

// 0 : OK

// 1 : NG(初期化失敗)

// 2 : Network ParameterがFlashMemoryに設定されていない。

//------------------------------------------------------------------------------------

int16_t ConfigurationBP5391(uint8_t *puchrJobNum, struct sNetworkExpect *pstructNetworkExpect);

4) HandleBP3591

BP3591のコンフィグレーションモードにおいてWID書き込み、読み込みを行います。

WID処理をするためのモジュールを全て記述してあります。

このWID処理のプログラムは結構めんどくさいので、ライブラリの感覚で使用していただくのがよいと思います。

Page 25: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)

25

改訂履歴

V001 2014/01/31 初版

V002 2014/03/28 誤記訂正