在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4430|回复: 11

[求助] 求助关于USB、LAN、UART的透传和分发问题?

[复制链接]
发表于 2020-10-13 13:31:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
++++++++++++++++++++++++++++++++++
最近领导让预研一个项目,大概情况是这样。说是有若干块ARM板,这里命名为子板1,子板2,。。。,子板8,每一个板子均有一个USB/LAN/UART口。

让我用FPGA放在这些ARM之间实现透传功能,具体要求如下。
(1)让任意两个ARM板之间通过USB/LAN/UART口中的其中一个接口进行透传通信。
        比如A板的USB的数据通过差分线送到FPGA,FPGA打拍之后然后转换为差分信号,然后送出FPGA,
        然后送到其余7个子板的USB接口。然后另外7个ARM板通过解析数据来判断数据是不是送给自己的。
        不是自己的就丢掉,是自己的就执行相应命令。
       LAN/UART类似。
(2)每一个ARM板都可能是信息传输的发起者,也可能是信息的接受者。
(3)因为要求高延时,所以要求FPGA不做任何协议解析,只是透传和分发这些信号。
++++++++++++++
我的疑问,以前做过USB和PC的点对点通信,相对比较简单。
但是现在这个项目,我总感觉非常疑惑,有点不可行,但是又说不清楚为什么不可行。
UART比较好说,就算解析协议延时也不大,但是USB和LAN口疑惑比较大。
比如,USB和网口的传输都是差分对传输,FPGA内部都是单端信号,经过转换之后性能必然会大受影响。
USB和LAN口的差分信号,速度应该有几百mbps,而且没有随路时钟,如果不解析协议,FPGA进行采样打拍应该会出现亚稳态之类的错误。
++++++
总之,比较困惑,也有点怪怪的。
这个项目似乎有点像一个harbor,但是常规的USB的harbor也是一个HOST对应多个DEVCE,并不存在每一个DEVICE都是HOST的概念。
而且网口的差分对是4对,她们都经过FPGA之后在转换为差分信号,继续传输到其他子板,同步应该会出问题。
领导说这个是什么VPX总线概念,但是我看书上说VPX概念里面的这些USB和LAN口应该一一对应的。
比如子板3通过网口与子板7通信,子板2和子板5如果还需要网口,就需要单独再增加一个网口。
而不是这种复杂的透传和分发。
++++++++++++
望各位大神指教,如果一针见血的指出这个方案不可行就太好了,谢谢大家。




发表于 2020-10-21 20:14:18 | 显示全部楼层
估计是实时性要求比较高,要不然直接一个交换机用网口一连用网络协议传输就完了。你用USB还是LAN问题都不大,估计瓶颈不在数据传输速率上而是是响应上,用软件的协议实时性不行,你要做的就是做个硬件互联协议。至于数据传输mac层都差不多。
 楼主| 发表于 2020-10-23 16:49:37 | 显示全部楼层


wgej1987 发表于 2020-10-21 20:14
估计是实时性要求比较高,要不然直接一个交换机用网口一连用网络协议传输就完了。你用USB还是LAN问题都不大 ...


对的,实时性要求比较高。这个是不是相当于是PHY层,而不是MAC层?
我又想了想,可能两个问题过不去。
(1)数据速率太高我感觉不可行。
480mbps的USB的phy层数字信号进来,没有随路时钟,FPGA不知道什么时候采样,
而且就算有随路时钟,480MHz的主时钟,FPGA应该也是跑不了这么快的。
(2)另外,管脚分配为input或者output也不好切换。
FPGA对应的pin都是双向的,收的时候为输入,发的时候为输出。
但是FPGA根部不知道什么时候该发什么时候该收,ARM板应该也没有办法在bit级别的时间精度通知FPGA。
+++++++++++++++++
所以,我总觉得一定要在至少是数据链路层及其以上,进行USB和LAN口的协议解析,才能灵活分发和透传。
PHY层的透传,既做不到,又没必要。
至于延时,只能在功能满足的需求上再来考虑了。


 楼主| 发表于 2020-10-23 17:02:21 | 显示全部楼层
