第25讲 485通信实验

合集下载

实验5——485总线及Modbus通讯协议实验

实验5——485总线及Modbus通讯协议实验

课程名称:嵌入式软件技术开课机房:11号机房2012年4月24日星期二8:10~11:35一、实验任务与实验目的二、报告内容Freemodbus是modbus协议在嵌入式处理器上的实现。

包括AVR,PIC,WIN32等等平台。

它是开放性源代码,可用于商业目的。

它实现了Modbus RTU/ASCII、TCP三种传输方式,当前版本是1.5,支持以下功能:∙读输入寄存器(0x04)∙读保持寄存器(0x03)∙写单个寄存器(0x06)∙写多个寄存器(0x10)∙读/写多个寄存器(0x17)∙读取线圈状态(0x01)∙写单个线圈(0x05)∙写多个线圈(0x0F)∙读输入状态(0x02)∙报告从机标识(0x11)本实现基于最新的标准并且与标准完全兼容。

接收和传输Modbus RTU/ASCII数据帧是通过一个由硬件提取层的调用来驱动状态机实现的。

这就使得协议非常容易移植到其他的平台之上。

当接收一个完整的数据帧后,该数据帧被传入Modbus应用层,数据帧的内容在该层内得到解析。

为方便地增加新的Modbus功能,Freemodbus在应用层提供了钩子函数Hooks。

如果用到了Modbus TCP协议,那么当准备处理一个新数据帧的时候,移植层就必须首先向协议层发送一个事件标志。

然后,协议栈调用一个返回值为接收到的Modbus TCP数据帧的函数,并且开始处理这个数据帧。

如果数据有效,则响应的Modbus反馈帧将提供给移植层生成反馈帧。

最后,该反馈帧被发送到客户端。

二、实现FreeModbus协议所需要的软/硬件需求Modbus协议对硬件的需求非常少——基本上任何具有串行接口,并且有一些能够容纳modbus 数据帧的RAM的微控制器都足够了。

∙一个异步串行接口,能够支持接收缓冲区满和发送缓存区空中断。

∙一个能够产生RTU传输所需要的t3.5 字符超时定时器的时钟。

对于软件部分,仅仅需要一个简单的事件队列。

The STR71X/FreeRTOS 移植使用FreeRTOS 队列作为事件队列来减少Modbus 任务所需要的时间。

实验五 485实验

实验五 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通信

实验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通讯实验

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总线通信实验

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通信协议设计与分析二、实验目的及要求基于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通信方式抄读单相表数据的方法和优势。

通过实验我们可以了解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组网通信实验

实验三十 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通信原理图及程序实例详解

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 串⼝连接起来,并且使⽤完全相同的异步串⾏通信协议。

RS485实验一报告模板

RS485实验一报告模板

实验一基于RS485和牛顿模块的A/D、D/A实验一、实验目的和要求(1)熟悉RS485总线与牛顿模块的结构组成,了解其工作过程,认识其结构形式。

(2)熟悉牛顿模块的基本工作原理。

(3)掌握应用RS485和牛顿模块进行电压输出和电压采集的方法。

二、主要仪器设备计算机、R-8017、R-8024、R-8043D、R-8053、RS232转RS485模块、24V稳压源三、实验内容和原理(1)RS485网络分析RS485采用差分信号负逻辑,+2V~+6V表示“0”,- 6V~- 2V表示“1”。

RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。

在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。

很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。

而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患,这有二个原因:1>.共模干扰问题:RS-485接口采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了。

但人们往往忽视了收发器有一定的共模电压范围,RS-485收发器共模电压范围为-7~+12V,只有满足上述条件,整个网络才能正常工作。

当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。

2>.EMI问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。

由于PC机默认的只带有RS232接口,有两种方法可以得到PC上位机的RS485电路:1>.通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号,对于情况比较复杂的工业环境最好是选用防浪涌同时带隔离栅的产品。

实验四 485与PC通信实验

实验四 485与PC通信实验

测控网络实验指导实验四485与PC通信实验一、实验目的(1)理解RS-485测控网络的原理PC与智能设备通讯多借助RS232、RS485RS232、RS485只能代表通讯的物理介质层和链路层,如果要实现数据的双向访问,就必须自己编写通讯应用程序,但这种程序多数都不能符合ISO/OSI的规范,只能实现较单一的功能,适用于单一设备类型,程序不具备通用性。

