RS485以及MODBUS学习

学习目的:

1、什么是485?

2、485如何通信?

3、如何使用熟能生巧?

        RS485是一种四总线通信,分别是VCC、GND、485_A、485_B。两根负责通信,两根负责进行供电。

 RS485通信

    硬件层:解决的是数据传输问题,也就是如何将“0”和“1”传输到另外一端设备。

    软件层:ModBus协议则是解决数据传输的含义和意义

那么单片机则是如何进行485通信的?

        单片机需要进行485通信,则需要进行电平转换以及485驱动芯片,一般现在市面上有两种驱动芯片(隔离芯片、非隔离芯片),在进行设计电平转换方案也是有几种:

        1、隔离电源+非隔离芯片+(高速)光耦隔离                成本低

        2、隔离电源+隔离芯片                                                   通信接口安全

通常485驱动芯片 VB > VA为“0”,反之VA > VB为“1”.其通信流程如下

        因为在通信是采用的差分通信,则在两线制的485通信中,则只能进行单向传输,也就是半双工传输,不能进行同步双向传输。在半双工传输芯片中,一般会有RE和DE也就是控制485通信驱动芯片的传输方向,这部分则是485通信硬件层的解决。

 ModBus协议:        主从通信                在半双工通信中可以一主多从(驱动芯片决定从机数量)

  ModBus 通信:

        通信机制:      主机轮询,从机应答的机制

        1、系统中只有一个主机:主从通信

        2、系统中的从机不可以主动的向主机发送数据

        3、系统上电后所有的主从设备都应该处于监听总线的状态,也就是接收状态

        4、如果想要发起一次通信,那么必须有主机主动发起通信(任何一次通信或数据交换必须有主机来发起)

        主机想要发送则:        先将驱动芯片改为发送模式,在进行发送数据包。

        立马转换为接收模式

地址码(通信地址):1-247

        指定地址0的指令是广播指令,所有收到的设备都会运行但不会回复。

常用功能码: 01/05/15      03/06/16

例如:

更具体点分析如下:

06则是主机发送什么从机就应答什么。

而485通信断帧的时间大约10ms或者3ms,也就是超过时则认为这个数据包结束了。

那么通信协议的定制,可以使用别人定制好的,拿来改进行自己使用,如下:

在开发过程中需要制定RS485的通信协议:RS485 MODBUS-RTU等格式

开发辅助工具:ModBus Poil (主机) 、ModBus Slave(从机)

目前来看485协议不是很难,只要注意协议就行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/139250.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

以酒为媒、以酒载道,五粮液携手首届“金熊猫奖”,讲好中国白酒故事

执笔 | 尼 奥 编辑 | 萧 萧 这是一次光影艺术与白酒酿造的和美之约,也是中国文化与世界多元文明的交融时刻,在影视与美酒的碰撞瞬间,共同擘画“美美与共,天下大同”的文明图景。 9月19-20日,以“多彩文明荣耀光影…

天府新区直播产业基地即将竣工,记者带你提前探访天府蜂巢成都直播产业基地

位于天府新区的成都直播产业基地即将竣工,这势必引领成都直播行业地标新朝向,聚合城市发展向心力。记者带您提前探访成都天府蜂巢直播产业基地,一睹其风采。 强强联手 资源整合 成都天府蜂巢直播产业基地是由以数字影像文创等产业集群为基础…

建议收藏《Verilog代码规范笔记_华为》(附下载)

华为verilog编程规范是坊间流传出来华为内部的资料,其贴合实际工作需要,是非常宝贵的资料,希望大家善存。至于其介绍,在此不再赘述,大家可看下图详细了解,感兴趣的可私信领取《Verilog代码规范笔记_华为》。…

【Java 基础篇】Java网络编程基础知识详解

网络编程是现代软件开发中不可或缺的一部分,它使我们能够在不同的计算机之间实现数据传输和通信。Java作为一种强大的编程语言,提供了丰富的网络编程库,使开发者能够轻松地创建网络应用程序。本文将介绍Java网络编程的基础知识,面…

构建可维护的大规模应用:框架架构的最佳实践

文章目录 框架架构的重要性最佳实践1. 模块化设计2. 遵循SOLID原则3. 使用设计模式4. 异常处理5. 代码注释和文档6. 测试 Spring Boot 和 Django:关键框架示例Spring Boot(Java)模块化设计:SOLID原则:设计模式&#xf…

https SSL证书使用 git bash 解密

申请域名证书后,有些证书下载时强制加密。 在使用时,比如在AWS ACM中使用时,不能用加密的证书。所以这里讲下怎么解密。 首先,加密一般加密的是公私钥中的私钥,即private.key。 填写密码,下载证书&#x…

想要精通算法和SQL的成长之路 - 最长等差数列

