No.3ベストアンサー
- 回答日時:
> 通信が確立している状態とは、例えばハイパーターミナルに
> よってPCとH8をシリアル接続を行い、データの送受信ができる状態と
> 考えています。
「データの送受信ができる状態」というのがまだ不明確ですね。例えばハイパーターミナル側でポート番号が間違っているのに気付かなければ「あれ?」ってことになりますし、ボーレート、データ長、ストップビット、パリティ等が合わなければ正しくデータをやり取りすることができません。なにせ、USBやTCP/IPと違って通信プロトコルが決まっていませんので。
ではどうしたらよいか。例えば次のように、接続確認のプロトコルを自分で作ってしまってはどうでしょうか。
(準備)接続確認用のコマンド(文字列)を決めておく。(例えば open[CR][LF] など)
1.ホストは接続確認用コマンドをマイコンに送信する。
2.マイコンは接続確認用コマンドを受信したらLEDを点灯して、ホストに正常応答(例えば ack[CR][LF] とか ok[CR][LF] など)を送信する。
3.ホストはマイコンからの正常応答を受信して、接続が確立したと判定する。
[CR][LF] は C言語でいえば \r\n の意味で書きました。
No.2
- 回答日時:
No.1です。
>例えばハイパーターミナルによってPCとH8をシリアル接続を行い、
>データの送受信ができる状態と考えています。
「データの送受信ができる状態」という観点のみに注力すると、
・RxDの監視を開始し、データ解析ができる状態
・TxDが送信できる状態
という解釈になると思います。
以下は余談ですが、
シリアル(COMポート)通信で非同期通信の場合はRxD/TxDの二本の線しか使用していません。(モデムはさらに複数の信号線を使用します)
その為、送信側は「データを送信しない」場合、TxDを常に"H"にしておき、データを送る時に1bit分の時間(時間はボーレートにより違う)"L"にします。それ以降をデータbitとして扱います。
データbitを指定bit分(8bitデータなら8回)送信後、パリティビットを送信、次のbitを「"H"」で送信することでストップビットとして扱います。
同様に、受信側はRxDを監視し「"H"→"L"」を検知したらデータの開始として以降のデータを取り込んでいきます。
このため、明確に「接続が確立している」ということを判断するのは非常に難しいです。
個人的には、RxDが一定期間"H"を維持できていればPC側の送信準備が整った=接続確立したと判断してもよい気もしますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン デスクトップPCについて質問です。 PCを作っている最中なのですがモニターに何も映りません。 電源ユ 5 2022/04/05 21:52
- FTTH・光回線 モデムの初期設定に関して 3 2022/09/18 21:01
- CPU・メモリ・マザーボード マザボ故障?それともグラボ? 3 2023/01/30 16:39
- その他(インターネット接続・インフラ) 有線ネットワークドライバーがインストールできません。(DELL E7280) 3 2022/08/11 21:13
- デスクトップパソコン 自作PCの電源が入らなくなりました、なんでもいいので助言ください。 5 2022/12/21 21:08
- マウス・キーボード 無線マウスが反応しない 3 2022/05/08 22:22
- ビデオカード・サウンドカード PCに接続したイヤフォンのマイクが使えません。 3 2022/10/22 11:07
- ルーター・ネットワーク機器 Wi-Fiマークは出るけどインターネット未接続になり繋がりません。 6 2022/08/02 20:46
- ルーター・ネットワーク機器 YAMAHA RTX1210について初歩的な質問 1 2022/05/26 23:06
- Mac OS 【MacOS】外付けHDDがUSB3.1バス上でのみアクセス出来なくなる 1 2022/10/29 10:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
winsockでファイル転送
-
ソケットを用いた1対多通信につ...
-
C#とTCP/IPを利用したサーバー...
-
UDPの宛先ポートと送信元ポート...
-
名前付きパイプの通信ポートに...
-
UDP通信する時に、相手にどうや...
-
UdpClient 送信元のIPアドレ...
-
winsockを使った通信での同時接...
-
エクセル VBA でのCOMポート...
-
UDP通信(SNMP)したいが、うま...
-
ソケット通信 同じポート番号...
-
WinSockでの通信プログラムがう...
-
UDP通信におけるbind関数について
-
UDP通信について
-
非ブロッキングソケットのrecv...
-
UDP/IPでのソケット作成につい...
-
送信したデータの一部が文字化...
-
ソケットのクローズについて
-
相手のIPアドレスを取得する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
UDP通信におけるbind関数について
-
Winsockで接続待ちタイムアウト...
-
recv関数でフリーズしてしまう
-
VB6のwinsockでconnectできない
-
UDP通信する時に、相手にどうや...
-
ソケットのクローズについて
-
エクセル VBA でのCOMポート...
-
ソケットのrecvの戻り値が0
-
UdpClient 送信元のIPアドレ...
-
Socket通信の0バイト受信について
-
WinSockでの通信プログラムがう...
-
同じLAN内パソコンのIPアドレス...
-
ソケット通信 同じポート番号...
-
VC++でのソケット通信について
-
Connectエラーが出てしまう・・...
-
CreateFile関数でCOMポートが開...
-
VB6‥ソケットについて
-
Winsockを使わずにVBでSocketを...
-
SIPがNATを越えられない理由
おすすめ情報