在RS232或RS485设备联成的设备网中,如果设备数量超过2台,就必须使用RS485做通讯介质,RS485网的设备间要想相互通信息只有通过“主(Master)”设备中转才能实现,这个主设备通常是PC,而这种设备网中只允许存在一个主设备,其余全部是"从(Slave)"设备。

而现场总线技术是以ISO/OSI模型为基础的,具有完整的软件支持系统,能够解决总线控制、冲突检测、链路维护等问题。

(2)掌握利用单片机的TXD(Transmit Data 串行口发送数据输入端)、RXD (Receive Data串行口接收数据输入端)口,学习RS-485差分串行接口的使用。

(3)学习编写RS-485通信程序二、实验要求深刻理解MAX487芯片的作用,学会在单片机的串行口上使用MAX485是用于RS-485与RS-422通信的低功耗收发器采用单一电源+5 V工作,额定电流为300 μA,采用半双工通讯方式。

它完成将TTL电平转换为RS-485电平的功能。

MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。

RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。

RS485实验指导书

RS485实验指导书

实验一实验板点对点通信【实验目的】1. 建立双机通信的概念2. 掌握单片机串行口通信的编程和调试方法。

3. 掌握异步串行通信的数据格式及数据协议设定。

【实验环境】PC机一台,keil开发环境一套,RS232通信线【实验重点及难点】串行口通信的程序的设计,以及硬件的连接数据通信的协议等。

【实验原理介绍】1.1 程序下载方式介绍1.1.1 RS232与上位机通信下载程序由于要从上位机中下载程序到单片机中,所以需要建立他们之间的通信线路。

本实验采用MAX232芯片,max232是一种把电脑的串行口rs232信号电平(-10 ,+10v)转换为单片机所用到的TTL信号点平(0 ,+5)的芯片,下面介绍一下max232引脚图,看下面的图。

图3.1 max232引脚图本实验中采用11、12、13、14号管脚作输入输出,其中13、14与DB9连接,11、12与单片机连接。

1.1.2 485通信485通信的过程如下:从DB9接收数据,经过max485芯片实现电平转换,然后max485芯片经过高速光耦与单片机通信,将数据送入单片机中进行处理;处理完成后将数据返回至max485,再经DB9输出。

如此就可实现两单片机之间的通信或单片机与上位机间的通信。

下面介绍一下max485芯片接线方法,如下图示:图2 max485接线图其中1、4为输入输出管脚,经光耦与单片机连接,2、3为使能端,6、7为与外部通信接口。

1.2 MCU功能介绍本实验中选择stc12c5a60s2系列单片机,其管脚图如下:图3 tc12c5a60s2单片机管脚图stc12c5a60s2系列单片机是单时钟的单片机,增强型8051内核,速度比普通8051快8~12倍,宽电压:5.5~3.5V,2.2~3.8V,低功耗设计:空闲模式,掉电模式,工作频率:0~35MHz.时钟:外部晶体或内部RC振荡器可选,在ISP下载编程用户程序时设置。

全双工异步串行口,兼容8051的串口。

基于rs485的串口通信编程实验心得

基于rs485的串口通信编程实验心得

基于RS485的串口通信编程实验心得一、实验背景1.1 RS485串口通信RS485是一种应用广泛的串行通信标准,它可以在远距离、高噪声环境下传输数据。

RS485串口通信使用差分信号传输数据,可以实现多机通信和多点通信,适用于工业控制领域和数据采集系统。

1.2 串口通信编程串口通信编程是利用计算机与外部设备进行数据交换的一种方式。

在实际应用中,我们可以通过串口与传感器、执行器等设备进行数据交互,实现对外部设备的监控和控制。

二、实验过程2.1 实验准备在进行RS485串口通信编程实验之前,我们需要准备一台计算机、RS485串口转换器、外部设备(如温度传感器、风速传感器等)以及相关的编程软件(如C、C++、Python等)。

2.2 硬件连接我们需要将RS485串口转换器与计算机连接,并将外部设备与RS485串口转换器连接。

在硬件连接上,需要注意信号线的接线方式,以及串口转换器的设置。

2.3 编程实现根据实验要求,我们可以选择合适的编程语言进行串口通信程序的编写。

