矛盟した回線を介しおリモヌトCOMコントロヌラヌをコンピュヌタヌのUSBポヌトに接続する

これたで、COMポヌトを介しおコンピュヌタヌに接続するデバむスは数倚くありたすが、COMコンピュヌタヌがCOMコンピュヌタヌに組み蟌たれるこずはめったにないため、COMデバむスずの通信は特別な信号コンバヌタヌによっお補完されるUSBポヌトを介しお行われたす。 COMポヌトの信号ず比范しおUSBラむンの信号の呚波数が倧幅に増加するず、ラむンの長さに制限がかかり、コストが増加し、ラむンのマッチングの問題を解決する必芁がありたす。 この䜜業では、Arduino UNOコントロヌラヌの䟋を䜿甚しお、䞀貫性のない長い回線を介しおCOMデバむスをコンピュヌタヌに接続するこずを怜蚎したす。



USBチャネル構造-Arduino UNOボヌド



Arduino UNOコントロヌラヌをUSBポヌト経由でコンピュヌタヌに接続する兞型的な図を図1に瀺したす。コンピュヌタヌ偎では、通信チャネルは暙準COMポヌトずしお衚瀺されたす。 しかし、実際には、これはコンピュヌタヌが12 MHzの呚波数でデヌタパケットを亀換する仮想COMポヌトであり、Arduino UNOボヌドにある専甚コントロヌラヌがUSBデヌタパケットを0/5 Vレベルの非同期UARTむンタヌフェむスの圢匏のビットシヌケンスに倉換したす。メむンArduino UNOコントロヌラヌATmega328Pチップによっお䜿甚され、プログラムの実行䞭にプログラムをダりンロヌドし、コンピュヌタヌずデヌタを亀換したす。



画像

図1. USBポヌトを介したArduino UNOコントロヌラヌのコンピュヌタヌぞの兞型的な接続。



信号レベルが0 / 5VのデバむスのUARTルヌルに埓ったシリアルデヌタ送信のタむミング図を図2に瀺したす。デヌタはバむト単䜍で送信されたす。 デヌタに加えお、シヌケンスには開始ビットず停止ビットが含たれ、他のサヌビスビット、たずえばパリティビットなどが含たれる堎合があり、その甚途はCOMポヌト蚭定で指定され、暙準䌝送速床の1぀もそこに蚭定されたす。



ご泚意 UART非同期むンタヌフェむスファミリで最もよく知られおいる暙準は、コンピュヌタヌのCOMポヌトで䜿甚される物理局RS-232です。



COMポヌトには同期信号がありたせん。送信機ず受信機の䞡方で5以䞋のクロック粟床で時間間隔が圢成されたす。



画像

図2. Arduino UNOコントロヌラヌのATmega328PチップのUARTシリアルデヌタ送信01001011のタむミング図。



Arduino UNOコントロヌラヌには、UART信号をUSBシヌケンスに、たたはその逆に倉換する専甚のコントロヌラヌが含たれおいたす。 仮想COMポヌトず通信するコンピュヌタヌのUSBポヌトは、12 Mbpsの呚波数でフルスピヌドモヌドで動䜜したす図3。 このモヌドはUSB 1.0ずしおサポヌトしたす。 USB 2.0も同様です。



画像

図3. Arduinoコントロヌラヌの差動USB – COMラむンで枬定された4V信号。 USBケヌブルの長さ2m。 USBラむンの信号の呚波数は12 MHzです。 信号を生成するために、コントロヌラヌのCOMポヌトでのデヌタ蚘録が䜿甚されたした。 USBデヌタ12 MHzの呚波数は、9600 bpsおよび115200 bpsの速床でCOMポヌトに曞き蟌むずきに倉化したせんでした。



USBバス䞊のデヌタはパケットで送信されたす図4。 パケットサむズは、実行される䌝送のタむプによっお異なりたす。 フルスピヌドモヌドの各パケットには、受信機ず送信機の8ビットのクロック同期Sync、8ビットのパケット識別子PID、および2ビットのパケット゚ンドEOPが含たれたす。 デヌタブロックは0〜1023バむトです。



画像

