打印
[应用相关]

网络通信--AT_SURF案例No.24

[复制链接]
692|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vt2017|  楼主 | 2022-8-18 19:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
网络通信--AT_SURF案例No.24
简介
AT32F437的以太网模块支持通过以太网收发数据(10/100Mbps),符合IEEE 802.3-2002标准。以太网模块支持两种标准接口连接到外接的PHY:IEEE 802.3协议定义的独立于媒体的接口(MII)和简化的独立于媒体的接口(RMII)。
在SUFR板上板载了一颗型号为DM9162的PHY芯片,使用的接口为RMII。本次例程使用LWIP TCP/IP协议栈实现TCP Server功能。
LWIP是轻量型TCP IP协议栈,有无操作系统的支持都可以运行。LWIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM的占用,它只需十几KB的RAM和40K左右的ROM就可以运行,这使LWIP协议栈适合在低端的嵌入式系统中使用。

资源准备
硬件环境:
对应产品型号的AT-SURF-F437 Board
软件环境:
AT32F435_437_Firmware_Library_V2.x.x\project\at_sufr_f437\examples\tcp_server
硬件设计
本案例使用的硬件资源有TFT LCD液晶显示屏、PCA9555 IO扩展芯片、DM9162芯片,对应的引脚如下:
表29. 硬件资源使用

表30. PCA9555使用

对应的电路原理如下:
图68. PHY电路原理图

图69. RJ45电路原理图

图70. PCA9555电路原理图

软件设计
TCP Server测试
- 初始化TFT LCD
- 初始化TCP Server
- 等待客户端连接
- 客户端连接上了后发送“Hello!”给客户端
- 如果收到客户端发来的数据,将接收到的数据显示在LCD屏上
代码介绍
main函数代码描述
<blockquote>int main(void)

error_status emac_system_init(void)函数代码描述
/**
  * [url=home.php?mod=space&uid=247401]@brief[/url]  enable emac clock and gpio clock
  * @param  none
  * @retval success or error
  */
error_status emac_system_init(void)

void tcpip_stack_init(void)函数代码描述
/**
  * @brief  initializes the lwip stack
  * @param  none
  * @retval none
  */
void tcpip_stack_init(void)

void tcp_server_init(void)函数代码描述
/**
  * @brief  initialize tcp server
  * @param  none            
  * @retval none
  */
void tcp_server_init(void)

下载验证
首先使用网线直接连接SUFR板和电脑
然后配置电脑端的网络
图71. 电脑端网络配置

SUFR板上电,初始化TCP Server,Server IP为192.168.1.37,端口为1030
电脑端使用“网络调试助手”连接TCP Server,当成功连接上时,SUFR板将会发送一条欢迎信息“Hello!”
电脑端使用“网络调试助手”向SUFR板发送数据,SUFR板载LCD屏上显示接收到的数据,然后再将接收到的数据发送到电脑端。
图72. PC端效果

图73. SUFR板端效果


1715862fe26e543222.png (107.71 KB )

1715862fe26e543222.png

使用特权

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

本版积分规则

33

主题

69

帖子

3

粉丝