找回密码
 -注册-
楼主: 魔神Z
打印 上一主题 下一主题

其实为什么有很多人觉得数字传输不会错,问题就在这里

[复制链接]
101
发表于 2021-1-8 15:32 | 只看该作者 来自 贵州贵阳
魔神Z 发表于 2021-1-8 09:41
有啥问题呢 数字端本身就是一个量化 参数超高的载体 首先要确认的是会不会出错 会不会加校验 你之前不是 ...



每个USB数据包的最后面5位或16位都是CRC校验数据
怎么可能没校验??
回复

使用道具 举报

102
发表于 2021-1-8 15:45 | 只看该作者 来自 贵州贵阳
魔神Z 发表于 2021-1-8 10:26
算了 你在这无限循环 我说usb数字音频信号传输不会校验 你举例cd要校验,但那个是光电转换才要加的,光纤  ...

真不知道你哪里听来的USB音频协议中没校验的,整个USB协议从最底层开始,就规定要带CRC校验位了。
只要是在USB数据线中走的Packet必有校验。

音频协议只是因为实时播放要求的特殊性,在校验失败,发现误码的情况下不纠错不重传,直接整包丢弃0填充而已。
然而实际上异步方式传输,如果不用USB的默认驱动方式,而是USB界面在USB基础协议之上额外增加了私有应用层面的协议,必须额外装驱动的话,那其实也是完全可以实现误码重传功能的。
再不济,也可以做到数据包在10个以内的顺序上乱序发送,而且重复发送10遍,10遍核对正确后界面才发往解码,这样难道不能保证0误码?
回复

使用道具 举报

103
 楼主| 发表于 2021-1-8 15:47 | 只看该作者 来自 湖北武汉
本帖最后由 魔神Z 于 2021-1-8 15:57 编辑
jhj 发表于 2021-1-8 15:45
真不知道你哪里听来的USB音频协议中没校验的,整个USB协议从最底层开始,就规定要带CRC校验位了。
只要 ...

实际上异步会产生一个新的错误,就是亚稳态,所以不要以为真的异步就好于同步,而是因为同步到96K以上就错误率很高了,大部分USB同步界面都只做到96KHZ,再高就得转异步了,并不是异步就真的比同步好听,是而同步要求更高,除非你给他单独再配个同步器。上面有个一说是没有问题的,异步只是让USB兼容性更好 ,对设备和传输要求低一些
回复

使用道具 举报

104
 楼主| 发表于 2021-1-8 15:48 | 只看该作者 来自 湖北武汉
jhj 发表于 2021-1-8 15:45
真不知道你哪里听来的USB音频协议中没校验的,整个USB协议从最底层开始,就规定要带CRC校验位了。
只要 ...

是可以保证,但是你听歌的时候让他卡一下重传吗?
回复

使用道具 举报

105
 楼主| 发表于 2021-1-8 15:54 | 只看该作者 来自 湖北武汉
jhj 发表于 2021-1-8 15:45
真不知道你哪里听来的USB音频协议中没校验的,整个USB协议从最底层开始,就规定要带CRC校验位了。
只要 ...

不要把异步想成神,https://www.cnblogs.com/yfwblog/p/4783455.html 产生的亚稳态的问题靠只能修改数据,就是算法,用算法去算就行了,不需要重新传,但是这个就接受界面的算法和硬件又有关了,但是这跟你追求的高保真又有产生的差异,所以压根不是不会传错,而是后端如何去纠错的问题,这个纠错并不是非一样,而是正确就行,所以异步以后就要配一个FPGA去算,但是这个牵扯到算法,不光是电路还有时钟,更重要的是有的界面算法好,有的界面算法辣鸡,所以不同的界面效果也很大差别
回复

使用道具 举报

106
发表于 2021-1-8 15:56 | 只看该作者 来自 贵州贵阳
魔神Z 发表于 2021-1-8 15:48
是可以保证,但是你听歌的时候让他卡一下重传吗?

