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

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



回答ありがとうございます。

> かねこです。手元に今カーネルがないんでどこで設定しているかは分かりま
> せんが、バッファサイズを直して解消する問題かというとちょっと疑問。

ウーム痛い所をつかれました、確かに細切れにして送信と受信を行えばよいので
すが...、この 4kの設定場所が気になります。

> 
> At 13:42 00/09/06 +0900, you wrote:
> >現状
> >接続先から必ずエコーバックがかえってくるため送信した後に
> >エコーバックを読み飛ばしています(レングスのみチェックをしている)。
> >このとき送信バイト数が 4096を超えた場合、エコーバックに4096バイトしか残ってい
> >ません。
> 
> 相手側とのフロー制御が合っていないんじゃないかと思います。まずそちら
> を見た方がいいのでは。

フロー制御は行っていません 下記に設定値を...
# 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 ----|

> 
> # シリアル回線からの受信を割り込みでとって、4096 バイトのどこかのバ
> # ッファに入れて、それがいっぱいになった時点でフロー制御で相手から
> # の送信を止めようとしたが、止まらなかったという顔つきに見えます。

申し訳ありません、説明不足でした。

> 
> 相手側でフロー制御が利かないということなら、別件ですのでまた聞いてく
> ださいな。


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/  Yasuhiro Ootuki(大槻恭裕)            _/_/
_/_/  E-mail:otuki@xxxxxxxxxx              _/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/