sunxiaozhlin
驱动牛犊
驱动牛犊
  • 注册日期2004-03-07
  • 最后登录2005-09-16
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1863回复:11

关于端点描述符的一个问题????

楼主#
更多 发布于:2004-06-22 11:37
我用CY7C63743芯片,除了端点0外还有两个端点,我打算把端点1设成中断输入,端点2设成中断输出。那么在写端点描述符时,就需要写两个端点描述符,请问其格式有什么特定的要求吗?因为我参考的资料都是一个端点描述符的,所以不清楚写两个端点描述符的格式,请高手们指点一二,本人不盛感激!!!!!!!!!!!!!!!!
真的很想进步!
sunxiaozhlin
驱动牛犊
驱动牛犊
  • 注册日期2004-03-07
  • 最后登录2005-09-16
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-24 17:59
终于有所明白了,看来我该在驱动程序上多下点工夫了,非常感谢楼上的这位高手,可惜没分了,不然一定多给点,谢谢啦!!!!
真的很想进步!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-24 13:38
这个理解不对,驱动程序会跟据端点描述符建立管道列表,例如前面的0x81和0x01分别对应两个管道,如果固件中描述符定义中的顺序是0x81在前,那么他在管道列表里对应的就是Pipe[0],后一个对应的是Pipe[1]。

如果驱动程序可以自动分辨是In还是Out,那么应用程序里可以都用端点1,只需要指定是读还是写就行了,如果驱动程序里不能自动分辨,那你只好自己想办法了。

如果你不了解的驱动,那么这个问题恐怕有点难理解,可是我的表达能力有限,只能说到这里。
sunxiaozhlin
驱动牛犊
驱动牛犊
  • 注册日期2004-03-07
  • 最后登录2005-09-16
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-23 18:01
那就是说,只要在固件的端点描述符中分别定义同一个端点的输入和输出功能,在用端点进行数据传输的时候,就可以用同一个端点进行输入和输出了?????这样理解对吗???我感到真不可思义,为什么我看的书中《USB2.0硬件设计》中,一再强调“在输出时,如果没有中断输出端点,只有中断输入端点时,就只能利用端点0的控制传输的SET REPORT类要求来实现输出的功能,除非再多一个端点”就象CYPRESS公司的CY7C63743有三个端点,端点1和2可分别设为中断输入和中断输出来传输数据,对了忘说了,我的设备是HID设备,再请高手门为我解释解释吧?????????????????????????????
真的很想进步!
yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2004-06-23 15:45
其中的第3行
一个端点为
0x81,
另一个端点是
0x1,
入出就是这个字节的最高位来决定的
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-23 12:19
从pc来看,端点是一对对,如bulk端点,但是包含两个一进一出;
从firmware这看,端点是一个个的,如端点1、端点2、端点3等,但每个端点干什么用就看firmware自己定义了。
明白了吗?

还是有点不太明白,既然是两个端点,那么在定义时就应该是分别对端点1和端点2的定义,可我看上面的程序中都是对EP1定义的啊,我没用C写过固件,不是很了解,还请大家多指教.另外我用的CY7C63743中的端点1和2难到也能象上述的程序中一样分别定义两个方向????????????????????????
 
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
sunxiaozhlin
驱动牛犊
驱动牛犊
  • 注册日期2004-03-07
  • 最后登录2005-09-16
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-23 11:51
还是有点不太明白,既然是两个端点,那么在定义时就应该是分别对端点1和端点2的定义,可我看上面的程序中都是对EP1定义的啊,我没用C写过固件,不是很了解,还请大家多指教.另外我用的CY7C63743中的端点1和2难到也能象上述的程序中一样分别定义两个方向????????????????????????
真的很想进步!
kkyouking
驱动中牛
驱动中牛
  • 注册日期2004-02-23
  • 最后登录2008-02-27
  • 粉丝0
  • 关注0
  • 积分47分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-06-23 07:34
每个端点在定义时只能定义为一个方向传输,不能既输出又输入,你理解没错,他定义的是两个端点,这两个端点的性质一样,只是一个入、一个出而已:)


[quote]谢谢乐!另外楼上的这位高手,我还想问一个问题,我在资料中看到,除端点0外的每个端点可以输出,也可以输入,但每个端点在定义时只能定义为一个方向传输,不能既输出又输入,为什么你将同一个端点定义了两个方向呢,是不是和芯片的具体情况有关,还是我理解错误了

[编辑 -  6/22/04 by  sunxiaozhlin]
[/quote]
就象足球比赛中球衣号码一样,但是一个是红队,一个是蓝队!!!
52+PDIUSBD12开发套件 SL811单片机读写U盘套件 www.devking.cn 联系sl811hs@yahoo.com.cn QQ 14441292
flyhye
驱动小牛
驱动小牛
  • 注册日期2003-07-01
  • 最后登录2012-01-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-06-22 19:33
每个端点在定义时只能定义为一个方向传输,不能既输出又输入,你理解没错,他定义的是两个端点,这两个端点的性质一样,只是一个入、一个出而已:)


谢谢乐!另外楼上的这位高手,我还想问一个问题,我在资料中看到,除端点0外的每个端点可以输出,也可以输入,但每个端点在定义时只能定义为一个方向传输,不能既输出又输入,为什么你将同一个端点定义了两个方向呢,是不是和芯片的具体情况有关,还是我理解错误了

[编辑 -  6/22/04 by  sunxiaozhlin]
千载奇逢,无如好书良友 一生清福,只在碗茗炉烟
sunxiaozhlin
驱动牛犊
驱动牛犊
  • 注册日期2004-03-07
  • 最后登录2005-09-16
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-06-22 17:50
谢谢乐!另外楼上的这位高手,我还想问一个问题,我在资料中看到,除端点0外的每个端点可以输出,也可以输入,但每个端点在定义时只能定义为一个方向传输,不能既输出又输入,为什么你将同一个端点定义了两个方向呢,是不是和芯片的具体情况有关,还是我理解错误了

[编辑 -  6/22/04 by  sunxiaozhlin]
真的很想进步!
yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2004-06-22 14:04

code USB_ENDPOINT_DESCRIPTOR EP1_TXDescr =
{
sizeof(USB_ENDPOINT_DESCRIPTOR),
USB_ENDPOINT_DESCRIPTOR_TYPE,
0x81,
USB_ENDPOINT_TYPE_INTERRUPT,
SWAP(EP1_PACKET_SIZE),
10
};

code USB_ENDPOINT_DESCRIPTOR EP1_RXDescr =
{
sizeof(USB_ENDPOINT_DESCRIPTOR),
USB_ENDPOINT_DESCRIPTOR_TYPE,
0x1,
USB_ENDPOINT_TYPE_INTERRUPT,
SWAP(EP1_PACKET_SIZE),
10
};
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-06-22 13:55
用户被禁言,该主题自动屏蔽!
游客

返回顶部