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

プロトコルは、メッセージをフォーマットして交換するためのルールセットです。

2
USBデバイスが480 MBit / sより遅いのはなぜですか
動機 480 MBit / sの信号速度で、USB 2.0デバイスは最大60 MB / sでデータを送信できるはずです。しかし、今日のデバイスは[ Wiki:USB ] を読んでいる間、30-42 MB / sに制限されているようです。これは30%のオーバーヘッドです。 USB 2.0は、10年以上にわたって外部デバイスの事実上の標準となっています。USBインターフェースの初期から最も重要なアプリケーションの1つは、ポータブルストレージです。残念ながら、USB 2.0はこれらの帯域幅を必要とするアプリケーションの速度を制限するボトルネックであり、たとえば今日のHDDは90 MB / s以上の連続読み取りが可能です。市場での長いプレゼンスとより高い帯域幅に対する絶え間ないニーズを考慮すると、USB 2.0エコシステムは長年にわたって最適化され、理論上の限界に近い読み取りパフォーマンスに達すると予想されるはずです。 この場合の理論上の最大帯域幅はどれくらいですか?すべてのプロトコルにはUSBを含むオーバーヘッドがあり、公式のUSB 2.0規格によると53.248 MB / s [ 2、表5-10]です。つまり、理論的には、今日のUSB 2.0デバイスは25%高速になる可能性があります。 分析 この問題の根本に近い場所に到達するために、次の分析では、ストレージデバイスからシーケンシャルデータを読み取り中にバス上で何が起こっているかを示します。プロトコルはレイヤーごとに分類されており、バルクアップストリームデバイスの最大理論値が53.248 MB / sである理由について特に興味があります。最後に、追加のオーバーヘッドのヒントを提供する可能性のある分析の制限について説明します。 ノート この質問では、10進数のプレフィックスのみが使用されます。 USB 2.0ホストは、複数のデバイス(ハブ経由)およびデバイスごとに複数のエンドポイントを処理できます。エンドポイントはさまざまな転送モードで動作できます。ホストに直接接続され、高速モードでアップストリームバルクエンドポイントを介してフルパケットを継続的に送信できる単一のデバイスに分析を制限します。 フレーミング USB高速通信は、固定フレーム構造で同期されます。各フレームの長さは125 usで、フレーム開始パケット(SOF)で始まり、フレーム終了シーケンス(EOF)によって制限されます。各パケットはSYNCで始まり、EOF(End-Of-Packet)で終わります。これらのシーケンスは、わかりやすくするために図に追加されています。EOPはサイズが異なり、パケットデータに依存します。SOFの場合、常に5バイトです。 新しいタブで画像を開くと、拡大版が表示されます。 取引 USBはマスター駆動型のプロトコルであり、各トランザクションはホストによって開始されます。SOFとEOFの間のタイムスロットは、USBトランザクションに使用できます。ただし、SOFとEOFのタイミングは非常に厳密であり、ホストは空きタイムスロット内で完全に完了できるトランザクションのみを開始します。 関心のあるトランザクションは、成功したバルクINトランザクションです。トランザクションはトッケンパケットINで始まり、ホストはデータパケットDATA0 / DATA1を待機し、ハンドシェイクパケットACKで送信を確認します。これらすべてのパケットのEOPは、パケットデータに応じて1〜8ビットです。ここでは最悪のケースを想定しました。 これら3つのパケットのそれぞれの間で、待ち時間を考慮する必要があります。これらは、ホストからのINパケットの最後のビットとデバイスのDATA0パケットの最初のビットの間、DATA0パケットの最後のビットとACKパケットの最初のビットの間にあります。ホストはACKを送信した直後に次のINの送信を開始できるため、これ以上の遅延を考慮する必要はありません。ケーブル伝送時間は最大18 nsと定義されています。 …

8
ASCIIから高度なシリアルプロトコルにいつ切り替える必要がありますか?
UARTを介してPCと通信するすべてのマイクロコントローラーデバイスは、コマンドの送信とデータの受信にArduinoで実装されているASCII文字列を使用します。それは電子機器を掘り始めたときに学んだことであり、私は常に裸の弦を送るだけで十分であることがわかりました。しかし、私が遭遇したほとんどのデバイスは、機能コード、アドレス、CRCエラーチェックを含む洗練されたバイナリプロトコルを使用していることに気付きました。 基本的なASCII通信はいつ受け入れられ、Modbusのようなより高度なものを検討する必要がありますか?商用デバイスはそのようなASCIIを使用しますか?産業用?

