タグ付けされた質問 「serial-port」

RS-232とも呼ばれるシリアルインターフェイスまたはシリアルポートは、モデム、マウス、一部のプリンター、スキャナー、その他のハードウェア機器を接続するために使用される通信ポートです。

1
実行時にシリアルシステムコンソールを有効にする
システムコンソールを有効にするためのLinuxカーネルブートオプションがあります。 console=、 例えば、 console=ttyS0,115200 または console=ttyS0,115200n8 http://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/re01.html このオプションを渡した後、Linuxカーネルはすべて(または一部)のカーネルメッセージをコンソールに表示します。これはデバッグに役立ちます。 再起動せずに、実行時にLinuxのシステムコンソールを変更する方法はありますか(いくつかの特別なsysctls / ioctls /または /proc または /sys ファイルシステム) 最初のケース:私は持っていなかった console= 現在の起動(/ proc / cmdlineでチェックイン)のオプションと私は状況をデバッグするために/ dev / ttyS0シリアルポートへのdmesg印刷を有効にしたいです。 2番目のケース:自分の設定が間違っていた console=ttyS0,9600 そして、再起動せずに速度を変更したい(古いコンソール設定を削除するか、良い115200設定で新しいコンソールを追加するか、単に速度を変更する)。 (どこで console= オプションが解析されます。 /sys または /proc 現在の設定は保存されていますか?)

2
Gigaware USB-シリアルアダプターがWindows 8で動作しない
新しいコンピューターでGigaware USB-シリアルアダプターを使用しようとしています。Windows VistaおよびXPで正常に動作しましたが、Windows 8では動作しませんでした。動作せず、デバイスマネージャーのデバイスプロパティでこのメッセージが表示されます。 This device cannot start. (Code 10) A device which does not exist was specified. この投稿で見つけた別のドライバーをダウンロードしてみましたこのデバイスは起動できません。(コード10)-Gigaware USB-ここでの同じ問題に関するシリアルアダプター。手動で追加する方法や、機能するために特定の場所にダウンロードする必要があるかどうかはわかりません。どんな助けでも感謝します!


1
Linux IrDA印刷
私はWindows側で私のIrDAプリンタ(SiPiXコンパクトプリンタA6)を使って動いているUSB IrDAを持っています、デフォルトの4000000スピードと1.0msのターンアラウンドタイム(ドライバ設定で)。 USB IrDAドングルはSigmaTelチップを使用しています。 IR印刷はIrDAポートとSiPiXドライバを使用して動作します。 特にSiPiXドライバがすでにCUPSに存在する場合、私はそれを私のLinux側(同じマシン)で動かそうとしている。標準のUSB FIRドライバを使って、私のIrDAと私のプリンタを見ることができるようです。 irattach irda0 -s、 その後 irdadump。このUSBドングルではSIRから何も取得できません(例: irattach /dev/ttyS1 -s ) FIRが十分であれば、動作しているFIRからシリアルポートを作成してCUPSからアドレス指定する必要があると思いますが、ここで動けなくなりました。

2
一部のPCでUSBシリアル経由でデータが失われるのはなぜですか?
USBを使用してPCに接続し、USBシリアルポートとして列挙する組み込みデバイスがあります。このデバイスは、約15分間で約30メガバイトのデータを吐き出します。 私のPCはこのデータを読み込んでメモリに保存するためにPyserialを使ったPythonスクリプトを実行しています。それはうまくいきます。 私はそのスクリプトを3人の同僚に渡しました。そのうちの1つには問題ありませんが、他の2つにはスクリプトによって受信されたデータの約40%しかありません。 すべてのPCがWindows XP SP2を実行しており、すべて同じハードウェア仕様です。すべての場合において、シリアルデバイスは外部ハブやそのようなものを経由せずに、ルートハブに直接接続されています。 ハイパーターミナルを接続し、データをディスクにキャプチャするように設定してみました。これも私のPCではうまくいきますが、他の2台のPCではデータの40%しか収集できません。 私たち全員が同じウイルス対策を実行しています(そしてこのデータが入ってくるのをスキャンしようとしていると信じる理由はありません)。 これらの他のPC上で大量のデータが失われる理由についての考えが足りなくなりました。これを引き起こす可能性があるもののための何か提案はありますか? ハードウェア仕様を追加するために編集されました。 私のPC(これはうまくいきます): Intel Core i7 CPU 920 @ 2.67 GHz 2.99 GBのRAM 同僚のデータを失うPC Intel Pentium D CPU 3.39 GHz 3.25 GBのRAM それで彼はより古いプロセッサを持っています、しかしそれの表面上それは彼のPC上でより速いクロックレートとより多くのRAMです!

