LinuxでCOMポート通信しよう

事情があってCOMポートを使って通信をすることになった.実際やるのはWindowsだけどWindows機のCOMポートは古いタブレットが使用していて,そのタブレットのドライバを入れるとCOMポートを占領して他の機器を受け付けなくなるので横で空いているDebianを使ってみる.

cuの使い方.

動作検証にはForCy-AVRを使用.

下準備

Windowsに最初からインストールされている「ハイパーターミナル」に対してLinuxでは「cu」というソフトを使う.
Debianなら

#apt-get install cu

で終わり.

次に使用するCOMポートの設定を行う.この辺がWindowsと比べてめんどくさいところ.
まず/dev内にあるどのデバイスが使用できるのか謎なので自動で色々設定してくれるらしい「setserial」というソフトを使う.

#apt-get install setserial

これをすると設定の保存方法を聞かれるけど正直意味がよくわからなかったので,そのまま「初回に自動保存」を選んでおいた.

%setserial /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

こんな感じでIRQが帰ってこればOK./dev/ttyS0でだめなら他のttyを試してみる.

接続

やっと接続です.
cuの使い方を詳しく解説しているサイトがなかったのでソフトウェアデザインを探したら2003-07号の「GCC組み込みプログラミング」に載ってました.

%cu -l /dev/ttyS0 -s 4800

でttyS0に4800bpsで接続します.データビットやパリティ,ストップビット,フロー制御の設定はわからない.

成功

接続に成功するとこんな感じになりました.

% cu -l /dev/ttyS0 -s 4800
Connected.

参考

ppp-onスクリプトで接続
http://www.page.sannet.ne.jp/kanachin/ppp/chap1.html