タグ付けされた質問 「rs232」

RS-232は、ほとんどのシリアルポートで使用されている電気規格です。この標準は+/- 15ボルトシステムであり、TTLロジックレベルと互換性を持たせるにはFDMIコンバーターが必要です。

3
UARTとRS-232の違いは?
ほとんどの場合、RS-232とUARTはシリアル通信理論で一緒になります。両方とも同じですか?私の測定から、UARTはRS-232プロトコルのハードウェア形式であると結論付けました。私は正しいですか?

3
232はRS232規格で何を意味しますか?
通信規格RS232およびRS485の「RS」は「推奨規格」の略です。しかし、「232」または「422」または「485」はどのような情報を名前で伝えますか?RS規格に名前を付けるときに、「RS」という文字に続く番号にはどのような命名規則が使用されますか?
32 rs232  rs485  rs422 

2
USBとRS232の違いは何ですか?
誰かがUSBまたはRS232を使用する理由を教えてください。どちらもシリアルポートですよね?そして、私はUSBがはるかに高速であることを理解しています(特にUSB3.0)が、人々が望んでいるなら、RS232の後継機を作ることができると確信しています。 それで、両方の長所と短所は何ですか?
29 usb  serial  rs232 

6
シリアルプロトコルの区切り/同期技術
非同期シリアル通信は今日でも電子機器に広く普及しているため、私たちの多くはそのような質問に時々出くわしたと思います。電子デバイスDと、PCシリアル回線(RS-232または同様のもの)で接続され、継続的に情報を交換する必要があるコンピューターを検討してください。すなわち、PCそれぞれコマンドフレームを送信しており、それぞれステータスレポート/テレメトリーフレームで応答しています(レポートはリクエストへの応答として、または独立して送信できます-ここでは実際には関係ありません)。通信フレームには、任意のバイナリデータを含めることができます。通信フレームが固定長パケットであると仮定します。X msDY ms 問題: プロトコルは継続的であるため、受信側は同期を失ったり、進行中の送信フレームの途中で「結合」したりする可能性があるため、フレームの開始(SOF)がどこにあるかはわかりません。Aデータは、SOFに対する相対的な位置に基づいて異なる意味を持ち、受信したデータは破損する可能性があり、永久に破損する可能性があります。 必要なソリューション 短い回復時間でSOFを検出するための信頼性の高い区切り/同期スキーム(つまり、再同期に1フレーム以上かかることはありません)。 私が知っている(そして使用している)既存のテクニック: 1)ヘッダー/チェックサム -事前定義されたバイト値としてのSOF。フレームの最後のチェックサム。 長所:シンプル。 短所:信頼できません。不明な回復時間。 2)バイトスタッフィング: 長所:信頼性が高く高速な回復で、どのハードウェアでも使用可能 短所:固定サイズのフレームベースの通信には適していません 3)9番目のビットマーキング -各バイトに追加ビットを追加します。SOFでマークされたSOF 1とデータバイトには次のマークが付けられ0ます。 長所:信頼性が高く、高速な回復 短所:ハードウェアサポートが必要です。ほとんどのPCハードウェアおよびソフトウェアでは直接サポートされていません。 4)8番目のビットマーキング -上記の一種のエミュレーション。9番目ではなく8番目のビットを使用し、各データワードに7ビットのみを残します。 長所:信頼性の高い高速リカバリは、どのハードウェアでも使用できます。 短所:従来の8ビット表現と7ビット表現の間のエンコード/デコードスキームが必要です。やや無駄だ。 5)タイムアウトベース -定義されたアイドル時間の後に来る最初のバイトとしてSOFを想定します。 長所:データオーバーヘッドなし、シンプル。 短所:それほど信頼できません。Windows PCなどのタイミングの悪いシステムではうまく動作しません。潜在的なスループットのオーバーヘッド。 質問: 問題に対処するために存在する他の可能な技術/解決策は何ですか?上記のリストで簡単に回避できる短所を指摘できますか?システムプロトコルをどのように設計しますか(または設計しますか)?
24 serial  communication  protocol  brushless-dc-motor  hall-effect  hdd  scr  flipflop  state-machines  pic  c  uart  gps  arduino  gsm  microcontroller  can  resonance  memory  microprocessor  verilog  modelsim  transistors  relay  voltage-regulator  switch-mode-power-supply  resistance  bluetooth  emc  fcc  microcontroller  atmel  flash  microcontroller  pic  c  stm32  interrupts  freertos  oscilloscope  arduino  esp8266  pcb-assembly  microcontroller  uart  level  arduino  transistors  amplifier  audio  transistors  diodes  spice  ltspice  schmitt-trigger  voltage  digital-logic  microprocessor  clock-speed  overclocking  filter  passive-networks  arduino  mosfet  control  12v  switching  temperature  light  luminous-flux  photometry  circuit-analysis  integrated-circuit  memory  pwm  simulation  behavioral-source  usb  serial  rs232  converter  diy  energia  diodes  7segmentdisplay  keypad  pcb-design  schematics  fuses  fuse-holders  radio  transmitter  power-supply  voltage  multimeter  tools  control  servo  avr  adc  uc3  identification  wire  port  not-gate  dc-motor  microcontroller  c  spi  voltage-regulator  microcontroller  sensor  c  i2c  conversion  microcontroller  low-battery  arduino  resistors  voltage-divider  lipo  pic  microchip  gpio  remappable-pins  peripheral-pin-select  soldering  flux  cleaning  sampling  filter  noise  computers  interference  power-supply  switch-mode-power-supply  efficiency  lm78xx 