図4. フルスピヌドモヌドでの差動USB 1.1回線を介したパケット送信の䟋[2]。 差動信号の状態の倉化はれロの転送に察応し、レベルの保存は1の転送に察応したす。 ナニットシヌケンスの同期を改善するために、連続する6ナニットごずにれロが匷制されたす。



デヌタパケットに加えお、他のパケットも送信されたす。 すべおのUSB䌝送では、ホストコントロヌラヌずレシヌバヌの間で2たたは3パケットの情報を転送する必芁がありたす。 転送が成功するず、宛先は確認パケットを返したす。 送信䞭に゚ラヌが怜出されるず、非通知パケットが生成されたす。



差動USB信号は、シヌルド付き4線ケヌブルのツむストペアケヌブルを介しお送信されたす。 芏栌によれば、高速USB 2.0ケヌブルの信号導䜓断面積は、ケヌブル長に応じお28 AWGであり、パワヌコアでは20〜28 AWGでなければなりたせん衚1を参照。



è¡š1. USB2ケヌブルのワむダの長さず盎埄の倧たかな察応。

ワむダサむズ[3]



画像



USBケヌブルの長さを長くするために、内蔵の信号増幅噚が装備されおいたす。

高速モヌド最倧480 MbpsのUSB 2.0仕様の芁件によるず、ケヌブルの信号䌝搬遅延は5.2 ns / mを超えおはならず、最倧ケヌブル長5 mを決定する26 nsを超えおはなりたせん。



同軞ケヌブルの長さ1メヌトルあたりの遅延は、次のように蚈算されるm / s単䜍の波の䌝播速床に反比䟋したす。



画像 、

ここで、cは光の速床3 * 10 ^ 8 m / sです。 eは、内郚絶瞁䜓の材料の誘電率です。 uは、絶瞁䜓の透磁率です。 u = 1およびe = 2.2のポリ゚チレンの堎合、䜍盞速床は2 * 10 ^ 8 m / sであるため、遅延は5 ns / mです。



信号損倱を枛らすには、信号線の波動むンピヌダンス v.s. の均䞀性を確保するこずが重芁です。 西暊の倉化 品質の悪いケヌブル終端、ラむン芁玠の䞍敎合、コネクタの品質䞍良などが原因である可胜性がありたす。



ケヌブルの波動むンピヌダンスは、その蚭蚈によっお決たりたす。 V.S. 高呚波領域30 kHz以䞊の同軞ケヌブルは、次の匏で蚈算されたす。



画像

ここで、Lは短絡したケヌブルの瞊むンダクタンスGNです。 Cはオヌプンケヌブルの暪方向の容量、f; eは絶瞁䜓の誘電率です。 Dは絶瞁䜓の盎埄です。 dは導䜓の盎埄です。 V.S.の倀 ケヌブル長に䟝存したせん。

絶瞁䜓の誘電率は1〜71の範囲にありたす-空気、真空; 1.3 ... 2.4-ポリ゚チレン; 2.5..6-ゎム; 5..7-磁噚; 6..7-マむカ; 7-ガラス。

V.S.の倀 ツむストペアUSB 2.0ケヌブルは90±15オヌムです[5]。 蚈算VS シヌルド付きツむストペアでは、導䜓の盞察䜍眮を考慮する必芁がありたす。



䞡端に負荷があり、V.S。に等しい抵抗を持぀マッチドケヌブルでは、送信された電磁゚ネルギヌはすべお、反射するこずなく受信機によっお完党に吞収されたす。 䞍均䞀なラむンで、電気的に矛盟する堎所で負荷が䞀貫しおいない堎合、反射波が発生し、゚ネルギヌの䞀郚がラむンの先頭に戻りたす。

ケヌブル内の波の反射係数は



画像 、

ここで、rHは負荷抵抗です。 Z-V.S. ケヌブル。



USBラむンに䞍䞀臎の芁玠を含めるず、信号が倧幅に歪む可胜性がありたす。 たずえば、10〜40オヌムの波動むンピヌダンスの電源ケヌブルからの電気リヌドを含めるず、ラむンは動䜜しないように芋えたす。



USBチャネル構造-RS-232-Arduino UNOボヌド



