Skip to content

hub-yu/ModbusDevice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STM32F030 设备寄存器映射说明

内存布局

stm32f030 基地址: 0x8003c00 (FLASH_ADDR)

偏移量 大小 名称 说明
0x00 4 reg_out 输出寄存器状态
0x04 4 reg_in 输入寄存器状态
0x08 64 reg_val 模拟量寄存器(32个)
0x48 70 regs 保持寄存器(35个)

保持寄存器(REGS)说明

地址 名称 说明 默认值
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

注意:

  1. 设备ID默认为0,可修改为0-247范围内的任意值,0为广播地址
  2. 写入REG_REBOOT寄存器任意非0值将触发设备重启
  3. MAC地址默认由设备唯一ID(UID)生成,确保同一网络下不会冲突
  4. 网络端口默认从50000开始递增,对应8个socket,目前使用两个分别时udp:50000 tcp-server:50001
  5. 上电时检测拨码S3,判断是否开启串口日志输出
  6. 上电时检测拨码S1,判断是否恢复出厂设置,即保持寄存器恢复默认值
  7. 对于保持寄存器及数字输出,采用延时写入FLASH以增加寿命,即未收到任何数据包后的两秒后,保存数据到最后flash一页中

数字输入输出说明

  • reg_out: 32位输出寄存器,每位控制一个输出通道,共支持8个输出
  • reg_in: 32位输入寄存器,每位表示一个输入通道状态,共支持8个输入

模拟量寄存器说明

  • reg_val: 32个16位寄存器,用于存储模拟量数据

STM32F103 设备寄存器映射说明

输入输出寄存器

输出寄存器(OUT)

  • 类型: 线圈输出寄存器(rw)
  • 数量: 8个
  • 默认值: 0x00
  • 掉电保存: 可配置

输入寄存器(IN)

  • 类型: 开关输入寄存器(r)
  • 数量: 11个
  • 默认值: 0x00
  • 掉电保存: 否

模拟量寄存器(VAL)

  • 类型: 模拟量寄存器(r)
  • 数量: 32个
  • 默认值: 0x00
  • 掉电保存: 否

保持寄存器

基础配置寄存器

寄存器名称 地址 权限 默认值 说明
ID 0 rw 0 设备地址
CMD 1 w 0 控制命令
CONFIG 2 rw 0 配置寄存器

CMD控制命令定义

  • 1: 重启设备
  • 2: 恢复出厂设置

CONFIG配置位定义

  • [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] 域名开关

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages