Arduinoからの出力を元祖シリアル通信であるRS-232Cに変換する:注目デバイスで組み込み開発をアップグレード(36)(1/2 ページ)
「センサーの値を遠くまで届ける」をテーマにした新シリーズの第4回。今回は、元祖シリアル通信とも呼ばれるRS-232Cを適用するために、Arduinoからの出力をRS-232Cに変換する実験を行う。
はじめに
「センサーの値を遠くまで届ける」をテーマにした新シリーズの第4回です。前回は、薪ストーブに取り付けた熱電対センサーの測定値を音(電気信号)の周波数を使ってより遠くまで届ける実験を行いました。
編集部より
残暑お見舞い申し上げます。さて、本シリーズについて「暑い夏になぜ薪ストーブを使う話なのか」とお思いの読者の方もいるかもしれません。これは、シリーズのテーマである「センサーの値を遠くまで届ける」に沿って、現在冬真っ盛りの南半球にある薪ストーブのセンサーの値も取得できるようにするという究極の目標があるからです! というのはちょっと無理がありますかね……。というわけで、今回は薪ストーブそのものは使わず、熱電対センサーの接続先であるArduinoからの出力を変換することとしました。
今回は、かなり昔からコンピュータ業界で使われている「RS-232C」を適用しようと思います。元祖シリアル通信とも呼ばれるRS-232Cは、最低3本の線で全二重通信が可能という特徴を備えています。今ではUSBをはじめ他の通信規格にその場を追われた感は否めませんが、シリアル通信の基本中の基本といって間違いないでしょう。
また、組み込み系の技術者なら、特にFA(Factory Automation)の現場などではいまだにRS-232Cでつながっている機器に出くわしたことがあるのではないでしょうか。実際に、RS-232Cでやりとりできるインタフェースを用意しておけば他の機器と何とかつなげられたりします。今回の記事で、あらためてRS-232Cの技術概要を確認していただければと思います。
⇒連載「注目デバイスで組み込み開発をアップグレード」のバックナンバー
RS-232Cとは
RS-232Cの歴史は、コンピュータが電話回線を経由して通信を始めた初期の時代に深く根ざしています。
「RS」は“Recommended Standard(推奨規格)”、「C」は3番目の改訂版を意味します。1960年代初頭にEIA(米国電子工業会)によって規格が策定されました。
1970〜1990年代のPCの普及期に、モデムとの接続だけでなく、プリンタ、マウス、プロッター、測定機器といった多様な周辺機器とのシリアル通信インタフェースとして広く利用されるようになりました。
RS-232Cは信号レベルが高く(±3〜15V)、ノイズに比較的強い一方で、通信速度が遅く通信距離も短い(通常15m以内)という限界がありました。
現在、RS-232Cは、一般的なPCの外部接続ポートとしてはほとんど見かけなくなりましたが、その堅牢性、シンプルさ、互換性の高さから、特定の分野では依然として重要な役割を果たしています。
RS-232Cの高い電圧信号レベルは、ノイズの多い工場や産業環境において、USBなどの低電圧規格よりも安定して動作します。工場内では通信速度がそれほど重要でない場合も多く、堅牢(けんろう)な有線接続の方が求められるからです。また、規格がシンプルで実装が容易なため、計測機器、CNC(コンピュータ数値制御)機器、PLC(プログラマブルロジックコントローラー)などの産業用制御機器や組み込みシステムには今も搭載されています。
ルーター、スイッチ、サーバなどのネットワーク機器やデータセンター機器は、GUI(グラフィカルユーザーインタフェース)が起動しない緊急時や初期設定を行うためにRS-232Cを経由したコンソールポートを備えています。そして、病院の古い医療機器や、生産工場の古い制御システムなど、RS-232C接続が必須なレガシー(旧式)システムがまだ稼働しており、その保守のためにもRS-232Cが使われています。
現在、RS-232Cは「汎用的なデータ転送」の役割をUSBに譲りましたが、「信頼性と堅牢性が求められるプロフェッショナルな環境」での地位を維持しています。インターネット接続が切れても独立して通信できこともあり、RS-232Cは最後の接続手段としてエンジニアに不可欠なインタフェース技術といえるでしょう。
実験システムの概要
今回の実験は、マイコンボードであるArduinoから出力するデータをRS-232Cに変換して送信することに焦点を当てます。そこで、熱電対センサーからの測定値ではなく、マイコンで生成した値を送信データとして用います。また、マイコンからのデータをPCに送る一方通行の事例となります。
図2に今回の実験概要を示します。
Arduinoで生成した符号をRS-232Cに合わせてレベル変換した後、RS-232C対応ケーブルを使って遠隔地にあるPCに伝えるという内容です。遠隔地といってもRS-232Cの規格上ケーブルの長さは15m程度ではありますが。PCに接続したRS-232Cアダプターは仮想シリアルポートとして認識されます。PC側ではTeraTermなどのターミナルソフトで受信した符号を確認します。
Copyright © ITmedia, Inc. All Rights Reserved.