在编程实现中,需要注意串口的初始化、数据的发送和接收、错误处理等方面的问题。

还需要考虑数据的解析和处理方法,保证数据的准确性和完整性。

2.4 调试测试编写完成串口通信程序之后,需要进行调试测试,确保程序能够正常运行。

在测试过程中,我们可以通过监控数据的发送和接收情况,以及外部设备的响应情况,来验证程序的正确性。

三、实验心得3.1 技术难点在进行RS485串口通信编程实验的过程中,我们遇到了一些技术难点。

在设置串口参数时,需要对波特率、数据位、停止位、校验位等参数进行正确的配置,以保证数据的准确传输;另外,在数据的解析和处理过程中,也需要针对不同的数据格式进行相应的处理,确保数据的正确解析。

3.2 解决方法针对技术难点,我们通过查阅资料、交流专家以及不断的实践和调试,最终找到了相应的解决方法。

在串口参数设置方面,我们可以参考数据手册或相关资料,了解串口参数的含义和设置方法;在数据解析和处理方面,我们可以根据数据格式和协议,编写相应的解析程序,以实现数据的准确解析和处理。

39. RS485通信实验

39. RS485通信实验
RS232/RS485转换器如图
普中STM32开发板带您进入ARM世界
2.硬件电路
本实验使用到硬件资源如下: (1)D1指示灯 (2)串口2 (3)RS485收发器:SP3485
D1指示灯电路在前面章节都介绍过,这里就不多说,下面我们来看下 开发板上RS485模块电路,如图。
普中STM32开发板带您进入ARM世界
普中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 个节点 。
普中S普中STM32开发板带您进入ARM世界
我们开发板采用 SP3485 作为收发器,该芯片支持 3.3V 供电,最大 传输速度可达 10Mbps,支持多达 32 个节点,并且有输出短路保护。该 芯片的框图如图
普中STM32开发板带您进入ARM世界
普中STM32开发板带您进入ARM世界
3.编写RS485通信控制程序

485通信讲解(附案例)解析

485通信讲解(附案例)解析
控制/状态字(2个字节,16BIT)
数据帧格式示意图
起始字节 (字节)
从机地址 (字节)
功能码操作
命令/响应 (字节)
功能码号 (字节)
功能码设 定/实际值
(字)
控制/状 态字
(字)
主设定/ 实际值
异或校验
(字) (字节)
1514 13 12 1110 9 8 7 6 5 4 3 2 1 0
RS485通讯协议
67
起 始 字 节
从 机 地 址
控 制 字
控 制 字
运行 数据 设定
运行 数据 设定
异 或 校 验
字节定义 头 地址 控制区 数据区 校验
变频器至控制器:
发送顺序 1 2 3 4 5 (字节)
67
起 始 字 节
从 机 地 址
状 态 字
状 态 字
实际 运行 数据
实际 运行 数据
异 或 校 验
字节定义 头 地址 状态区 数据区 校验
故障含义 无故障 变频器加速运行过电流(E001) 变频器减速运行过电流(E002) 变频器恒速运行过电流(E003) 变频器加速运行过电压(E004) 变频器减速运行过电压(E005) 变频器恒速运行过电压(E006) 变频器控制过电压(E007) 输入侧缺相(E008) 输出侧缺相(E009) 功率模块故障(E010) 功率模块散热器过热(E011) 整流桥散热器过热(E012) 变频器过载(E013) 电机过载(E014) 外部设备故障(E015)
帧头 帧头:一个字节 帧头是主机发布命令或从机回应主机响应的第一个字节,不论是主机还是从 机,都在收到该字节后开始记录有效数据。 为确保能准确识别报文头,要求两个通信帧之间保持2个字节传输时间以上的 总线空闲时间。

RS-485差分串行通信实验解析

RS-485差分串行通信实验解析

实验十九 RS-485 差分串行通信实验一、实验目的在一个 RS-232 通信实验的根底上 ,利用单片机的 TXD 、RXD 口 ,学习 RS-485 差分串行接口的使用。

