 |
[#50032] FT232H(1ch)高速USBシリアル変換モジュールキット Ver.2
商品ページにジャンプ
|
仮想COMポートで12,000,00bpsは選択できないのですがどうしてですか?
2010-07-01更新
<<前のFAQ
| 次のFAQ>>
|
一般のアプリケーションのボーレートはMS-DOS時代の名残で伝統的なボーレート(9600bps,38400bps,115200bpsなど)にしか設定することができません。これらはハードコーディングされているため選択できる範囲以外のスピードに設定することはできません。
Windowsのデバイスマネージャでも12000000bpsは選択できません。
VC++だと次のようなプログラムを作成する必要があります。既存ソフトウェアはプログラムを修正・再開発しない限りこのボードを接続しても高速化は計れません。
詳しくはMSDNなどの技術資料を参照ください。
HANDLE open_rs232c(char *name, long baud)
{
HANDLE hCom;
DCB dcb;
COMMTIMEOUTS to;
hCom = CreateFile(name, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
if(!hCom){
return (HANDLE)-1;
}
GetCommState(hCom, &dcb);
dcb.BaudRate = baud; // ボーレート(115200や12000000)
dcb.fBinary = TRUE;
dcb.fParity = FALSE;
dcb.fOutxCtsFlow = FALSE;
dcb.fOutxDsrFlow = FALSE;
dcb.fDtrControl = DTR_CONTROL_DISABLE;
dcb.fDsrSensitivity = FALSE;
dcb.fTXContinueOnXoff = TRUE;
dcb.fOutX = FALSE;
dcb.fInX = FALSE;
dcb.fErrorChar = FALSE;
dcb.fNull = FALSE;
dcb.fRtsControl = FALSE;
dcb.fAbortOnError = FALSE;
dcb.ByteSize = DATABITS_8; // データビット長
dcb.Parity = NOPARITY; // パリティ生成なし
dcb.StopBits = ONESTOPBIT; // 1ストップビット
SetCommState(hCom, &dcb);
return hCom;
}
このような関数でボーレートを設定することでより高速な通信プログラムが作成できます。12Mbpsでの通信はプログラムをうまく作らないと最大スピードで通信できません。
例えば1バイトずつの送信、1バイトずつの受信は効率が悪いので最大スピードで通信することができなくなります。また受信は別スレッドで行うなどの他の処理で遅延が生じないようにする必要があります。フロー制御を使わない場合、受信バッファもスピードに応じて大きく確保しておかないとかなりの確立で取りこぼしを生じます。
プログラム上は1bps単位で設定することができますが、実際は設定できる範囲には制限があり設定可能な近似値に丸められます。
※この関数を実装したアプリケーションのみ有効です。このプログラムを走らせた後に他のアプリケーションを立ち上げてもスピードが上がることはありません。
|
●データシート・ファイル (うまく表示されない場合は、右クリックしてファイルに保存してから開いてください)
|
|
FT232HX-V2モジュール説明書
(400kバイト) 2019年 08月 21日
FT232Hデータシート
(1,808kバイト) 2011年 09月 15日
Ver2.08.24最新FTDIドライバ
(1,323kバイト) 2019年 07月 20日
寸法図
(22kバイト) 2013年 02月 19日
FT_Prog_v2.4.zip
(1,286kバイト) 2011年 10月 08日
FT_Prog モードの変更方法
(290kバイト) 2011年 10月 09日
FT232H Errata
(368kバイト) 2019年 08月 21日
USBシリアルセレクションガイド
(2,668kバイト) 2019年 08月 21日
インターフェース・セレクションガイド
(3,573kバイト) 2023年 06月 10日
FT232HX-V2 AN001 ADM2582Eモジュールとの接続
(356kバイト) 2019年 08月 26日
●その他の質問一覧(この商品について)
|
仮想COMポートで12,000,00bpsは選択できないのですがどうしてですか? 2010-07-01更新 |
|