※ 引述《mtskyoko (千草)》之铭言:
: 月经文来了
: 战!!!!!!!!!
: USB传送的数位讯号就只是0跟1 那些发烧线都是骗人的!!
: ==============================================================================
小弟对usb有粗浅的了解
一般来说 usb在定spec时后 就预想了把会用usb的装置分成3种
但有4种传输模式
1. control 2. interrupt 3. mass storage
4. isochornous
第一种模式 control 是所有usb装置必有的传输模式
他一插入时就要告诉host(例如 电脑主机) 他是什么装置 他有哪些传输模式
OS要怎么挂起他的driver等 (这个阶段 通常称为enumeration)
等driver 挂起来后 通常就是用2, 3, 4的传输模式
2 跟 3原理没有差很多 但差别在他们的频宽
interrupt 传输模式由于资料传输不多 所以host大概久久才会来跟你要资料一次
不过久久也不是几秒种这么久 大概是微秒等级 (ms)
常用的键盘鼠标就是属于这种传输模式
如果是mass storage的装置(像是随身碟) host就会帮你预留很大的频宽给你用
让你能资料能优先传完
为什说2、3原理很像 因为这两种都有除错机制 例如CRC 等
通常若一两个位元错 直接补正 若是错太多 host就会叫device重传
也就是这样 这两种传输模式肯定不会传错
否则你的报告透过usb存一下就会错掉 不是很可怕吗?
原文说的传输模式 应该是第4种 isochronous
在这种传输模式下时 host会每个frame帮你保留固定频宽 (enumeration 时会说好)
这种传输模式应该比mass storage 更优先
但当初定这模式时 就是要给同步AV使用的 例如像电视卡这类的即时装置
因为看电视时 总不能传错就重传 不然会delay
而且一般人看电视 也不会要很精确的每个frame都要对
一秒24frame的卡通 普通人哪看的到其中几张出错?
所以在进行isochronous传输时 是不会重传 传错就传错
即时(real-time)才是重点
接下来讨论dac 如果是同步dac 我认为 很有可能是isochronous传输
传错的确是很有可能的
但如果是异步dac 里面又有processor 小弟怀疑也有可能是 mass storage的传输
processor这边先预存一大笔正确的资料之后 再播音乐
原因是 单纯传音档 不比影音都传 频宽来的大 不用isochronous模式也应付的来
否则为何要特别强调异步
小弟的一点浅见 但如果由例如diy dac那些行家说明会比较准