概要
Windows CE 搭載の PDA CASSIOPEIA l'agenda BE-500 を発掘したので、2000 年代初期の「モバイラー」が辿ってきた道である、 PHS によるデータ通信を現代に蘇らせようと思います。
とはいえ、日本国内での公衆 PHS はすべてサービスを終了しており、 PDA 用の通信カードを手に入れるだけでは PHS による通信は行えません。
そこで、自宅内に自営 PHS を構築し、 自営 PHS に子機として通信カードを収容することで、 64K PIAFS 通信を楽しめるようにしてみます。
さらに、本来プロバイダが担う PPP サーバーを Linux で構築することで、インターネットに出るための通信が自宅内で完結する構成にします。そのため、実験のために追加のプロバイダ契約をしたり、通信料を支払う必要はありません。
必要な物
- Ubuntu 24.04 をインストールした PC
- 例えば Raspberry Pi + Raspberry Pi OS などでも可
- PHS 親機 (後述)
- PHS 通信カード (後述) また、子機登録作業のため、以下のいずれかが必要
- PDA 上で子機登録する場合: Pocket Tera Term などのターミナルソフト
- PC 上で子機登録する場合: CF → PC カードアダプタと、 PC カードスロットのあるラップトップ
- RS-232C シリアルケーブル
- RS-232C USB 変換ケーブル
PHS 親機
自営 PHS を構築するには、自宅内に親機を設置する必要があります。
私が調べた限り、
- 自営 PHS の親機として利用可能
- 親機と子機の間で PIAFS による内線データ通信が可能
- 親機と PC を RS-232C で接続可能
という条件を満たすのは、以下の 3 機種です。
今回は IWX70 と、その子機である RS20 のセットを手に入れました。 (なお RS20 は実験には使用しません)
自営 PHS 親機として一部で有名な Aterm WM56 は、親機と子機の間での内線データ通信には対応していないようです。
WM56 に RS20 などを収容し、子機と子機の間で内線データ通信することは可能ですが、速度は 32kbps となります。
他にも自営 PHS の親機として利用可能な機種 (ビジネスホン等) がありましたら、ぜひ教えてください。
PHS 通信カード
CASSIOPEIA l'agenda などの PDA は本体に CF カードスロットを搭載しており、対応している通信カードを装着することで PHS によるデータ通信を行えます。
対応品は PDA の機種により様々ですが、 l'agenda に関しては以下のカードに対応しているようです。
- P-in comp@ct
- P-in m@ster
- P-in Free 1P
- P-in Free 1S
今回は P-in m@ster を手に入れました。
構成図
今回の構成を図にすると以下のようになります。
Linux 側セットアップ
配線
IWX70 背面の RS-232C ポートにシリアルケーブルを繋ぎ、 RS-232C USB 変換ケーブルを経由して Linux PC へ接続します。
ケーブル接続後、Linux に /dev/ttyUSB0 が作成されていることを確認してください。
IWX70 の背面には USB ポートもありますが、 USB 接続は Linux では認識しません。
このような古いハードウェアは、専用ドライバが必要な USB よりも、むしろ RS-232C を変換した方が容易に接続・認識が可能というのはよくあることです。
パッケージのインストール
必要なパッケージをインストールします。
sudo apt install ppp screen
pppd の設定
/etc/ppp/peers/piafs を作成します。
/dev/ttyUSB0
115200
connect "/usr/sbin/chat -v -f /etc/ppp/chat-connect"
local
passive
noauth
nodetach
ms-dns 8.8.8.8
192.168.50.1:192.168.50.2
debug
chat の設定
/etc/ppp/chat-connect を作成します。これは、 /dev/ttyUSB0 に CONNECT が出力されるまで処理を待機するために必要です。
CONNECT ''
PHS 子機登録
今回の要である、PHS 通信カードを PHS 親機に収容する手順について説明します。
親機側準備
IWX70 のシリアルコンソールに接続します。
sudo screen /dev/ttyUSB0 115200
試しに AT コマンドを入力し、IWX70 と疎通できるか確認します。
AT
正しく疎通できれば OK と表示されます。
続いて、以下の AT コマンドを入力します。
ATI4
正しく疎通できれば AtermIW NEC Corporation, OK と表示されます。
screen コマンドは Ctrl+A → K で終了できます。
子機側準備
P-in m@ster を子機として登録するために、 P-in m@ster のシリアルコンソールに AT コマンドを入力する必要があるのですが、そのためには以下のいずれかが必要です。
PDA 上で子機登録
PDA に Pocket Tera Term などのターミナルソフトをインストールします。私はこの方法を選択しました。
PC 上で子機登録
PDA が Pocket Tera Term などのターミナルソフトに対応していない、または PDA の小さな画面で AT コマンドを入力するのが辛い場合、 PC カードスロットのある PC に、 PC カードアダプタ経由で P-in m@ster を装着する方法があります。どちらかというとこちらのほうが一般的な方法かと思います。
PC には Tera Term などのターミナルソフトをインストールします。もしくは、Windows XP またはそれ以前の Windows であれば、 OS 付属のハイパーターミナルが利用可能です。
なお、 Windows への P-in m@ster の認識にはドライバが必要です。記事末尾の付録を参照してください。
P-in m@ster にシリアル接続する
ターミナルソフトに以下の設定を入力し、 P-in m@ster と接続します。
| 項目 | 設定値 |
|---|---|
| ポート | P-in m@ster が接続されている COM ポート |
| ボーレート | 115200 |
| データ | 8bit |
| パリティ | none |
| ストップビット | 1bit |
| フロー制御 | none |
試しに AT コマンドを入力し、P-in m@ster と疎通できるか確認します。
AT
正しく疎通できれば OK と表示されます。
続いて、以下の AT コマンドを入力します。
ATI4
正しく疎通できれば NTT DoCoMo P-in m@ster, OK と表示されます。
子機側登録コマンド
P-in m@ster のシリアルコンソールに以下のコマンドを入力し、登録作業に入ります。
AT#SOMODE
OK が表示されると、子機登録モードに入ります。
続いて、以下のコマンドを入力します。まだ Enter キーで実行はしません。
AT#SO1,00,1,92,0000
このときのそれぞれのパラメータには、以下のような意味があります。
| パラメータ | 内容 | 補足 |
|---|---|---|
00 |
登録モード |
128 で登録解除モード |
1 |
OS モード番号 | 番号を変えると親機を 3 つまで登録することが可能 |
92 |
内線番号 | IWX70 では 91〜96 が利用可能ただし 91 は RS20 に割り当て済みのため 92 を設定 |
0000 |
暗証番号 | 親機と暗証番号を揃えること |
続いて、親機側の操作に移ります。
親機側登録コマンド
IWX70 のシリアルコンソールに、以下のコマンドを入力します。まだ Enter キーで実行はしません。
AT#ZSB0000
このときのそれぞれのパラメータには、以下のような意味があります。
| パラメータ | 内容 | 補足 |
|---|---|---|
B |
内線番号 | IWX70 では A〜F が利用可能それぞれが 91〜96 に対応する。つまり B は内線 92
|
0000 |
暗証番号 | 子機と暗証番号を揃えること |
(なお、登録解除の場合は AT コマンド末尾に /d を追加)
子機で Enter キーを押しコマンド AT#SO1,00,1,92,0000 を実行したら、すぐに親機でも Enter キーを押しコマンド AT#ZSB0000 を実行します。
すると、IWX70 と P-in m@ster との間で子機登録を試みます。このとき、 IWX70 本体液晶には SOトウロクチュウ と表示されます。
登録に成功すると、お互いのシリアルコンソールに OK が表示され、 IWX70 本体液晶には SOトウロクOK と表示されます。 P-in m@ster には内線番号 92 が割り当てられます。
接続
PPP サーバーの待ち受け
Linux で pppd コマンドを実行し、通信を待ち受けます。
sudo pppd call piafs
PDA 側の操作
以下の内容で通信設定を作成します。
| 項目 | 設定値 |
|---|---|
| 電話番号 | #*81 |
| ユーザー名 | 空欄 |
| パスワード | 空欄 |
| モデムの種類 | NTT_DoCoMo-P-in_m@ster |
| トーン/パルス | トーン |
| ボーレート | 115200 |
| データ | 8bit |
| パリティ | none |
| ストップビット | 1bit |
| フロー制御 | none |
#*81 は IWX70 のシリアルポートを表す内線番号です。
PDA の「接続」ボタンを押すと接続が実行されます。
ルーティングの設定
接続に成功すると、 Linux には ppp0 というネットワークデバイスが作成されます。
ip address
5: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 3
link/ppp
inet 192.168.50.1 peer 192.168.50.2/32 scope global ppp0
valid_lft forever preferred_lft forever
PDA が Linux を経由してインターネットに出られるように、IP フォワーディングを追加します。
接続先のネットワークデバイス名 enp0s3 は適宜変更してください。
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
sudo iptables -A FORWARD -i ppp0 -o enp0s3 -j ACCEPT
sudo iptables -A FORWARD -i enp0s3 -o ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
上記設定が完了すれば、晴れて PDA が自営 PHS 経由でインターネットに繋がり、あの頃の「モバイラー」の姿が蘇ります!
参考文献
- Aterm IWX70 取扱説明書
- Aterm IWX70 子機登録 & tips
- P-inのtips
- PHS端末 子機登録マニュアル
- ごりぽんのお部屋 令和に自営PHSで無線ネット接続
- ケータイ用語の基礎知識 第16回:PIAFSとは
- CASSIOPEIA l'agenda BE-500 動作確認済み機器一覧
- CASSIOPEIA l"agenda よくある質問と答え
付録: P-in m@ster のドライバ
NTT docomo の Web サイトからは P-in m@ster に関するページがすでに削除されているので、ドライバが必要な場合は Internet Archive Wayback Machine から手に入れる必要があります。



