以前、RaspberryPiとWindowsPCをBluetooth越しに通信させる際に登場した、"/dev/rfcomm0"という輩。
ttyUSB等々、デバイスと通信するための口なのは察しが付くものの、うごきがよく分からんので調べなおしてみました。
実際のところ
"/dev/rfcomm*"について
予想通り、仮想シリアルポートとしてBluetoothとシリアルで通信できる仕組み。
”Radio Frequency Communication”いうのだから他の無線でもできるのかと思ったら、
Bluetoothのスタックに乗っかったモンらしく、そういう動きはしない模様。
いや、なんかBluetoothを偽装すればできるのかも知れんけど……。
で、そのBluetoothではOSI参照モデルでいう第二層(データリンク層)であるL2CAPの上で動いているそうで、
他に同じ層で働いてる仲間はデバイスの発見に使う「Service Discovery Protocol」、マウスやキーボードなんかで使う「hid-control」、イヤホンの音なんかを飛ばす「AVDTP」、イヤホンなら音量変更など制御につかう「AVDTP」などいるそう。
根性入れれば、PICのような石にすらRFCOMMの口を実装することは可能らしい。
秋月とかで売ってるBluetoothシリアル変換機なんかは、多分そういうように実装されてるのでは?
ノルディック社の石みたいに最初からBluetooth対応してるやつは、その辺り抽象化してそうだし。
余程コストカットをせまられない限り、やる必要は無さそう……。
蛇足
赤外線通信版のIrCOMMなんて子もいるらしい。
IrCOMM ‐ 通信用語の基礎知識