目次 > 8章.機能が豊富なPICを使う(PIC16F88) > RS232Cでパソコンと通信
RS232Cでパソコンと通信(PIC16F88)
更新日2009.8.30
ここでは、PIC16F88のAUSART(*1)機能を使ってパソコンとRS232C通信する実験を行います。
同時に双方向通信(送受信)を行います。
(*1 AUSART:Addressable Universal Synchronous Asynchronous Receiver Transmitter)
RS232Cについて
|
|
もし、秋月のPICライタをお使いであれば、パソコンとRS232Cインタフェースで接続しています。
RS232Cは、一昔前のパソコンでは低速機器を接続するインタフェースとして主流でした。(モデム接続など)
その後、コネクタの小型化や通信速度の高速化が進み、最近のパソコンはUSBが主流となり、RS232Cはあまり見かけなくなっています。
とは言え、RS232CインタフェースはUSBなどに比べ簡単に扱える事もあり、今でも現役です。
パソコン側にRS232Cインタフェースが無くても、USB−RS232C変換ケーブルで接続できます。
|
PICとパソコンの接続
|
・ |
PICをパソコンに接続するには、RS232Cケーブルを使います。
秋月のPICライタをお使いであれば、PICライタの代わりにPICを接続するイメージです。
- <パソコンにRS232Cポートがある場合>
-
RS232Cケーブル(ストレート)でパソコンとPIC側を接続します。
パソコン RS232Cポート | | Dsub9ピンコネクタ(オス)
| | <オス> ↑接 ↓続 <メス> |
| RS232C ケーブル (ストレート) |
| | | <オス> ↑接 ↓続 <メス>
| PIC |
|
- <パソコンにRS232Cポートが無い場合>
-
USB-RS232C変換ケーブルを使って接続します。
パソコン USBポート | |
| | ↑接 ↓続 |
| USB-RS232C 変換ケーブル |
| | | <オス> ↑接 ↓続 <メス>
| PIC |
| | PIC側は、RS232Cコネクタをどのように取り付ける かによって異なりますが、今回はブレッドボードを使う 前提で上のようなケーブルを作成しました。
|
|
PIC側のコネクタ
|
・ |
PIC側のコネクタ(Dsub9ピン メス)を後ろから見た状態です。
-
| | 写真と同じ向きで見たピン配置
|
- ピンの意味は以下のようになっています。
-
ピン番号 | 信号 | 意味
| 1 | DCD | キャリア検出
| 2 | RxD | 受信データ(PC←PIC)
| 3 | TxD | 送信データ(PC→PIC)
| 4 | DTR | データ端末レディ
| 5 | GND | 信号グランド
| 6 | DSR | データセットレディ
| 7 | RTS | 送信要求
| 8 | CTS | 送信可
| 9 | RI | 被呼表示
|
パソコン側が基準になっていますので、例えば2番ピンはパソコンから見れば受信ですが、PICから見ると送信になります。3番ピンはその逆になっています。
9ピンの内、使うのは下図の緑の5ピンだけです。
-
7番ピンと8番ピンは直結します。
これは、パソコンからの送信要求(7番ピン)に対し、無条件に送信可(8番ピン)を返すようにするためです。
5番ピンはグランドに接続します。
2番ピンと3番ピンだけが、PICから制御する信号線になります。
|
RS232Cレベル変換
|
・ |
PICの電源電圧や信号電圧は、+5Vですが、RS232Cインタフェースでは、±12Vを扱います。
そのままPICと接続できませんので、MAX232と言うレベル変換ICを使います。
今回は、MAX232互換のADM3202を使いました。
ADM3202自身は5V電源で動作しますので、特別な電源を用意する必要はありません。
-
-
|
実験回路
|
・ |
今回の実験回路です。
RS232Cで使うPICのピンは、RB2/RXとRB5/TXの2ピンだけです。
-
- ADM3202の機能ブロック図(データシートより抜粋)
-
| | 電源電圧は、3.0〜5.5Vの範囲で動作します。
|
- こちらは、ブレッドボードに組んだ状態。
-
|
プログラムの仕様
|
|
- プログラムでは以下の動作をさせます。
-
1. LCDの1行目に、「PIC16F88 RS232C」と表示させる。
2. パソコンに、「PIC16F88 RS232C test\r\n」を送信し続ける。
(\r\nは、復帰,改行のコードで、16進数では、0Dh,0Ahです。)
3. パソコンから1文字受信したら、LCDの2行目に順に表示する。
パソコンから受信した文字(コード)が復帰(0Dh)であれば、LCDの2行目をクリアする。
プログラム全体
| |
プログラムはこちらです。
| 動作確認
| |
それでは実際にパソコンと接続して通信を行って見ましょう。
手順は以下の通りです。
- パソコンとPICを接続する(PIC側の電源はOFF状態)
- パソコンのハイパーターミナルを起動して設定を行う
- PICの電源を入れる
これで、PICから送った文字列がハイパーターミナルに表示される
- パソコンからキー入力する
キー入力した文字がPIC側のLCDに表示される
前で説明した、「PICとパソコンの接続」,「PIC側のコネクタ」,「実験回路」を参考に、パソコンとPICを接続して下さい。
この時点では、PIC側に電源はOFFのままです。
2.パソコンのハイパーターミナルを起動して設定を行う
|
次に、パソコンのハイパーターミナルを起動して設定を行います。
この、ハイパーターミナルがPICとの通信相手になります。
- (1) ハイパーターミナルを起動します。
「スタート」→「プログラム」→「アクセサリ」→「通信」→「ハイパーターミナル」 -
- (2) そうすると「接続の設定」ウィンドウが開きますので「名前」に任意の文字列を入力します。
例では、「test」としています。 入力したら、「OK」ボタンを押します。 -
- (3) 続いて電話番号情報入力ウィンドウが開きます。
-
- (4) 一番下にある、「接続方法」からCOMポートを選択します。
この例では、COM3ですがパソコンによってはCOM1やCOM4になります。 -
- (5) この状態で、「OK」ボタンを押します。
-
- (6) 続いてCOM3のプロパティウィンドウが開きます。
-
- (7) ここでの設定は、「ビット/秒」と「フロー制御」です。
以下のように設定して「OK」ボタンを押します。 -
- (8) ここまでで初期設定が完了し、ハイパーターミナルが起動します。
-
-
ボタンの状態で接続状態がわかります。接続されている状態であることを確認します。
| | 接続されている(PICと通信が可能)。右のボタンを押すと切断される。
| | 切断されている(通信できない)。左のボタンを押すと接続される。
|
それでは、PIC側の電源を入れてみましょう。
下のように、ハイパーターミナルに文字列が表示され続ければ成功です。
-
続いて、パソコンから何かキー入力して下さい。
ハイパーターミナルには、PICから送った文字列が表示され続けていますが、そのままの状態でパソコンからキー入力します。
すると、PIC側のLCDの2行目にパソコンから入力した文字が1文字ずつ表示されます。
下の写真は、パソコンから「from PC」と入力した状態です。
パソコンのEnterキーを押すと、LCDの2行目はクリアされます。
-
どうでしたか。
以外に簡単にパソコンと通信ができたのでは無いかと思いますが。
|
|