![Page 1: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/1.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/2.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/3.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/4.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/5.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/6.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/7.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/8.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/9.jpg)
9
ルータに設定したDHCPの静的割り当てアドレスを指定して [Add] ボタンをクリックします。
ここに追加されました。[OK] ボタンをクリックしてダイアログを閉じます。
次ページに続く
![Page 10: TCP BP3591 の説明 - Coocantri-s.world.coocan.jp/tri_S_Network/TCP_Server/TCP_BP3591.pdf · インストールして使用する方法も説明しています。(TCP_Serverのページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/10.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/11.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/12.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/13.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/14.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/15.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/16.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/17.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/18.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/19.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/20.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/21.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/22.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/23.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/24.jpg)
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のページ)](https://reader034.vdocuments.co/reader034/viewer/2022042907/5f5062406adcf254f6112aac/html5/thumbnails/25.jpg)
25
改訂履歴
V001 2014/01/31 初版
V002 2014/03/28 誤記訂正