RFCOMM
読み:アーエフ-コム
外語:RFCOMM: Radio Frequency Communication
RS-232C
シリアルポート
をエミュレートする
通信プロトコル
。
目次
概要
特徴
プロトコル
デバイスタイプ
制御信号
フレーム構造
フレームタイプ
コマンド
概要
Bluetooth
のプロトコルスタックの一つで、
L2CAP
上でRS-232Cシリアルポートの転送機能をエミュレーションするもの。これにより、従来の有線によるデータ転送をそのまま無線に置きかえることが可能となる。
ESTI TS 07.10標準のサブセットであり、このためBluetoothのRFCOMM仕様書には具体的な仕様が書かれておらず、ESTI TS 07.10のどの部分を利用するかと、RFCOMMで仕様が違う部分の説明などが書かれているのみである。
RFCOMM仕様書だけを見ても、RFCOMMの仕様は概念しか分からないが、シリアルケーブルを代替するBluetoothの目標を実現するための重要な通信プロトコルとされる。
特徴
プロトコル
L2CAPでのPSMは3である。
デバイスタイプ
Bluetoothでは
トランスポート層
プロトコルとして使われており、
OBEX
を使うプロファイル(BIP、BPP、FAX、FTP、
GOEP
、
OPP
、
PBAP
、SYNC)や、
DUN
、
HFP
、
HSP
、
SPP
など様々なプロファイルの基盤となっている。
RFCOMMは、次の二種類のデバイスタイプを規定している。
タイプ1 ‐ コンピューター・プリンター間の転送を行なう
タイプ2 ‐ モデムなどの各種通信機器
RFCOMMの実装は両方に対応する必要があるが、RFCOMM自体は特に両者を区別していない。ただし、RFCOMMプロトコル自体には影響を与えている。
制御信号
RFCOMMはアプリケーションに対し「仮想シリアルポート」を提供し、旧来の
シリアルポート
を使用したアプリケーションをBluetoothへ移行させることを容易にする。
エミュレートするRS-232Cの信号は、次の九種類となっている。
102 Signal Common
103 Transmit Data(TD)
104 Received Data(RD)
105 Request to Send(RTS)
106 Clear to Send(CTS)
107 Data Set Ready(DSR)
108 Data Terminal Ready(DTR)
109 Data Carrier Detect(CD)
125 Ring Indicator(RI)
フレーム構造
RFCOMMのフレームは、次のような構造である。ヘッダー/データ(上位層行き)/FCSとに分けられる。
ヘッダー
アドレス: 1オクテット
bit7-3 サーバーチャンネル
bit2 D(direction)
bit1 C/R
bit0 EA
コントロール: 1オクテット
長さ: 1から2オクテット
情報: 可変長
FCS: 1オクテット
「長さ」は、値が0から127の時はbit0=1、bit7-1に値、とする。値が128から32767の場合は、bit0=0、bit7-1に値のbit0-6、次のバイトにbits7-14を格納する。
FCSはヘッダー部のCRC8である。
フレームタイプ
RFCOMMは、ESTI TS 07.10のうち、次のフレームタイプを使用する。
SABM
(Set Asynchronous Balanced Mode) コマンド
UA
(Unnumbered Acknowledgement) レスポンス
DM
(Disconnected Mode) レスポンス
DISC
(Disconnect) コマンド
UIH (Unnumbered information with header check) コマンドおよびレスポンス
UI (Unnumbered Information) コマンドおよびレスポンスには対応していない。
コマンド
ESTI TS 07.10は、DLCI 0を制御チャンネル専用に用いている。
制御チャンネルは二つの
マルチプレクサー
間の情報伝送用に使われており、RFCOMMではESTI TS 07.10のコマンドのうち、次に対応する。
Test (Test Command)
Fcon (Flow Control On Command)
Fcoff (Flow Control Off Command)
MSC (Modem Status Command)
RPN (Remote Port Negotiation Command)
RLS (Remote Line Status ()
PN (DLC parameter negotiation)
NSC (Non Supported Command Response)
未対応のコマンドを受信する度に、NSCを返信する。
再検索