打印
[STM32H7]

stm32h743的网络移植问题

[复制链接]
2055|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fwloveu|  楼主 | 2021-12-5 15:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
各位:我的网络方案如图,在FPGA中实现MAC,在ARM中实现网络上层应用,FPGA和ARM之间使用FMC总线传输数据。问题是:原来ARM中的数据收发都是靠DMA链表传输机制实现的;如果采用这种方案,数据收发怎么处理,能否移植到FMC总线上去?请高人指点。

方案.png (70.56 KB )

方案.png

使用特权

评论回复
沙发
weifeng90| | 2021-12-5 16:02 | 只看该作者
可以啊

使用特权

评论回复
板凳
fwloveu|  楼主 | 2021-12-5 18:30 | 只看该作者
具体怎么弄啊,有思路没~

使用特权

评论回复
地板
andreilei| | 2021-12-5 21:31 | 只看该作者
《电子的奇妙世界》用定格动画的方式讲述发生在电子世界的故事,呈现元器件们的奇妙冒险!
整容二极管
晶振的噩梦
谁杀死了LED
保险丝的葬礼
妄自尊大的发光二极管
————
电子的奇妙世界,视频公开课
https://open.21ic.com/open/lesson/5766

使用特权

评论回复
5
32021724| | 2021-12-6 09:00 | 只看该作者
不明白为什么要这么用,双网口这是要做ethercat?,有ethercat专用的双网口专用的phy芯片
看你这图,类似lwip这部分是不是应该在fpga上,因为lwip是针对mac的,你mac在fpga上,说白了arm端其实只要吧要发送的payload部分通过fpag和arm中间的fifo传个fpga就行了
一点儿拙见,没玩过fpga

使用特权

评论回复
6
m564522634| | 2021-12-6 10:14 | 只看该作者
可以呀, FMC 总线本身就支持DMA 传输的, DMA环形链表 是单纯的内存操作呀,你配置FMC DMA工作模式的时候就可以了, 不过你这个方案 H7的网络速度应该起不来,用外部SDRAM 做 DMA 环的话 速度没有内部的SRAM快呀   

使用特权

评论回复
7
m564522634| | 2021-12-6 10:16 | 只看该作者
没看懂你这个东西是用来做什么的,如果就是做多网口的话 一个交换机芯片解决的事

使用特权

评论回复
8
kiwis66| | 2021-12-6 15:14 | 只看该作者
连接方式都定了,怎么会不确定怎么传输呢

使用特权

评论回复
9
fwloveu|  楼主 | 2021-12-6 15:43 | 只看该作者
原来的mac在arm中,现在的mac放到了fpga中。现在stm32h中少了dma环形链表这部分内容,接收数据的时候怎么确定包的长度?我现在直接通过fmc总线读取fpga发过来的数据,包长度定为1800Byte。

使用特权

评论回复
10
fwloveu|  楼主 | 2021-12-6 15:45 | 只看该作者
32021724 发表于 2021-12-6 09:00
不明白为什么要这么用,双网口这是要做ethercat?,有ethercat专用的双网口专用的phy芯片
看你这图,类似lw ...

LwIP要在arm中跑程序,就是原来的MAC数据传输这部分不知道应该怎么做?

使用特权

评论回复
11
fwloveu|  楼主 | 2021-12-6 15:47 | 只看该作者
32021724 发表于 2021-12-6 09:00
不明白为什么要这么用,双网口这是要做ethercat?,有ethercat专用的双网口专用的phy芯片
看你这图,类似lw ...

关键原来ARM中的payload传输机制是通过DMA环形链表操作的,现在这样通过FMC总线操作,在接收的时候无法获取包长度。

使用特权

评论回复
12
fwloveu|  楼主 | 2021-12-6 15:49 | 只看该作者
m564522634 发表于 2021-12-6 10:16
没看懂你这个东西是用来做什么的,如果就是做多网口的话 一个交换机芯片解决的事  ...

在FPGA中实现双网口冗余,上层网络应用在ARM中,但是ARM的底层传输机制被FMC总线隔开了,现在的数据包收发应该怎么处理?

使用特权

评论回复
13
fwloveu|  楼主 | 2021-12-6 15:50 | 只看该作者
kiwis66 发表于 2021-12-6 15:14
连接方式都定了,怎么会不确定怎么传输呢

原来的ARM收发是通过DMA环形链表实现的,现在通过fmc总线传输,在接收的时候包的长度怎么获取?

使用特权

评论回复
14
fwloveu|  楼主 | 2021-12-6 15:53 | 只看该作者
m564522634 发表于 2021-12-6 10:14
可以呀, FMC 总线本身就支持DMA 传输的, DMA环形链表 是单纯的内存操作呀,你配置FMC DMA工作模式的时候 ...

SDRAM是存放系统数据的,FPGA作为ARM的外部SRAM进行数据收发。原来的以太网接口改为FMC总线的话,环形描述符这部分内容怎么移植到fmc上面?

使用特权

评论回复
15
kiwis66| | 2021-12-7 10:24 | 只看该作者
fwloveu 发表于 2021-12-6 15:50
原来的ARM收发是通过DMA环形链表实现的,现在通过fmc总线传输,在接收的时候包的长度怎么获取? ...

是想之前的协议,格式都不变么?
我的理解是,这部分电路和运算,完全是自己板子内部的事,怎么方便怎么来,只要自己定义清楚就可以了。

使用特权

评论回复
16
fwloveu|  楼主 | 2021-12-7 15:41 | 只看该作者
kiwis66 发表于 2021-12-7 10:24
是想之前的协议,格式都不变么?
我的理解是,这部分电路和运算,完全是自己板子内部的事,怎么方便怎么 ...

现在的数据读写都是通过FMC,问题是如果不通过原来的方式,以太网包的长度怎么获取啊?现在的MAC在fpga里。

使用特权

评论回复
17
fwloveu|  楼主 | 2021-12-16 07:32 | 只看该作者
没人回答,dma操作以太网接口这部分,怎么移植到fmc总线?

使用特权

评论回复
18
tpgf| | 2022-1-3 16:31 | 只看该作者
从什么移植过来的呢

使用特权

评论回复
19
磨砂| | 2022-1-3 16:35 | 只看该作者
二者差在哪里呢

使用特权

评论回复
20
晓伍| | 2022-1-3 16:36 | 只看该作者
一定要通过fmc吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

69

帖子

1

粉丝