2008年7月22日

[plamo:29272] Re: シリアルポート

土谷@気がついたら1年以上ROMしてました、です。

> CMOS-EYEというカメラのボードからRS232C、115200bpsで画像
> の信号(320x240x3(RGB))が出て来ます。ハード的にハンドシェ
> ークの機能はなく、getchar(標準入出力経由)でも、fgetcで
> も、readを使っても、数%くらいデータを取りこぼします。ボー
> ドの付録のWindows用画像ビューワでは取りこぼしが起こらない
> ので、なんとかLinuxでも画像ビューワを作りたいのですが、、、

> シリアルポートを読んでいるときは「他の仕事動くな、ちょとま
> て」みたいなことは出来ないのでしょうか?

スペックが同等のPCで比較した場合、LinuxよりもWindowsの方が
よっぽど取りこぼしが発生しやすいと思います。
もし、同等PCでLinuxだけで発生するのであれば、デバイスドライバ
の相性とか、プログラムミスの方を疑った方がいいでしょう。

私だったらこのあたりを調べるだろうな、という項目を列挙しますが、
釈迦に説法の内容でしたら、ごめんなさいです。

1. シリアルインタフェースが他のデバイスと割り込みをシェアして
いないか?
dmesg | grep ttyS
cat /proc/interrupts

2. ボーレート、ビット長、パリティの設定は正しいか?

3. cfmakeraw()関数等を使用してちゃんとRawModeに設定されているか?

4. topコマンドでCPU使用率を観察し、異常なプロセスがないか?

あと、もしUSB-Serial変換ケーブルを使用している場合は、別メーカの
変換ケーブルを試すと状況が変わるかも知れません。
--
土谷@習志野
m.tsuchiya@xxxxx

投稿者 xml-rpc : 2008年7月22日 23:09
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/75567
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。