RS485实验指导书
实验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实验

基于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
新能源汽车实训指导书(试验台)

实验实训2:纯电动汽车实验台目录实验一:电池包显示屏Rs485-线路实验二:电池包显示屏12V+线路实验三:交流控制器20号线路实验四:电子油门2号线路实验五:电子油门4号线路实验六:电子油门1号线路实验七:驱动电机编码器电源+控制线实验八:驱动电机编码器B信号线路实验九:真空助力泵供电正极线路实验十:放电继电器1控制线纯电动汽车实验工作台实验操作实验准备1.万用表2.故障设置设备为我公司提供(使用见说明书)3.示波器4.设备已充足电量并能正常使用实验内容实验一:电池包显示屏Rs485-线路一.实验目的了解Rs485线信息传输结构及工作状态二.故障设置打开点火开关,连接设故设备,将Rs485-线断开三.故障现象显示屏能正常显示但显示信息不变四.故障检测4.1用示波器连接检测Rs485-线的信号用示波器在BMS端测有信号在显示屏端测信号发现Rs485-从BMS出来是有波形,但在进显示器的端子时无信号,是此线路断路4.2关闭点火开关,用万用表检测其线路通断将万用表打到欧姆档发现其线路不通五.清除故障使用设故设备清除此线路的故障显示屏显示正常六.实验总结6.1此实验验证了Rs485传输是可以单线传输类似于CAN低速的传输结构6.2 此时这现象就是单线传输,一根传输线路不能正常传输显示信息,使显示变慢6.3 加强对信息网络传输知识的学习实验二:电池包显示屏12V+线路一. 实验目的了解显示屏的工作电源结构二. 故障设置打开点火开关连接设故设备,将电池包显示屏12V+线路断开三 . 故障现象显示屏熄灭,不显示四. 故障检测4.1 检测BMS提供电源万用表打到直流20V档测量结果有电出来4.2检测显示屏输入端电源发现其没有电,说明线路有问题测量显示屏输入端正极和搭铁发现是电源正极线路不通五. 清除故障使用设故设备清除此线路的故障显示屏显示正常六. 实验总结6.1 此实验是因为电源没有到显示屏导致显示屏不工作6.2任何设备不工作我们先检测其供电线路是否正常实验三:交流控制器20号线路一.实验目的了解交流控制器到仪表显示传输线路的结构二.故障设置打开点火开关连接设故设备,将交流控制器20号线断开三.故障现象加油门,但仪表指针不动四.故障检测4.1用示波器测交流控制器20号线路波形发现20号线有波形在仪表端测没信号,说明此线断路五.清除故障使用设故设备清除此线路的故障仪表指针指示正常六.实验总结6.1此实验验证了CAN高速传输是不可以单线传输,少了一根线信息就无法显示6.2 CAN高速传输属于动力线传输结构,少了一根就不行6.3 加强对信息网络传输知识的学习实验四:电子油门2号线路一.实验目的了解电子油门供电线路的二.故障设置打开点火开关连接设故设备,将电子油门2号线路断开三.故障现象加油门电机没反应,仪表指针不动四.故障检测4.1将万用表打到20V电压档量油门踏板2和1号线为11.6V量控制器3号和油门踏板1号线电压为12.31V量控制器3号和量控制器6号线电压为12.31V将万用表打到欧姆档说明电子油门2号线与控制器3号线断开五.清除故障使用设故设备清除此线路的故障加油门电机转动,仪表指针转动六.实验总结电子油门是需要提供电源工作才能提供信号,2号线是供电线路,断开电子油门就不工作实验五:电子油门4号线路一.实验目的了解电子油门信号线路二.故障设置打开点火开关连接设故设备,将电子油门4号线路断开三.故障现象加油门电机没反应,仪表指针不动四.故障检测4.1打开点火开关,将万用表打到20V电压档测电子油门3和4号线结果其电压能随着油门踏板的位置变化而变化测电子油门3号线和控制器5号线发现随着油门踏板位置变化没电压显示将万用表打到欧姆档,测其线路不通说明电子油门3号线和控制器5号线之间断路五.清除故障使用设故设备清除此线路的故障加油门电机转动,仪表指针转动六.实验总结6.1 油门踏板位置的变化采用滑动变阻方式来检测,其里面的滑动变阻随着位置变化其阻值发生变化,在C和D两端加上电压,其P端分到的电压相应发生变化,控制器接收其信号来判断驾驶员的驾驶需求,作用在驱动电机的控制上。
基于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.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一实验板点对点通信
【实验目的】
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的串口。
内部集成max810专用复位电路,2路PWM,8路高速10位A/D转换。
本实验中,当外部信号输入时,经过A/D转换,再由8051处理后输出,其中p3.0为输入,p3.1为数据输出,也可经其他I/O口输入输出,以达到数据显示等其他功能。
另外,在实验中stc12c5a60s2还连接一些其他外部电路,如时钟信号电路,复位电路,地址选通
电路,以及数据显示电路等。
1.3 实验板资源介绍
1:四针电源插座,可以直接用电脑电源中的5V电源接口直插。
注:四个针从外到里(从左至右)分别为+5V、GND、GND、无用。
2:通用电源接口。
注:以上两个电源接口任选其一。
3:两个DB9,485通信接口
4:电源开关,拨下为关,拨上为开,也可以通过右边的红色电源灯判断。
5:电位器,可用来调节液晶对比度。
6:电源灯
7:232—485选择插针
8:485—MVB选择插针
9:端接电阻
10:端接电阻引入插针
11:LCD液晶
12:DB9,232通信接口
13:STC12C5A60S2芯片
14:两个LED灯
15:MVB引入插针
16:两个按键
17:第二路串口引入插针
18:电位器,用于AD采用的输入
19:复位按键
20:LED灯
21:多余的IO口引出插针
22:六位拨码开关,实际只有前五位有效(从左至右,往下拨置地,往上拨至高)
【实验内容】
1. 查阅MCU芯片手册,理解电路原理。
2. 制作串口RS232通信线。
3. 下载例程进行测试。
【实验步骤】
1. 在电脑中安装keil开发环境。
2. 制作串口RS232通信线
3. 编写通信程序,实现以下功能。
A 数据采样-----判断是否有数据输入(输入为模拟量)
B 模数转换-----对输入数据进行A/D转换,供芯片处理。
C 请求发送数据程序-----发出数据请求信号
D 响应程序-----针对请求信号,做出相应回应。
E 液晶显示程序-----对收到的信号进行数据处理,以十进制数进行显示。
按设计电路连接本组硬件电路板A与电脑,上电。
进入程序编译界面,调试程序。
调节输入电压,观察液晶显示值与实际值是否一致。
若不一致,修改程序,直至液晶屏正确显示电位器电压。
4. 关闭电源。
取另外一组的硬件电路板B。
用串行通信线将硬件电路板A与硬件电路
板B相连,打开电源,使A、B电路板工作。
5. 运行程序,调整电位器输入电压,观察A、B电路板的液晶显示结果与实际是否一
致。
多次调节输入电压,观察并记录结果。
实验二通信介质对数据通信有效性的影响
任务1:终端电阻的作用
【实验目的】
1. 掌握终端电阻的计算方法
2. 了解终端电阻的作用。
【实验环境】
PC机一台,实验板两块,导线若干
【实验内容】
检测有无终端电阻两种情况下的通信数据波形
【实验步骤】
1. 按电路原理图使用双绞线连接两块电路板。
2. 在两个终端节点上,即最近端和最远端,各接入一个终端电阻(阻值为50欧)。
3. 启动其中的一块电路板,调节所连电位器并运行显示程序,向另一块电路板发送结
果数据使其显示。
4. 使用示波器测量收数据端信号波形,分析数据通信的有效性指标(频带利用率,协
议效率和通信效率)。
5. 将步骤(2)中的终端电阻换为120欧和240欧及不接终端电阻重复试验,分析记
录实验结果。
6. 综合四种情况,分析终端电阻的作用及对数据通信有效性的影响,确定其取值原则
任务2:通信介质对通信有效性的影响
【实验目的】
3. 熟悉常用的485通信介质
4. 掌握不同介质对485通信有效的影响
【实验环境】
PC机一台,实验板两块,信号发生器一台,示波器一台,不同类型的导线若干
【实验重点及难点】
编写485通信程序,制作不同类型的通信线
【实验内容】
1. 长度:使用1米、3米、5米长5类双绞线连接两块电路板,使用示波器
测量收数据端信号波形,分析数据通信的有效性指标。
2. 线径:使用3类、5类双绞线连接两块电路板,使用示波器测量收数据
端信号波形,分析数据通信的有效性指标。
3. 列表对比实验结果。
任务3:信号类型,波特率,及介质带宽对通信有效性的影响
【实验目的】
1. 熟悉常用的485通信介质
2. 掌握不同介质对485通信有效的影响
【实验环境】
PC机一台,实验板两块,信号发生器一台,示波器一台
【实验重点及难点】
1. 深刻理解介质带宽的概念
2. RS485通信程序的编写
【实验内容】
1. 信号类型的改变:使板子发出三角波,方波,矩形波,测量接收侧的波形。
2. 在程序中改变通信的波特率,测量接收端的波形
3. 选用不同带宽的通信介质,进行对比测试。
【实验报告要求】
1. 记录示波器波形。
2. 列表比较在不同情况下,对通信情况的影响。