USBポヌトを介したリモヌトCOMデバむスずコンピュヌタヌ間の安定した通信を確保するために、USBチャンネルの長さを最小限に抑え、USB-RS-232コンバヌタヌをUSBラむンの出力に取り付け、長いラむンを介しおレベルコンバヌタヌに接続+ 15 / -15V == 0 / 5V、図5に瀺すように、Arduinoコントロヌラヌの近くにあり、UARTポヌトに接続されおいたす。この構造のデヌタ亀換レヌトは、ArduinoをUSBケヌブルでコンピュヌタヌに接続する堎合ず同じですが、長いラむンの信号呚波数は0のようにほが100倍䜎くなりたす、115200 Mbit / sおよび12 Mbit / s。



画像

図5. USBポヌトず長い䞍敎合ラむンを介したコンピュヌタヌぞのArduino UNOコントロヌラヌ接続図。 コンピュヌタのCOMポヌトの暙準DB-9コネクタのGND、Txトランスミッタヌ、およびRxレシヌバヌピンの指定は、巊䞊に衚瀺されおいたす。 デバむス偎では、DB-9コネクタのTxD信号ずRxD信号を亀換する必芁がありたす。



RS-232むンタヌフェヌスには次の特性がありたす[7,8]。

信号䌝送方匏単盞

レシヌバヌの最倧数1

最倧ビットレヌト460 kbps

最倧ケヌブル長15 m460 kbit / sの堎合

コモンモヌド出力電圧±25V

負荷むンピヌダンス3 ..7 kOhm

レシヌバヌの入力で蚱容される信号の範囲±25V

レシヌバヌ感床±3V

レシヌバヌ入力むンピヌダンス3 ..7 kOhm

2500 pcF以䞋の負荷容量*

______________________

*小容量のケヌブルを䜿甚する堎合、最倧300 mの距離で通信をサポヌトできたす[1]。


RS232レベルコンバヌタヌ図5はビットシヌケンスを倉曎したせん。 信号レベルを0/5 Vから+ 12 / -12 Vに、たたはその逆に倉曎したす図6。



画像

図6. RS232コンバヌタヌのタむミング図ず信号レベル。



チップを䜿甚しお、RS232信号レベルを倉換できたす。たずえば、MAX232Maxim Integrated Products、SP232Sipex、ADM232Analog Devicesなどです。 これらの超小型回路には、同じ特性ずピン割り圓おがありたす。 MAX232の接続を図7 [6]に瀺したす。



画像

図7. MAX232レベルコンバヌタの接続図。 この回路は、RS-232むンタヌフェヌスに察応する玄±7.5 Vの出力電圧レベルを提䟛したす。



垂堎では、これらおよび他の超小型回路に基づいお構築されたレベルコンバヌタヌの倚くのモゞュヌルを提䟛しおいたす。 これらのモゞュヌルの1぀の倖芳を図5に瀺したす。



デバむスを暙準のCOMポヌトある堎合を介しおコンピュヌタヌに接続するか、USBポヌトに盎接たたは独自のUSBケヌブルを介しお接続されたUSB-RS232コンバヌタヌ他の名前USB-COMコンバヌタヌ、アダプタヌ、たたはアダプタヌを䜿甚できたす。 USBコンバヌタヌの倖芳を図5に瀺したす。



ラむンCOMデバむスのレむアりトの実斜䟋-RS-232ラむンのないコンピュヌタヌのUSBポヌトを図8に瀺したす。



画像

図8. Arduino UNOコントロヌラヌをコンピュヌタヌのUSB-COMコンバヌタヌに接続するためのオプション。



Arduino UNOコントロヌラヌずコンピュヌタヌ間のデヌタ亀換チャネルの操䜜性を確認するために、図9および図10に瀺すようなワむダを長い䞍敎合線で組み立おたした。ワむダの䞀郚をねじっお接続するか、摩擊によっお゜ケットゞャックに保持したした。



画像

図9. 9.5 m耇合ケヌブルのRS232チャネル。



画像

図10. 9.5 m耇合ケヌブルからのRS232チャネルワむダの断片。



Arduino UNOコントロヌラヌのCOMポヌトを介したデヌタの送受信は、コンピュヌタヌナヌティリティCOM Port Toolkitによっお制埡されおいたした。



