linqing171
驱动牛犊
驱动牛犊
  • 注册日期2002-10-02
  • 最后登录2020-10-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:6419回复:13

USB 的EndPoint可以同时In和Out么?

楼主#
更多 发布于:2005-04-07 20:48
在USB单片机中的EndPoint支持In和out,有没有办法in和Out同时使用?或者分时复用?
如果可以的话一般需要在程序中怎么转换,或者怎么设置?
没有签名
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-08 11:24
在USB单片机中的EndPoint支持In和out,有没有办法in和Out同时使用?或者分时复用?
如果可以的话一般需要在程序中怎么转换,或者怎么设置?


理论上来讲,USB是半双工操作的,谈不上同时。
A strong man can save himself. A great man can save another.
linqing171
驱动牛犊
驱动牛犊
  • 注册日期2002-10-02
  • 最后登录2020-10-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-08 11:51
我说的是一个端口如果设置成了输出输出了一些东西,过了一会我想变成输入来输入东西可以变么?
假设上位机的驱动,下位机的固件都是我自己来写的。
没有签名
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-08 12:18
这样操作更麻烦!
合理的使用方法是1个in一个out,你想上传数据就用in,像下传数据就用out,主机上读写in和out端点的程序可以通过两个线程来实现,驱动会自动安排分时的来读写。
只要你固件里设置好了就行。
usb_anywhere
驱动小牛
驱动小牛
  • 注册日期2003-07-29
  • 最后登录2005-11-22
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-04-08 13:43
我说的是一个端口如果设置成了输出输出了一些东西,过了一会我想变成输入来输入东西可以变么?
假设上位机的驱动,下位机的固件都是我自己来写的。


计算机的端口一般由软件和硬件两种端口组成
像串口、并口、usb口、1394均是硬件端口
而平常经常听到的13\\21\\22\\80 ....统称软端口

usb设备本身所接入到计算机是通过usb端口接入,你所说的应该是它的端点吧,端点对于一个usb设备来说就如同计算机中的一个软端口,对于上位机来说读写一个usb设备就如同读写一个文件,能否正确完成关键靠上下位机是否按照usb协议完成了应该的工作,不存在什么一会儿输入一会儿输出的问题,只要你上位机做了读动作,在下位机中完成了读的处理,就能完成读工作,同样写也是这个道理。 ;)
驱网是你们的,也是我们的,归根结底还是大家的!
linqing171
驱动牛犊
驱动牛犊
  • 注册日期2002-10-02
  • 最后登录2020-10-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-04-08 14:18
分数已经给了。
谢谢大家,楼上说的透彻,楼楼上的建议也接受了。

[编辑 -  4/8/05 by  linqing171]
没有签名
linqing171
驱动牛犊
驱动牛犊
  • 注册日期2002-10-02
  • 最后登录2020-10-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-04-08 14:33
放在网络上来比较DeviceAddress就成了IP地址,EndPoint就成了端口号了。呵呵。
没有签名
xiang99
驱动牛犊
驱动牛犊
  • 注册日期2005-03-31
  • 最后登录2005-07-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-04-08 16:38
其实端点(Endpoint)用来做双向传输要取决于端点的传输模式,控制传输的端点支持数据的双向传送,其他3种通信方式都不行。(一般控制传输只是用来传输命令的。)

[编辑 -  4/8/05 by  xiang99]
生命不止,奋斗不息!
usb_anywhere
驱动小牛
驱动小牛
  • 注册日期2003-07-29
  • 最后登录2005-11-22
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-04-11 13:22
其实端点(Endpoint)用来做双向传输要取决于端点的传输模式,控制传输的端点支持数据的双向传送,其他3种通信方式都不行。(一般控制传输只是用来传输命令的。)

[编辑 -  4/8/05 by  xiang99]


这个说法是错误的,别误导大家,我就做过一个端点(bulk方式)双向传输的



驱网是你们的,也是我们的,归根结底还是大家的!
xindetech
驱动牛犊
驱动牛犊
  • 注册日期2002-05-16
  • 最后登录2005-06-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-04-11 13:58
我用的USB片子是USBN9603. USB从细节上来讨论端点0可以实现双向传输。其他的端点则只可以实现单项传输。对于整个系统来说。他是封装了具体的实现,它可以读也可以写,USB的传输在任何时刻都只有一个方向的。或上或下。
linqing171
驱动牛犊
驱动牛犊
  • 注册日期2002-10-02
  • 最后登录2020-10-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-04-12 08:41
我用的TUSB3410,USB肯定一个时刻只能是发送或者接收。但是这个时刻是发送的可不可以修改成接收?只是随便问一下。
没有签名
usb_anywhere
驱动小牛
驱动小牛
  • 注册日期2003-07-29
  • 最后登录2005-11-22
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2005-04-12 13:07
我用的TUSB3410,USB肯定一个时刻只能是发送或者接收。但是这个时刻是发送的可不可以修改成接收?只是随便问一下。



发送接收是遵循USB规范的IN另牌就是对USB进行读取、OUT就是像USB设备写入;你说的修改是什么修改?哪里修改?不懂你在说什么?
驱网是你们的,也是我们的,归根结底还是大家的!
linqing171
驱动牛犊
驱动牛犊
  • 注册日期2002-10-02
  • 最后登录2020-10-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2005-04-12 20:43
usb的每一个endpoint的descriptor不是都有一个方向么?反正endpoint对应的寄存器有方向位我按照例子程序接了。
没有签名
hyper320
驱动牛犊
驱动牛犊
  • 注册日期2002-12-07
  • 最后登录2005-05-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-04-13 04:32
可以真只要作
游客

返回顶部