TCP/IPライブラリの使い方


【TCP/IPライブラリのリンク方法】

 TCP/IPスタックモジュールを使う時には、まずスタックのメインモジュールを
リンクする必要があります。
そのためには下記のようにします。

(1) ユーザープログラムの最初の方で、TCP/IPスタックの全体のヘッダファイル
  をインクルードしておきます。

(2) そしてユーザープログラムの最後にTCP/IPスタックのメインプログラム
  である「stcak.h」をインクルードします。
  残りの関連ファイルは自動的にリンクされます。

これでリンクのための準備が出来ます。

【コンフィギュレーションの記述】

UDPやTCPなどの使用をする/しないという設定を、stack.hのファイルを
修正して行います。あらかじめ設定するための記述はしてありますので
コメントアウトするかしないかを設定する作業です。

(1) ハードウェア接続ピン指定
  RTL8019ASの回路接続情報の指定で、PICNICと異なる回路構成の場合
  には、下記部分を書き換えます。

      /////////////////////////////////////////
/// 物理情報の設定
///
/////////////////////////////////////////
/////// RTL8019ASの制御ピンのPIC接続先ピン
#define  RDY PIN_C5         //IOCHRDY
#define  IOR PIN_E0          //IORB
#define  IOW PIN_E1          //IOWB
#define  REGPORT   output_c   //PORTC
#define  OUTPORT  output_d   //PORTD
#define  INPORT    input_d    //PORTD
#define  TRISPORT  set_tris_d   //TRISD



(2) DHCPプロトコルの使用設定
  DHCPプロトコルを使ってIPアドレスの自動割り付けをするかしないかの
  設定です。このためには下記部分を書き換えます。
  まずDHCPを使う場合には下記行のコメントをはずし有効行とします。
  このときには自動的にUDPも使う設定になります。

            《DHCPを使う場合》
///////////////////////////////////////////////////
/// DHCPモードの使用指定
/// DHCPを使わない時は下記行をコメントアウトする
/// DHCPを使うときは自動的にUDPを使う設定となる
///
//////////////////////////////////////////////////

#define USE_DHCP

  DHCPを使わない場合には、下記のように指定行をコメント行として無効
  にしてしまいます。
  この場合には、あらかじめ指定したIPアドレスとしますので、そのIPアドレス
  を下記のように設定する必要があります。

       《DHCPを使わない場合》
///////////////////////////////////////////////////
/// DHCPモードの使用指定
/// DHCPを使わない時は下記行をコメントアウトする
/// DHCPを使うときは自動的にUDPを使う設定となる
///
//////////////////////////////////////////////////

//#define USE_DHCP

       /////////////////////////////////////////////////
/// デフォルトパラメータ設定
/// デフォルトIPアドレス設定
/// DHCPモードでない時に設定するデフォルトIP
/// IP = 192.168.1.100
///
/////////////////////////////////////////////////
#define My_IP0 192
#define My_IP1 168
#define My_IP2 1
#define My_IP3 100




(3) UDPプロトコルの使用設定

  UDPプロトコルで制御などを行う場合には、下記のように指定行のコメント
  をはずして有効行とします。ただし、DHCPプロトコルを使う場合には、自動で
  UDPを使う設定にしますので、ここでの設定は不要です。
  使わない場合には、コメントアウトとして無効行とします。
  
      ////////////////////////////////////////////////////
/// UDPプロトコルの使用指定
/// UDPを使うときには下記行のコメントアウトをはずす
///
////////////////////////////////////////////////////

//#define USE_UDP

  さらにUDPを使う場合には、UDP用のバッファの最大サイズと最大個数の
  設定が必要です。このサイズはユーザーの転送データサイズに合わせます。
  個数は同時に複数のPC等から受信する可能性がある場合にPCの台数分
  指定しておきます。通常は2個で十分です。

      ////// UDPモードの時には下記パラメータ設定が必要
///// ユーザー用バッファの個数とサイズ
#IFDEF USE_UDP
#define MAX_UDP_USRSIZE 64 ///サイズ64バイト最大
#define MAX_UDP_USRBUF 2 ///個数 2個



(4) TCPプロトコルの使用設定
  TCPプロトコルを使うアプリケーションを実装する場合には、下記の指定行
  のコメントをはずして有効行とします。
  使わない場合にはコメントアウトして無効行とします。

      ////////////////////////////////////////////////////
/// TCPプロトコルの使用指定
/// TCPを使うときには下記行のコメントアウトをはずす
///
////////////////////////////////////////////////////

#define USE_TCP

  TCPプロトコルを使う場合には、ソケットバッファの最大サイズと個数の
  設定が必要です。
  最大サイズはユーザーの転送する最大データサイズに合わせます。個数は
  リンクを張るセッション最大数+1とします。

      ////// UDPモードの時には下記パラメータ設定が必要
////// DHCPを使うときにも設定が必要
////// ソケットバッファの個数とサイズ
#IFDEF USE_TCP
#define MAX_SOCKETSIZE 64 //最大64バイト
#define MAX_SOCKET 6 //個数6個(但し#0は共用)



【TCP/IPライブラリソースファイル】

本TCP/IPスタックのソースファイル1式です。 内部には下記ファイルを含んで
います。
またこれらのソースファイルは、CCS社のCコンパイラ「PCH」でコンパイルできる
形式となっています。

ファイル名 機 能 内 容
stack.h ヘッダファイル、コンフィギュレーション設定
stack.c メインモジュール
machdler.c 物理アクセスモジュール
arp.c ARPプロトコル処理モジュール
dhcp.c DHCPプロトコル処理モジュール
ip.c IPプロトコル処理モジュール
udp.c UDPプロトコル処理モジュール
tcp.c TCPプロトコル処理モジュール


 ★ ソースファイル1式 (上表より「tcp.c」を除く、圧縮形式)




        目次に戻る