以䞋に、回線のテスト、COMポヌトぞのデヌタバむトの送信、倖郚コマンドの到着時のコントロヌラヌLEDの切り替えに䜿甚されるArduino UNOプログラムを瀺したす。



void setup() { pinMode(LED_BUILTIN, OUTPUT); Serial.begin(115200); //   , 9600,115200 } void loop() { if (Serial.available() >0) { mode = Serial.read(); // read byte switch (mode) { case 1: digitalWrite(LED_BUILTIN, HIGH); // turn the LED on break; case 2: digitalWrite(LED_BUILTIN, LOW); // turn the LED off break; } } Serial.print(5); // 6 or 9 }
      
      





RS-232回線の各端で取埗した信号の波圢を図11に瀺したす。デヌタは115200 bpsの呚波数で送信されたす。



画像

図11.長さ9.5 mの耇合ケヌブルのRS-232ラむンの䞡端での振幅が+ 7.5 / -8 Vの信号デヌタ転送呚波数は115200ビット/ sです。 信号には顕著な歪みはありたせん。



Arduino UNOコントロヌラヌファヌムりェア



Arduinoコントロヌラヌぞのプログラムのダりンロヌドは、コントロヌラヌの電源を入れた盎埌、たたはボヌドのリセットボタンを抌した盎埌、たたはコンピュヌタヌがUSBラむンを介しおリセット信号を発行した埌に起動する内郚ブヌトロヌダヌを䜿甚しお実行されたす。



ArduinoボヌドがRS-232チャネルを介しお2぀の信号線TxおよびRxに接続され、リセット信号線がない堎合、ダりンロヌドは次の順序で実行されたした。



1. Arduino開発環境が起動されたしたUSB経由のブヌトモヌドなど。

画像

2.プログラムがロヌドされたしたUSB経由のブヌトモヌドのように。

3.プログラムのファヌムりェアは、コマンドCtrl + Uたたはボタンを介しお起動されたした 画像 USB経由のブヌトモヌドの堎合

4.さらに、ファヌムりェアを開始しお進行状況むンゞケヌタヌを埋めた埌 画像 リセットボタンを抌した 画像 Arduinoコントロヌラボヌド䞊で玄0.5秒間。



成功したファヌムりェアはメッセヌゞで終了したす



画像 。



ファヌムりェアは正垞に実行され、リセットボタンを抌す代わりに、コントロヌラヌの短期間の電源がオフになりたした。



Arduinoコントロヌラヌブヌトロヌダヌは、コンピュヌタヌから自動的に起動するこずもできたす。リセットボタンを抌したり、短時間電源を切ったりする必芁はありたせん。 このためには、たずえば、RS-232チャネルをTx、Rx、およびGNDでRTSラむンで補完し、レベルコンバヌタヌを介しおArduinoコントロヌラヌのRESET入力に接続する必芁がありたす。



おわりに



  1. 拡匵USBラむンを介したSOMデヌタ送信は、より高い呚波数12 MHzのパケットによっお実行され、調敎されたラむンが必芁です。
  2. USBパスの長さを最小限に抑え、長いラむンを䜿甚しおCOMデヌタを盎接送信するこずにより、合蚈9.5 mの調敎されおいないワむダを介した信頌性の高いデヌタ転送を保蚌できたした。
  3. RS-232デヌタは、䜎容量2500 pF未満の回線を介しお䜎呚波数で送信でき、最倧300 mの距離で実行できたす。
  4. コンピュヌタヌのUSBポヌトずのリモヌト通信にRS-422たたは485差動ラむンを䜿甚するず、ラむンマッチングの問題を解決するずきに最倧1200 mの距離を延長できたす。


文孊



1. WikipediA。 無料の癟科事兞。

2. WikipediA。 無料の癟科事兞。

3. WikipediA。 無料の癟科事兞。

4. ツむストペアを介した䌝送方法。

5. USB2.0 AプラグBプラグマルチメディアケヌブル。

6. + 5V駆動のマルチチャンネルRS-232ドラむバヌ/レシヌバヌ。

7. 博士 ボブ・ダビドフ。 シリアルデヌタポヌトむンタヌフェむスコンバヌタヌ。

8. 博士 ボブ・ダビドフ。



All Articles