only8008
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2004-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1101回复:10

***蔡鸟代表对USB的困惑和逐步感悟,离不开大家的帮助

楼主#
更多 发布于:2003-10-20 14:17
前面我提的怪问题,我自己可以回答了!(不对,大家指出)
接下来可能还有不少问题,希望能得到大家的指点,只要能够启发到我,我就给分!!

   实时传输不具重发功能。在其他传输方式中重发数据,是在没有接到ACK的情况下;而在实时传输协议中,根本就没有握手协议,也就是不论怎样,都默认接受是正确的。
   我还有个问题:接收到的错误数据能恢复么?
   周立功在书中说,“PDIUSBD12具有高错误恢复率(〉99%)的全扫描设计以确保其高品质”。是否指错误数据的恢复?
  
另有问题,希望有人回答:
       1。USB项目中硬件与软件的通信协议还需要自己定么?从那几方面考虑呢?
       2。用过D12的同志,那些指令是D12专用的么?
          像数据流命令中,“读中断寄存器”,编码是F4H,怎么用啊?是用在固件里的么?
      
谢谢各位阅帖者回答。
only8008
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2004-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-20 15:27
我觉得那个读中断寄存器指令F4H,就如同给出了MOV,但是对谁操作,读出来的数据存在哪里?

谁指导一下!
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-20 16:39
前面我提的怪问题,我自己可以回答了!(不对,大家指出)
接下来可能还有不少问题,希望能得到大家的指点,只要能够启发到我,我就给分!!

   实时传输不具重发功能。在其他传输方式中重发数据,是在没有接到ACK的情况下;而在实时传输协议中,根本就没有握手协议,也就是不论怎样,都默认接受是正确的。
   我还有个问题:接收到的错误数据能恢复么?
   周立功在书中说,“PDIUSBD12具有高错误恢复率(〉99%)的全扫描设计以确保其高品质”。是否指错误数据的恢复?
  
另有问题,希望有人回答:
       1。USB项目中硬件与软件的通信协议还需要自己定么?从那几方面考虑呢?
       2。用过D12的同志,那些指令是D12专用的么?
          像数据流命令中,“读中断寄存器”,编码是F4H,怎么用啊?是用在固件里的么?
      
谢谢各位阅帖者回答。  


\"我还有个问题:接收到的错误数据能恢复么?\"是否出现错误数据取决于你的传输方式,ISO就没有数据校验,所以会出现错误,而BULK就有数据校验,不会有错误。
通信协议不是自己定的,你只要管采用什么方式传输就可以了。至于指令都是不同的USB接口芯片固定的,没有移植性。
only8008
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2004-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-20 17:04
谢谢斑竹!
你肯定了我的想法,指令的使用我懂了。

但是,实时传输的数据pocket中有CRC,是不是用来校验错误的呢?
only8008
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2004-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-10-20 17:14
还有个问题请教大家:一个端点的传输方式是不是在初始化时就确定的,然后host从端点描述符中获知,之后要是与该端点通信就采用标准的传输模式?

譬如端点1设为in,bluk模式,是不是host就无法改变了。
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-10-20 17:59
谢谢斑竹!
你肯定了我的想法,指令的使用我懂了。

但是,实时传输的数据pocket中有CRC,是不是用来校验错误的呢?


不会吧,CRC确实是校验错误,但ISO方式并不校验错误啊! :(
only8008
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2004-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-10-21 08:09
[quote]不会吧,CRC确实是校验错误,但ISO方式并不校验错误啊! :(


我的理解,所有TOKEN、DATA甚至SOF POCKET都含有CRC,这是硬件自动加上去的。在实时传输方式,若是IN命令,CRC是由DEVICE附加的,HOST是被动接收,也会验证数据对错与否,只是因无握手阶段,无法反馈给DEVICE。

我的问题是:1。如果检验出错误,是能够恢复还是仅仅通过不发ACK告知对方重发?那么,周立功在书中说,“PDIUSBD12具有高错误恢复率(〉99%)的全扫描设计以确保其高品质”是指什么呢?
            2。一个端点的传输方式是不是在初始化时就确定的,然后host从端点描述符中获知,之后要是与该端点通信就采用标准的传输模式?
譬如端点1设为in,bluk模式,是不是host就无法改变了


恳切希望大家发表点看法,谢谢!谢谢斑竹!
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-10-21 08:36
有CRC校验的如果包中有错误是一定要重新发的,直至得到ACK。传输方式是在固件中的寄存器初始就配置的。不能说HOST随意更改。
only8008
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2004-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-10-21 10:20
“PDIUSBD12具有高错误恢复率(〉99%)的全扫描设计以确保其高品质”这句话怎样理解?
only8008
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2004-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-10-22 08:24
还是没人给解释一下么?
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-10-22 08:29
“PDIUSBD12具有高错误恢复率(〉99%)的全扫描设计以确保其高品质”这句话怎样理解?


感觉有点广告的性质! :D
游客

返回顶部