Board logo

标题: 请问各位,小弟有个问题关于USB Printer类协议需要向大家请教一下 [打印本页]

作者: jjl_china    时间: 2007-1-3 09:37     标题: 请问各位,小弟有个问题关于USB Printer类协议需要向大家请教一下

[问题]: 在USB Printer 设备类的协议中,定义三个类描述符和BULK IN/OUT传输,分别是GET_DEVICE_ID, GET_PORT_STATUS, SOFT_RESET。
而并口25针的传输中有分三个寄存器分别为DATA、STATUS、CONTROL寄存器。
其中,BULK IN/OUT传输对应操作的是并口的DATA寄存器,而通过类描述符对应的操作的是STATUS寄存器;现在我不明白的就是USB转并口之后USB通讯是如何操作CONTROL寄存器,比如其中控制寄存器中有个nSelect用来选择哪个打印机,在USB的传输里是怎样实现控制nSelect的呢。
是通过BULK OUT还是通过控制传输还是其他?肯请各位可以给个详细点的解答,不胜感激!
作者: skyfighter    时间: 2007-1-3 10:13

你的USB转并口是如何实现的?呵呵,我没有看懂!不知道这里面有没有那位老大对OS 下的Driver比较懂!
作者: jjl_china    时间: 2007-1-3 10:52

这个USB转并口我还没有实现,我是想按照USB Printing Deivce类协议实现,这只是我的一个初步的想法。因为并口25针实现了三个寄存器分别是DATA、STATUS、CONTROL,按照协议所述,并口打印机的状态可以由打印机USB类协议中的GET_STATUS请求实现打印机状态的传输,而打印的数据都是通过USB BULK IN/OUT传输到并口打印机的DATA寄存器中,但是它唯独没有提到的就是如何通过USB传输控制信息到CONTROL寄存器,从而实现对并口打印机的控制,比如选择打印机等等

作者: 邦故    时间: 2007-1-5 12:37

有USB转并口的芯片啊,好像叫ft245,你用什么实现呢
作者: fouryu    时间: 2007-3-24 11:11

这种具体的控制有两个途径可以得到.

一种就是标准规范,例如U盘,数据读写,盘状态,等等信息都规范好了,照着做就好.

另一个途径就是自己定义,在已经有的协议基础上增加自己需要的内容.你可以通过BOT定义几条打印机协议之外的命令来实现.但是这样做了你必须要考虑设备驱动的问题。

我没有研究过"USB Printing Deivce类协议",但是如果有这类比较权威的标准的话,就肯定把相关的所有问题都解决了的.你可以看看自己的控制是不是可以去掉,或者研究协议不够深刻.

如果不喜欢研究协议就自己做好了,做出来能做USB打印机,没有人管你到底通信规范不规范!Good Luck!






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0