【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」を除く、圧縮形式)