理论教育 STM32单片机应用与实践:实现协议

STM32单片机应用与实践:实现协议

时间:2023-11-09 理论教育 版权反馈
【摘要】:该协议是一个简单的面向数据报的运输层协议,与TCP协议相比传输效率较高。图5.32基本协议流程2.ICM P、UDP、TCP协议的实现以太网链路层的功能由以太网控制芯片ENC28J60完成,MCU完成TCP/IP协议的解释和执行。TCP首部如图5.33所示。图5.33TCP数据格式

STM32单片机应用与实践:实现协议

1.TCPUDP协议分析

为了测试系统与网络的连接,需要实现ICMP协议中的Ping应答协议。Ping应答协议主要是检查网络是否连通。IP是网络层上的主要协议,同时被TCP和UDP使用。TCP和UDP是运输层协议。

UDP协议主要用来完成数据传输。该协议是一个简单的面向数据报的运输层协议,与TCP协议相比传输效率较高。设计中选用UDP协议,可在应用层用校验机制来提高网络数据传输的可靠性。通过上述裁剪,就得到了一个简洁实用的UDP/IP协议,使得MCU可以快速可靠地收发网络UDP数据包,实现稳定的通信。基本协议流程如图5.32所示。

图5.32 基本协议流程

2.ICM P、UDP、TCP协议的实现(www.daowen.com)

以太网链路层的功能由以太网控制芯片ENC28J60完成,MCU完成TCP/IP协议的解释和执行。MCU首先要对以太网控制芯片复位并对芯片内寄存器进行初始化,确定发送和接收的条件,设置好MAC和IP地址,要求IP地址设置在和主控制器同一个局域网内,即IP地址的前三位相同,最后一位不同。然后才能发送数据或接收数据。设计中,接收和发送数据可采用中断方式进行。当一帧数据发送结束、接收到一帧数据或出错等事件发生时,以太网控制芯片向主控芯片申请中断,主控制器响应中断后,根据中断状态寄存器的内容进行相应处理,MCU完成对数据的打包解包。在发送或接收数据时,控制器会首先发送ARP请求,建立地址映射,ARP协议是芯片自主完成的。MCU根据情况将数据按照TCP协议或UDP协议格式打包,送入ENC28J60芯片,由芯片将数据输出到局域网中。反之,当有数据从局城网过来时,控制器产生中断,请求MCU进行处理,再由MCU对数据包进行分析。

3.TCP协议的具体实现

TCP协议是为应用层提供的服务,面向连接意味着两个使用TCP的应用(通常一个是客户,另一个是服务器)在彼此交换数据之前必须先建立一个TCP连接。这过程与打电话很相似,先拨号振铃,等待对方拿起电话后,然后才说明是谁。以太网首部地址0~13H,就是以太网的目的地址和源地址以及帧类型。IP首部从地址的第14个字节开始,包括版本号、首部长度、服务类型、总长度等,共20个字节。TCP首部如图5.33所示。

图5.33 TCP数据格式

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