想要精通算法和SQL的成长之路 - 最长等差数列 前言一. 最长等差数列 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 最长等差数列 原题链接 思路: 我们假设dp[i][j] 为:以num[i]为结尾,以j为公差的最长等差子序列的长度。由此可知&a…

LLM 11-环境影响

LLM 11-环境影响 在本章中,首先提出一个问题:大语言模型对环境的影响是什么? 这里给出的一个答案是:气候变化 一方面,我们都听说过气候变化的严重影响(文章1、文章2): 我们已经比工业革命前的水平高出1.…

jarvisoj_level3_x64

jarvisoj_level3_x64 Arch: amd64-64-little RELRO: No RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000)64位,只开了nx ssize_t vulnerable_function() {char buf[128]; // [rsp0h] [rbp-80h] BYREFwrite(1, "Inp…

MongoDB【部署 04】Windows系统实现MongoDB多磁盘存储

Windows系统实现多磁盘存储 1.为什么2.多磁盘存储2.1 数据库配置2.2 文件夹磁盘映射2.3 创建新的数据集 3.总结 1.为什么 这里仅针对只有一台Windows系统服务器的情景: 当服务器存储不足时,或者要接入更多的数据,就会挂载新磁盘&#xff0c…

Uni-app 调用微信地图导航功能【有图】

前言 我们在使用uni-app时&#xff0c;有时候会遇到需要开发地图和导航的功能&#xff0c;这些方法其实微信小程序的API已经帮我们封装好了 详见&#xff1a;微信小程序开发文档 接下来我们就演示如何用uni-app来使用他们 使用 <template><view><button type…

聊一聊Twitter的雪花算法

什么是Twitter的雪花算法方法&#xff1f; 这是一种在分布式系统中生成唯一ID的解决方案。Twitter在推文、私信、列表等方面使用这种方法。 •ID是唯一且可排序的•ID包含时间信息&#xff08;按日期排序&#xff09;•ID适用于64位无符号整数•仅包含数字值 符号位&#xff08…

微信朋友圈的高级玩法

面对好友的生日&#xff0c;你还在傻傻的守点发朋友圈&#xff0c;节日庆祝你还在傻傻的守点官宣吗&#xff1f;还有你关注的那个他&#xff08;她&#xff09;&#xff0c;他&#xff08;她&#xff09;发的朋友圈你想成为第一个点赞评论的人吗&#xff1f;想和他进行更多的交…

华为云云耀云服务器L实例评测|centos7.9在线使用cloudShell下载rpm解压包安装mysql并开启远程访问

文章目录 ⭐前言⭐使用华为cloudShell连接远程服务器&#x1f496; 进入华为云耀服务器控制台&#x1f496; 选择cloudShell ⭐安装mysql压缩包&#x1f496; wget下载&#x1f496; tar解压&#x1f496; 安装步骤&#x1f496; 初始化数据库&#x1f496; 修改密码&#x1f4…

Docker 容器设置为自动重启

Docker自动重启原因 Docker自动重启通常是由以下几个原因导致的&#xff1a; 程序崩溃系统内存不足系统进程使用过多CPU和RAM导致的阻塞docker容器被杀死或重新启动&#xff0c;导致应用程序中断网络中断 当这些问题出现时&#xff0c;Docker会自动重启运行中的服务来尝试解…

征稿:【1区TOP】CCF推荐,Elsevier出版社,仅2个月左右录用!

【SciencePub学术】刊源推荐: CCF推荐1区TOP重点SCIE&EI征稿中&#xff01; 一、期刊概况&#xff1a; CCF推荐1区TOP&#xff1a;人工智能类SCIE&EI 优势一&#xff1a;高影响因子、高分区 IF&#xff1a;8.0&#xff0c;JCR1区&#xff0c;中科院2区TOP&#xff…

【LeetCode热题100】--11.盛最多水的容器

11.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 **说明&#xff1a;*…

PIL或Pillow学习1

PIL&#xff08; Python Imaging Library&#xff09;是 Python 的第三方图像处理库&#xff0c;由于其功能丰富&#xff0c;API 简洁易用&#xff0c;因此深受好评。 自 2011 年以来&#xff0c;由于 PIL 库更新缓慢&#xff0c;目前仅支持 Python 2.7 版本&#xff0c;这明显…

ATFX汇市:为什么英央行维持利率不变,而不是加息25基点?

ATFX汇市&#xff1a;9月21日&#xff0c;英国央行9月利率决议宣布&#xff0c;维持5.25%的基准利率不变&#xff0c;此前市场预期英央行将会加息25基点。消息公布后&#xff0c;GBPUSD五分钟内从最高点1.2300下跌至1.2239&#xff0c;跌幅61基点。英国央行会议纪要中提到&…