OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4547|回复: 14

[XILINX] UDP以太网实时传出数据_基于达芬奇pro板

[复制链接]

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2022-6-24
在线时间
16 小时
发表于 2023-5-6 23:18:05 | 显示全部楼层 |阅读模式
5金钱
现有达芬奇pro a735t的板子,想要实现功能为:
1.FPGA持续发出,FPGA内部运算产生的数据(接收模块可不用)    如:b = a+c ,需将数据b结果、通过网口实时持续发出
2.想基于现有的板子自带“UDP环回实验”代码修改

目前时间有些紧,也是以太网方面的新手,想要快速实现这个功能,如果有大佬能提出建议,将不胜感激!!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2023-5-8 13:31:29 | 显示全部楼层
先大致看下模块划分,端口和代码吧,也不是很复杂,不然无从下手
回复

使用道具 举报

2

主题

132

帖子

0

精华

高级会员

Rank: 4

积分
648
金钱
648
注册时间
2020-4-21
在线时间
83 小时
发表于 2023-5-8 19:57:56 | 显示全部楼层
你可以参考下我们的5640传输视频到上位机的例程
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2022-6-24
在线时间
16 小时
 楼主| 发表于 2023-5-10 09:14:10 | 显示全部楼层
QinQZ 发表于 2023-5-8 13:31
先大致看下模块划分,端口和代码吧,也不是很复杂,不然无从下手

好的,谢谢,目前已经基本实现了。把发送使能相关引脚拉高,发送数据改为自己想要发送的,就能实现基本功能。但是目前还是存在一个问题:UDP发送只支持32bit数据,如果想要一次性发送多个字节,修改了“数据类型、发送数据模块代码”,还是实现不了
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2023-5-10 16:23:26 | 显示全部楼层
爬得过去的山丘 发表于 2023-5-10 09:14
好的,谢谢,目前已经基本实现了。把发送使能相关引脚拉高,发送数据改为自己想要发送的,就能实现基本功 ...

不是只支持32b,只是我们模块里面定义的用户数据是32b,可以通过tx_data_byte来定义实际需要发送的字节数
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2022-6-24
在线时间
16 小时
 楼主| 发表于 2023-5-26 16:37:11 | 显示全部楼层
QinQZ 发表于 2023-5-10 16:23
不是只支持32b,只是我们模块里面定义的用户数据是32b,可以通过tx_data_byte来定义实际需要发送的字节数

好的,多谢前辈指导

我这边还有一个问题想请教下,我目前想使用FPGA和DSP建立以太网通信(FPGA使用的是7a35t,DSP使用的是dsp28377d)。FPGA、DSP都能和上位机调试助手通信,但是用网线连接FPGA和DSP时,就通信不了了、检查了IP地址这些都没问题,不知道会有哪些因素会影响?
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2023-5-26 17:29:43 | 显示全部楼层
爬得过去的山丘 发表于 2023-5-26 16:37
好的,多谢前辈指导

我这边还有一个问题想请教下,我目前想使用FPGA和DSP建立以 ...

这个最好用ILA抓取信号调试一下就知道了,比如DSP发,FPGA收,抓下内部的几个关键信号看看
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2022-6-24
在线时间
16 小时
 楼主| 发表于 2023-5-28 22:26:34 | 显示全部楼层
QinQZ 发表于 2023-5-26 17:29
这个最好用ILA抓取信号调试一下就知道了,比如DSP发,FPGA收,抓下内部的几个关键信号看看

这里还发现这样一个问题,FPGA发送数据给DSP时,两者通信速率不同,可能导致通信不了。FPGA代码是支持1000M,但是DSP采用的是CH395Q的SPI扩展的以太网、只支持100/10M。这里就有些问题想要请教下:
1.如果DSP和FPGA两者PHY芯片都是默认自协商的话,还需要修改代码吗?(如RGMII接口时钟......)
2.如果需要修改1000M的FPGA代码,主要要修改哪些部分?
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2023-5-29 09:14:54 | 显示全部楼层
爬得过去的山丘 发表于 2023-5-28 22:26
这里还发现这样一个问题,FPGA发送数据给DSP时,两者通信速率不同,可能导致通信不了。FPGA代码是支持100 ...