1
シリアルポートからデータを受信する
RS232シリアルポートからデータを端末に送信し、ファイルへの指示を受け取りたい。それはかなり単純なはずです。 cat /dev/ttyS0 cat /dev/ttyS0 > file.txt その前に、デバイスのパラメーター(Biochemistry Analyzer)と一致するようにパラメーターを構成しました。 sudo stty -F /dev/ttyS0 9600 -parity cs8 cstopb すなわち ボーレート-9600 パリティ-なし ビット-8ビット ストップビット-2 しかし、私は端末で何も受け取りません。ただ空白です。何が問題ですか?

1
シリアルドライバがサポートしているボーレートの決定
シリアルドライバでサポートされているボーレートを確認する方法を教えてください。私のドライバの詳細(デバイスマネージャから)は続きますが、それらはあまり役に立ちません。 COM1をサポートされていないボーレートに設定しようとしているため、クラッシュするアプリケーションを作成しています。そのため、ドライバがサポートしているボーレートを知る必要があります。任意の提案は大歓迎です。ありがとう。 ドライバファイル: C:\ Windows \ system32 \ drivers \ serenum.sys C:\ Windows \ system32 \ drivers \ serial.sys プロバイダ:Microsoft Corporationファイル バージョン:5.1.2600.5512(xpsp.080413-2108)



1
組み込み(ルーター)LinuxでのCPU集約型の最小シリアルロギング
シリアルデバイスからOpenWrtルーターにデータを記録しようとしています。 データはすべてASCIIベース、115200ボー、8N1ですが、送信、受信、およびグランドのみが接続されています(フロー制御なし)。デバイスは、1行あたり76文字のテキストを1秒あたり50行送信します(さらにCR + LFは50x78 = 3900文字/秒になり、1文字あたり1スタートビット(?)、8データビット、1ストップビットを考慮します)文字ごとに10ビットが必要と思われるので、利用可能な115200の39,000ビット/秒-それは正しく最大化されるべきではありません?) 問題は、NVRAMに保存しているデータのドロップ、行の切り捨て、マージなどです。そして、これを実行するheadかcut、正確に30000行と言った後に停止する場合、正確に10分かかりますが、行数が失われる/切り捨てられる/結合されるため、その行数に達するには11分または12分かかります。たとえば、次の例では、すべての行にまったく同じ数のフィールドが表示されますが、破損した行の3つの例が表示されます。 $label,014704260,000000000,000000000,000000000,000000000,000000000,453266711 $label,014704280,000000000,000000000,000000000,000000000,000000000,498035313 $label,014704300,000000000,000000000,000000000,000000000,000000000,564242105 $label,014704320,190418.30,000000000,000000000,000000000,000000000,458805062 $label,014704340,000000000,000000000,000000000,000000000,000000000,447439419 $label,014704360,000000000,000000000,000000000,000000000,000000000,515812674 $label,014704380,000000$label,014704500,000000000,000000000,000000000,000000000,000000000,430368215 $label,014704520,190418.50,000000000,000000000,000000000,000000000,474793672 $label,014704540,000000000,000000000,000000000,000000000,000000000,514101937 $label,014704560,000000000,000000000,000000000,000000000,000000000,498089337 $label,014704580,000000000,000000000,000000000,000000000,000000000,479420800 $label,014704600,000000000,000000000,000000000,000000000,000000000,568108911 $label,014704620,000000000,000000000,00000000000,497468975 $label,014704640,190418.60,000000000,000000000,000000000,000000000,509747997 $label,014704660,000000000,000000000,000000000,000000000,000000000,441899024 $label,014704680,000000000,000000000,000000000,000000000,000000000,543482880 $label,014704700,000000000,000000000,000000000,000000000,000000000,445069837 $label,014704720,190418.70,000000000,000000000,000000000,000000000,517975535 $label,014704740,000000000,000000000,000000000,000000000,000000000,477103089 $label,014704760,000000000,000000,000000000,483954418 $label,014704860,000000000,000000000,000000000,000000000,000000000,484600994 $label,014704880,000000000,000000000,000000000,000000000,000000000,489675319 また、フィールド2は1行あたり20ずつ増加するミリ秒カウンターであり、フィールド3が存在する場合(5行ごと)はhhmmss.ssです。これは、行が切り捨て/マージされると同時に、3〜5行(0.1秒)も失われることを示しています。 明らかに、何かがボトルネック、遅れ、同期外れ、バッファオーバーランなどになっています。 データの80%または98%を破棄しても満足できます(一貫性がある限り、5行ごとに1行、または50行ごとに1行のみを保持します)が、それらをドロップするための低レベルの十分な方法が見つかりません同じ問題に悩まされることなく。私のようなものを試してみたawk 'NR % 5 == 0' /dev/ttyUSB0。またの様々な組み合わせを試してみましたなど、またはFIFOにその配管してからのみ、そこからNVRAMにログインせずに、nice -n -19そしてionice -c 1 -n 0どの読んでいる私の最初の(awkの)コマンドの「リアルタイム」クラスでなければなりませんttyUSB0から、フィルター処理された(より小さい)データストリームの優先順位を下げます。 このデータをログに記録する、または行をドロップする、たとえばsttyハンドラー内または他の場所で、低レベルの方法またはCPUをあまり使用しない方法はありますか?ttyにより大きなバッファを設定しますか?または、このランダムな失われた/マージされたラインの問題なしに、すべてのデータを保持するか、予測可能にいくつかをドロップするためのここでの私の最善のアプローチは何ですか?

