2015年1月12日月曜日

Ubuntu 14.04でシリアル通信

RS-232Cを使ったシリアル通信はもはや一般人が使う類の物ではありませんが、
一部で強烈に需要があります。
ということでUbuntu 14.04でシリアル通信してみます。

シリアルポートのデバイスファイルは昔から"/dev/ttyS*"と決まっていますが、
最近のPCでは2つ以上ついていることはほぼないので"/dev/ttyS0"で決定です。
で、確認するとこのデバイスファイルへのアクセスは制限されていて、
所有者root、所有グループdialout、パーミッションは0660となっています。
すなわち一般ユーザはアクセスできません。
利用するユーザをdialoutグループに追加するのが正しい行為なのでしょうが、
1人しか使わないPCなら
# chmod 666 /dev/ttyS0
で誰でも使えるようにしておいた方がトラブルもないでしょう。

で、シリアル通信するアプリケーションはいくつかあります。
まずminicomです。
# apt-get install minicom
でインストールできます。
[ctrl]+[a] [z]([ctrl]+[a]を押した後単独で[z]を押す)でコマンド一覧が見られます。
また[ctrl]+[a] [o]の[シリアルポート]でボーレート等設定後["dfl" に設定を保存]で変更を保存できます。
アプリケーションを終了するのは[ctrl]+[a] [q]です。

次にkermitです。
# apt-get install ckermit
でインストールできます。 設定ファイル"~/.kermrc"の内容を
set line /dev/ttyS0
set speed 115200
set stop-bits 1
set flow-control none
set parity none
set carrier-watch off
のようにした上で
$ kermit
connect
で通信開始です。
[ctrl]+[\] [?] でコマンド一覧が見られ、
[ctrl]+[\] [q] で終了できます。

そしてcuです。
# apt-get install cu
でインストールできます。
$ cu -l /dev/ttyS0 -s 115200
で通信できます。
~? でコマンド一覧、
~. で終了となります。

最後にscreenです。
# apt-get install screen
でインストールできます。
$ screen /dev/ttyS0 115200
で通信できます。
[Ctrl]+[a] [?] でコマンド一覧、
[Ctrl]+[a] [k] で終了できます。

0 件のコメント:

コメントを投稿