项目简介
本项目聚焦于模拟选择性重发ARQ算法,编写了发送方(S)和接收方(R)两个程序。发送方程序基于Python 3,在个人PC(x86_64 Windows 11)上运行;接收方程序采用C语言,基于STM32F407ZGT6(32bit无操作系统ARM)运行。通过普通杜邦线和USB - TTL串口(波特率9600,字长8,停止1)实现物理层通讯,具备数据包的组装成帧、缓存、发送、定时、接收ACK应答、删除数据帧、停止定时器等功能,同时模拟数据帧或ACK的丢失、损坏、超时等异常处理过程,通过输入和输出展示程序的成帧、流控、差控功能。
项目的主要特性和功能
- 模拟选择性重发ARQ算法:发送方和接收方程序严格遵循该算法,发送和接收窗口大小小于等于$2^{m - 1}$。
- 异常处理模拟:可模拟数据帧或ACK的丢失、损坏、超时等异常情况并处理。
- 成帧功能:成帧格式为
[ 序列号 | 数据帧*n | 校验字段 | 帧尾:\r\n ]
,便于调试与查看。 - 流控功能:发送窗口满时,等待窗口有空位,丢弃新输入,实现流量控制。
- 差控功能:通过简单的长度校验和物理层的奇偶校验,检查数据帧正确性。
- 可视化界面:接收方有可触控UI界面,发送方也有UI界面,可演示数据帧的发送、传输、异常处理等过程。
安装使用步骤
发送方(Python程序)
- 确保已安装Python 3环境。
- 使用命令
pip install pyserial
安装pyserial
库。 - 打开命令行终端,进入项目中发送方程序所在目录。
- 运行发送方程序,按提示输入正确的串口号后开始发送数据。
接收方(C语言程序)
- 环境配置:安装STM32CubeMX和STM32CubeIDE,确保必要的硬件支持包(HAL库)已安装。
- 代码生成:使用STM32CubeMX工具生成代码框架,配置硬件外设参数,生成C代码。
- 代码修改:根据项目中的接收方代码对生成的代码进行修改。
- 编译和调试:使用STM32CubeIDE编译代码,并下载到STM32F407ZGT6微控制器进行调试。
- 功能测试:确保硬件连接正确(普通杜邦线连接发送方和接收方),启动发送方和接收方程序,进行功能测试,验证系统各项功能是否正常。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】