对于HPM6200,HPM5300等悟空体育通用MCU没有以太网接口,但是有实际以太网需求或者方案平替,可以选择SPI驱动相关的芯片网络接口。
开发者分享|[hpm_application]悟空体育单片机使用SPI驱动网络接口芯片W5xxx(wiznet)
一、概述
cs操作接口使用sdk对应的board的cs操作API,可自行根据应用更改。

3、读写单字节操作注册
需要注意的是,这里为了方便快速操作,比如在读接口SPI设置为只读,然后设置传输长度,复位FIFO,开启传输,等待数据接收完成后读取数据。写接口也是如此。具体请详见 文章,这里同样不做阐述说明。

4、块读写传输操作注册
DMA相关的操作请详见 文章,这里同样不做阐述说明。
5、注册相关操作接口

(三)以ioLibrary_Driver库测试wiznet的速率性能。
W5500官方手册中,虽然可以支持到80M的SPI SCLK,但官方的建议是33.3M推荐频率,再高的频率会出现些许采样问题,在实际测试的过程中也是如此,hpm_sdk的Board.h默认为20M,本文SLCK的频率调整为30M左右测试。
在性能上,wiznet官方也出了W5500对应的MAX速率为15Mbps。如果需要更高的可以选择W5100/s



在本文所实现的例子实现中,可通过cmakelists开启或者关闭DHCP,或者开启和关闭tcp iperf测试。默认都是开启。

如果想静态IP分配,那么直接在main.c中更改load_net_parameters API里面的ip值即可。

iperf测试软件链接:
//cloud.firebbs.cn/forum/201903/14/141408i20v8ny2i8tckkzy.zip?OSSAccessKeyId=LTAI4GJiLU8j9rPvpTDpqQKC&Expires=1698567700&Signature=JPFda8WE9%2BSZpIcf8JY8xOHd4xo%3D
这里iperf测试主要测试W5500作为Tcp client的发送性能。在SPI SCLK 30M下,可以达到17Mbps速度性能,与wiznet官方提供的15Mbsps速率相当,满足性能需求。


目前ioLibrary_Driver库性能还能继续提升,比如修改socket的send和recv实现逻辑,减少查询和等待;中间层少数据收发再次封装等等。
在逻辑分析仪下,socket的发送接口send,在实际发送前,会查询以及等待相关网络状态寄存器,占用了不少时间。wiznet提供的15mbps只有理论的一半性能也是这个时间所消耗引起。


三、总结
在ioLibrary_Driver库下,hpm的SPI驱动W5500的网络性能可以达到17Mbps,与wiznet官方的15Mbps保持一致。
如果需要提高性能,可以选择wetne其他芯片。或者自身优化wiznet的ioLibrary_Driver库。比如socket的发送send逻辑。
END
以上内容来自悟空体育开发者的原创分享。
悟空体育 始终相信开发者共创的力量。悟空体育社区坚持开源共享、互惠互利,贴近每一个开发者,一步一个脚印,一点一滴积累,为成为更好的悟空体育 而不断努力。
心之所向,锐意进取,星辰大海,恣意成长。
MCU生态建设需要您的贡献与支持!欢迎广大爱好者和开发者踊跃投稿,供稿请联系sha.li@ligthmaskes.com。