【嵌入式】RS485通信+硬件

目录

1.物理层

2.协议层

3.收发电路

 3.1三极管开关电路

3.2收发原理图解释     


1.物理层

        对比 CAN 通讯网络,可发现它们的网络结构组成是类似的,每个节点都是由一个通讯控制器和 一个收发器组成,在 RS-485 通讯网络中,节点中的串口控制器使用 RX TX 信号线连接到收 发器上,而收发器通过差分线连接到网络总线,串口控制器与收发器之间一般使用 TTL 信号传 输,收发器与总线则使用差分信号来传输。发送数据时,串口控制器的 TX 信号经过收发器转换成差分信号传输到总线上,而接收数据时,收发器把总线上的差分信号转化成 TTL 信号通过 RX引脚传输到串口控制器中。

        RS-485 通讯网络的最大传输距离可达 1200 米,总线上可挂载 128 个通讯节点,而由于 RS-485 网络只有一对差分信号线,它使用差分信号来表达逻辑,当 AB 两线间的电压差为-6V~-2V 时表示逻辑 1,当电压差为 +2V~+6V 表示逻辑 0,在同一时刻只能表达一个信号,所以它的通讯是半双工形式的。

        它与 RS-232 通讯协议的特性对比见图标准对比

        RS-485 与 RS-232 的差异只体现在物理层上,它们的协议层是相同的,也是使用串口数据包的形式传输数据。而由于 RS-485 具有强大的组网功能,人们在基础协议之上还制定MODBUS 协议,被广泛应用在工业控制网络中。此处说的基础协议是指前面串口章节中讲解的,仅封装了基本数据包格式的协议 (基于数据位),而 MODBUS 协议是使用基本数据包组合成通讯帧格式的高层应用协议 (基于数据包或字节)

2.协议层

        和usart协议相同

3.收发电路

        备注:max3485ESA

                   1)#RE脚:0表示使能接收;1表示进入高阻态;#RE为1,DE为0时进入低功耗;

                    2)DE脚:1表示使能接收;0表示进入高阻态;#RE为1,DE为0时进入低功耗;

 3.1三极管开关电路

        电阻R26、电阻R23和NPN三极管Q1组成一个典型的三极管开关电路。

        R26是限流电阻;R23是上拉电阻,可以选择4.7K或者10K。

        当TX高电平,三极管导通,RE和DE引脚接地,进入接收模式;当TX低电平,三极管截止,RE和DE引脚接高电平,进入发送模式。 

3.2收发原理图解释     

        在发送数据时,用的是单片机的TX引脚,也就是说,在TX引脚上表现数据。要发送数据0x32,写成二进制就是0x00110010,TXD引脚上就会依次的用高低电平体现1和0。

        当TX发送0时,三极管不导通,DE接高电平,进入发送模式,485芯片会把DI上的电平反应到AB引脚上输出,因为DI已经接地,所以AB引脚会传输0。所以,当TXD发送0时,AB引脚发送0。

        当TX发送1时,三极管导通,RE接低电平,进入接收模式,485芯片的AB引脚进入高阻状态,因为R3把A拉高,R2把B拉低,所以,AB传输的是1。所以,当TXD发送1时,AB引脚发送1。

        而在接受数据过程中,用的是单片机引脚RX,在RXD引脚上表现数据。在接收数据的过程中,TX引脚是一直保持高电平的,当TXD是高电平时,RE是低电平,正好变成了接收状态,然后485芯片的RO引脚(也就是接RX的引脚)就会接收AB传输过来的数据。(备注 TX RX在空闲状态时都处于高电平状态)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 创建 查看 删除 用户和用户组等操作

在Linux系统中,创建、查看和删除用户和用户组等操作通常通过命令行工具完成。以下是一些常用的命令: 用户操作: 创建用户:sudo adduser username修改用户密码:sudo passwd username删除用户:sudo deluser username用户组操作: 创建用户组:sudo addgroup groupname删除…

Java基础:异常(三)

Java基础:异常(三) 文章目录 Java基础:异常(三)1. Java异常体系1.1 错误的分类1.2 异常的分类 2. 异常的捕获与处理2.1 try-catch2.2 finally 3. 异常的抛出4. 自定义异常 1. Java异常体系 Java的异常体系是…

ubuntu20 安装Anaconda

Anaconda官网:Anaconda | The Operating System for AI 然后就开始下载了。下载完 直接打开终端运行 bash Anaconda3-2024.02-1-Linux-x86_64.sh 按回车ENTER 一直空格,直到 yes,回车 确认安装路径,默认即可,直接回车…

SQL Server定期收缩日志文件详细步骤——基于SQL Server 2012

SQL Server定期收缩日志文件详细步骤 一、环境配置1、查看数据库的属性2、文件设置3、备份模式4、查看收缩配置5、查看收缩选项 二、编写作业计划1、选择新建作业2、常规配置3、步骤4、输入内容5、脚本详解6、新建计划7、输入名称、选择执行时间8、查看测试9、查看测试结果 一、…

【最优化方法】实验四 约束最优化方法的MATLAB实现

实验的目的和要求:通过本次实验使学生较为熟练使用MATLAB软件,并能利用该软件进行约束最优化方法的计算。 实验内容: 1、罚函数法的MATLAB实现 2、可行方向法的MATLAB实现 学习建议: 本次实验就是要通…

