[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:23856] Re: シリアル入出力バッファの指定方法は?



かねこです。
At 6:44 PM +0900 00.9.6, 大槻 恭裕 wrote:
> > かねこです。手元に今カーネルがないんでどこで設定しているかは分かりま
> > せんが、バッファサイズを直して解消する問題かというとちょっと疑問。
>
> ウーム痛い所をつかれました、確かに細切れにして送信と受信を行えばよいので
> すが...、この 4kの設定場所が気になります。

今ちょっと眺めていますが、tty の中でごちゃごちゃバッファリング
していますねぇ。tty_flip_buffer をキーワードにして追っかけてく
と捕まるかも。これ自体は 1024 byte バッファのようには見えますが。

> > 相手側とのフロー制御が合っていないんじゃないかと思います。まずそちら
> > を見た方がいいのでは。
>
> フロー制御は行っていません 下記に設定値を...
> # stty -a </dev/ttyS0
> speed 115200 baud; rows 0; columns 0; line = 0;
> intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
> eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
> lnext = ^V; flush = ^O; min = 0; time = 8;
> -parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
> -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon
> -ixoff -iuclc -ixany -imaxbel
> -opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0
> ff0
> -isig -icanon iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop
> -echoprt echoctl echoke
>
> ・フロー制御行っていないと大きなデータは遅れなさそうですが、相手側はマイ
> コンで受信に専念しているためデータは送信したサイズ分綺麗に受信していまし
> た。
> ・じつはRS232CをRS485に変換して使っているため、自分が送信したデータがその
> まま自分の受信データに入ってきます、このため[-echo]になっているのにエコー
> バックされているかのように受信データとして受信しています。
>
> 回路構成
> Linuxからはrs232cまでの制御をしています。この先のrs485から送ったデータと
> 同じものがrxdに受信されます。
>
>            txd ---> rs232c --> rs485driver_IC ----|
> Linux<----------------------->                    |-- rs485
>            rxd <--- rs232c <-- rs485recive_IC ----|

あ、これは駄目です。現象は相手側のマイコンがとれないのではなく、
linux 側が落としているんです。stty で -ixon -crtscts している
んで、自分の出力が止められなくって自分の受信側で落としています。
マイコン側で XON/OFF が受けられないなら crtscts にしてrs485 変
換のところか、そこまでのケーブルで細工すれば何とかなりそうだと
は思います。
--
Seiji Kaneko                         skaneko@xxxxxxxxxxxx
---------------------------------------------------------