USB协议在2.0的时候就已经能达到480Mbps,也就是说对于CD质量的WAVE音频数据,1秒钟就能重复传输340遍。
每时每刻每个数据包都重复300多遍的冗余量,从300多个当中重复Packet当中挑选出一个没有CRC误码的很难么?
不要夸大误码,10块钱的USB线就能让你几个月都碰不到一个有误码的Packet了。

现实中不写私有软件协议虽然不会重传音频数据,但听歌的时候真碰到误码,声音跳音一下就完事了。
回复

使用道具 举报

107
 楼主| 发表于 2021-1-8 15:59 | 只看该作者 来自 湖北武汉
jhj 发表于 2021-1-8 15:56
USB协议在2.0的时候就已经能达到480Mbps,也就是说对于CD质量的WAVE音频数据,1秒钟就能重复传输340遍。
...

并不是重传的问题,而是插队的问题,不让重新效验,是因为音频传输对时间规定很严格,1楼图不写了吗,包括XOMS的文档也写了,音频是不停的往前走,你效验完再插回去,容易出现重叠失真,所以音频就干脆不效验
回复

使用道具 举报

108
发表于 2021-1-8 16:00 | 只看该作者 来自 贵州贵阳
魔神Z 发表于 2021-1-8 15:47
实际上异步会产生一个新的错误,就是亚稳态,所以不要以为真的异步就好于同步,而是因为同步到96K以上就 ...

“错误率很高”这完全就只是你的想象而已。

实际上USB 2.0找个移动硬盘拷贝数据,很容易就达到35MByte/s也就是280Mbps的速率,保证没有一个bit的错误。
而这个速率已经是96k 24bit音频编码60倍以上……

更不用说USB 3.0甚至能达到2.0速度的10倍以上了
回复

使用道具 举报

109
 楼主| 发表于 2021-1-8 16:02 | 只看该作者 来自 湖北武汉
jhj 发表于 2021-1-8 15:56
USB协议在2.0的时候就已经能达到480Mbps,也就是说对于CD质量的WAVE音频数据,1秒钟就能重复传输340遍。
...

不然设计师们不早就搞效验不就完事了,还高那么费事,异步也是两个寄存器之间同步,所以压根就不用冒着那么大的风险去搞回传
回复

使用道具 举报

110
发表于 2021-1-8 16:03 | 只看该作者 来自 贵州贵阳
魔神Z 发表于 2021-1-8 15:59
并不是重传的问题,而是插队的问题,不让重新效验,是因为音频传输对时间规定很严格,1楼图不写了吗,包 ...

你不都还是说了异步传输有FPGA吗?
只要支持异步协议,那么其数据包本身就是乱序的!乱序的!乱序的!
FPGA就是用来处理这些乱序的数据包,管理维护异步驱动协议、管理Buffer(没有Buffer必然不可能异步),把乱序数据包还原成为一个完整的顺序音频数据流的。
回复

使用道具 举报

111
 楼主| 发表于 2021-1-8 16:03 | 只看该作者 来自 湖北武汉
jhj 发表于 2021-1-8 16:00
“错误率很高”这完全就只是你的想象而已。

实际上USB 2.0找个移动硬盘拷贝数据,很容易就达到35MByte ...

这些东西又不是我写的,我没有那个能力让别人不加校验码,也没有能力让别人加校验码,说白了我也只是个学习者,当个搬运工而已
回复

使用道具 举报

112
发表于 2021-1-8 16:05 | 只看该作者 来自 贵州贵阳
魔神Z 发表于 2021-1-8 15:59
并不是重传的问题,而是插队的问题,不让重新效验,是因为音频传输对时间规定很严格,1楼图不写了吗,包 ...

异步协议传输本来就乱序,插队是必然的,所以缓冲Buffer的建立和管理才有必要性啊。
整个插队管理维护的操作都是在缓冲Buffer内部完成,纯数字式,不可能产生任何交叠失真什么的。
回复

使用道具 举报

113
 楼主| 发表于 2021-1-8 16:06 | 只看该作者 来自 湖北武汉
jhj 发表于 2021-1-8 16:03
你不都还是说了异步传输有FPGA吗?
只要支持异步协议,那么其数据包本身就是乱序的!乱序的!乱序的!
...