递归/递归函数

不明白为什么很多学校要从“汉诺塔”讲起,这玩意是真的绕。 递归(函数)的概念: 调用自身来求解问题 不要过多考虑递归细节,宏观层面上的理解递归就行 ps:总不能一直调用下去吧?必须要有一个边界 递归的…

国际标准引脚,宽范围工作温度–40℃ 到 105℃,3W 1.5KVDC 隔离单输出 DC/DC 电源模块 ——TPL-3W系列

TPL-3W系列是一款额定功率为3W的隔离产品,国际标准引脚,宽范围工作温度–40℃ 到 105℃,在此温度范围内都可以稳定输出3W,并且效率非常高,高达88%,同时负载调整率非常低,对于有输出电压精度有要…

失落的方舟台服封号的解决方法 怎么避免封号?

失落的方舟台服封号的解决方法 怎么避免封号? 失落的方舟这款游戏是由Smile Gate研发的MMORPG游戏,这款游戏将于5月30日正式开服。游戏采用虚幻3引擎,为玩家们提供了丰富的游戏玩法与精美的游戏画面。游戏的背景是在中世纪,玩家们…

JS将小数转化为整数

在JavaScript中,有多种方法可以将一个值转化为整数。以下是一些常用的方法: Number.parseInt() 或 parseInt()parseInt() 函数解析一个字符串参数,并返回一个指定基数的整数(基数介于2和36之间)。如果第一个字符不能被转换为数字,parseInt() 会返回 NaN。 let numString…

网络原理-------TCP协议

文章目录 TCP协议TCP协议段格式TCP原理确认应答机制 (安全机制)超时重传机制 (安全机制)连接管理机制 (安全机制)滑动窗口 (效率机制)流量控制 (安全机制)拥塞控制 (安全机制)延迟应答 (效率机制)捎带应答 (效率机制) 基于TCP的应用层协议 TCP协议 TCP, 即 Transmission Contr…

TypeScript 枚举

什么是 TypeScript 枚举? 简单来说,枚举是一种用于命名一组常量的数据类型。在 TypeScript 中,枚举允许我们定义一个命名的常量集合,并为这些常量分配相关的数值。通过枚举,我们可以为一组相关的值提供一个友好的名字…

运维开发之Linux机器码

一、介绍 Linux机器码指的是在Linux操作系统上运行的程序的二进制代码,也称为机器码或目标代码。Linux机器码是对源代码进行编译或汇编后得到的结果,它是一系列由0和1组成的指令,用于直接在计算机硬件上执行。 在Linux中,机器码可以是由C、C++、汇编语言或其他编程语言编…

基于 LLM 的群聊知识助手:茴香豆简介

茴香豆是一个基于大型语言模型(LLM)的群聊知识助手,旨在为用户提供智能化的对话体验和问题解答。它通过精心设计的三阶段处理流程(预处理、拒答、响应)来应对群聊场景的复杂性,确保既能提供有用的信息&…

java解压缩ZIP文件

封装了一个类,类的代码如下 public class Decompress {//String zipFilePath "/sdcard/archive.zip";//String destinationPath "/sdcard/extracted_files";//ZipUtils.unzip(zipFilePath, destinationPath);public static void unzip(Strin…

Go 语言中程序是怎么编译的?

在当今快速发展的软件开发领域,Go 语言(又称 Golang)已经成为了开发高性能应用程序的热门选择。由 Google 开发并在 2009 年公开发布,Go 语言因其简洁的语法、出色的并发支持以及优秀的性能而受到广泛欢迎。尽管 Go 的语法相对简单…

C# TcpClient

TcpClient 自己封装的话,还是比较麻烦的,可以基于线程,也可以基于异步写,最好的办法是网上找个插件,我发现一个插件还是非常好用的:STTech.BytesIO.Tcp 下面是这个插件作者的帖子,有兴趣的可以…

Mac连接虚拟机(Linux系统)

1.确定虚拟机的IP地址 ifconfig //终端命令,查询ip地址 sudo apt install net-tools 安装完成后再次执行 ifconfig: 2.安装SSH(加密远程登录协议) (1).安装OpenSSH服务器软件包: sudo apt-get install openssh-ser…

监控易助力实现智能工厂数字化升级项目案例

随着工业4.0和智能制造的浪潮席卷全球,包头铝业(以下简称“包铝”)积极响应行业变革,启动了智能工厂升级项目。该项目旨在通过数字化转型,实现IT基础设施、动环设施以及物联网设施的互联互通,进而提升生产效…

小心审核失败,网上申请流量卡千万要注意这些!

最近有朋友私信小编:在网上申请的流量卡,信息填写完成提交审核呢,是不是就能发卡呢? 答案:不一定。 网上申请流量卡时,填写申请信息并提交审核这只是网报程序成功,接下来还要运营商审核&#…

python面向对象编程OOP

面向对象编程(Object-Oriented Programming,简称OOP)是Python编程中一种重要的编程范式。OOP通过使用类和对象来组织代码,使代码更易于管理和维护。下面是一些Python面向对象编程的关键概念和示例: 1. 类和对象 **类…