[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 _/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/