FPGA是即时演算啊
回复

使用道具 举报

114
发表于 2021-1-8 16:06 | 只看该作者 来自 贵州贵阳
魔神Z 发表于 2021-1-8 16:03
这些东西又不是我写的,我没有那个能力让别人不加校验码,也没有能力让别人加校验码,说白了我也只是个学 ...

你看到的东西写错了而已
请看USB协议原文!请看USB协议原文!请看USB协议原文!
就是有CRC校验位。
回复

使用道具 举报

115
发表于 2021-1-8 16:08 | 只看该作者 来自 贵州贵阳
魔神Z 发表于 2021-1-8 16:06
FPGA是即时演算啊

就是写好一段USB异步协议的驱动,对数据包乱序处理、缓冲Buffer代码而已,要计算个鬼啊?
回复

使用道具 举报

116
 楼主| 发表于 2021-1-8 16:12 | 只看该作者 来自 湖北武汉
jhj 发表于 2021-1-8 16:08
就是写好一段USB异步协议的驱动,对数据包乱序处理、缓冲Buffer代码而已,要计算个鬼啊?

https://www.cnblogs.com/aliothx/p/13433334.html 可以看下这个文章
回复

使用道具 举报

117
 楼主| 发表于 2021-1-8 16:18 | 只看该作者 来自 湖北武汉
jhj 发表于 2021-1-8 16:05
异步协议传输本来就乱序,插队是必然的,所以缓冲Buffer的建立和管理才有必要性啊。
整个插队管理维护的 ...

数字音频里时间关联非常严格,我觉得不太可能插队
但是这里同样也指出了之前提出的问题,假如resolution时间比一个周期还长,META被采样的时候,FF1的输出还没有稳定,怎么办?出现这种情况的概率很小,但是存在,这个概率是可以计算的.MTBF是mean time between failure的缩写,可以看到, 触发器输出处于亚稳态的概率是tr的指数递减函数.注意,在这个公式里,tr是不引起系统采样错误的最长亚稳态持续时间,a其实就是异步输入的频率,并且可以看到,这个时间和元器件本身也是相关的.
  更快的时钟频率会带来更短的MTBF,为了得到更长的MTBF,我们可以等待几个时钟周期来得到更长的resolution time,只要没有握手信号.



回复

使用道具 举报

118
发表于 2021-1-8 16:21 | 只看该作者 来自 美国
魔神Z 发表于 2021-1-8 16:12
https://www.cnblogs.com/aliothx/p/13433334.html 可以看下这个文章

这文章考虑的是数字电路物理层的东西,而USB异步传输是协议层的东西,二者貌似没什么直接关系。
回复

使用道具 举报

119
 楼主| 发表于 2021-1-8 16:21 | 只看该作者 来自 湖北武汉
jhj 发表于 2021-1-8 16:08
就是写好一段USB异步协议的驱动,对数据包乱序处理、缓冲Buffer代码而已,要计算个鬼啊?

你觉得你用的USB异步够好 完美无缺 音频需求很低?不是即时演算? APOLLO X系列 雷电3 6核DPS FPGA 192khz都能卡
回复

使用道具 举报

120
 楼主| 发表于 2021-1-8 16:25 | 只看该作者 来自 湖北武汉
tyj518 发表于 2021-1-8 16:21
这文章考虑的是数字电路物理层的东西,而USB异步传输是协议层的东西,二者貌似没什么直接关系。

当然有关系了 你不可能全靠理想状态判断事物啊,说白了理想状态是终极目标,也就是完美,现实有完美的硬件吗。没有完美硬件你就很难做到理想状态啊,这就是想象和现实的区别
https://blog.csdn.net/woshifennu1234/article/details/82766611?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase
回复

使用道具 举报

您需要登录后才可以回帖 登录 | -注册-

本版积分规则

Archiver|手机版|粤icp备09046054号|耳机网-耳机大家坛

粤公网安备 44030602000598号 耳机大家坛、www.erji.net、网站LOGO图形均为注册商标

GMT+8, 2024-11-28 00:13

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表