打印

端点地址能是一样的吗?

[复制链接]
2396|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
至尊宝|  楼主 | 2011-3-25 15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在在做一个打印的东东,CPU为HOST,打印机为DEVICE,现在从打印机返回的接口描述符里返回的bnumendpoint 为2,读取两个端点的描述符为
第一个依次为: 07,05,01(输出,地址为1),02(批量),64,00
第二个依次为: 07,05,81(输入,地址为1),02(批量),64,00

请教一下,这两个端点地址怎么会一样?
打印机型号HP1020

相关帖子

沙发
computer00| | 2011-3-25 17:23 | 只看该作者
不一样,一个是输出端点,一个是输入端点。

使用特权

评论回复
板凳
至尊宝|  楼主 | 2011-3-28 09:50 | 只看该作者
地址都为01的话怎么访问,输入端点丢掉输出格式的包?我觉得地址应该是01,82或者是81,02才合理,刚开始弄usb,圈圈再给解释一下,谢谢了

使用特权

评论回复
地板
computer00| | 2011-3-28 10:01 | 只看该作者
一个是输入端点1,一个是输出端点1。
你要返回数据给主机时,往输入端点1的缓冲区写数据;
主机发送数据给你时,会写到输出端点1,你从输出端点1的缓冲区取数据就可以了。

输出端点1和输入端点1不是同一个地址,一个是用做输入的,一个是用做输出的。

使用特权

评论回复
5
至尊宝|  楼主 | 2011-3-28 16:33 | 只看该作者
现在输入和输出的端点地址从bEndpointAddress看都是01啊?端点域不是支持16个端点么,第二个端点怎么不设成02,难道是个人爱好?:o

使用特权

评论回复
6
dqyubsh| | 2011-3-29 06:34 | 只看该作者
该补补USB协议的课了。

USB的控制端点1原本规定就是IN,OUT一起用的。分别叫BP1INBUF,BP1OUTBUF。这和2/4/6/8等端点只能定义成IN或者OUT不同。

端点0还就一个缓冲区呢,叫BP0BUF,你读它就是输入,写它就是输出。

0和1都是小端点,长度才64字节,不是用来传送大量数据的。0一般用来做控制,1呢,少量数据就可以交互传输了。

可能打印机的接口本身就是USB1.1的,那用端点1就足够了。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
至尊宝 + 1
7
hotpower| | 2011-3-29 07:48 | 只看该作者
圈圈变质了~~~

使用特权

评论回复
8
computer00| | 2011-3-29 08:56 | 只看该作者
除了端点0不需要描述,是默认的控制端点,其它任意的端点1~15都可以描述成输入和输出两个方向。至于是否实现端点n的输入/输出功能,由芯片厂商决定。
例如D12芯片,端点1、2都可以作为输入/输出使用,因此有5个端点,控制端点0,输入端点1,输出端点1,输入端点2,输出端点2。
而有些芯片则没有实现这样的功能,例如只有端点0,输入端点1,输出端点2,输入端点3,输出端点4。

USB协议允许同一个端点号同时具备输入/输出功能。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
至尊宝 + 1
9
至尊宝|  楼主 | 2011-3-29 09:48 | 只看该作者
谢谢六楼dqyubsh和圈圈,结贴。好久没来21IC,试试给分,不成功就。。。。不成功吧。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

52

帖子

0

粉丝