[Armadillo:08540] Re: RS232C フロー制御

email@hidden
2013年 1月 23日 (水) 18:53:43 JST


中村さん

豊田です。

ありがとうございます。

> ここに解説があるように、Linuxのttyドライバでは無理のようです。

ここの解説にもある、明示的にRTS信号を切り替えることを考えていました。
ioctl(fd, TIOCMBIS, TIOCM_RTS); // RTS信号フラグを立てる
を試して見ましたが、うまくいきませんでした。
デバイスオープン時にもパラメータの指定が必要では無いかと思っています。

> RS-232CとRS-485(2線半二重)の変換器の中には、独自ロジックで
> 送受信の切り替えをやってくれるものもあるようで、
これがいいのかな。


Yasuhisa Nakamura <email@hidden>さん:
> 豊田さん、
> 中村です。
> 
> [Armadillo:08538] で、email@hidden さんは書きました:
> > Armaddilo-210のシリアルポートにRS485変換器を繋いで、RS485で通信をするシステム
を考
> > えていますが、RTS又はDTRでフロー制御が必要です。
> >
> > このような、フロー制御を伴う、シリアル通信の場合、具体的にどのようにすれば良
いか、
> > ご教授いただけると幸いです。
> >
> > ?デバイスオープン時のパラメータの指定
> > ?RTS又はDTR信号のOn?OFF
> 
> RS-485の2線半二重での送受信切り替え制御かと思います。
> 
> http://www.ibsjapan.co.jp/news/213.html
> ここに解説があるように、Linuxのttyドライバでは無理のようです。
> 
> Armadillo-440のでの話ですが、私がRS-485の半二重対応をやったときは、
> ドライバに手をいれました。
> キモは、送受信の切り替えを行うために、ドライバのバッファと
> チップのFIFOとシフトレジスタのすべてが空になったことを
> 確認することです。
> 
> RS-232CとRS-485(2線半二重)の変換器の中には、独自ロジックで
> 送受信の切り替えをやってくれるものもあるようで、
> そういう変換器を使う場合は、送信データにできるだけ
> 隙間が空かないように送信してあげれば、大概の場合、
> うまくいくようです。
> 
> 以上、参考になれば幸いです。
> 
> -- 
> なかむら
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo



armadillo メーリングリストの案内