基础实验——485传感器修改地址

本文介绍了如何修改485传感器的默认地址以避免冲突,详细阐述了Modbus-RTU通讯规约的数据帧格式,并通过噪声传感器实验举例说明地址修改过程。同时,解释了CRC校验的重要性和使用方法,提供了在线计算工具来确保数据传输的准确性。
摘要由CSDN通过智能技术生成

RS-485仅是一个电气标准,描述了接口的物理层,像协议、时序、串行或并行数据以及链路全部由设计者或更高层协议定义。
RS-485定义的是使用平衡(也称作差分)多点传输线的驱动器(driver)和接收器(receiver)的电气特性。

485类型的传感器默认出厂设置地址都为0x01。但是如果我想接多个485传感器,可能地址就冲突了,导致程序无法运行。所以这里以噪音模块为例,我们需要看懂厂家给的文档,如何修改地址。


噪声传感器实验

MR开发板

在这里插入图片描述

单片机TTL转RS485模块

在这里插入图片描述
接线说明

开发板TTL转RS485模块
A3TXD
A2RXD
5v5v+
GNDGND

噪声传感器模块——485信号

在这里插入图片描述
接线说明

TTL转RS485模块噪音模块开发板
A+TXD_A
B-RXD_B
5v5V
GNDGND

厂家出厂给的文件重点

基本都是如下格式,会一个,其它传感器都差不多。

数据帧格式定义(非重点,了解一下即可)

采用Modbus-RTU 通讯规约,
格式如下:
初始结构 ≥4 字节的时间
地址码 = 1 字节
功能码 = 1 字节
数据区 = N 字节
错误校验 = 16 位CRC 码
结束结构 ≥4 字节的时间
地址码:默认01。
功能码:主机所发指令功能指示,本模块只用到功能码0x03(读取寄存器数据)。
数据区:数据区是具体通讯数据,注意16bits数据高字节在前!
CRC码:二字节的校验码。

主机问询帧结构

地址码功能码寄存器起始地址寄存器长度校验码低位校验码高位
1字节1字节2字节2字节1字节1字节

模块应答帧结构

地址码功能码有效字节数数据一区第二数据区 第N数据区校验码
1字节1字节1字节2字节2字节2字节

修改地址(重点)

问询帧(假设修改地址为2,再次查询即可发现地址已被修改)

地址码功能码起始地址修改数值校验码低位校验码高位
0xFF0x060x07 0xD00x00 0x020x1D0x58

应答帧

地址码功能码起始地址修改数值校验码低位校验码高位
0x010x060x07 0xD00x00 0x020x080x86

读取设备的地址以及波特率

问询帧(例如:读取到的地址为0x01 波特率为4800,分别以2400、4800、9600的波特率发送该问询帧)

地址码功能码起始地址数据长度校验码低位校验码高位
0xFF0x030x07 0xD00x00 0x020xD10x58

应答帧

地址码功能码有效字节数波特率地址校验码低位校验码高位
0x010x030x040x00 0x010x00 0x010x6A0x33
>>> from pyb import UART,delay
>>> 
>>> u2 = UART(2, baudrate=9600)
>>> 
>>> barray = bytearray([0xFF,0x03,0x07, 0xD0 ,0x00 ,0x02 ,0xD1,0x58])
>>> u2.write(barray)
8
>>> u2by=u2.read()
>>> print(u2by)
b'\x02\x03\x04\x00\x02\x00\x02\xe92'  # 地址是2 
# 这里是我修改地址成功了然后查询的 默认地址是1

CRC校验

可能大家也注意了,每次发送“命令的时候”都会有一个“校验码低位,校验码高位”这个是什么东西。怎么设置。

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。

简单说就是怕数据传错地方,给了一个保障。所以这个CRC校验码不是随便填写的。比如我的噪音传感器地址改成了2,但是我发数据的时候,如果检验不对。是收不到回来的信息的。整个功能就实现不了。

在这里插入图片描述
我们的地址改了,但是CRC校验码不对,我们就收不到返回的数据(其实也没传成功。。)
我们使用CRC(循环冗余校验)在线计算工具来修改后面两个校验码。

