「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
ソフテックでは、産業用ソフトウェアやマイコンを用いた制御用ソフトウェアの開発が主な仕事になっております。これらのソフトウェアは単体では動かず、色々な機器との組み合わせで動作します。通常、配線関係などはお客様に対応していただくことが多いのですが、ソフテックでも納めた装置周辺の配線などは自分自身で実施することが有ります。また、社内環境でデバッグや試験を行う際は、開発環境の配線を自分で行えないと試験ができない、しづらいということもあり、自分自身で配線を変更します。ただ、不慣れな作業であり、また知識不足から、失敗する時もあります。
今回のソフテックだよりでは私が機器の配線関係で直面した問題や失敗談についてご紹介したいと思います。
複数の有線LANネットワーク機器の試験をする場合、スイッチングHUBのポートが足りなくなるため、HUB間をカスケード接続することがよくあります。試験環境の場合、構成を変えるために機器を取り外したりすると、HUBに接続しているが、機器に接続していないLANケーブルが複数出現します。「このケーブル何にもつながっていないなぁ。とりあえずHUBにさしておくか」などと考え、何気なく、カスケード接続しているHUB間にもう一本LANケーブルを接続すると、ループ構成が完成します。
ループ構成が完成すると、最初は特に何事もなく通信ができますが、しばらくするとやたら通信が遅いという現象が発生します。プログラムの動きがバグっているのかと思い調査しても何もわかりません。Wiresharkなどのキャプチャソフトで見てはじめて、やたらと通信データ量が多いと気づきます。
この現象が発生した環境が、完全に試験環境用の閉じたネットワークであれば被害は少なくて済みます。しかし、社内LANなどに接続されているHUBで発生した場合は、他の人から「ネットがつながりにくい」という声が上がってきて、かなりの大惨事になります。
当たり前ですが、LANケーブルをHUBに接続する際は、もう一方に何が接続されているかを確認したうえで接続しましょう。
図1. カスケード接続とループ接続
RS-232C通信の場合、D-Sub9ピンのシリアルケーブルをPCとマイコンに接続して確認することが多いです。
RS-232C通信の開発自体は最近少なくなりましたので、自分専用シリアルケーブルを確保している人も少なくなっています。そのため、会社の倉庫などからシリアルケーブルを持ち出して作業をするのですが、接続しても送受信ができない、となることが有ります。これは、ストレートケーブルで接続するところをクロスケーブルで接続したことが原因でした。
ストレートケーブル/クロスケーブルのどちらを使うかは接続機器間の取り決めとなりますが、一般的には、コンピュータ同士をつなぐ場合はクロスケーブルで、コンピュータと周辺機器を接続する場合は、ストレートケーブルとなります。ただ、周辺機器の定義が曖昧で、マイコンはコンピュータなのか、周辺機器なのか、論争が起きます。
ではどうすれば間違いを防げるかというと、使用前に、機器のピン配置を回路図などで確認してストレート/クロスを選ぶ必要があります。間違ったケーブルを選んでしまった場合は当然通信ができません。
表1. RS-232C ピン配置
ピン番号 | 記号 | 意味 |
---|---|---|
1 | DCD | キャリア検出 |
2 | RxD | 受信データ |
3 | TxD | 送信データ |
4 | DTR | データ端末レディー |
5 | GND | グラウンド |
6 | DSR | データ・セット・レディー |
7 | RTS | 送信要求 |
8 | CTS | 受信可能 |
9 | RI | 被呼表示 |
図2. RS-232C D-Sub9ピン配線図
RS-422の場合、4線式ですので、TxD+とRxD+のようにTxとRxを接続します。
RS-485の場合、4線式と2線式がありますが、4線式の場合は、RS-422と同じようにTxとRxを接続します。2線式の場合ですと、表記上、D+、D-となり、TxやRxがなくなります。そのため、「あれ?これってどういう風に接続するんだっけ?クロスにすればいいんだから、D+とD-を接続すればいいんだ!!」などと考えると、配線ミスで通信失敗します。同様にCAN通信の場合も「HighとLowをクロスに接続すればいいんだ」と考えてしまうと、配線ミスで通信失敗してしまいます。
正しい配線を確認したうえで接続しましょう。
図3. RS-422配線
図4. RS-485(2線式)配線
図5. RS-485(4線式)配線
図6. CAN配線
RS-232C、RS-422などはシリアル通信の標準規格を指しますが、マイコンのデータシートではUART(Universal Asynchronous Receiver/Transmitter:汎用非同期送受信機)という別な名称で表現しています。マイコン開発の場合、UARTがあるからシリアル通信できると言ったりします。これをそのまま間に受けて、UART = RS-232Cととらえると、ちゃんとTxとRxを接続しても通信ができないといったことが起きます。通信ができない理由は大きく2つあります。
1. 使用する電圧レベルが違う
2. データ信号の論理(HighとLow)が逆
UART | H+2.8V〜+3.3V、L0V〜0.5V | アクティブLow |
RS-232C | H+5V〜+15V、L-5V〜-15V | アクティブHigh |
UARTでRS-232C機器と通信するためにはレベル変換が必要です。マイコン基板上にレベル変換用のICが実装されている場合もありますが、実装されていない場合はレベル変換用の基板を経由してからRS-232C接続することになります。結線方法は、マイコンやRS-232Cレベル変換基板の仕様によって変わります。
図7. RS232Cレベル変換基板例
終端抵抗とは、周波数の高い通信を行う時に信号の不要な反射を防ぐために取付ける抵抗です。RS-422やRS-485, CAN通信などに取付けますが、なくても通信ができるときはできます。取付けなくても通信ができる理由は使っているICの性能が高いと、多少信号がなまっていても正常な信号として検出してくれるためです。逆に言うと使っている通信ICの性能が低いと取付けないと通信ができません。
取付けなくても通信できているからという理由で終端抵抗を取付け忘れていると、稀に通信エラーが発生するなどの問題で悩まされることになるため、忘れずに取付けるようにしましょう。
図8. 終端抵抗の結線例(CAN通信)
a接点は、回路が閉じていない時(電流が流れていない時)が通常時の状態です。b接点は回路が閉じている時(電流が流れている時)が通常時の状態です。運用環境で混在していることは少ないと思いますが、試験環境においては混在することが多々あります。
ボタン(スイッチ)を例にすると、a接点の場合、ボタンを押していると電気が通ります。b接点の場合、ボタンを押していると電気は通りません。そのため、「同じOFF状態なのに、Aの場合はLEDが消灯して、Bの場合はLEDが点灯している。なぜだ??」ということになります。
図9. a接点とb接点の例
無電圧接点(Dry接点)は電圧がかかっていない状態でON/OFFします。有電圧接点(Wet接点)は接点がオンになった時に接点に電圧がかかる状態となります。(図10参照)
「A装置の場合は、ケーブルを接続したり、外したりすればON/OFFができるのに、B装置の場合はケーブルを接続しても、外してもON/OFFが切り替わらない!!」といった場合は、有電圧か無電圧かの違いによるものになります。
図10. 無電圧接点と有電圧接点
機器を使用する場合、AC100V → スイッチング電源 → 機器という電源構成が一般的です。
市販の機器はACアダプタが付属しているので、機器への電源供給に間違うことはないかと思いますが、組み込み開発などでは、ACアダプタがない方が一般的です。そのため、スイッチ電源を機器との間に入れますが、以下のような接続ミスが起こりえます。
1. スイッチング電源のDC出力にAC100Vを入力
2. 機器のDC入力にAC100Vを入力
どちらの場合もたいがい「ぽん」と音がして壊れます。
ソフテック社内で扱う機器の場合、DC電圧は24Vまでがほとんどですので、プラスマイナスを逆差ししても問題ない場合も多いです。
ただ、プラスマイナスが逆ですので想定した結果にならなくて、??という状況になります。
ソフテックでは回路の出力などで使用する弱電系を扱いますので、特に電源ケーブルの使用ルールは規定していませんが、一般的なルールとして、赤色をプラス、それ以外(黒色、青色など)をマイナスとして扱っている人が多いです。
電圧が正しいか確認するためにテスタを使いますが、電圧測定モードの場合は端子にあてるだけで計測できます。ただ、間違って電流測定モードの状態で端子にあてた場合、過電流となりテスタのヒューズが飛びます。
テスタでも、使い方を間違えると、基板の破損にもつながりますので、ミスのないよう落ち着いて使用しなければいけません。
機器の接続について、過去の問題や失敗談について、思いつくものを挙げましたがいかがだったでしょうか。
ソフテックはソフトウェアの受託開発がメインとなっていますが、ソフトウェアのことだけを知っていればよいという訳ではなく、最低限のハードウェアの知識も必要となります。今回ご紹介させていただいた内容は私が今まで、いざ、自分でハードウェア環境を準備しなくならないとなった時に直面した問題になります。今回ご紹介させていただいた内容が、皆さんの問題解決や失敗予防の一助になれば幸いです。
(S.O.)
関連ページへのリンク
関連するソフテックだより