• 締切済み

H8SX1655のUSB通信について

H8SX1655を使って計測器を作ってます。 計測したデータをH8SX1655のUSBを使ってパソコンにCDCクラスで転送してます。 パソコン側でCOMポート回線を開いている時だけ、計測器からパソコン側にデータを送信したい。 パソコン側のCOMポート回線の状態を計測器側で知る方法を教えてください。

noname#145213
noname#145213

みんなの回答

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

CDCは使ったことがありませんが、これがRS-232Cをエミュレーションしている以上は基本的にポート開閉状態の取得は「できない」と考えるのが妥当でしょう。 ポートが開くのを待っているとなると通信方式が同期式になっている(同期信号待ち)のではないかと思いますが、非同期(調歩同期)で送信することはできませんか?

noname#145213
質問者

お礼

回答ありがとうございます

noname#145213
質問者

補足

非同期バルクイン転送です。 装置→パソコンに転送中に、パソコン側で回線を開いていないと、なんらかのコマンドが装置側に送られてきて又は送られてこず、装置側ハードウエア的な待ち状態になっていると思われます。プロトコルコンバータ等があれば何のコマンドが送られてきているのかわかるのでしょうが、デバッカー、CPUシュミレータ等もありませんので、このような現象に遭遇された方の回答を待ってます。

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.1

COMポート(RS-232C)は「相手の状態を取得する」ことはできません。 ですから、どうしても必要であればPCから何らかの形でCOMポートの状態を渡す必要があります。

noname#145213
質問者

お礼

回答して頂きありがとうございます。

noname#145213
質問者

補足

今、困っている内容の詳細は、H8SX1655でのUSB通信(CDCクラス)ですが、パソコン側でCOMポートを開かずに、測定器→パソコンにデータを送信すると、あるバイト数のデータを送信したところで、測定器のH8SX1655の動作が止まってしまう。そして、パソコンのCOMポートを開くと、H8SX1655が止まった状態から再度動き出すというような現象です。 やりたいことは、以下の2つです。 1. パソコン側のソフトを動かして、計測器からのデータの取得。   ---COMポートをソフトで開いているので、できる。 2. 計測器から操作してパソコン側にデータを送信。         パソコン側のソフトが動いていればデータ取得。   ---COMポートをソフトで開いているので、できる。   パソコン側のソフトが動いてなければデータ取得はしない。   ---COMポートを開いていない。H8SX1655ハング 2のパソコン側のソフトが動いてない時に、つまりCOMポートを開いてない時に、測定器→パソコンにデータを転送すると、測定器のH8SX1655がハングするので、パソコン側のCOMポートの回線の開閉状態を可能であれば知りたいということです。 USBのコネクタがパソコンに接続されているかいないかは測定器側で知ることはできますが、COMポートの回線の開閉状態を知ることは、USBのCDCクラスの仕様として 不可能なのでしょうか?

