基础实验——485传感器修改地址
基础实验——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(循环冗余校验)在线计算工具来修改后面两个校验码。
使用方法
- 点击打开CRC(循环冗余校验)在线计算工具
- 将地址为
0x01,0x03,0x00,0x00,0x00, 0x01 ,0x84 ,0x0A
的信息修改成0x02,0x03,0x00,0x00,0x00, 0x01 ,未知 ,未知
把0x去掉后剩下的信息放到【需要校验的数据】处【参数模型】选择 CRC-16/MODBUS - 点击【计算】
所以我们获得最终的 查询地址2噪音的询问针应该是
0x02,0x03,0x00,0x00,0x00, 0x01,0x84,0x39
测试:地址二获取噪音信息。
基础实验——485传感器修改地址相关推荐
- 树莓派基础实验20:火焰报警传感器实验
一.介绍 火焰传感器模块通过捕获来自火焰的红外波长来执行检测.它可以用来探测火焰是否存在,在这个实验中,我们使用火焰传感器来检测火焰并发出报警信号. 二.组件 ★Raspberry Pi主板*1 ...
- 树莓派基础实验18:声音传感器实验
一.介绍 声音传感器是一种接受声波并将其转换为电信号的组件,它像麦克风一样检测周围环境中的声音强度. 二.组件 ★Raspberry Pi主板*1 ★树莓派电源*1 ★40P软排线*1 ★PCF ...
- 树莓派基础实验31:MPU6050陀螺仪加速度传感器实验
一.介绍 MPU6050是世界上第一款也是唯一一款专为智能手机.平板电脑和可穿戴传感器的低功耗.低成本和高性能要求而设计的6轴运动跟踪设备. 它集成了3轴MEMS陀螺仪,3轴MEMS加速度 ...
- 树莓派基础实验16:霍尔传感器实验
一.介绍 霍尔传感器是根据霍尔效应制作的一种磁场传感器.霍尔效应是磁电效应的一种,这一现象是霍尔(A.H.Hall,1855-1938)于1879年在研究金属的导电机构时发现的.后来发现半导体. ...
- 传感器实验——485土壤温湿度
传感器实验--485土壤温湿度 材料及接线 MR开发板 单片机TTL转RS485模块 RS485 工业型土壤水分传感器 示例程序 通讯协议(可不看) 基本命令格式: 查询 1 号设备上水分传感器数据 ...
- 华为虚拟服务器lanip地址,2018软考网络工程师《华为基础实验》十九配置路由器为DHCPServer...
原标题:2018软考网络工程师<华为基础实验>十九配置路由器为DHCPServer 实验要求: 在R1上使能DHCP 功能. 创建三个全局地址池,用于为三个不同部门的PC分配IP 地址. ...
- 基础实验——三轴传感器
基础实验--三轴传感器 MMA7660FC 测速原理 加速度传感器实验 所选设备 基本案例 示例代码:制作水平仪 加速度传感器是一种能够测量加速度的传感器.通常由质量块.阻尼器.弹性元件.敏感元件和适 ...
- ArcGIS基础实验操作100例--实验21按区域修改栅格值
本实验专栏参考自汤国安教授<地理信息系统基础实验操作100例>一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 基础编辑篇--实验21 按区域修改栅格值 目录 一. ...
- 传感器实验——485噪声模块
传感器实验--485噪声模块 噪声传感器实验 MR开发板 单片机TTL转RS485模块 噪声传感器模块--485信号 示例程序 RS-485仅是一个电气标准,描述了接口的物理层,像协议.时序.串行或并 ...
最新文章
- ubuntu 目录及文件权限 000 444 666 777(转)
- 前端学习(1081):构造函数和原型概述
- 备忘(持续更新。。。)
- sql ddl中key_SQL DDL:SQL Server中SQL DDL命令入门
- 自定义 Cordova插件(基础篇)
- python 深度学习方法代码整理
- java安装下载步骤_java下载安装教程
- 资深java面试题及答案整理(一)
- 小黑与Vista试用手记
- Fresco之强大之余的痛楚
- 学习笔记——FPGA芯片主要资源介绍
- 微信前台WEUI前台实例+EXCEL导出,SSM框架完整流程
- 小马哥----高仿苹果5se 机型界面图面面观,低配机型 谨防假冒
- mysql order by empty_MySQL随笔一
- KO data-bind=“click: func“函数自动执行问题
- java数组元素替换操作_js数组操作(添加、删除、替换元素)
- 使用VS2012进行单元测试
- SpringBoot2.x 监听器详解
- aop实现原理 - JDK动态代理(实例+源码解析)
- python学习练习