39. RS485通信实验
实验五 485实验

基于EIA-485总线的多机数据通信实验一、实验目的1.理解RS485串口通讯原理2.掌握RS485串口通讯硬件连接3.掌握基本的主从式通讯网络的搭建4.理解协议的概念5.掌握简单的协议的收发原理6.学会在ARM开发板上编写程序实现简单协议的收发二、实验设备硬件:RS485通信模块、EasyArm2200开发套件、实验连接跳线软件:ADS1.2集成开发环境三、实验原理1.RS485原理RS485采用平衡发送和差分接收,具有抑制共模干扰的能力,加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。
RS485的电气特性:逻辑“1”以两线间的电压差为+(2—6) V表示;逻辑“0”以两线间的电压差为-(2—6)V表示。
接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL 电路连接。
RS485采用半双工工作方式,一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输,数据最高传输速率为10Mbps。
任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。
RS485用于多点互连时非常方便,可以省掉许多信号线。
应用RS485可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。
EasyArm2200开发套件上自带有RS232串口,所以需要使用扩展模块。
选用MAX485芯片,其引脚图如下:图1:MAX485接口引脚图其中各个引脚的功能如下:图2 EIA-485接口模块引脚说明其典型的组网连接图如下:图3 典型组网连接示意图其中电阻为120欧姆,并且将RE与DE相连,是为了更好的控制串口的收发,当ARM 的GPIO输出高电平时,处于发送状态,此时接收被禁止;反之亦然。
2.通讯协议所谓通信协议是指通信双方的一种约定。
约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。
实验11:RS485通信

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOG,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3; //RX-485
//串口输入
PA3
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
*函数名
: rs485_init
* 函数功能
: IO 端口及串口 2,时钟初始化函数
*输 入
:无
*输 出
:无
*********************************************************************
**********/
void rs485_init()
我们 STM32 开发板上采用 SP3485 作为收发器,该芯片支持 3.3V 供电,最大传输速度 可达 10Mbps,支持多达 32 个节点,并且有输出短路保护。该芯片的框图如图所示:
图中 A、 B 总线接口,用于连接 485 总线。 RO 是接收输出端, DI 是发送数据收入 端, RE 是接收使能信号(低电平有效), DE 是发送使能信号(高电平有效)。
//使能
NVIC_Init(&NVIC_InitStructure);
}
2) 中断函数
void USART2_IRQHandler(void) //485 通信中断函数
{
static u8 k;
USART_ClearFlag(USART2,USART_FLAG_TC);
if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET)//检查指定的
RS485通讯实验

RS485通讯实验与CAN 类似,RS-485 是一种工业控制环境中常用的通讯协议,它具有抗干扰能力强、传输距离远的特点。
RS-485 通讯协议由RS-232 协议改进而来,协议层不变,只是改进了物理层,因而保留了串口通讯协议应用简单的特点。
RS-485 协议主要是把RS-232 的信号改进成差分信号,从而大大提高了抗干扰特性。
对比CAN 通讯网络,可发现它们的网络结构组成是类似的,每个节点都是由一个通讯控制器和一个收发器组成,在RS-485 通讯网络中,节点中的串口控制器使用RX 与TX 信号线连接到收发器上,而收发器通过差分线连接到网络总线,串口控制器与收发器之间一般使用TTL 信号传输,收发器与总线则使用差分信号来传输。
发送数据时,串口控制器的TX 信号经过收发器转换成差分信号传输到总线上,而接收数据时,收发器把总线上的差分信号转化成TTL 信号通过RX引脚传输到串口控制器中。
RS-485 通讯网络的最大传输距离可达1200 米,总线上可挂载128 个通讯节点,而由于RS-485 网络只有一对差分信号线,它使用差分信号来表达逻辑,当AB 两线间的电压差为-6V~-2V 时表示逻辑1,当电压差为+2V~+6V 表示逻辑0,在同一时刻只能表达一个信号,所以它的通讯是半双工形式的。
RS-485 与RS-232 的差异只体现在物理层上,它们的协议层是相同的,也是使用串口数据包的形式传输数据。
由于RS-485 与RS-232 的协议层没有区别,进行通讯时,我们同样是使用STM32 的USART 外设作为通讯节点中的串口控制器,再外接一个RS-485 收发器芯片把USART 外设的TTL 电平信号转化成RS-485 的差分信号即可。
RS-485—双机通讯实验本小节演示如何使用STM32 的USART 控制器与MAX485 收发器,在两个设备之间使用RS-485协议进行通讯,本实验中使用了两个实验板,无法像CAN 实验那样使用回环测试(把STM32USART 外设的TXD 引脚使用杜邦线连接到RXD 引脚可进行自收发测试,不过这样的通讯不经过RS-485 收发器,跟普通TTL 串口实验没有区别),本教程主要以“USART—485 通讯”工程进行讲解。
RS485总线通信实验