使用方法

  1. 点击打开CRC(循环冗余校验)在线计算工具
    在这里插入图片描述
  2. 将地址为0x01,0x03,0x00,0x00,0x00, 0x01 ,0x84 ,0x0A的信息修改成0x02,0x03,0x00,0x00,0x00, 0x01 ,未知 ,未知把0x去掉后剩下的信息放到【需要校验的数据】处【参数模型】选择 CRC-16/MODBUS在这里插入图片描述
  3. 点击【计算】
    在这里插入图片描述
    所以我们获得最终的 查询地址2噪音的询问针应该是
0x02,0x03,0x00,0x00,0x00, 0x01,0x84,0x39

测试:地址二获取噪音信息。
在这里插入图片描述

  • 8
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
1、用途 波仕电子的DIZ485地址串口转换器用于实现串口(同时支持RS-232和RS-485)之间的带地址的转换。通过跳线设置地址编码,DIZ485可以将串口接收到的数据附加上地址编码发送出去,也可以将带地址编码的串口数据送到对应地址的转换器的串口。DIZ485与其它同类产品相比的特点是可以识别下位机的地址、下位机可以主动发送带地址的数据。DIZ485是世界上最小的带地址的串口转换器。 2、硬件安装 波仕DIZ485地址串口转换器的外形为DB-9/DB-9转接盒大小,如图,产品左边为主串口,包括DB-9孔的RS-232口,和标明为A1、B1的RS-485口。右边为从串口,包括DB-9针的RS-232口,和标明为A2、B2的RS-485口。左上侧J2、J1、J0为波特率设置的跳线,右上侧K2、K1、K0为地址编码设置的跳线,下面中间为5V电源接线端子。主串口与从串口之间并不隔离,它们公用GND地线和+5V电源。DIZ485的左边DB-9孔可以直接外插计算机的RS-232口,右边的DB-9针引脚分配同计算机的RS-232口,但是都只有RXD、TXD、GND三根线。DIZ485需要外接直流5V电源。外接5V电源要求5V(±0.5V) 50mA,产品配套有5V微型开关稳压电源。 3、跳线设置 DIZ485通过跳线J2、J1、J0设置波特率,通过跳线K2、K1、K0设置地址。见下表。0-断开,1-短路。注意每次更改跳线新设置波特率后必须重新加电源才能生效。 串口通信波特率设置 地址设置 J2 J1 J0 波特率 K2 K1 K0 地址 0 0 0 1200 0 0 0 0 0 0 1 2400 0 0 1 1 0 1 0 4800 0 1 0 2 0 1 1 9600 0 1 1 3 1 0 0 19200 1 0 0 4 1 0 1 38400 1 0 1 5 1 1 0 57600 1 1 0 6 1 1 1 115200 1 1 1 7 4、软件使用 DIZ485 使用非常方便。首先根据用户通信程序的波特率进行波特率设置,比如9600bps,则将J2断开、J1短接、J0短接。然后设置本产品的地址,比如设置地址为1,则将K2断开、K1断开、K0短接。 左侧的A1、B1的RS-485以及DB-9孔RS-232称为“主串口”;右侧A2、B2的RS-485以及DB-9针RS-232称为“从串口”。 通信规则:主串口数据=地址码+从串口数据 或者:从串口数据=主串口数据—地址码 如果主串口收到 ###1:1234567,那么地址为1的产品的从串口发送出 1234567(地址不是1的产品的从串口不发送任何数据),就是去帧头。地址码就是在K2、K1、K0跳线设置值的前面加3个井号(###)和后面加一个冒号(:)的英文字符。 如果地址为1的产品的从串口收到abcdefg ,则主串口发送出###1:abcdefg 就是加帧头。 在同一个RS-232/RS-485总线中可以同时接入一般最多8个DIZ485产品,定制最多可以到32个。使用时将这8个产品的地址分别设置为0、1、2、……、7不同的值。将所有DIZ485产品的主串口共同接入到一个总线并接到上位机的RS-232或RS-485口。 DIZ485接受定制开发。超过8个地址要求的可以定制扩展地址编码,最多可以达到32个。默认地址为0、1、2、3、4、5、6、7、8、9、a、b、……、t、u、v。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸鱼桨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值