对的,实时性要求比较高。
这个是不是相当于是PHY层,而不是MAC层?
我又想了想,可能两个问题过不去。
(1)数据速率太高我感觉不可行。
480mbps的USB的phy层数字信号进来,没有随路时钟,FPGA不知道什么时候采样,
而且就算有随路时钟,480MHz的主时钟,FPGA应该也是跑不了这么快的。
(2)另外,管脚分配为input或者output也不好切换。
FPGA对应的pin都是双向的,收的时候为输入,发的时候为输出。
但是FPGA根部不知道什么时候该发什么时候该收,ARM板应该也没有办法在bit级别的时间精度通知FPGA。
USB或者LAN协议的应答当然也是问题,因为FPGA都不知道应答具体什么时候回来,无法正确采集到信号。
+++++++++++++++++
所以,我总觉得一定要在至少是数据链路层及其以上,进行USB和LAN口的协议解析,才能灵活分发和透传。
PHY层的透传,既做不到,又没必要。
 楼主| 发表于 2020-10-23 17:07:51 | 显示全部楼层


wgej1987 发表于 2020-10-21 20:14
估计是实时性要求比较高,要不然直接一个交换机用网口一连用网络协议传输就完了。你用USB还是LAN问题都不大 ...


是的,延时要求比较高。
发表于 2020-10-25 18:20:31 | 显示全部楼层
这是要在内部做个切换矩阵啊。
FPGA内部无法实现,主要难点在USB上,要达到480M且双向,无解。
发表于 2020-10-26 09:54:11 | 显示全部楼层
480Mb速度又不高,FPGA外面跟USB或者以太网的PHY芯片相连,出来的数据如果4bit并行就120M,8BIT并行就60M的数据速率了。
 楼主| 发表于 2020-10-27 09:52:21 | 显示全部楼层


冲出藩篱 发表于 2020-10-25 18:20
这是要在内部做个切换矩阵啊。
FPGA内部无法实现,主要难点在USB上,要达到480M且双向,无解。 ...


对的,大神说的准确,就是做一个切换矩阵。
USB的480mbps应该是不行的。
所以想尝试USB2.0和网口的低速模式。
系统不需要满速。
 楼主| 发表于 2020-10-27 09:58:06 | 显示全部楼层


wgej1987 发表于 2020-10-26 09:54
480Mb速度又不高,FPGA外面跟USB或者以太网的PHY芯片相连,出来的数据如果4bit并行就120M,8BIT并行就60M的 ...


主要是不想用PHY芯片,用PHY芯片解析协议那么延时就大了。
FPGA想做一个PHY层的切换矩阵,不做任何串并转换和协议解析。
 楼主| 发表于 2020-10-27 10:22:58 | 显示全部楼层


冲出藩篱 发表于 2020-10-25 18:20
这是要在内部做个切换矩阵啊。
FPGA内部无法实现,主要难点在USB上,要达到480M且双向,无解。 ...


大侠,我又想了想,你看我这个想法对不对。
1. 关于USB的480M。
码元的速度太快,而且是异步的,FPGA无法正确采集数据。
所以不可行。
2.关于Low-speed 的USB。
因为Low-speed最大速度1.5Mbps,虽然是异步的,似乎可以用高倍的clk强行采样,
似乎可行。
但是USB2.0协议只有一对差分对,FPGA确实无法非常准确的知道什么时候收,什么时候发。
所以,还是不可行。
3.关于1000M模式的LAN和100M模式的LAN。
同理,码元速度太快。
不可行。
4.关于10M的LAN。
码元速率只有10M左右。
收发用的是独立的差分对,FPGA不用切换管脚的输入和输出。
采用200MHz的采样时钟,倍数足够。
因为是异步的数字采样,在码元的跳变边沿仍然存在亚稳态的可能性。
但是因为码元宽度够宽,也许不会影响外部PHY芯片的解析,
因此可以上板验证到底是否可行。


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

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-18 23:00 , Processed in 0.020802 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表