したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

RS-232CでPIC操作

1こじら:2009/03/17(火) 00:21:54
このサイト一番詳しく読みやすかったのですが、うまくいかず、
VB2005もRS-232C操作も初めてなので簡単な質問かも知れませんが
教えてください。 
 バイナリでPICにコマンドh01〜h04を送信すると
  h01ではバイナリh03,h06 が受信(PICからの応答)
  h02ではバイナリh07,h0A が受信(PICからの応答)
h03ではバイナリh09,h0D が受信(PICからの応答)
h03ではアスキー 0x0111 が受信(PICからの応答)
  その他 バイナリ hFF
としたいのですが、
 送信しても反応なく バイナリでうまく送れているのかわからず
、また受信BOXに時たま数字が表示されるがおそらく誤動作(ノイズ)
をひろって出力しているのかと、またcloseでハングしてしまいます。
これは この掲示板のバイナリの受信についてを参考にし、byteサイズ
指定したらcloseできるようになりました。
 上記に示した仕様の動作をさせるにはどのようにしたらよいのでしょうか?

2igoten:2009/03/17(火) 09:16:07
初めまして。
PICマイコン用ですか、面白そうですね。
RS-232Cの通信は上手くいかない場合送信側が悪いのか、
受信側が悪いのか、又は送信した側の受信が悪いのか
判断が難しいですよね。

バイナリデータどうしの送受信の場合はS-JisとかUnicodeとかは
全く関係有りません。
私のサンプルは文字をバイナリ送信する場合のサンプルで、
文字変換をしていますのでその辺が問題なのかも....

下にバイナリデータ専門の送受信モジュールをUpしておきました。
http://www.geocities.jp/hatanero/lzh/rs232cvbForPic.lzh
バイナリデータの送受信の場合は文字コード変換が要らないので
コードは簡単になります。
一文字送信の場合は単に数字を10進で入れて下さい、
2文字以上は10進文字をカンマで区切って入力して
送信してください。(10進のみ対応しています)
このソフトでPICとやり取りしてみてください。

>受信BOXに時たま数字が表示されるがおそらく誤動作(ノイズ)
>をひろって出力しているのかと
RS-232cの場合クロックに同期してデータを拾います、従って
ノイズで擬似データを拾うことは極めてまれです。
多分PICが送ったデータを正しく表示出来ないのではと思います。

3こじら:2009/03/18(水) 22:22:16
ありがとうございました。
PICと通信できました。バイナリコード正しく読めました。
接続した状態でPICリセットすると2バイト程受信してしまうのですが、
接続しっぱなしだからですかね。
RS-232Cの仕様でスタートビット、ストップビットとありますが、これは
VBでどのように制御されてるのでしょうか? 接続と切断時にそれぞれ
発生し、接続語のデータ転送命令では、単に8ビットデータ+パリティーのみ
が出ているだけなのでしょうか。それとも夫々のデータ転送命令ごとに
スタート/ストップデータが出ているのでしょうか?
あと同期/非同期とモードがありますが
何に対して同期/非同期と言われているのでしょうか?
すみません また教えて下さい。

4igoten:2009/03/19(木) 08:41:34
PICリセット時に送られて来るコードですが、使用されているPICのキットがそのような
仕様になっているのではないでしょうか。
送られて来たコードは取扱説明書のコード表には有りませんか?

スタートビットとストップビットは各データーの1バイト毎に付加されます。
(正しくは7ビットの場合は7ビット毎に、8ビットの場合は8ビット毎に)
下の「同期/非同期」とも関係有りますが、このビットはハードウエアのタイミングを
取るものと考えて下さい。

「同期/非同期とモード」はクロックとの同期を意味します。
通常PCとPCとの通信は「調歩同期方式」と言って同期と書いていますが
クロックは送られておらず非同期通信です。
この場合PCとPC又はPCと機器は各々の持つクリスタル発振子のクロックを元に
信号を判別します。
ただし2つクリスタルには誤差が有り、長い間通信を続けると累積誤差が大きくなります、
この為ストップビットを付加して、データーとデーターの切れ目で誤差をリセットします。
クロックを共有する同期通信ではこの様なことは起こらず高速の通信が可能となりますが
ハードウェアが複雑になり特殊な場合以外は使用されません。

ストップビットはVBのSerialPortではStopBitsプロパティで設定します。
「None,One,Tow,OnePointFive」の4種類が設定できますがデフォルトの
Oneで良いでしょう。この設定を見てRS-232Cのドライバーとハードウェアが
ストップビットを付加します。

5こじら:2009/03/19(木) 23:33:03
ありがとうございます。無塚しいですね。
勉強します。またわからない事あれば質問させていただきます。
ありがとうございました。

6生倉 かるな:2010/01/09(土) 09:16:19
もし、この勉強方法を使えば・・・ 皆さんの5教科合計の成績をたった3日間で30点
上げることができるのです


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板