基于嵌入式uCOS的RS485总线通信实现

合集下载

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总线的测试系统的设计与实现

点 只通过 中断 接 收终端 机和 主节 点发 送 的数
据,不 做其 他 处理 。当从 节 点从 R S 4 8 5总 线
上 收 到 主 节 点 的 时 隙 配 置 指 令 后 ,解 析 时 隙 配 置 指 令 , 从 中获 取 与 当 前 节 点 号 相对 应 的 时 隙
1前 言
强大 的处 理器 ,频率最 高可 达 1 . 5 G Hz ,处理 速度完全满足通信要求 , 同时集成 Ll / L 2缓存,
率在 3 3 / 6 6 MHz还 有 其 他 资 源 这 里 不 再 赘 述 。 主 节 点 的 通 信 过 程 描 述 如 下 : 主 节 点 的 主控 板 通过 P C I 总 线 与 RS 4 8 5接 口 卡 相 连 ,
4 结 束 语
本文 深入 分析 了用 户 的测试环 境 以及 系 试系 统,主 节 点采用 RS 4 8 5总线 与各个 从 节 点相连,通过时钟信号计数的方法确定各个从
将数据发 向不 同的上位机监测系统 。 【关 键 词 】R S 4 8 5
P o w e r P C D S P
T D M A 组 网 方 式 总 线 3主节点设计
鉴于总线上数据传输量大 ,传输速率高 ,
主节 点主 控 板上采 用 飞思 卡尔 的 P o we r P C 架 构 的 处 理 器 MP C 8 5 4 8 E , 它 是 一 款 功 能 非 常
网 络 ,满 足 测 试 2 O个 节 点 的 需 求 。RS 4 8 5一
到 1 G,总 共 1 6 Mb y t C S的 8位 F l a s h存储 器,

送给终端机 ( 被 测 设 备 ) 。从 节 点通 过 上 升 沿 中 断 方 式计 数 自己 的 发送 时 刻 。

RS_485总线通信协议的分析和实现

RS_485总线通信协议的分析和实现
图 3为数据链路层协议的有限状态机模型. 图 4为该协议的状态转移图. 下面我们利用有限 状态机模型来分析上述协议 :每个协议机 (主机或 从机 )各有 2种状态 ———发送帧 0、发送帧 1;接收 帧 0、接收帧 1,信道有 4种状态 ———帧 0、帧 1从 主机到从机 、反方向的控制 ACK帧 、空信道 ,共有 16种状态. 其他的状态作为过度状态如 CRC码校 验和错误帧的到达图 3 未画出 ,因为它们不改变 状态. 每个状态由 3个字符 XYZ所标识. X对应从 机试图发送的帧 , Y对应主机希望收到的帧 ,而 Z 是对应信道的状态. 图 4给出 9种转换. 本协议初 始状态为 ( 000 ) ,既从机发送帧 0,主机希望收到 帧 0,而帧 0正在信道上. 在正常操作中 ,转换 1、 2、3和 4依次不断的重复发送帧 0或帧 1. 如果信 道丢失帧 0,则进行状态 ( 000 )到状态 ( 002)的转
[ 1 ] 阳宪惠. 现场总线技术及其应用 [M ]. 北京 : 清华大学出版 社 , 1999: 2562258.
[ 2 ] Jan Axelson. Designing RS2485 Circuits[ J ]. The Computer Ap2 p lications Journal , 1999 ( 107) : 20223.
集卡的核心元件是由 ZWORLD 公司生产 BL2000 对总线可靠性的影响包括噪音电平 、噪音频率.
单片机.
⑥测试对故障设备检测功能 ,它包括通信故
测试内容如下 :
障 、断电故障 、变送器故障 、电缆的短路和断路等.
①测试高地址位的采集卡总线获得情况 ,能
表 1为测试的主要结果 ,其中总线获得率是
1. 1 物理层协议
RS2485是由美国电子工业协会 ( E IA )制订并 发布的串口标准. 它是在 RS2422 基础上制定的 , 它允许多 个 发 送 器 和 接 收 器 连 接 到 同 一 条 总 线 上 ,且可以进行双向通信. 本系统网络拓扑结构为 总线型 ,总线采用 5类屏蔽双绞线 ,其特征阻抗为

RS485总线实现多机通信

