Printer Class

Printer Class は、USB 上で Printer を制御するために定義された Class 仕様です。

USB Printing class の特徴としては以下の通り。

  • 基本は parallel port 制御 (IEEE-1284, centronics interface)
    USB Printing class の仕様は、従来から存在する parallel port 制御を USB でも同じように動作するよう考案されています。parallel port と透過なので、parallel-USB Bridge コントローラも作りやすくなっています。
  • OS 標準 Parallel port ドライバの存在
    USB をサポートしている Printer の殆どは、Printer class に基づいて作成されています。Printer class に従うことにより独自に USB port を制御するドライバをインストールすることなく、多くの OS で自動的に認識させることが可能です。ただし、Printer を制御する印刷コマンドは各社様々に開発を行っている関係上、印刷コマンドを出力するドライバは独自に用意する必要があります。統一した画像データでの印刷方法は USB Printer class には定義されていません。

Class Information

各 Device Class 仕様書 (USB.org) で公開されている Device Class Definition for Printing Devices*1を参考にしました。

Descriptor値(16)詳細
bInterfaceClass0x7Printer Class
bInterfaceSubClass0x1Printers
bInterfaceProtocol0x0予約 (設定不可)
0x1片方向通信インターフェース
0x2双方向通信インターフェース*2
0x3双方向通信インターフェース(1284.4 互換)
0x4-0xFE予約 (将来への拡張用)
0xFFPrinter Class に定義されていないベンダー独自仕様のプリンター

特殊な印刷機器*3を除いて、USB Printer は「双方向通信インターフェース(class7-sub1-protocol2)」で定義されています。ベンダー独自クラスが少ないのは Microsoft 社が Printer Class 以外 USB Printer として認めない方針であることが大きいように感じます。

関連情報

用語

Windows

Linux

USB-Parallel port Bridge

  • PL-2305 (Prolific)
    最近発売されている Bridge の殆どはコレ。かなりポピュラー。protocol として 0x1 と 0x2 と 0xFF の 3 モードをサポートしている変わり者(ぉ。
  • USS-720 (In-System)
    In-System 社(現Cypress)のチップ。流石に仕様書は入手困難になってしまいましたね。

*1 www.usb.org/developers/devclass_docs/usbprint11.pdf
*2 デファクトスタンダード
*3 テープ印刷機とか

Last-modified: 2006.11.12 (日) 22:53:09 (6375d)