要改代码,原例程没有做到10/100/1000自适应,就是固定按照千兆程序来的,而千兆和百兆/十兆的接口时序不一样。怎么改可以参考下面这个链接 http://www.openedv.com/forum.php ... d=332954&extra=
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2022-6-24
在线时间
16 小时
 楼主| 发表于 2023-5-29 15:23:51 | 显示全部楼层
QinQZ 发表于 2023-5-29 09:14
要改代码,原例程没有做到10/100/1000自适应,就是固定按照千兆程序来的,而千兆和百兆/十兆的接口时序不 ...

好的,我这边还点疑惑想请教下:
1.我DSP端使用的是CH395Q的SPI扩展的以太网,虽然支持100/10M、但SPI最高只能到30M,是不是两端只能用10M的通信方式?
2.请问有带ARP模块的UDP例程参考吗?我这边用FPGA给DSP发数据,DSP接收端的CH395Q不能手动像电脑一样绑定MAC地址。
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2023-5-29 19:56:09 | 显示全部楼层
爬得过去的山丘 发表于 2023-5-29 15:23
好的,我这边还点疑惑想请教下:
1.我DSP端使用的是CH395Q的SPI扩展的以太网,虽然支持100/10M、但SPI最 ...

1、你的模块既然支持10/100M自适应,那么理论上应该是支持到100M,只不过实际带宽只有30M就是了;2、带ARP的只有千兆网的代码,没有百兆网的
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2022-6-24
在线时间
16 小时
 楼主| 发表于 2023-6-3 21:16:06 | 显示全部楼层
QinQZ 发表于 2023-5-29 19:56
1、你的模块既然支持10/100M自适应,那么理论上应该是支持到100M,只不过实际带宽只有30M就是了;2、带AR ...

那请问大佬、下面2种方法那种容易实现些?或者有些更好的建议吗?
法1:把1000M的RGMII例程程序,修改成100M
法2:把100M的MII接口例程,添加ARP协议、以太网控制模块

最近试了下法2,但是没成功:
(1)在100M的MII接口例程上,添加了原有1000M达芬奇pro例程的ARP模块、以太网控制模块
(2)把ARP模块、以太网控制模块的8bit位宽改成4bit
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2023-6-6 08:55:22 | 显示全部楼层
爬得过去的山丘 发表于 2023-6-3 21:16
那请问大佬、下面2种方法那种容易实现些?或者有些更好的建议吗?
法1:把1000M的RGMII例程程序,修改成 ...

不仅仅是添加arp,以太网控制模块,可能arp要改下代码,你可以对比下百兆和千兆下的UDP模块应该也有差异
回复

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2022-6-24
在线时间
16 小时
 楼主| 发表于 2023-6-6 18:37:19 | 显示全部楼层
QinQZ 发表于 2023-6-6 08:55
不仅仅是添加arp,以太网控制模块,可能arp要改下代码,你可以对比下百兆和千兆下的UDP模块应该也有差异

好的,我再试试
那请问如果采用"法1":把1000M的RGMII接口例程,改成100M的速率,这个好实现吗?有没有类似方法可以参考。

我理解是:如果1000M改为100M速率,RGMII时钟从125M(双沿采样)变为25M(单沿采样)。修改后GMII(25M、8bit位宽、单沿采样)和RGMII(25M 、4bit位宽、单沿采样),是不是需要重新编写接口转换程序。
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2023-6-7 09:10:59 | 显示全部楼层
爬得过去的山丘 发表于 2023-6-6 18:37
好的,我再试试
那请问如果采用"法1":把1000M的RGMII接口例程,改成100M的速率,这个好实现 ...

改动的话还好,就像百兆UDP和千兆UDP的改动,关键你要把原理和ARP与UDP看明白,不看明白没法改
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-10-4 06:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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