1、说明
使用ESP 内部自带的MAC(medium access control,媒介访问控制),通过RMII与外部PHY(physical,物理)即以太网芯片LAN8720 通信,搭建以太网结构,如图
MAC是数据链路层的通信
PHY是物理层的通信
2、eth初始化配置
3、事件处理说明
3.1 eth_event_handler
当网线插好、拔掉网线、以太网程序启动or停止就会触发该事件处理;注意比如网线一直插着的时候,不会重复触发的;拔掉网线同理也不会一直重复触发的
3.2 got_ip_event_handler
当网线插好后,如果DHCP服务器成功给ESP设备分配了一个局域网IP后,即此时我们可以去进行通信了
4、重连机制说明
网络的监控处理,不是在该以太网物理层去监控的,而是在TCP层(transfer control protocol,传输控制协议)监控。一般来说,该以太网配置好后,稳定性是比较高的;如果真要处理,只能重新清除配置,再走一遍流程了。
重连机制:socket编程去实现
1、假设ESP做 客户端/服务器,已经有了套接字并且与对端连接成功,然后如下设置了keeplive机制,注意:keeplive机制是TCP协议栈自动周期发送心跳包,如果没有及时响应,TCP协议栈会自动 close 套接字,而且TCP协议栈自动close套接字和用户使用 close(sock) 的操作并不会冲突,也就是说即使协议栈先自动close套接字了,用户再使用close该套接字,并不会造成内部错误
2、用户使用select 去监测 socket的状态,监测是否需要重连
当ESP为客户端,需要重连时就得重新设置套接字,重连connect
当ESP为服务器,close后等待客户端自己重连即可
3、用户在使用send发送时是否成功,来监测是否需要重连
当ESP为客户端,需要重连时就得重新设置套接字,重连connect
当ESP为服务器,close后等待客户端自己重连即可