1
音量調節ヘッドフォンはどのように機能しますか?
Android愛好家に関する最近の質問に、ボリュームコントロールヘッドフォンがどのように機能するか疑問に思いました。 着信信号を減衰させることで機能するボリュームコントロールではなく、信号出力を増減するためにデバイスに信号を送るボリュームコントロールのようなものです。 たとえば、Crossfade LP製品ページによると、ボリュームコントロールはAppleデバイス専用です。 ユニバーサル互換性とマイク通信LPには、最新のすべてのモバイルおよびオーディオデバイスとのユニバーサル互換性のために2本のケーブルが付属しています。3ボタンリモートマイクケーブルは、iPhone®、iPad®、iPod®、Macbookシリーズなどの最新のAppleデバイス用に設計されています。長いオーディオ専用ケーブルと1/4インチアダプターは、すべてのオーディオデバイスとプロ仕様の機器と互換性があります。 しかし、この種のデバイスは明らかにいくつかのAndroid携帯電話で動作し、質問はWindowsマシンの一部のコンピューターサウンドカードでも動作することを意味しますが、Appleのバイヤーではありません(最近初めてスマートフォンを取得したばかりです)前のものの。Googleで簡単に検索しましたが、この技術の標準に関する情報は見つかりません。 これはどのように作動しますか? 左/右/マイクのチャンネルを短絡するのと同じくらい簡単ですか? もしそうなら、この技術をサポートしない機器でこのタイプのヘッドフォンを使用すると、その機器を損傷する可能性がありますか? 例えば、マイクチャンネルを介して送信されるシリアル信号ですか? ヘッドフォンTRSコネクタまたはヘッドフォン+マイクTRRSコネクタのみが必要ですか? このテクニックには名前がありますか? ちなみに、誰かがこれに答えることができますか、私はおそらく残りの情報を自分で調べることができます。* 8 ') それは見た目通りの標準ですか、それとも誰もがAppleをフォローしているだけですか? これは特許されているものですか? もしそうなら、誰が特許を保有し、人々がこの技術を使用するためのライセンス料を請求しますか? そうでない場合、そのためのオープンスタンダードはありますか? ヘッドフォンジャックはどのプロトコルを使用しますか?という質問に対する回答には、いくつかの優れた情報がありますか?しかし、このタイプのボリューム(など)コントロールがどのように機能するかの詳細には答えていません。これは、現在ではかなり一般的で標準的なように見えるためです。

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 

7
I2Cがプルダウン抵抗ではなくプルアップ抵抗で動作するように設計されているのはなぜですか?
I2Cでは、SCLおよびSDAラインはプルアップ抵抗を使用し、ピンドライバーはピンをグランドに駆動できるオープンコレクターNPNデバイスであることを理解しています。これにより、同じバスを複数のスレーブと共有できるようになり、2つ以上のスレーブが誤って同時にバスをドライブしようとしてもシステムに損傷を与えないというI2Cの利点が得られます。 ただし、これは、SDAおよびSCLラインでPNPオープンドレインドライバーとプルダウン抵抗を使用して行うこともできます。これにより、クロックストレッチングやマルチマスター調停のようなことも実現できます。 I2Cプロトコルの現在の実装は、上記の提案された代替実装よりも利点がありますか?

1
公式のGPSプロトコルのドキュメント?
「GPSプロトコル」を検索すると、NMEAやGPSユニットのバイナリ出力など、処理されたGPSデータの多くのソースが明らかになります。 GPS衛星-受信プロトコルの公式文書はどこにありますか?または、それを説明する興味深い補足資料はありますか? コンテキスト:特に、暦とエフェメラがどのように伝わるのかを学ぶことに興味があります。
15 gps  protocol  standard 

2
ローリングコードの説明
誰かがKeeLoqなどのローリングコードプロトコルの仕組みを説明できますか?毎回異なるコードを使用するという基本的な前提は理解しているので、リプレイ攻撃を使用することはできませんが、一方が正しいコードを検証する方法などはわかりません。 さらに、ローリングコードへのインデックスが事前に知られていない/共有されていない場合、どのように初期同期を実行しますか? Keeloqを例として使用して説明する必要がある場合は問題ありませんが、ローリングコードの一般的な説明が必要です。
13 protocol 

6
イーサネット通信とシリアル通信の違いは何ですか?
すべてのマウスの動き、USB接続、およびプリンターなどの他のPC周辺機器は、いわゆるシリアル通信です。毎回1ビット。 ここまでは順調ですね。しかし、TCPプロトコル、イーサネット、インターネットに関しては、もはやシリアル通信と呼ばれていません。しかし、これもビット/秒のものです。 どうしてこんなことに?主な違いは何ですか?なぜシリアル通信ではないのか理解できませんでした。

6
組み込みからコンピュータへの通信に適したRS232ベースのプロトコル
私は、リモートのArduinoとコンピューターとの間のデータ通信を少し行うプロジェクトに取り組んでいます。ワイヤレス接続はXBeesのペアを介して行われるため、Arduinoとコンピューターの間にRS232リンクがあります。少量のデータの場合、いくつかの単純な通信プロトコルをまとめるのは簡単です。ただし、大規模なプロジェクトの場合、優れたシンプルな通信プロトコルにはどのようなものがありますか? 私は実行可能なオプションのように見えるMODBUSを見てきましたが、他にもっと良いオプションがあるかどうかを確認したいと思いました。

