阅读:1102回复:10
***蔡鸟代表对USB的困惑和逐步感悟,离不开大家的帮助
前面我提的怪问题,我自己可以回答了!(不对,大家指出)
接下来可能还有不少问题,希望能得到大家的指点,只要能够启发到我,我就给分!! 实时传输不具重发功能。在其他传输方式中重发数据,是在没有接到ACK的情况下;而在实时传输协议中,根本就没有握手协议,也就是不论怎样,都默认接受是正确的。 我还有个问题:接收到的错误数据能恢复么? 周立功在书中说,“PDIUSBD12具有高错误恢复率(〉99%)的全扫描设计以确保其高品质”。是否指错误数据的恢复? 另有问题,希望有人回答: 1。USB项目中硬件与软件的通信协议还需要自己定么?从那几方面考虑呢? 2。用过D12的同志,那些指令是D12专用的么? 像数据流命令中,“读中断寄存器”,编码是F4H,怎么用啊?是用在固件里的么? 谢谢各位阅帖者回答。 |
|
沙发#
发布于:2003-10-20 15:27
我觉得那个读中断寄存器指令F4H,就如同给出了MOV,但是对谁操作,读出来的数据存在哪里?
谁指导一下! |
|
板凳#
发布于:2003-10-20 16:39
前面我提的怪问题,我自己可以回答了!(不对,大家指出) \"我还有个问题:接收到的错误数据能恢复么?\"是否出现错误数据取决于你的传输方式,ISO就没有数据校验,所以会出现错误,而BULK就有数据校验,不会有错误。 通信协议不是自己定的,你只要管采用什么方式传输就可以了。至于指令都是不同的USB接口芯片固定的,没有移植性。 |
|
地板#
发布于:2003-10-20 17:04
谢谢斑竹!
你肯定了我的想法,指令的使用我懂了。 但是,实时传输的数据pocket中有CRC,是不是用来校验错误的呢? |
|
地下室#
发布于:2003-10-20 17:14
还有个问题请教大家:一个端点的传输方式是不是在初始化时就确定的,然后host从端点描述符中获知,之后要是与该端点通信就采用标准的传输模式?
譬如端点1设为in,bluk模式,是不是host就无法改变了。 |
|
5楼#
发布于:2003-10-20 17:59
谢谢斑竹! 不会吧,CRC确实是校验错误,但ISO方式并不校验错误啊! :( |
|
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就无法改变了 恳切希望大家发表点看法,谢谢!谢谢斑竹! |
|
7楼#
发布于:2003-10-21 08:36
有CRC校验的如果包中有错误是一定要重新发的,直至得到ACK。传输方式是在固件中的寄存器初始就配置的。不能说HOST随意更改。
|
|
8楼#
发布于:2003-10-21 10:20
“PDIUSBD12具有高错误恢复率(〉99%)的全扫描设计以确保其高品质”这句话怎样理解?
|
|
9楼#
发布于:2003-10-22 08:24
还是没人给解释一下么?
|
|
10楼#
发布于:2003-10-22 08:29
“PDIUSBD12具有高错误恢复率(〉99%)的全扫描设计以确保其高品质”这句话怎样理解? 感觉有点广告的性质! :D |
|