SetLineCodingを使った通信設定について

 USB-511 USB RS232C 絶縁型変換器(コンパクト)は、標準のCDC-ACMクラスのデバイスとして動作します。
Windows OSやCDC-ACMデバイスドライバが組み込まれたLinuxディストリビューションでは、ドライバをインストールすることなくお使いいただけます。

 デバイスドライバが組み込まれていない組込専用のホスト機器から使用する場合、USBコントロールコマンドを使って通信設定を行います。
RS232C側シリアル通信の設定は、ホスト側からリクエストコード 「SET_LINE_CODING」を USB-511に送信することにより行います。
このリクエストコードにより、ボーレート、ストップビット、パリティ、データビットの設定が行えます。

SET_LINE_CODINGの通知フォーマット

bmRequestTypebRequestCodewValuewIndexwLengthData
00100001b(0x21) SET_LINE_CODING(0x20) 0 Interface 7 下記の構造体参照

構造体

OffsetFieldSizeValueDescription
0 dwDTERate 4 Number ボーレート
bps(bits per second)
4 bCharFormat 1 Number ストップビット
0:1bit、1:1.5bit、2:2bit
5 bParityType 1 Number パリティ
0:なし、1:Odd(奇数)、2:Even(偶数)、3:Mark、4:Space
6 bDataBits 1 Number データビット
5、6、7、8、16

※USB-511では、ストップビット1.5、データビット5,6,16に対応していません。ボーレートの設定可能範囲は1200~1Mbpsです。

下記はUSB-511にUSBプロトコルアナライザーを接続し、「SET_LINE_CODING」をキャプチャした画像です。
ボーレート:9,600bps、ストップビット:1、パリティ:Even(偶数)、データビット:8に設定

SET_LINE_CODINGの通知フォーマット「21 20 00 00 00 00 07 00」と構造体「80 25 00 00 00 02 08」のリクエストコード(HEX)を送信している事がわかります。

80 25 00 00:0x00002580は、9,600bps
00:ストップビット1
02:パリティ Even(偶数)
08:データビット 8

2


CDC-ACMの規格の詳細については、usb.orgの公式ドキュメントを参照してください。
リクエストコード「SET_LINE_CODING」の説明は、「Universal Serial Bus Communications Class Subclass Specification for PSTN Devices」のドキュメントに記載されています。

[注意事項]
本ページでお示しするのはあくまでもご参考用です。
当社のUSBシリーズはデモ機を無償貸出ししておりますので、どうぞ実機にてご確認をお願いいたします。


[kw] 2023-03-04 USB-501 USB-511 CDC ACM  SET LINE CODING TEC-FA


[

]