PIC16FシリーズをXPort03と接続しLANに接続する(4)
XPort経由の通信のテストを次のようにして行います。
1)イーサネット経由でPCからTelnetでXPortにアクセスします。
2)XPortはイーサネット経由でPCから受けたデータをシリアル・ポートへ送信し、
シリアル・ポートから受信したデータをイーサネット経由でPCに送信します。
3)PIC16F88は、XPortからのデータをシリアル・ポートで受信し、そのデータを
そのままシリアル・ポート経由でXPortへ送信します。
PICに用意する、XPortの通信プログラムは次のようになります。MPLAB IDEでコンパイルし、PICkit3でPIC16F88に書き込みテストを行います。
#include
#include
#include "usart.h"
// ここまで必要なヘッダ・ファイルの読み取りの指示
void putch(unsigned char byte) // 文字型(char)のデータを送信する関数
{
/* output one byte 送信レジスタが空になるまで待つ*/
while(!TXIF) /* PIE1レジスタのTXIFレジスタをチェックする */
continue; // 送信データをセットできるまで待つ
TXREG = byte; // 送信データを送信レジスタにセットする。自動的に送信される
}
unsigned char getch() //データ受信の関数
{ /* RCIEレジスタをチェックし受信データを待つ */
while(!RCIF) /* set when register is not empty */
continue; return RCREG; // 受信データを関数にセットして戻る
}
unsigned char getche(void) // 相手側にエコーバックしてデータを受信する
{
unsigned char c;
putch(c = getch()); // データを受信しそのまま相手に戻す
return c; // 受信したデータを関数にセットして戻る
}
テスト結果
PICとXPortをシリアル・ポートで、XPortとPCをイーサネットで接続して通信のテストを行います。テストはPCでTera Termの端末ソフトを起動して、送信した文字が戻ってきて表示されるか確認します。
Tera Termを起動すると、接続ポートの選択画面が表示されます。IPアドレスを設定して、Telnetを選択しTCPポートを10001にします。