if(m>=0 && m<='9') return m-'0';
else if(m>='A' && m<='Z') return m-'A'+10;
else if(m>='a' && m<='z') return m-'a'+10;
return 0;
}
uchar AscByte(uchar p) //ok
while(1)
{
if(RECV)
{
RECV=0;
if(ChkLRC()==0)
{
w=AscByte(0);
if(w==Addr) ModbusASC();
}
}
}
}
五、实验预习要求
学习单片机的串口设置的有关特殊寄存器的设置,学习ASCII码通信协议的有关知识。
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define tim0 -50000
#define BPS4800 -13
ByteAsc(n);
switch(cmd&0x0c)
{
case 0x00: //byteok
s=(uchar*)DatB+p;
for(i=0;i<n;i++)
ByteAsc(s[i]);
break;
case 0x04: //wordok
基于RS485通信协议实验

基于RS485通信协议实验报告一、实验名称基于RS485通信协议设计与分析二、实验目的及要求基于RS485接口标准设计通信协议,协议具体要求如下:1、定时数据通信:每秒钟每台计算机分别交换10、20、30、40、50个字节的数据。
2、广播通信:每十秒中,发布广播数据对各个计算机的时钟进行同步。
3、错误检测:CRC错误检测,有错误时,采用相应的错误处理程序。
4、网络管理:随时获知网络中各节点的工作状态,当有节点故障退出网络或新的节点加入网络时,能够记录网络状态。
5、数据记录:在任一个网络节点上,都可以实时记录本节点的数据,并以曲线形式观察当前和历史数据及节点的工作状态三、实验分析1、串行通信接口的基本任务所谓通信协议是指通信双方的一种约定。
约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。
因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。
(1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。
在异步通信方式下,接口自动生成起止式的帧数据格式。
在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。
(2)进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。
所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。
因此串并转换是串行接口电路的重要任务。
(3)控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选择和控制的能力。
(4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。
在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。
(5)进行TTL与EIA电平转换:CPU和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。
用485抄单相表实验报告

用485抄单相表实验报告概述本实验旨在探究使用485通信方式抄读单相表数据的方法和优势。
通过实验我们可以了解485通信的原理、使用方法和相关应用领域。
一、实验准备1.实验设备:单相电能表、RS485通信模块、电源、电缆等。
2.实验工具:电子万用表、电脑、RS485通信软件等。
二、实验步骤1. 连接硬件设备1.将RS485通信模块与单相电表进行连接,确保连接正确无误。
2.将电源接入电表和RS485通信模块,确保正常供电。
2. 安装通信软件1.在电脑上安装RS485通信软件,选择合适的版本。
2.打开软件并进行相应的设置,如选择通信接口、波特率等。
3. 进行通信测试1.打开通信软件,建立与RS485通信模块的连接。
2.输入命令,发送读取电表数据的请求。
3.接收和解析返回的数据,得到电表的相关参数,如电量、电压等。
三、实验结果通过实验,我们成功使用了485通信方式抄读单相电表的数据,并获得了正确的结果。
实验结果如下:1.电量:100 kWh2.电压:220 V3.电流:5 A4.功率因素:0.95四、实验分析根据实验结果,我们可以得到以下结论:1.485通信方式可以方便地抄读单相电表数据,无需人工干预,提高了效率。
2.485通信方式具有较高的可靠性和稳定性,可以保证数据传输的准确性。
3.使用485通信方式抄读电表数据可以实现远程监控和管理,便于维护和操作。
五、实验总结本实验通过使用485通信方式抄读单相电表数据,了解了其原理、使用方法和优势。
实验结果表明,485通信方式具有高效、可靠和稳定的特点,适用于电表数据的远程抄读和管理。
在实际应用中,我们可以利用485通信技术实现智能电网、智能家居等领域的发展。
同时,还可以进一步研究和改进485通信技术,提高其性能和应用范围。
参考文献1.XXX, XXXX. XXXXXX. XXXX.2.XXXX, XXX. XXXXXX. XXXX.。
RS485组网通信实验

实验三十 RS485组网通信实验一、实验目的1、学习RS485组网通信基本原理。
二、实验内容利用3块以上MSP430单片机开发模块实现RS485组网通信,在主机模块上通过液晶屏显示各节点采集的片内温度,同时通过上位机的串口调试助手进行同步显示。
三、实验仪器传感器检测技术综合实验台、MSP430单片机开发模块(3块以上)、显示与键盘模块(3块以上)、MSP430仿真器、A+B型USB连接线、杜邦线、导线。
四、实验原理RS485采用差分信号负逻辑,+2V~+6V表示逻辑0,-6V~-2V表示逻辑1,RS485接口采用差分方式传输信号。
RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,两线制可以构成总线式拓扑结构,在同一总线上可以挂接32个节点,RS485通信网络中通常采用主从式通信方式(如图30-1所示),机一个主机带多个从机。
一般情况下,连接RS485通信链路使用一对双绞线将各个接口的A、B端分别连接,严格来说还应该将信号地连接在一起。
RS485总线通信距离理论值为1200m,实际应用还受通信环境的影响,RS485在传输过程中可以采用增加中继的方法对信号进行放大,最多可以加8个中继。
图30-1 主从式通信结构图五、注意事项1、实验操作中不要带电插拔导线,熟悉原理后,按照接线示意图接线,检查无误后,方可打开电源进行实验。
2、实验中严禁将5V信号线与MSP430单片机IO口直接连接3、严禁电源对地短路,模块间共地。
4、从机地址为2~30,同一个网络中从机的地址不能相同。
六、实验步骤1、用导线将主台体上的+15V、GND对应连接到显示与键盘模块,+5V、GND连接到MSP430单片机开发模块(连线之前确保电源开关处于关闭状态)。
2、按照图30-2将显示与键盘模块与MSP430单片机开发模块相连。
图30-2 连线示意图3、选取其中一个MSP430单片机开发模块作为主机,使用串口线将COM3与PC机的串口相连,并连接MSP430仿真器。
RS485通信原理图及程序实例详解

RS485通信原理图及程序实例详解RS232 标准是诞⽣于 RS485 之前的,但是 RS232 有⼏处不⾜的地⽅:接⼝的信号电平值较⾼,达到⼗⼏ V,使⽤不当容易损坏接⼝芯⽚,电平标准也与TTL 电平不兼容。
传输速率有局限,不可以过⾼,⼀般到⼀两百千⽐特每秒(Kb/s)就到极限了。
接⼝使⽤信号线和 GND 与其它设备形成共地模式的通信,这种共地模式传输容易产⽣⼲扰,并且抗⼲扰性能也⽐较弱。
传输距离有限,最多只能通信⼏⼗⽶。
通信的时候只能两点之间进⾏通信,不能够实现多机联⽹通信。
针对 RS232 接⼝的不⾜,就不断出现了⼀些新的接⼝标准,RS485 就是其中之⼀,它具备以下的特点:采⽤差分信号。
我们在讲 A/D 的时候,讲过差分信号输⼊的概念,同时也介绍了差分输⼊的好处,最⼤的优势是可以抑制共模⼲扰。
尤其当⼯业现场环境⽐较复杂,⼲扰⽐较多时,采⽤差分⽅式可以有效的提⾼通信可靠性。
RS485 采⽤两根通信线,通常⽤ A 和 B 或者 D+和D-来表⽰。
逻辑“1”以两线之间的电压差为+(0.2~6)V 表⽰,逻辑“0”以两线间的电压差为-(0.2~6)V 来表⽰,是⼀种典型的差分通信。
RS485 通信速率快,最⼤传输速度可以达到 10Mb/s 以上。
RS485 内部的物理结构,采⽤的是平衡驱动器和差分接收器的组合,抗⼲扰能⼒也⼤⼤增加。
传输距离最远可以达到 1200 ⽶左右,但是它的传输速率和传输距离是成反⽐的,只有在 100Kb/s 以下的传输速度,才能达到最⼤的通信距离,如果需要传输更远距离可以使⽤中继。
可以在总线上进⾏联⽹实现多机通信,总线上允许挂多个收发器,从现有的 RS485芯⽚来看,有可以挂 32、64、128、256 等不同个设备的驱动器。
RS485 的接⼝⾮常简单,与 RS232 所使⽤的 MAX232 是类似的,只需要⼀个 RS485转换器,就可以直接与单⽚机的 UART 串⼝连接起来,并且使⽤完全相同的异步串⾏通信协议。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
普中STM32开发板带您进入ARM世界
3.编写RS485通信控制程序
本章所要实现的功能是:通过STM32F1的串口2将PC机发送过来的数据 原封不动的返回给PC机串口,同时D1指示灯不断闪烁,提示系统正常运 行。程序框架如下: (1)初始化串口2,并使能串口接收中断等 (2)编写串口2中断函数(将接收到的数据返回出去) (3)编写主函数
普中STM32开发板带您进入ARM世界
RS485 推荐使用在点对点,线型,总线型网络中,不能使用在星型和 环型网络。理想情况下 RS485需要 2 个终端匹配电阻,其阻值要求等于 传输电缆的特性阻抗(一般为 120Ω )。没有特性阻抗的话,当所有的 设备都静止或者没有能量的时候就会产生噪声,而且线移需要双端的 电压差。没有接电阻的话,会使得较快速的发送端产生多个数据信号的 边缘,导致数据传输出错。
普中STM32开发板带您进入ARM世界
RS485的特点: (1)接口电平低,不易损坏芯片。 RS485 的电气特性:逻辑“ 1”以 两线间的电压差为+(2~6)V表示;逻辑“ 0”以两线间的电压差为(2~6)V 表示。接口信号电平比 RS232 降低了,不易损坏接口电路的芯 片,且该电平与 TTL 电平兼容,可方便与 TTL 电路连接。 (2)传输速率高。10 米时,RS485 的数据最高传输速率可达 35Mbps, 在 1200m 时,传输速度可达 100Kbps。 (3)抗干扰能力强。 RS485 接口是采用平衡驱动器和差分接收器的组 合,抗共模干扰能力增强,即抗噪声干扰性好。 (4)传输距离远,支持节点多。RS485 总线最长可以传输 1200m 以上 (速率≤100Kbps)一般最大支持 32 个节点,如果使用特制的 485 芯 片,可以达到 128 个或者 256 个节点,最大的可以支持到 400 个节点 。
普中STM32开发板带您进入ARM世界
RS485推荐的连接方式如图
普中STM32开发板带您进入ARM世界
我们开发板采用 SP3485 作为收发器,该芯片支持 3.3V 供电,最大 传输速度可达 10Mbps,支持多达 32 个节点,并且有输出短路保护。该 芯片的框图如图
普中STM32开发板带您进入ARM世界
RS232/RS485转换器如图
普中STM32开发板带您进入ARM世界
2.硬件电路
本实验使用到硬件资源如下: (1)D1指示灯 (2)串口2 (3)RS485收发器:SP3485
D1指示灯电路在前面章节都介绍过,这里就不多说,下面我们来看下 开发板上RS485模块电路,如图。
ห้องสมุดไป่ตู้
普中STM32开发板带您进入ARM世界
普中STM32开发板带您进入ARM世界
RS485通信实验
普中STM32开发板带您进入ARM世界
本讲主要内容
1.RS485通信介绍 2.硬件电路 3.编写RS485通信控制程序
普中STM32开发板带您进入ARM世界
1.RS485通信介绍
典型的串口通信标准有RS232和RS485,RS232是全双工点对点的通信 ,而RS485是半双工通信(2线制),可以一点对多点进行组网,而且 RS485是用缆线两端的电压差值来表示传递信号,这与RS232电气特性大 不一样。RS485 仅仅规定了接受端和发送端的电气特性,并没有规定或 推荐任何数据协议,因此RS485的协议层可以和RS232一样。