RS485总线实现多机通信
处理接收字符 * * 发送消息,
图 $ 也涵盖了前两种方式的应用,在上层计算机上由网络 实现两台计算机的相互通信, 实行双机热备, 下层设备采用双机 切换模块。
!
双机切换的程序解决方式 当两台监控计算机不存在主辅机之分时,都可作为独立的
工作站对下层进行监控时, 以 上方式将不适用,必须寻求新 的解决方式。当 与 下 层 ,-.&/ 设备的 ) * + 驱动程序可由自己 开发时, 可采用程序解决方式。 它既可满足双机热备,也可满 足工作站独立监控。其原理如 图 !。
!
已有的解决方式 实 现 !"#$% 网 络 多 主 节 点 通 信 的 方 式 在 以 往 的 论 文 中 也
H 驱动程序都启动了,只是从机不从自身的 G F H 驱动程序采集
数据而 以 , 但 这 样 不 能 保 证 启 动 后 的 G F H 驱 动 程 序 不 对 !"#$% 总线进行通信访问。
图! 程序解决方式的应用
__B4K:J?KK9O? @@Y8ZCFD<8E6[ ZUAAFM
8JS1+JJSZ+=)‘a[
ZUAA[
895:‘4>-5EOV?+Tb?;:@OS<89:;<I3?E:[ )Z‘)Z)=IFM * * 重新启动事件 ,?K?:I3?E:@OS<89:;<I3?E:FM 6H=57?N5O5E P Q?:=5;L14RE:@FM c * * 如果超过一定时间没有接收到数据则认为主机故障 , 辅 机 转 换 为 主
(D* 增加一个 !"#$% 双机切换模块 为 了 解 决 !"#$% 多 主 通 信 问 题 还 可 以 增 加 一 个 硬 件 模 块

RS485通讯方式详解

RS485通讯方式详解

RS485通讯方式详解智能仪表是随着80年代初单片机技术的成熟而发展起来的,现在世界仪表市场基本被智能仪表所垄断。

究其原因就是企业信息化的需要,企业在仪表选型时其中的一个必要条件就是要具有联网通信接口。

最初是数据模拟信号输出简单过程量,后来仪表接口是RS232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现联网功能。

随后出现的RS485解决了这个问题。

下面我们就简单介绍一下RS485。

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上位机的(1)通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485 RS485电路:信号,对于情况比较复杂的工业环境最好是选用防浪涌带隔离珊的产品。

uart 与 rs-485 的常见用法

uart 与 rs-485 的常见用法

uart 与rs-485 的常见用法UART与RS485是两种常见的串行通信协议,广泛应用于各种领域中。

本文将以中括号为主题,逐步解释UART和RS485的常见用法,并探讨其在不同领域中的应用。

一、[什么是UART]UART全称为Universal Asynchronous Receiver/Transmitter,即通用异步收发传输器。

它是一种常见的串行通信协议,用于在计算机及外设之间进行数据传输。

1.1 UART的工作原理UART基于一对数据线(TX和RX)进行数据传输。

数据通过TX线从发送方发送,然后通过RX线接收到接收方。

通信的双方需要事先约定好一些参数,如波特率、数据位数、校验位和停止位等。

1.2 UART的常见应用UART常见的应用包括:- PC与外部设备的通信:UART被广泛用于计算机与外部设备(如打印机、调制解调器)之间的数据传输。

- 嵌入式系统开发:许多嵌入式系统使用UART与外部设备进行通信,如通过UART与传感器、显示器或其他外设交互。

二、[什么是RS485]RS485是一种串行通信标准,常用于远距离数据传输。

它可以支持多点通信,适用于工业控制等环境要求严苛的应用场景。

2.1 RS485的工作原理RS485采用差分信号传输,即通过正负两个数据线进行数据传输。

发送端将逻辑“1”表示为正电平,逻辑“0”表示为负电平;接收端则通过比较两个数据线上的电位差来判断收到的是逻辑“1”还是“0”。

2.2 RS485的常见应用RS485常见的应用包括:- 工业自动化:RS485可用于连接各种传感器、执行器和其他设备,用于工业自动化系统中的数据采集、控制和监测。

- 建筑物自动化:RS485可用于控制楼宇系统,如照明控制、温度调节和安防监控等。

- 智能家居:RS485可用于实现智能家居系统中各个设备之间的通信。

三、[UART与RS485的区别]UART和RS485虽然都是串行通信协议,但在一些关键特性上存在一些区别。

RS485通信原理

RS485通信原理RS485是一种通信协议,广泛应用于工业自动化、仪器仪表、安防监控等领域。

RS485协议支持多主多从的串行通信方式,具有抗干扰能力强、可靠性高、传输距离长等优点。

本文将从RS485通信原理、物理层特性和电气参数等方面进行详细介绍。

RS485通信协议允许多个设备在同一条总线上进行通信,其中一个设备作为主设备,其他设备则作为从设备。

主设备负责发起通信请求,从设备负责响应请求。

通信时,主设备向从设备发送命令数据,从设备接收并处理数据,并将响应数据发送回主设备。

在RS485通信中,使用两根信号线进行差分信号传输,分别称为A线和B线。

当发送器处于空闲状态时,A线和B线的电位是相等的,称为平衡状态。

当发送器发送数据或命令时,会在A线和B线上形成相反的电平差,即差分信号。

接收器根据两根线上的电平差来识别发送的数据。

为确保通信的可靠性和抗干扰能力,RS485通信使用了多种技术手段:1.奇偶校验:在数据帧末尾添加一个校验位,用于检验数据传输过程中是否出错。

2.前导码和起始位:发送器在发送数据之前会先发送一串特定的比特序列,用于通知接收器即将开始接收数据。

3.数据位和停止位:数据位用于存储实际的数据内容,停止位用于标识数据位的结束。

4.时钟同步:主设备和从设备之间通过时钟信号进行同步,以确保数据传输的正确性。

二、RS485物理层特性1.单端驱动模式(非常稀疏使用)在单端驱动模式下,通信线只有一对,其中一根线为信号线,另一根线为地线。

发送设备输出的是正电平或负电平,接收设备根据电平的高低来判断信号。

2.差分驱动模式差分驱动模式下,通信线有两对,一对为发送线(A线、B线),另一对为接收线(Y线、Z线)。

发送设备在A线和B线上输出相反的电平差,而接收设备在Y线和Z线上来反馈差分信号。

这种差分信号传输方式具有抗干扰能力强的特点,适用于长距离通信和恶劣环境下的通信应用。

在RS485通信中,支持的传输速率范围广泛,最高可达10Mbps。

rs485总线通讯协议

竭诚为您提供优质文档/双击可除rs485总线通讯协议篇一:Rs485通讯协议说明摘要:阐述了Rs-485总线规范,描述了影响Rs-485总线通信速率和通信可靠性的三个因素,同时提出了相应的解决方法并讨论了总线负载能力和传输距离之间的具体关系。

关键词:Rs-485现场总线信号衰减信号反射当前自动控制系统中常用的网络,如现场总线can、profibus、inteRbus-s以及aRcnet的物理层都是基于Rs-485的总线进行总结和研究。

一、eiaRs-485标准在自动化领域,随着分布式控制系统的发展,迫切需要一种总线能适合远距离的数字通信。

在Rs-422标准的基础上,eia研究出了一种支持多节点、远距离和接收高灵敏度的Rs-485总线标准。

Rs-485标准采有用平衡式发送,差分式接收的数据收发器来驱动总线,具体规格要求:接收器的输入电阻Rin≥12kΩ驱动器能输出±7V的共模电压输入端的电容≤50pF在节点数为32个,配置了120Ω的终端电阻的情况下,驱动器至少还能输出电压1.5V(终端电阻的大小与所用双绞线的参数有关)接收器的输入灵敏度为200mV(即(V+)-(V-)≥0.2V,表示信号“0”;(V+)-(V-)≤-0.2V,表示信号“1”)因为Rs-485的远距离、多节点(32个)以及传输线成本低的特性,使得eiaRs-485成为工业应用中数据传输的首选标准。

二、影响Rs-485总线通讯速度和通信可靠性的三个因素1、在通信电缆中的信号反射在通信过程中,有两种信号因导致信号反射:阻抗不连续和阻抗不匹配。

阻抗不连续,信号在传输线末端突然遇到电缆阻抗很小甚至没有,信号在这个地方就会引起反射,如图1所示。

这种信号反射的原理,与光从一种媒质进入另一种媒质要引起反射是相似的。

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

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

基于RS485协议实现单片机与单片机之间的通信

基于RS-485协议实现单片机与单片机之间的通信摘要:介绍以RS-485为通信方式的两个单片机之间的通信,同时给出单片机与单片机之间的通信程序设计。

关键词:RS-485通信单片机串行通信0 引言随着工业化的进展,人们对现场仪表的要求愈来愈高,为了知足操纵室对现场的实时监控,确保现场数据的实时获取,需要用一种方式将现场情形实时反映给操纵室,咱们研究了一种方便简单功、能优越的通信方式:用RS-485实现现场单片机和操纵室单片机的实时通信。

通过操作操纵室单片机就能够实现对现场单片机的操作,节省了大量的时刻和相应的人力。

1、RS-485通信协议RS-485采纳平稳传输方式,连接时需要在传输线上接终接电阻。

RS-485能够采纳二线与四线方式,二线制可实现真正的多点双向通信,采纳四线连接时,即只能有一个主(Master)设备,其余为从设备,不管是四线仍是二线连接方式总线上最多可接32个设备。

RS-485最大传输距离约为1219米,最大传输速度为10Mb/s。

平稳双绞线的长度与传输速度成反比,在100kb/s速度以下,才可能利用规定最长的电缆长度。

只有在很短的距离下才能取得最高速度传输。

一样100米长双绞线最大传输速度仅为1Mb/s。

RS-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗,终接电阻接在传输总线的两头。

在短距离传输时可不需终接电阻,即一样在300米以下不需终接电阻。

本设计中采纳的485通信元件是75LBC184,该器件带有内置高能量瞬变噪声爱惜装置,可提供靠得住的低本钱的直连(不带绝缘变压器)数据线接口,不需要任何外部元件。

2、单片机与单片机的通信系统本设计中单片机选用C8051F020,该单片机有100个功能引脚,其中有64个通用I/O端口。

C8051F020内有2个增强型串行口:UARTO和UART1,这两个串行口都能够工作在全双工异步方式或半双工同步方式,而且支持多处置器通信。

75LBC184与单片机连接时只需将R和D端别离与单片机的RXD 和TXD 相连即可。

基于RS485 Modbus RTU的上位机通讯软件实现

基于RS485 Modbus RTU的上位机通讯软件实现最近碰到个项目需要配合仪表厂家对S7 200 PLC做上位机通讯软件的开发,由不是搞代码专业的,在网上搜了一堆的资料,总算也是可以把东西做出来了,抽空做了一个小的Demo,在这里也跟大家分享一点点经验,作为自己的总结,也以期能给后来人带来稍许启发。

首先,既然是基于RS485 Modbus RTU通讯协议的软件,我们肯定需要对它有一定的了解,很多人可能会去搜Modbus协议的标准文件,当然我也是,说实话这个文件实在是太长了,看完之后说实话对我的帮助也有限,在这里我推荐大家去百度文库里看一篇文章:《MODBUS规约与报文解析详细说明》,因为我没有下载券了,所以没法放在附件里了,里面很简洁、明了的介绍Modbus的内容以及相应的报文格式,这个报文格式对编写上位机软件是对我帮助最大的,大家把这个看一下应该比我做大篇幅的介绍要好的多,这里我就不说了,只把上位机读取PLC里V区变量(即保持型寄存器)的流程简单说一下。

我们通常的做法是把仪表测量的信号通过4-20mA传入PLC,再把相应的AIW传给我们分配的VW,上位机发送读取对应VW区的报文,下位机(从站,也就是我们的PLC)接收指令之后会给出响应,反回一条信息给上位机,然后上位机对相应的报文做解析。

其他读取I区,Q区,写入V区的原理大概相同。

好了,了解Modbus报文格式以及相应的流程之后,我们需要做的就是与S7 200 PLC 通讯了,以CPU224xp为例,它有两个RS485通讯口,分别为port0和port1,其中做主站port0,port1都行,做从站只能用port0,这里因为是通过上位机控制PLC,所以我们选择plc 为从站就可以了,开发的时候用RS232/RS485的s7 200编程电缆把电脑与PLC连上就行了,硬件的连接很简单,接下来就是s7 200的编程了。

不过在开始之后我还是建议大家去看一下S7 200关于Modbus通讯的官方文档介绍,百度搜s7 200 Modbus关键字,第一条就是,可能大家看完之后我下面关于s7 200的编程就可以略过了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档