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

  • 噪声传感器实验
    • MR开发板
    • 单片机TTL转RS485模块
    • 噪声传感器模块——485信号
  • 厂家出厂给的文件重点
    • 数据帧格式定义(非重点,了解一下即可)
    • 修改地址(重点)
    • 读取设备的地址以及波特率
  • CRC校验
    • 使用方法

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

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


噪声传感器实验

MR开发板

单片机TTL转RS485模块


接线说明

开发板 TTL转RS485模块
A3 TXD
A2 RXD
5v 5v+
GND GND

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


接线说明

TTL转RS485模块 噪音模块 开发板
A+ TXD_A
B- RXD_B
5v 5V
GND GND

厂家出厂给的文件重点

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

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

采用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,再次查询即可发现地址已被修改)

地址码 功能码 起始地址 修改数值 校验码低位 校验码高位
0xFF 0x06 0x07 0xD0 0x00 0x02 0x1D 0x58

应答帧

地址码 功能码 起始地址 修改数值 校验码低位 校验码高位
0x01 0x06 0x07 0xD0 0x00 0x02 0x08 0x86

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

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

地址码 功能码 起始地址 数据长度 校验码低位 校验码高位
0xFF 0x03 0x07 0xD0 0x00 0x02 0xD1 0x58

应答帧

地址码 功能码 有效字节数 波特率 地址 校验码低位 校验码高位
0x01 0x03 0x04 0x00 0x01 0x00 0x01 0x6A 0x33
>>> 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

测试:地址二获取噪音信息。

基础实验——485传感器修改地址相关推荐

  1. 树莓派基础实验20:火焰报警传感器实验

    一.介绍    火焰传感器模块通过捕获来自火焰的红外波长来执行检测.它可以用来探测火焰是否存在,在这个实验中,我们使用火焰传感器来检测火焰并发出报警信号. 二.组件 ★Raspberry Pi主板*1 ...

  2. 树莓派基础实验18:声音传感器实验

    一.介绍    声音传感器是一种接受声波并将其转换为电信号的组件,它像麦克风一样检测周围环境中的声音强度. 二.组件 ★Raspberry Pi主板*1 ★树莓派电源*1 ★40P软排线*1 ★PCF ...

  3. 树莓派基础实验31:MPU6050陀螺仪加速度传感器实验

    一.介绍    MPU6050是世界上第一款也是唯一一款专为智能手机.平板电脑和可穿戴传感器的低功耗.低成本和高性能要求而设计的6轴运动跟踪设备.    它集成了3轴MEMS陀螺仪,3轴MEMS加速度 ...

  4. 树莓派基础实验16:霍尔传感器实验

    一.介绍    霍尔传感器是根据霍尔效应制作的一种磁场传感器.霍尔效应是磁电效应的一种,这一现象是霍尔(A.H.Hall,1855-1938)于1879年在研究金属的导电机构时发现的.后来发现半导体. ...

  5. 传感器实验——485土壤温湿度

    传感器实验--485土壤温湿度 材料及接线 MR开发板 单片机TTL转RS485模块 RS485 工业型土壤水分传感器 示例程序 通讯协议(可不看) 基本命令格式: 查询 1 号设备上水分传感器数据 ...

  6. 华为虚拟服务器lanip地址,2018软考网络工程师《华为基础实验》十九配置路由器为DHCPServer...

    原标题:2018软考网络工程师<华为基础实验>十九配置路由器为DHCPServer 实验要求: 在R1上使能DHCP 功能. 创建三个全局地址池,用于为三个不同部门的PC分配IP 地址. ...

  7. 基础实验——三轴传感器

    基础实验--三轴传感器 MMA7660FC 测速原理 加速度传感器实验 所选设备 基本案例 示例代码:制作水平仪 加速度传感器是一种能够测量加速度的传感器.通常由质量块.阻尼器.弹性元件.敏感元件和适 ...

  8. ArcGIS基础实验操作100例--实验21按区域修改栅格值

    本实验专栏参考自汤国安教授<地理信息系统基础实验操作100例>一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 基础编辑篇--实验21 按区域修改栅格值 目录 一. ...

  9. 传感器实验——485噪声模块

    传感器实验--485噪声模块 噪声传感器实验 MR开发板 单片机TTL转RS485模块 噪声传感器模块--485信号 示例程序 RS-485仅是一个电气标准,描述了接口的物理层,像协议.时序.串行或并 ...

最新文章

  1. ubuntu 目录及文件权限 000 444 666 777(转)
  2. 前端学习(1081):构造函数和原型概述
  3. 备忘(持续更新。。。)
  4. sql ddl中key_SQL DDL:SQL Server中SQL DDL命令入门
  5. 自定义 Cordova插件(基础篇)
  6. python 深度学习方法代码整理
  7. java安装下载步骤_java下载安装教程
  8. 资深java面试题及答案整理(一)
  9. 小黑与Vista试用手记
  10. Fresco之强大之余的痛楚
  11. 学习笔记——FPGA芯片主要资源介绍
  12. 微信前台WEUI前台实例+EXCEL导出,SSM框架完整流程
  13. 小马哥----高仿苹果5se 机型界面图面面观,低配机型 谨防假冒
  14. mysql order by empty_MySQL随笔一
  15. KO data-bind=“click: func“函数自动执行问题
  16. java数组元素替换操作_js数组操作(添加、删除、替换元素)
  17. 使用VS2012进行单元测试
  18. SpringBoot2.x 监听器详解
  19. aop实现原理 - JDK动态代理(实例+源码解析)
  20. python学习练习

热门文章

  1. php 文件图片上传
  2. webjar的详细使用方式
  3. 修改若依微服务版遇到的的问题
  4. 【计算机网络】TCP/IP协议(DNS协议、IP协议、TCP协议、UDP协议、三次握手、四次挥手)
  5. 简单玩转ViewPager+Fragment动画效果,实现京东淘宝物流卡片效果 (附源码)
  6. ZooKeeper之常用命令大全
  7. [ARM] ARM处理器的7种工作模式和2种工作状态
  8. wordart-在线生成要想的图片做为报告的门面
  9. 关于Python可视化Dash工具
  10. selenium工作原理详解