二、实验要求深刻理解 MAX485(75176 芯片的作用 ,学会在单片机的串行口上使用 RS-485(参见图 19-1。

+6V+2V0V-2V-6V图 19-1 RS-485传输方式三、实验仪器和设备1、计算机一台2、D P-51P R O单片机综合仿真试验仪二台3、120Ω电阻二只四、实验内容参考上一个 RS-232 通信实验 ,编写一段程序 ,利用单片机的串行口发送0x55。

再编写一段程序 ,接收 RS-485上传输的数据。

五、实验方法和步骤1、使用导线连接两台 DP-51PRO 单片机综合仿真试验仪 D6 区的 J6 接口 (分别 A 与 A 相连 ,B 与 B 相连。

另外在 D6 区的 R74 上插上 120Ω电阻 ,短接 JP5。

如图19-2 所示。

J6图 19-2 RS-485串行口电路图2、使用导线连接 D6 区 J40 接口的 RE、DE 到 A2 区 J58 的 T0、 T1,连接D6 区 J40接口的 RO、DI 到 A2 区 J58 的 RXD 、TXD(RO~RXD 、DI~TXD 。

3、将 D1 区的 J52 接口和 A2 区的 J62 接口一一对应相连。

4、编写一段程序 ,利用单片机的串行口发送0x55.波特率为 9600bps。

(该程序不能在 DP-51PRO 上进行仿真 ,所以只能下载。

5、编写一段程序 ,利用单片机的串行口接收RS-485上传输数据。

波特率为9600bps。

(该程序不能在DP-51PRO 上进行仿真 ,所以只能下载。

6、两个程序分别在两台机上运行,观察接收的数据和D1 区 8 个 LED 灯的状态。

六、实验预习要求认真阅读 D6 区 RS-485 实验区内容和 MAX485 或 75176 芯片的数据手册 ,理解硬件结构 ;还可以先把程序编好 ,然后在 Keil C51 环境下进行软件仿真。

485通信讲解(附案例)

485通信讲解(附案例)

帧头 帧头:一个字节 帧头是主机发布命令或从机回应主机响应的第一个字节,不论是主机还是从 机,都在收到该字节后开始记录有效数据。 为确保能准确识别报文头,要求两个通信帧之间保持2个字节传输时间以上的总 线空闲时间。
数据帧格式示意图
起始字节 (字节)
从机地址 (字节)
用户数据
异或校验 (字节)
76543210
速度
0
未到达设定频率
/速度
RS485通讯协议
响应字位定义
控制字 (位)

bit11
1
含义 变频器运行状态
功能描述
0
变频器停止状态
bit15
1
变频器接受出错
0
变频器接收正确 本位表示来自控制器的通讯帧经
校验出错,控制器应再次发送该
bit0
预留
帧。
bit7~8
预留
bit12~1 4,
预留
RS485通讯协议
1、以50Hz运行2#变频器。(此例需要将变频器频率设定成F0.03=6)
功能码号 功能码组号 命 令 /响 应 字 ( 码 )
RS485通讯协议
命令字(码)
命令字(码)
功能描述
0 无任务 1 请求读取功能码参数数据
2 请求更改功能码参数数据 14 请求更改功能码参数并存储至EEPROM
3~13,15 预留
响应字(码)
响应字(码)
内容描述
0 无响应
1 功能码参数操作正确(读取或更改)
先发高字节,再发低字节的原则
数据帧格式示意图
起始字节 (字节)
从机地址 (字节)
功能码操作 命 令 /响 应 (字节)
功能码号 (字节)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7.1RS-485总线收发实验7.1.1485简介485(一般称作RS485/EIA-485)是隶属于OSI(OSI:开放系统互连基本参考模型。

开放,是指非垄断的。

系统是指现实的系统中与互联有关的各部分。

)模型物理层的电气特性规定为2线,半双工,多点通信的标准。

它的电气特性和RS-232大不一样。

用缆线两端的电压差值来表示传递信号。

RS485仅仅规定了接受端和发送端的电气特性。

它没有规定或推荐任何数据协议。

RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。

RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。

为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。

RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A 标准。

为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。

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个节点。

7.1.2RS485的通信概念RS-485 是一个电气接口规范它只规定了平衡驱动器和接收器的电特性而没有规定接插件传输电缆和通信协议。

RS-485建议性标准作为一种多点差分数据传输的电气规范,现已成为业界应用最为广泛的标准通信接口之一,这种通信接口允许在简单的一对双绞线上进行多点双向通信,它所具有的噪声抑制能力、数据传输速率、电缆长度及可靠性是其他标准无法比拟的,因此许多不同领域都采用RS-485作为数据传输链路,它是一种极为经济并具有相当高的噪声抑制、传输速率、传输距离和宽共模范围的通信平台。

RS-485是一种在工业上作为数据交换的手段而广泛使用的串行通信方式,数据信号采用差分传输方式,也称作平衡传输,因此具有较强的抗干扰能力。

它使用一对双绞线,将其中一线定义为A,另一线定义为B。

如下图所示:通常情况下, RS-485的信号在传送出去之前会先分解成正负对称的两条线路(即我们常说的A 、B 信号线),当到达接收端后,再将信号相减还原成原来的信号。

发送驱动器A 、B 之间的正电平在+2~+6V ,是一个逻辑状态;负电平在-2~-6V ,是另一个逻辑状态;另有一个信号地C ,在RS-485中还有一“使能”端。

“使能”端是用于控制发送驱动器与传输线的切断与连接。

当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。

接收器也与发送端相对的电平逻辑规定,收、发端通过平衡双绞线将AA 与BB 对应相连,当在接收端AB 之间(DT)=(D+) - (D-)有大于+200mV 的电平时,输出正逻辑电平,小于-200mV 时,输出负逻辑电平。

接收器接收平衡线上的电平范围通常在200mV 至6V 之间。

号在传送出去之前会先分解成正负对称的两条线路(即我们常说的A 、B 信再将信号相减还原成原来的信号。

如果将原来的信号标注为(DT),(D+)和(D-),则原始信号与分解后的信号在由传输端传送出去- (D-) 也按上式的关系将信号还原成原来的样子。

如果此线D+)+Noise 和(D-)+Noise, 如果接收端接收此信号,它必须按照一定的方式将其合成,合成的方程式如下:(DT)=[(D+Noise)] - [(D-)+ Noise]=(D+) - (D-)RS-485的信号线),当到达接收端后,而被分解后的信号分别标注为时的运算关系如下:(DT)=(D+)同样地,接收端在接收到信号后,路受到干扰时,在两条传输线上的信号会分别成为( 此方程与前一方程式的结果是一样的,干扰信号被抵消。

因此在RS-485网络传输中要求两根信号线缆必须进行对绞,进一步降低信号的共模干扰。

7.1.3 RS485的连接方式在每一个分支中采用一条双绞线电缆作总线,将各个通讯设备手拉手串接起来,到每个通讯设备的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。

如图3所示为实际应用中常见的一些错误连接方式(a ,b ,c )和正确的连接方式f )。

a 、b 、c 这三种网络连接尽管不正确,在短距离、低速率仍可能正常工作,从总线(d ,e ,但随着通信距离的延长或通信速率的提高,其不良影响会越来越严重,主要原因是信号在各支路末端反号质量下降。

7.刻都会感受到一个瞬态阻抗,这个阻抗可对于信号来说,它不会区分到底是什么,那么他就会正常向前传播,(可能是中途遇到的电阻,电容,电感,过孔,PCB 转角,接插件),信号都会发生反射。

射后与原信号叠加,会造成信1.4 RS485通信电缆中的信号反射什么信号反射:信号沿传输线向前传播时,每时每能是传输线本身的,也可能是中途或末端其他元件的。

信号所感受到的只有阻抗。

如果信号感受到的阻抗是恒定的,只要感受到的阻抗发生变化,不论是什么引起的反射的影响: 如果负载阻抗小于传输线阻抗,反射电压为负,反之,如果负载阻抗大于传输线阻抗,反射电压为正。

实际问题中,PCB 上传输线不规则的几何形状,不正确的信号匹配,经过连接器的传输及电源平面不连续等因素均会导致反射情况发生,而表现出诸如过冲/下冲以及振荡等信号失真的现象。

注意总线特性阻抗的连续性,在阻抗不连续和阻抗不匹配就会发生信号的反射(如图1所示)下列几种情况易产生这种不连续性:总线的不同区段采用了不同电缆,或某一段总线上有过多收发器紧靠在一起安装,再者是过长的分支线引出到总线。

总之,应该提供一条单一、7.危及系统安全。

RS-485传输网络尤其是在工作环否则接口损坏率较高。

很线将各个接口的“A”、“B”端连接起来。

但却埋下了很大,支持多达32个节点,并且有输出短路保护。

该芯片的框图如下图所示:连续的信号通道作为总线。

消除这种反射的方法,就必须在电缆的末端跨接一个与电缆的特性阻抗同样大小的终端电阻,使电缆的阻抗连续。

由于信号在电缆上的传输是双向的,因此,在通讯电缆的另一端可跨接一个同样大小的终端电阻,如图2所示。

从理论上分析,在传输电缆的末端只要跨接了与电缆特性阻抗相匹配的终端电阻,就再也不会出现信号反射现象。

但是,在实现应用中,由于传输电缆的特性阻抗与通讯波特率等应用环境有关,特性阻抗不可能与终端电阻完全相等,因此或多或少的信号反射还会存在。

1.5 RS485的接地问题接地处理不当往往会导致电子系统不能稳定工作甚至的接地同样也是很重要的,因为接地系统不合理会影响整个网络的稳定性,境比较恶劣和传输距离较远的情况下,对于接地的要求更为严格,多情况下,连接RS-485通信链路时只是简单地用一对双绞而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,的隐患。

7.1.6 RS485的应用由于RS485具有传输距离远、传输速度快、支持节点多和抗干扰能力更强等特点,所以RS485有很广泛的应用。

SP3485芯片介绍STM32神舟IV 号开发板采用SP3485作为收发器,该芯片支持3.3V 供电,最大传输速度可达10Mbps¾A、B—— 485总线接口¾RO——接收输出端¾DI——发送数据收入端¾RE——接收使能信号(低电平有效)¾DE——发送使能信号(高电平有效)¾VCC、GND——电源与地/RE和DE管脚控制RS-485的收发使能控制。

在神舟IV号中,这两个管脚与处理器的PD7管脚连接,由PD7管脚控制神舟IV号STM32开发板的RS485作为发送端还是接收端。

查看《SP3485 RS-485收发器.pdf》可知,当PD7输出高电平,此时SP3485芯片的2脚(/RE),3脚(DE)都为高电平。

SP3485工作与发送模式。

逻辑关系如下表所示。

当PD7输出低电平,此时SP3485芯片的2脚(/RE),3脚(DE)都为低电平。

SP3485工作与接收模式。

逻辑关系如下表所示。

另外在RS-485总线网络中有个终端匹配电阻(神舟IV号开发板是原理图中的R43),终端匹配电阻主要作用是使总线的阻抗连续,减小信号的反射,提高信号的传输质量,一般RS485网络的终端匹配电路只需要在总线的最远端的节点并一个即可,其他接点不需要安装此匹配电阻。

在神舟IV号STM32开发板中,默认终端匹配电阻都是安装的(对应原理图的R43),请依据实际情况,选择安装或去掉此电阻。

7.1.7原理图的连接神舟IV号的开发板上有一个485接口。

我们通过SP3485芯片连接STM32的串口2,实现两个开发板之间的485通信。

板载的SP3485接口如图:可以看到,该芯片有8个管脚。

其中A、B为485总线接口。

485_TX、485_RX和485_DIR分别对应引脚PD5、PD6和PD7。

我们看一下这几个管脚:485_TX发送数据端,该引脚和串口2的发送端引脚是一样的。

485_RX是接收数据端,该引脚和串口2的接收引脚是一样的,通过JP4的跳冒选择是接收串口2接口来的数据还是485接口来的数据。

485_DIR对应的是PD7,当PD7输出低电平,此时SP3485芯片的2脚(/RE),3脚(DE)都为低电平。

SP3485工作与接收模式。

逻辑关系如下表所示。

当PD7输出高电平,此时SP3485芯片的2脚(/RE),3脚(DE)都为高电平。

SP3485工作与发送模式。

7.1.8软件设计我们从主程序开始分析。

在本实验中,使用到两个神舟IV 号开发板,一个设置为发送端,另一个设置为接收端。

程序运行以后,首先通过串口1打印提示信息,提示通过板上按键设置神舟IV 号为发送端或者接收端,设置完成后,发送端周期性的发送数据到RS-485网络上(神舟IV 号的RS485收发器与处理器的串口2连接),而接收端等待RS-485网络上的数据,并将接收到的完整数据通过串口1打印出来。

相关文档
最新文档