2
宇宙機アビオニクスにおける冗長I2Cの使用
私は最近、JPL x2000アビオニクス開発プロジェクトに関するこのレポートを読みました。このプロジェクトは、コストと電力を削減するために、商用シリコンを使用してよりモジュール式のアビオニクスプラットフォームを開発しました。彼らは、宇宙船のすべての電子機器をリンクする2つの冗長プロトコルのアーキテクチャを選択しました。大容量データには高速1394バスが使用され、低帯域幅制御にはI2Cバス(100kHz)が使用されます。これはマルチマスターバスとして構成され、すべてのノードが相互に通信できます。 私は複数のセンサーにI2Cを使用していませんが、私が理解していることから、深刻な距離制限があることがわかります。私は宇宙船の中で、かなり長いワイヤーハーネスがあるかもしれません。 2つの冗長I2Cバスがあることに加えて、各デバイスには、バスとこことここに描かれているメインチップ間の分離を提供するカスタムASICがあります。このチップはおそらく何らかの調整を提供していますか? 大型車両内の通信に1つのPCB内の通信用に設計されたプロトコルを使用することを選択した理由を誰かが説明できますか? たぶん、明確な答えは1つではないことはわかっていますが、そのような選択にどのような要因があるかについて聞きたいと思います。
10 i2c  protocol 

2
VHDL:ビットのカウント時に受信モジュールがランダムに失敗する
バックグラウンド これは個人的なプロジェクトです。FPGAをN64に接続すると、FPGAが受信したバイト値はUARTを介してコンピューターに送信されます。それは実際にはかなりうまく機能します!不幸にも不定期に、デバイスは失敗し、その後回復します。デバッグによって問題を見つけることができましたが、VHDLにはかなりの能力がないため、修正方法に困惑しています。 私は2日間VHDLをいじっていて、これを解決できないかもしれません。 問題 FPGAへのN64信号を測定するオシロスコープがあり、他のチャネルはFPGAの出力に接続しています。カウンター値を記録するデジタルピンもあります。 基本的に、N64はSTOPビットを含む9つのデータビットを送信します。カウンターは受信したデータビットをカウントし、9ビットに達すると、FPGAはUARTを介して送信を開始します。 正しい動作は次のとおりです。 FPGAは青色の波形で、オレンジ色の波形はN64の入力です。受信中、私のFPGAはデバッグの目的で入力の信号を "エコー"します。FPGAが9までカウントした後、UARTを介してデータの送信を開始します。N64が終了した直後にデジタルピンが9にカウントされ、FPGA出力がLOWになることに注意してください。 失敗の例を次に示します。 カウンターがビット2と7をスキップすることに注意してください!FPGAは最後まで到達し、N64からの次の開始ビットを待ちますが、何もしません。したがって、FPGAはタイムアウトして回復します。 これは、N64受信モジュールのVHDLです。次のカウンターが含まれています:s_bitCount。 library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity N64RX is port( N64RXD : in STD_LOGIC; --Data input clk25 : in STD_LOGIC; clr : in STD_LOGIC; tdre : in STD_LOGIC; --detects when UART is ready transmit : out STD_LOGIC; --Signal …
9 fpga  vhdl  protocol 

2
ユニバーサルIRリモート「コード」はどのように機能しますか?
特定の機器のIRプロトコルとコードを検索するときに、この種のリファレンスを見つけるのは簡単です。実際のIR送信には、これらの小さなコードが保持できるよりもはるかに多くのデータが含まれています。 これらのコードは正確に何を表していますか? デバイスが受信できるすべてのコマンドを4桁で表すにはどうすればよいですか? これらの「コード」は、いくつかの標準プロトコルを参照していますか?ユニバーサルリモートは、プロトコルと製品がこの小さな構成コードから理解できるすべてのコードをどのようにして知るのですか? この技術についてもっと知りたいです。私にとってはすべてのリモートが異なるようで、どのビット/バイトが何をするかを特定するためにすべてのメッセージをリバースエンジニアリングする必要があります。

5
ストップバイトとしての\ n \ rフェイルセーフはどのくらいですか?
私のUART通信では、送信されたメッセージの開始バイトと停止バイトを知る必要があります。スタートバイトは簡単ですが、ストップバイトはそれほどではありません。メッセージの最後に2つのストップバイト、つまり\ nと\ r(10進数で10と13)を実装しました。UARTはバイト0〜255の値でのみ機能するので、これはフェイルセーフですか?確率は低いですが、メッセージにストップバイトではない場合、メッセージに「10と13」という値が次々に含まれる可能性があると想像できます。 これを実装するより良い方法はありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.