関連するQ&A

  • USB-CDC通信する場合のパケットサイズについて

    表題の件ですが、、、 ある機器とUSBで接続すると、デバイスマネージャとしては、「COMポート」と認識します。 この状態で、COM通信を行いたいのですが、、、、 1パケットあたりの最大サイズはどうなるのでしょうか? COMであれば、上限はバッファで割り当てられたサイズ(機器/PCで)になるのかと思うのですが、、、 PC:Windows7 機器:LinuxOS(組み込み) CDC Driver:Windows標準 、、、機器側は、標準と聞いていますが不明。。(ttyGSと書いてあった) 自分で試している分では、なぜか512Byte以上のデータを転送(WriteFile)をすると、受け取り側(機器)で512Byte以上読めない(ReadFileで読み出せない)ように見えます。 USB-CDCの場合は、1パケットの上限が決まっていたりしますか? (10MB程度のデータ転送を行う必要も有り、1パケットあたりの転送量が少ないと転送効率が悪いと思うので、改善したいのが目的です。ヘッダが20Byteは必要なので、、、) COM通信に見えて、USBのBulk転送の制約があるのかな・・???? 知っている人がいましたら、ご教授願いたいと思います。 申し訳ありませんが、協力を宜しくお願いします。 一部のHPでは、USBのBluk転送が1パケット512Byteと書いてあるところもありました。

  • USBのデバイスクラスの違いについて

    PICでアナログ値を取得し、データをそのままPCに転送し出力する。 もしくは、得られたデータを一度SDカードなどにためて、その後一度にPCに転送する。 このPICとPCのインターフェースにUSBを使いたいのですが、 どのクラスを使うのが最適なのかわかりません。 CDCクラス、Genericクラス、HIDクラスのどれでも可能な気がするのですが、 それぞれを使った時の良い点悪い点などありましたら教えてください。 また、CDCは仮想COMポートと本に書かれていたのですが、どういう意味でしょうか? ご存知の方、教えてください。

  • USB接続のFAXモデム

    会社でパソコンからFAXを送るように設定してます、回線はISDNです。PCが古くなり入れ替えましたところ 古いPCはCOMポートが2つあり1にTA.2にFAXモデムを取りつけておりました。しかし新しいのにはCOMポート1つしかありません、その1つにTAを取りつけUSBコードでモデムを取りつけFAX送信したところ、一応繋がるのですが原稿が送れません。やはりUSB接続はダメなのでしょうか?どなたかご意見お願いします。

  • H8/SX で I2C通信

    H8/SX 1655 を使ってI2C通信を試みています。 マニュアルには、送信レジスタ(ICDRT)にデータを書き込めば 自動的にシフトレジスタ(ICDRS)に転送されて、SCL SDA 端子から クロックパルスが出力されると書かれています。 とすると、パルスの出力だけなら Reset 後 MSTP.CRB.BIT._IIC0 = 0;  /* 寝ているI2C0を叩き起こす */ IIC20.ICDRT = 0x90;  /* [Start byte] Slave Address + Write */ この2行で事足りると思うのですが、実際にはクロックパルスは 出力されません。きっと必要な何かが不足しているのだと 思うのですが、当方、初心者にて皆目見当がつきません。 どなたかご教示いただけないでしょうか。 因みに動作モードは、モード6とモード7で試してみました。 よろしくお願いいたします。

  • RS-232c/USBシリアルコンバータを使って通信

    電気関係の勉強をしているものです。ある実験回路をクランプ電力計で各種電圧・電流などを計測したりしています クランプ電力計は私のパソコンのRs-232cポートに対応しているので、クランプ電力計を用いて、ソフトをインストールしたあと、パソコンのデスクトップにリアルタイムで電力計が測定したデータを表示しています。 そこまでは楽なのですが、教授に、USBポートしかもたないパソコンに、そのデータを送るように言われました。 メールで、などではなく ラトックシステム社製のUSBシリアルコンバータを用いて、私のパソコンから、USBポートしかもたないパソコンへ、取得しているデータをそのままリアルタイムで表示させるように言われました。 つまり2台のパソコンで同時計測を可能にしろとのことです

  • au W61P パソコンとデータ通信できない 

    インストールマニュアルに沿ってUSBドライブのインストールを完了し、携帯電話を接続後、 デバイスマネージャから、ポート(COMとLPT)欄に「au W61p Seerial Port(COM4)」と モデム欄に「au W61P modem」が表示され、正常な接続が確認されますが、 パソコンがW61Pを自動認識を開始してくれません。 そのため携帯電話から、「機能設定」>「ユーザー補助」>「データ通信」>「USB接続設定」>「データ転送」にチェック、戻って「データ転送モード」>「通常モード」>「送信」>「データ選択」 して通信を試みても、『送信できません』となってしまいます。 おそらくパソコン側の基本設定になにか問題があるのでしょうがどこが問題になるのかわかりません。 どうかよろしくお願いします。 (OSはウィンドウズXP home edition SP2をつかっています。)

    • 締切済み
    • au
  • 携帯をUSBでパソコンと接続したのですが、正しく認識されません

    auのW62Hの携帯とパソコンをつないだところ、 「このコンピュータに接続されているUSBデバイスの1つが正しく機能していないことが、Windowsによって認識されていません」 と出てしまいます。 ちゃんと携帯のサイトでUSBドライバもダウンロードしてインストールもしました。 それと、LISMO Portもインストールしました。 だというのに、ちゃんと認識されないのです。 設定も、USBをつないだときに携帯の画面に、 データ転送 高速データ転送 外部メモリ転送モードと、選択できるようにしています。 それも、選択画面はでるのですが、データ転送、高速データ転送、外部メモリ転送、どれを選んでもちゃんと認識しません。 外付けHDDをパソコンに接続してみたところ、正常に動作しました。 それと、パソコンが壊れてしまい、新しいパソコンで携帯と接続しようとしたところこのような状態になってしまいました。 前のパソコンでは正常に動作していたように思います。 解決策を教えていただけませんか?お願いします!

  • H8/3052F 同士の簡単な通信についての問題

    秋月製マイコンボード(マザーボードも秋月製です)、H8/3052F(以下H8)につきまして質問があります。 なお開発環境にはベストテクノロジーのGDLを使用し、C言語にてプログラムを行ってます。 現在、2枚のH8を連動させて動かすことを試みています。 目的としましてはH8を物理量の計測に使用しています。 私のとった手法は、以下の通りです。 1、H8の、ある汎用ポート同士を1本の信号線で繋ぐ 2、片方のH8(仮にH8(A)とします)のマザーボード付属のタクトスイッチを押す。これを合図にH8(A)は計測を開始し、それと同時にH8(A)の汎用ポートから信号が出力される。 3、もう片方のH8(仮にH8(B)とします)はH8(A)からの出力があるまで待機し、出力を検知すると計測を開始する。 プログラムの内容としましては、以下のようにしました。 ※H8(A)の入力検知用のタクトスイッチは、ポート4のビット4についています。また信号の出力はポート1のビット0です。 ※H8(B)の入力検知用のポートはポート4のビット0です。 ※両ボードともに同一の安定化電源から電源を取っているので、グランドは共有できていると思います。 <H8(A)側のmainプログラム> /*ポート定義****/ P4.DDR = 0; /*ポート4のタクトスイッチを入力に設定。押すと0、何もなしで1*/ P4.PCR.BYTE = 0xff; /*ポート4を全ビットプルアップ。*/ P1.DDR = 0xff; /*P1を出力に設定*/ /*****************/ /*スイッチ入力待機部分*********/ while(P4.DR.BIT.B4); /*タクトスイッチが押されるまで、待機*/ P1.DR.BIT.B0 = 1; /*P1のビット0から5V信号を出力、別のH8(B)に信号を送る*/ /******************************/ (~以下、計測プログラム部へ) <H8(B)側のmainプログラム> /*ポート定義****/ P4.DDR = 0; /*P4端子を入力に設定。信号入力で0、何もなしで1*/ P4.PCR.BYTE = 0xff; /*ポート4を全ビットプルアップ。*/ /*****************/ /*スイッチ入力待機部分*********/ while(P4.DR.BIT.B0); /*P4のビット0にH8(A)からの信号入力があるまで、待機*/ /******************************/ (~以下、計測プログラム部へ) 以上のようなプログラムを組みました。 H8(A)側は正しく駆動し、タクトスイッチを押すと、計測を開始するとともに5Vの信号が出力できています。 問題はH8(B)側で、H8(B)のボードの電源を入れた直後から、H8(A)の信号を待たずに計測を開始してしまいます。 最初はH8(B)のポート4ビット0の初期値に0が入っており,いきなりwhile文を抜けてしまうのかと思いました. そこで,H8(A)からの信号線を外しますと、ずっと計測待機状態に入るのでプログラム的には一応回っているようです。 (私の認識では,ハードウェアマニュアルによればポート4の初期値は全ビット0ですが,MOSプルアップをすることにより,全ビット1に反転する(?)と考えています) 次に,H8(A)側から予期せぬ信号が入力されているのかと思い,テスターで電圧を測ってみました. しかし,タクトスイッチ入力前は0Vで,入力後は5Vが出力されており,見かけ上は問題がなさそうでした. なぜ、H8(B)は電源を入れたとたんに駆動を開始してしまうのでしょうか? もしお分かりになる方がいらしたら、ご教授願います。

  • COMポートとLPTについて

    まったくのど素人です。 仕事である外部機器にパソコンをケーブルでつないでデータを送信や受信したりしなくちゃいけないのですが、説明書に機器のCOMポート番号とパソコンのCOMポート番号を合わせてくださいと書いてありました。 COMポート1,2とかって何? USBをさす場所の違い? ケーブルの種類? 又、LPTポートって何?

  • Windows XP用USBシリアルポートドライバ

    ルネサス社製のSH-2Aマイコンにて、USBファンクション(デバイス)機能のボードを製作し、ソフト作成しました。 ホスト・デバイス側ともコミュニケーションクラスの上位に仮想COMポートを用意しました。 まずは、パソコンとボードをUSB接続し、仮想COMポートで通信テストを行いたいと考えています。 その為には、Windows XP用USBシリアルポートドライバが必要です。 ドライバのインストールソフトがほしいのですが、どなたかお持ちでないでしょうか? また、情報等を教えてくれませんか?