2
この文脈での「ハーフビット」の意味は何ですか?
RS-232仕様では、ストップビットは1、1.5、または2ストップビットになります...どうして半分のビットを持つことができるのでしょうか? また、一部のADC演算では、ICの仕様/データシートで0.5ビット精度を使用しています。誰かがこの主題について詳しく説明できますか?
21 adc  rs232 

8
複数のマイクロコントローラー間の通信
N個のマイクロコントローラー(N> = 2 MCU)で構成されるシステムの実装を開始したいのですが、相互に通信できるようにする可能性を知りたいと思います。 理想的には、(N-1)マイクロコントローラーはクライアントとして機能する家の中に配置され、最後の(「サーバー」)マイクロコントローラーはUSB経由でPCに接続されます。私が今抱えている問題は、これらの(N-1)マイクロコントローラーを「サーバー」に接続する方法です。クライアントMCUは非常に単純なタスクを実行するため、CAN / PHY-MACを提供するという理由だけで、ARMを使用してこのような単純なジョブを実行することは良い解決策ではない場合があります。 通信は、ほとんどのデバイスで数分に1回、他のデバイスではオンデマンドで行われます。速度はそれほど重要ではありません(メッセージは短いです):1 Mbit / s私は、私の目的にとっては行き過ぎだと思います。 使用する予定のMCUは次のとおりです。 Atmel AVR Tiny /メガ TI MSP430 ARM Cortex M3 / M4 (おそらくAtmel AVR UC3-32ビット) PICをプログラムする可能性が少ないため(可能性のあるPICを避けたい)(上記のすべてには多少のオープンソースツールといくつかの公式ツールがあります)。 一部のARMがCAN機能を提供していることは知っていますが、他のARM についてはあまりよくわかりません。 今、私はこれらの可能性を思いつきました: データを送信する単純なGPIO(たとえば、メッセージの開始を示すHIGHで16ビット以上、メッセージの終了を示すLOWで16ビットを超える)。ただし、すべてのビットを検出できるようにするには、標準周波数<<(frequency_client、frequency_server)である必要があります。クライアントMCUごとに1本のケーブルのみが必要です。 RS-232:これは間違いなく最も一般的に使用されている通信プロトコルだと思いますが、どれだけうまく拡張できるかわかりません。現在、最大64個のクライアントMCUを検討しています(おそらくそれ以降) USB:AFAIKはほとんどRS-232に似ていますが、この場合はあまりうまく拡張できないと思います(USBは多くのデバイスをサポートしていますが-正しく覚えていれば255-このアプリケーションでは複雑すぎるかもしれません) RJ45 /イーサネット:これは、長距離で問題なく(少なくともシールド付き> Cat 6ケーブルで)伝送できるため、これが本当に使いたいものです。問題はコストです(PHY、MAC、トランスなど)。あなたが実際に自宅でうまくはんだ付けできるかどうかはわかりませんが。この方法では、クライアントMCUは必要ありません ワイヤレス/ ZigBee:モジュールは非常に高価ですが、机の後ろの「スパゲッティ」を避けるための方法かもしれません RFモジュール/トランシーバー:私は300 MHz-1 GHz帯域のものを話しているので、自宅ではんだ付けするのは難しいはずです。モジュールはすべて組み込まれていますが、ZigBeeと同じくらい高価です(少なくともMouserのRFのモジュール、SparkfunのRFモジュールはもっと安いようです)。 できる?非常に堅牢なようです。車載アプリケーションで使用する予定はありませんが、それでも良い選択肢になる可能性があります。 I²C / SPI / UART?繰り返しますが、可能であればケーブルで「スパゲッティ」を避けてください PLCは実際にはオプションではありません。長さが長くなり、電力ネットワークの容量負荷に依存するため、パフォーマンスはかなり低下します。価格面では、イーサネットとほぼ同じだと思います。 さらに、同時送信の場合、どのプロトコルが「より良い」でしょう(2つのデバイスが同時に送信を開始するというまれなケースを想定しましょう。どのプロトコルが最高の「競合管理システム」/「衝突管理システム」を提供しますか? …

6
最大シリアルケーブル長?
接続が正しく機能するために使用できるシリアルケーブルの最大長は?シリアルケーブルの長さはボーレートに関係していますか?速度38400ボーでRS232通信で約5メートルのケーブルを使用していますが、長すぎますか?
14 serial  rs232  cables 

2
RS232 vs USB CDCサービス品質/メッセージにチェックサムを含める必要がありますか?
USBには、USB-CDCデバイスとUSBホスト間で送信されるデータのサービス品質保証がありますか? ノイズの多い状況(自動車の診断ポートなど)で従来のRS232を使用している場合、不良ビットが頻繁に発生するため、プロトコルにとってチェックサムが重要です。そのようなプロトコルを純粋なUSBアプリケーションに適応させる場合、チェックサムと関連するエラー処理ルーチンを安全に省略できますか? 参考のため、Atmelが提供するUSB-CDCフレームワークでAT91SAM7S256を使用しています。 更新: この問題についてGoogle-Fuをもう少し試したところ、イーサネットエミュレーションと状態のCDCサブクラスについて説明している次の記事が見つかりました。 カプセル化されたイーサネットフレームは、USBケーブルを介して、宛先MACアドレスから始まり、フレームチェックサムの直前で終わります。(USBは信頼できるトランスポートであるため、フレームチェックサムは必要ありません。) プログラムが十分な速度でデータをポーリングできない場合、高スループットのバーストデータ(webcam?)を対象とする一部のデバイスクラスはバッファーを満杯にしたくない場合があるため、USB-CDCは一般的なUSBではなく信頼性の高いトランスポートを意味する場合があります。 私はまだこれに関する追加の確認をお願いします。

4
TXおよびRXとは何ですか?
私は、PCへのRS232通信を使用するデバイスを使用しています。デバイスに対してTXピンとRXピンを定義しているため、混乱が生じています。定義では、TXがデバイスからデータを送信するピンであることを意味します。私の考えでは、これはRXというラベルが付いているはずです。これはコンピューターが受け取るピンだからです。 ピンはどのように定義する必要がありますか?それらは各デバイスに関連するものですか、それとも「コントローラー」に関連するものですか?
11 rs232 


4
TX出力信号からRS232通信のボーレートを計算できますか?
X出力信号からRS232通信のボーレートや通信速度を計算できますか? 以下の画像は、RS232通信出力信号からのものです。私は0xaaでこの写真を撮りました、そして最高の間の期間は100.usです。 外部発振器の周波数は8Mhzと聞きました。それからボーレートを計算できますか?
10 uart  rs232 

2
MAX232はどのように電圧を2倍にしますか?
MAX232データシート こんにちは、私は現在学生ですので、どうか我慢してください! 私は現在、5V DCでMAX232に電力を供給しています。VCCから測定すると、たとえばピン3で、電圧計で約13Vの電圧測定値を取得しています。5Vを超える電源を使用する。何が起こっている?データシートに電圧ダブラーがあると書いてありますが、コンデンサーが必要なこと以外は、電圧ダブラーがどのように機能するかはよくわかりません。

2
RS232を介してHP33120AでSCPIを使用する方法
古いヒューレットパッカード33120A関数発生器(Agilent 33120Aと同じタイプである必要があります)があり、MCU(ATMega)で制御したいと思います。ジェネレータにはRS232があり、SCPIコマンドを使用します。 RXおよびTXラインのみを使用して、MAX232でシンプルなRS232からTTLへのコンバーターを作成しました。よるユーザーズガイド(第4章、セクションDTR / DSRハンドシェイクプロトコル)Iが接続されていない論理TRUE(負電圧)とDTRにDSRを結びました。この構成では、ハードウェアハンドシェイクを無効にする必要があります。 これで、コンバーターをMCUまたはコンピューターに接続できます。最初の実験では、コンピューターと次のPythonスクリプトを使用しました。 import serial, sys, time if __name__ == '__main__': if len(sys.argv) < 2: print 'Usage: %s <serial_port>' % sys.argv[0] sys.exit(1) s = serial.Serial(port=sys.argv[1], baudrate=2400, bytesize=8, parity='N', stopbits=2, timeout=None, xonxoff=0, rtscts=0) time.sleep(0.5) s.write('\n*CLS\n') time.sleep(0.5) s.write('SYST:REM\n') time.sleep(0.5) s.write('APPL:SIN 30E+3, 0.1\n') s.close() これは問題なく動作します。ジェネレーターは期待通りに出力を30kHzに設定しました。問題は、ジェネレーターからの応答を読み取ろうとしたときです。たとえば、これはデバイス名を返すはずです: s.write('*IDN?\n') print s.realine() 応答がジェネレーターの出力バッファーに格納されることは確かですが、実際にはデータは送信されません。 バッファからのデータ送信をトリガーするコマンドはありますか?または、ハードウェアハンドシェイクを有効にする必要がありますか? …

6
USB-シリアルケーブル経由でArduinoをプログラミングするときに、AVRdudeの非同期エラーを修正するにはどうすればよいですか?
私はこの PC用のアンビエント照明を構築しようとしています。これは私のArduino Unoで問題なく動作しました。次のステップは、「ブレッドボード上のArduino」を使用して作成することでした。そこで私は空のATmega328チップを購入し、Arduino IDEとUSBaspを使用してArduinoブートローダー(ボード "Arduino Duemilanove w / ATmega328"用)を書き込みました。そして、このATmegaチップがUnoで正常に動作するので、これは正しくロードされています。 次に、FT232RLを使用してUSB-シリアルコンバーターを作成しました。しかし、そのドライバは私のPC(Windows 7 x64)にインストールされませんでした。表面実装のFTDIチップを過熱し、手ではんだ付けしている間にそれを殺したのではないかと思います。 それで、私はそれを脇に置いて、この USB-シリアルコンバータブリッジを手に入れました:(気まずい写真には申し訳ありません)ブレッドボードに追加のST232CNを使用して、電圧レベルをRS232からTTLに変換しましたページ。ループバックテストで確認したように、これは正常に機能します。そして、ST232のピン9をATmegaのピン2に、ピン10をピン3に接続しました。 Arduino IDEから点滅の例をアップロードしようとすると、次のエラーが発生します。 Binary sketch size: 1026 bytes (of a 30720 byte maximum) avrdude: stk500_getsync(): not in sync: resp=0x00 私が行うと冗長アップロード(Shiftキー+アップロードを)、私はこのエラー/メッセージが表示されます。 avrdude: usbdev_open(): did not find any USB device "usb" また、ATmegaのピン2と3に1kのプルアップ抵抗を追加してみましたが、役に立ちませんでした。では、ST232からATmegaへのシリアル通信に問題があると思いますか?ATmegaのリセットピンへの特別な接続はありますか?10kの抵抗で5Vに引き上げました。


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