stm32f030 基地址: 0x8003c00 (FLASH_ADDR)
偏移量 | 大小 | 名称 | 说明 |
---|---|---|---|
0x00 | 4 | reg_out | 输出寄存器状态 |
0x04 | 4 | reg_in | 输入寄存器状态 |
0x08 | 64 | reg_val | 模拟量寄存器(32个) |
0x48 | 70 | regs | 保持寄存器(35个) |
地址 | 名称 | 说明 | 默认值 |
---|---|---|---|
0 | REG_DEVICEID | 设备ID | 0 |
1 | REG_REBOOT | 重启控制 | 0 |
2-7 | REG_UART_[0-5] | 串口相关保留寄存器 | 0 |
8-11 | REG_NET_IP_[0-3] | 设备IP地址 | 192.168.1.49 |
12-15 | REG_NET_GATEWAY_[0-3] | 网关地址 | 192.168.1.1 |
16-19 | REG_NET_MASK_[0-3] | 子网掩码 | 255.255.255.0 |
20-25 | REG_NET_MAC_[0-5] | MAC地址 | 由设备UID生成 |
26-33 | REG_NET_PORT_[0-7] | 网络端口配置 | 50000-50007 |
注意:
- 设备ID默认为0,可修改为0-247范围内的任意值,0为广播地址
- 写入REG_REBOOT寄存器任意非0值将触发设备重启
- MAC地址默认由设备唯一ID(UID)生成,确保同一网络下不会冲突
- 网络端口默认从50000开始递增,对应8个socket,目前使用两个分别时udp:50000 tcp-server:50001
- 上电时检测拨码S3,判断是否开启串口日志输出
- 上电时检测拨码S1,判断是否恢复出厂设置,即保持寄存器恢复默认值
- 对于保持寄存器及数字输出,采用延时写入FLASH以增加寿命,即未收到任何数据包后的两秒后,保存数据到最后flash一页中
- reg_out: 32位输出寄存器,每位控制一个输出通道,共支持8个输出
- reg_in: 32位输入寄存器,每位表示一个输入通道状态,共支持8个输入
- reg_val: 32个16位寄存器,用于存储模拟量数据
- 类型: 线圈输出寄存器(rw)
- 数量: 8个
- 默认值: 0x00
- 掉电保存: 可配置
- 类型: 开关输入寄存器(r)
- 数量: 11个
- 默认值: 0x00
- 掉电保存: 否
- 类型: 模拟量寄存器(r)
- 数量: 32个
- 默认值: 0x00
- 掉电保存: 否
寄存器名称 | 地址 | 权限 | 默认值 | 说明 |
---|---|---|---|---|
ID | 0 | rw | 0 | 设备地址 |
CMD | 1 | w | 0 | 控制命令 |
CONFIG | 2 | rw | 0 | 配置寄存器 |
- 1: 重启设备
- 2: 恢复出厂设置
- [1:0] 波特率配置
- 0: 115200
- 1: 57600
- 2: 19200
- 3: 9600
- [2] 串口协议
- 0: RTU
- 1: ASCII
- [3] 串口日志使能
- [4] 输出掉电保存使能
- [5] DHCP使能
寄存器名称 | 起始地址 | 长度 | 权限 | 默认值 | 说明 |
---|---|---|---|---|---|
MAC | 3 | 3(6字节) | rw | 基于UID生成 | 网络MAC地址 |
IP | 6 | 2(4字节) | rw | 192.168.1.49 | 网络IP地址 |
MASK | 8 | 2(4字节) | rw | 255.255.255.0 | 子网掩码 |
GATEWAY | 10 | 2(4字节) | rw | 192.168.1.1 | 网关地址 |
DNS | 12 | 2(4字节) | rw | 114.114.114.114 | DNS服务器 |
- 支持7个通道(0-6)
- 每个通道占用22个寄存器
- 起始地址: 14 + n*22 (n为通道号0-6)
每个通道包含:
寄存器名称 | 偏移量 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
type | 0 | uint16 | 0 | 通道类型 |
timeout_ms | 1 | uint16 | 10000 | 超时重连(ms) |
local_port | 2 | uint16 | 50000+n | 本地端口 |
remote_port | 3 | uint16 | 60000+n | 远程端口 |
remote_ip | 4 | uint32 | 192.168.1.4 | 远程IP |
remote_domain | 6 | string[32] | "www.xiaopj.com" | 远程域名 |
通道类型定义
- [3:0] 通讯类型
- 0: 关闭(OFF)
- 1: UDP
- 2: TCP SERVER
- 3: TCP CLIENT
- 4: MQTT
- [6:4] 协议类型
- 0: RTU
- 1: ASCII
- 2: MBAP
- [7] 域名开关