# uwb_position **Repository Path**: ldlw/uwb_position ## Basic Information - **Project Name**: uwb_position - **Description**: 室内定位测试 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-24 - **Last Updated**: 2026-01-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # UWB定位基站系统 ## 项目概述 基于 STM32F407VGTx 的 UWB (超宽带) 定位基站系统,支持 TOF/TDOA/PDOA 多种定位模式。 ### 硬件平台 - **MCU**: STM32F407VGTx (Cortex-M4, 168MHz, FPU) - **Flash**: 1MB - **RAM**: 128KB + 64KB CCM - **以太网**: W5500 (SPI接口) - **UWB模块**: TXUT8008 (双模块配置) - **通信接口**: RS485, UART, 以太网 ### 软件架构 - **RTOS**: FreeRTOS - **HAL**: STM32 HAL 库 - **构建系统**: - VSCode + CMake + ARM GCC (推荐) - Keil uVision5 MDK-ARM --- ## 目录结构 ``` UWB/ ├── App/ # 应用层代码 │ ├── Inc/ # 应用层头文件 │ │ ├── app_config.h # 应用配置定义 │ │ ├── at_commander.h # AT指令处理器 │ │ ├── config_manager.h # 配置管理器 │ │ ├── ethernet_handler.h # 以太网处理 │ │ ├── position_calculator.h # 定位计算 │ │ ├── rs485_handler.h # RS485通信 │ │ ├── rtos_tasks.h # RTOS任务定义 │ │ └── uwb_protocol.h # UWB协议解析 │ └── Src/ # 应用层源文件 │ ├── at_commander.c │ ├── config_manager.c │ ├── ethernet_handler.c │ ├── position_calculator.c │ ├── rs485_handler.c │ ├── rtos_tasks.c │ └── uwb_protocol.c │ ├── Core/ # 核心代码 │ ├── Inc/ │ │ ├── main.h # 主头文件 (GPIO定义) │ │ └── FreeRTOSConfig.h # FreeRTOS配置 │ └── Src/ │ ├── main.c # 主程序入口 │ └── system_stm32f4xx.c # 系统初始化 │ ├── Drivers/ # 驱动层 │ ├── CMSIS/ # ARM CMSIS │ │ ├── Include/ # CMSIS核心头文件 │ │ └── Device/ST/STM32F4xx/ # STM32F4设备文件 │ ├── STM32F4xx_HAL_Driver/ # STM32 HAL驱动 │ │ ├── Inc/ │ │ └── Src/ │ └── W5500/ # W5500以太网驱动 │ ├── Inc/ │ └── Src/ │ ├── Middlewares/ # 中间件 │ └── FreeRTOS/ # FreeRTOS内核 │ └── Source/ │ ├── include/ # FreeRTOS头文件 │ ├── portable/ # 移植层 │ └── *.c # 内核源文件 │ ├── Startup/ # 启动文件 │ ├── startup_stm32f407xx.s # GCC启动汇编 │ └── Keil/ │ └── startup_stm32f407xx.s # Keil启动汇编 │ ├── cmake/ # CMake配置 │ └── arm-none-eabi-gcc.cmake # ARM工具链配置 │ ├── .vscode/ # VSCode配置 │ ├── c_cpp_properties.json # IntelliSense配置 │ ├── tasks.json # 构建任务 │ └── launch.json # 调试配置 │ ├── build/ # 构建输出 (自动生成) │ ├── UWB_S01.bin # 二进制固件 (GCC) │ ├── UWB_S01.hex # HEX固件 (GCC) │ ├── UWB_S01.elf # ELF可执行文件 (GCC) │ └── keil/ # Keil输出目录 │ ├── Doc/ # 文档 │ ├── 原理图/ │ └── 协议文档/ │ ├── CMakeLists.txt # CMake主配置 ├── UWB_S01.uvprojx # Keil uVision5项目文件 ├── STM32F407VGTx_FLASH.ld # 链接脚本 (GCC) ├── build.ps1 # 构建脚本 └── README.md # 本文件 ``` --- ## 快速开始 ### 1. 环境要求 - **ARM GCC 工具链**: arm-none-eabi-gcc 14.x - **CMake**: 3.20+ - **Ninja**: 1.10+ (推荐) 或 Make - **调试器**: ST-Link 或 J-Link ### 2. 安装工具链 ```powershell # Windows (使用 winget) winget install Arm.GnuArmEmbeddedToolchain winget install Ninja-build.Ninja winget install Kitware.CMake ``` ### 3. 构建项目 #### 方式一: VSCode + CMake (推荐) ```powershell # 首次构建 .\build.ps1 build # 清理重建 .\build.ps1 rebuild # 仅清理 .\build.ps1 clean ``` #### 方式二: Keil uVision5 1. 双击 `UWB_S01.uvprojx` 打开项目 2. 确保已安装 STM32F4xx DFP 设备包 3. 点击 "Build" 或按 F7 编译 4. 输出文件位于 `build/keil/` 目录 ### 4. 烧录固件 使用 ST-Link: ```powershell openocd -f interface/stlink.cfg -f target/stm32f4x.cfg -c "program build/UWB_S01.elf verify reset exit" ``` 使用 J-Link: ```powershell JLink.exe -device STM32F407VG -if SWD -speed 4000 -CommandFile flash.jlink ``` --- ## 功能模块 ### 1. UWB定位 - TOF (飞行时间) 测距 - TDOA (到达时间差) 定位 - PDOA (到达相位差) 测角 - 支持主站/辅站双模块配置 ### 2. 通信接口 - **以太网**: W5500 TCP客户端,上报定位数据 - **RS485**: 级联多基站通信 - **AT指令**: 配置管理接口 ### 3. AT指令集 | 指令 | 功能 | 示例 | |------|------|------| | AT | 测试连接 | AT | | AT+VERSION? | 查询版本 | AT+VERSION? | | AT+MODE? | 查询工作模式 | AT+MODE? | | AT+MODE=n | 设置工作模式 | AT+MODE=2 | | AT+ID? | 查询设备ID | AT+ID? | | AT+ID=m,s | 设置主/辅站ID | AT+ID=123456,789ABC | | AT+NET? | 查询网络配置 | AT+NET? | | AT+NET=ip,mask,gw | 设置网络 | AT+NET=192.168.1.100,255.255.255.0,192.168.1.1 | | AT+SERVER? | 查询服务器 | AT+SERVER? | | AT+SERVER=ip,port | 设置服务器 | AT+SERVER=192.168.1.200,8080 | | AT+SAVE | 保存配置 | AT+SAVE | | AT+RESTORE | 恢复默认 | AT+RESTORE | | AT+RESET | 系统复位 | AT+RESET | --- ## 内存使用 | 区域 | 大小 | 使用 | 占比 | |------|------|------|------| | FLASH | 1 MB | ~31 KB | 2.95% | | RAM | 128 KB | ~53 KB | 40.65% | | CCM | 64 KB | 0 KB | 0% | --- ## 版本历史 | 版本 | 日期 | 说明 | |------|------|------| | v1.0.0 | 2026-01-12 | 初始版本,支持基本定位功能 | --- ## 许可证 Copyright © 2026. All rights reserved.