*Printer Class [#title]
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 [#class]
[[各 Device Class 仕様書:http://www.usb.org/developers/devclass_docs]] ([[USB.org:http://usb.org/]]) で公開されている Device Class Definition for Printing Devices((www.usb.org/developers/devclass_docs/usbprint11.pdf))を参考にしました。

|Descriptor|値(16)|詳細|h
|bInterfaceClass|0x7|Printer Class|
|bInterfaceSubClass|0x1|Printers|
|bInterfaceProtocol|0x0|予約 (設定不可)|
|~|0x1|片方向通信インターフェース|
|~|0x2|''双方向通信インターフェース((デファクトスタンダード))''|
|~|0x3|双方向通信インターフェース(1284.4 互換)|
|~|0x4-0xFE|予約 (将来への拡張用)|
|~|0xFF|Printer Class に定義されていないベンダー独自仕様のプリンター|

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

*関連情報 [#infor]
-[[Parallel Port Central:http://www.lvr.com/parport.htm]] ([[Jan Axelson's Lakeview Research:http://www.lvr.com/]])~
Parallel port について詳しいです。

**用語 [#words]
-[[e-Words:パラレルポート]]
-[[e-Words:セントロニクス仕様]]
-[[e-Words:IEEE 1284]]


**Windows [#windows]
-[[Getting a handle on usbprint.sys:http://blog.peter.skarpetis.com/archives/2005/04/07/getting-a-handle-on-usbprintsys/]] ([[Peter’s blog:http://blog.peter.skarpetis.com/]])~
[[USB接続のプリンタにデータを直接送りたい :http://www.ouk.co.jp/ogawa/treecrsdx/index.cgi?m=look&bnum=94]] ([[職人フォーラム:http://www.ouk.co.jp/ogawa/treecrsdx/index.cgi?]])~
usbprint.sys を直接制御する方法について。

-[[MSKB:913546]] You cannot manually delete a USB printer port in Windows Server 2003 or in Windows XP

**Linux [#linux]
-[[Printer Support:http://www.linux-usb.org/USB-guide/x342.html]] ([[The Linux USB sub-system:http://www.linux-usb.org/USB-guide/book1.html]])
-[[LinuxPrinting.org:http://www.linuxprinting.org/]]

**USB-Parallel port Bridge [#bridge]
-''[[PL-2305:http://www.prolific.com.tw/eng/Products.asp?ID=6]]'' ([[Prolific:http://www.prolific.com.tw/]])~
最近発売されている Bridge の殆どはコレ。かなりポピュラー。protocol として 0x1 と 0x2 と 0xFF の 3 モードをサポートしている変わり者(ぉ。
-''USS-720'' (In-System)~
In-System 社(現Cypress)のチップ。流石に仕様書は入手困難になってしまいましたね。




// EOF