2
2つのシリアルデバイスをUSBアダプターと単一のUSBハブの両方に接続すると、コンピューターには2つの異なるCOMポートが表示されますか?
簡単な質問ですが、自分で答えを見つけることができませんでした。特に、シリアルポートで実行される2つのデバイスを制御する必要があるC ++でプログラムを作成しています。このプログラムは、シリアルポートがなく、USBポートが十分でない可能性があるラップトップで実行されます。したがって、シリアル-USBアダプターを使用する必要があり、最悪のシナリオでは、両方のアダプターを単一のUSBハブに接続する必要があります。 アダプターをUSBポートに直接差し込んで理解すると、コンピューター、つまりコードはシリアルデバイスとして認識されるだけなので、それで十分です。しかし、USBハブを経由するとどうなるかわかりません。私はそれがうまくいくと思うが、私は肯定的ではなく、残念ながら私は現在テストするための手元に機器を持っていない(悲しいことに、私はそれが制御するデバイスではなく、選択)。 だから誰かが非常に役立つと思われる何らかの方法を確認できたら、ありがとう。

0
COM通信のタイムアウト
私はコンピュータに接続し、COMポートを介してコンピュータと通信するデバイスを持っています。 私は2台の異なるコンピューターでそれをテストしました。 Windows-Server 2008では正常に動作しますが、Windows-7 Ultimateでは別のシステムでタイムアウトを返しますどうして? Windows-7: Windows-Server-2008: 注意:ドライバは必要ありません。 (私は推測する)


1
LinuxでUSBを介したシリアルポート通信の確立
Ubuntuを初めて使用するため、PCとマイクロコントローラーMSP430G2452の間にシリアルポート通信を確立する必要があります。 接続時に、Launchpadで使用可能なUSBを使用しますlsusb。 ポートを次のように識別します。 Bus 005 Device 003: ID 0451:f432 Texas Instruments, Inc. eZ430 Development Tool そのような接続を確立した後、私は何をする必要がありますか?私の目標は、Linuxで1バイトの情報を送信することです。

1
PCIシリアルカードはLinuxシステムで通信しませんか?
Mageia Linuxを実行していますが、2つのシリアルポートを持つPCIカードがあり、マザーボード(ASUS H81M-A)にはオンボードシリアルポートがありません。PCIカードはWCHによって製造されているようです。カードに付属しているLinuxドライバーをインストールしようとしましたが、システムでファイルに大量のエラーが見つかり、ドライバーのインストールを中止しました。私のカードはこんな感じで、CH3825SP @ 1107があります。 そこで、オンラインでヘルプを探し始め、次のことを行うための情報を見つけました。 私は走っlspci -vてこれを得た。のセクションSerial controllerは私のPCIシリアルカードだと思います。 00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06) Subsystem: ASUSTeK Computer Inc. Device 8534 Flags: bus master, fast devsel, latency 0 Capabilities: <access denied> Kernel driver in use: hsw_uncore 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.