详解RS485通讯程序代码及技术介绍
安可信RS485通讯协议(V1.2)

HTX48501操作手册该产品的功能是负责把控制器的信号转换为标准的modbus协议信号。
一、硬件接口该产品使用RS485接口与modbus协议的主站进行通信。
RS485接口采用3线进行通信,分别为A,B,PGND。
二、软件接口使用modbus标准协议对可燃气体报警系统的信号进行解析。
使用到modbus协议的功能代码为1,2,3,4,5。
三、Modbus协议说明1.传输协议modbus传输模式:RTU波特率:9,600bps传输字节特性:起始位:1位数据位(最小位优先):8位奇偶校验:奇校验停止位:1位错误校验:CRC校验2.协议解析该协议支持两种数据访问模式,分别为位地址和寄存器地址(16位)。
a.地址表示该从modbus设备的通信地址(该地址的范围为1~247),该地址由控制器进行设置。
b.c.数据访问地址数据访问地址:就是访问的寄存器起始地址。
各种类型数据的具体起始访问地址(十进制表示)如下:x000:探测器的浓度x064:探测器的状态x128:模块的开关状态x168:控制器状态控制器中最多允许接入128个探测器,64个外部模块,4个内部模块。
地址以十进制数进行表示,千位为X,表示x的值可以为1~9。
其它位数的值固定。
数据访问地址的增量为2,比如:x000表示1号探测器,x001也表示1号探测器,x002和x003表示2号探测器。
(即访问地址除以2然后加1就是具体设备的编号)。
d.数据数据:通信发送要处理的实际数据。
注意:应答数据不能够超过255个字节。
e.CRC校验Modbus协议采用16位的CRC校验。
3.设备状态说明探测器状态如下:0:探头短路1:探头断线2:探头老化3:其它故障4:未标定5:零点变化7:无响应9:探头自检a:正常d:预报警e:低限报警f:高限报警4.modbus消息例子a.读取模块的开关状态实例1:发送:表示1,2,3,4号模块都断开。
实例2:应答:表示模块2闭合,内部模块3断开,模块4~6闭合。
rs485通信协议介绍

rs485通信协议介绍附录:RS485串⾏通讯协议1 主要性能本变频器通过内置的RS485标准接⼝,能与个⼈计算机、PLC 或同系列的变频器等连接,进⾏主从式、异步半双⼯串⾏通信。
其主要性能参见下表:项⽬规范适⽤机型 ALPHA3000系列变频器物理级EIA RS485 传输线屏蔽双绞线配线最长长度 500⽶连接台数主机⼀台,从机31台传输速度19200bps,9600bps,4800bps,2400bps,1200bps,600bps,300bps 数据交换⽅式异步串⾏、半双⼯传送协议点对点或⼴播字长 11位停⽌位长度 1位帧长 14字节固定奇偶校验奇校验出错检查⽅式异或校验2硬件连接 2.1硬件联接如下图:图 1 多台变频器⽤主机控制连接⽰意图图中的MASTER (主机)是ALPHA3000变频器、PC 机或可编程控制器(PLC ),图中的SLAVE (从机,在虚线框内)是变频器。
变频器做为主机,只要将从机的RS485端⼦和主机的RS485同名端⼦相联接即可;如果⽤PC 机或PLC 做为主机,则要在主机和总线之间增加⼀个RS485的转接器。
RS458串⾏总线接⼝最多可连接31台变频器做从机,每⼀个从机变频器都有⼀个唯⼀的号码(ID ),主机依靠ID 来识别每⼀台从机。
2.2 RS485转换器RS485转换器采⽤DB9/DB9外形,带孔的⼀端为RS232,带针的⼀端为RS485。
转换器外带接线转换头把RS485端的DB9接线转换为螺丝接线柱,便于通讯线缆的安装和拆卸。
接线转换头上“A+”为485收/发正端,“ B-”为485收/发负端,“GND”为485地线。
RS485接⼝组成半双⼯⽹络,⼀般只需⼆根连线,为获得良好的抗噪声⼲扰性和较长的传输距离,建议采⽤屏蔽双绞线传输。
3通讯协议3.1概述3.1.1通讯⽅式采⽤USS协议。
主机和从机之间⽤轮询的⽅式来进⾏通讯。
由主机启动每⼀次通信,主机向从机变频器发送任务报⽂,从机接到主机的任务命令后返回响应报⽂并执⾏相应动作。
RS485通信协议

RS485通信协议协议名称:RS485通信协议一、引言RS485通信协议是一种用于在多个设备之间进行数据传输和通信的标准协议。
本协议旨在规范RS485通信的数据格式、传输方式和通信协议,以确保设备之间的可靠通信和数据交换。
二、范围本协议适用于使用RS485通信接口的各种设备,包括但不限于工业自动化设备、仪器仪表、数据采集设备等。
三、术语定义1. RS485通信:使用差分信号进行数据传输的半双工通信方式。
2. 主设备:发起通信请求的设备。
3. 从设备:响应通信请求的设备。
4. 数据帧:包含数据信息的通信单元。
5. 起始位:数据帧的起始标识位。
6. 终止位:数据帧的结束标识位。
7. 奇偶校验:用于检测数据传输中的错误的校验机制。
8. 波特率:数据传输速率,以每秒传输的比特数表示。
四、通信协议1. 物理层RS485通信使用差分信号进行数据传输,其中A线和B线分别代表正向和反向信号线。
通信设备应符合RS485标准的物理层要求,包括信号电平、线路阻抗等。
2. 数据帧格式RS485通信使用数据帧进行数据传输。
数据帧格式如下:起始位 | 数据位 | 奇偶校验位 | 停止位起始位:一个字节的起始标识位,用于标识数据帧的开始。
数据位:包含要传输的数据信息,可以是一个或多个字节。
奇偶校验位:用于检测数据传输中的错误,可以选择奇校验、偶校验或无校验。
停止位:一个字节的停止标识位,用于标识数据帧的结束。
3. 通信流程RS485通信的通信流程如下:主设备发送请求帧 -> 从设备接收请求帧并解析 -> 从设备执行请求操作 -> 从设备发送响应帧 -> 主设备接收响应帧并解析4. 数据传输RS485通信使用半双工通信方式,即同一时间只能有一方发送数据。
通信设备应在发送数据前先检测总线是否空闲,以避免冲突。
5. 错误处理RS485通信中可能发生的错误包括数据传输错误、通信超时等。
通信设备应具备错误处理机制,能够检测和处理这些错误,例如重新发送数据、重置通信连接等。
详解RS485通讯程序代码及技术介绍

} } //主函数 void main() { DDRD|=BIT(PD2); //PORTD|=BIT(PD2); USART_Init(); //UART_Puts("\r\n 你发送的字符串是:");//发送字符串 PORTD&=~BIT(PD2); DDRD|=BIT(PD2); while(1) { if(RX_Flag)
{
PORTD|=BIT(PD2);
//UART_Puts();
USART_Send('1');
//USART_Send(RX_Buffer);
RX_Flag=0;
PORTD&=~BIT(PD2);
PORTD|=BIT(PD2);
//UART_Puts();
USART_Send('2');
//USART_Send(RX_Buffer);
HART 网络:HART 是由现在的艾默生提出一个过度性总线标准,他主要是在 4~20 毫安电流信号上面叠加数字信号,物理层采用 BELL202 频移键控技术,以 实现部分智能仪表的功能,但此协议不是一个真正意义上开放的标准,要加入他 的基金会才能拿到协议,加入基金会要一部分的费用。技术主要被国外几家大公 司垄断,近两年国内也有公司再做,但还没有达到国外公司的水平。现在有很大 一部分的智能仪表都带有 HART 圆卡,都具备 HART 通讯功能。但从国内来看还没 有真正利用其这部分功能,最多只是利用手操器对其进行参数设定,没有发挥出 HART 智能仪表应有的功能,没有联网进行设备监控。从长远来看由于 HART 通信 速率低组网困难等原因,HART 仪表的采购量会程下滑趋势,但由于 HART 仪表已 经有十多年的历史现在在装数量非常的大,对于一些系统集成商来说还有很大的 可利用空间。
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通讯1. 引言RS485是一种串行通信协议,用于在多个设备之间进行双向数据传输。
它是一种高性能的通讯协议,常用于工业自动化、仪器仪表、门禁系统等领域。
本文将介绍RS485通讯的基本原理、使用方法以及常见的应用场景。
2. 基本原理RS485通讯使用差分信号传输,可以抵抗电磁干扰和噪声。
它采用两条相对独立的传输线(A线和B线),通过不同的电平表示逻辑1或逻辑0。
其中,逻辑1对应线A为高电平,线B为低电平;逻辑0对应线A为低电平,线B为高电平。
通过这种方式,数据可以在多个设备之间进行可靠的传输。
3. 硬件连接在使用RS485通讯时,需要将所有设备连接到一个共享的总线上。
每个设备都需要两条连接线(A线和B线)以及一个共享的地线。
通常,可以使用终端电阻来匹配总线阻抗并提高信号质量。
4. 传输方式RS485通讯可以采用两种传输方式:全双工和半双工。
4.1 全双工通讯在全双工通讯中,设备可以同时发送和接收数据。
发送数据的设备需要将数据发送到总线上,并通过差分信号传输给其他设备。
同时,接收数据的设备可以监听总线上的数据并将其解析。
4.2 半双工通讯在半双工通讯中,设备的发送和接收操作是交替进行的。
设备在发送数据时,需要先将总线设置为发送模式,并将数据发送到总线上。
其他设备在接收数据时,将总线设置为接收模式,并监听数据。
5. 通讯协议RS485通讯可以使用多种协议进行数据交换,常见的有MODBUS、DMX512等。
这些协议定义了数据的传输格式、通讯方式和功能码等。
5.1 MODBUS协议MODBUS是一种常用的通讯协议,适用于工业自动化领域。
它定义了数据的传输格式,并提供了读写寄存器等功能。
MODBUS协议支持点对点和多点通讯。
5.2 DMX512协议DMX512是一种用于舞台灯光控制的通讯协议。
它定义了数据的传输格式和通讯方式。
DMX512通讯一般采用全双工方式进行。
6. 应用场景RS485通讯在许多领域都有广泛的应用。
485端口使用说明
用RS485端口控制TVF2000使用说明:一、硬件连接:1.RS485/RS485:(1)终端设备:将J2用终端方式短接;(2)非终端设备:将J2用非终端方式短接;(3)A、B、AGND对接;(4)如果使用屏蔽线,SCR对接。
2.RS485/RS232(PC机):(1)用RS485/RS232转换器;(2)PC机串口与转换器RS232口连接;(3)TVF2000的CN1与转换器的RS485口的A、B、AGND连接。
二、用MODBUS与TVF2000通讯(RTU方式):1.TVF2000键盘设置:a)键盘菜单设置说明:i.1001=10:外端子1用通讯控制;ii.5005=2:标准MODBUS通讯方式;iii.5201=1-247:从机号(缺省=1);iv.5202=5:通讯速度为9600bps(缺省=5);v.5203=0:无效验(缺省=0);vi.其它=缺省值;b)通讯缺省设置:i.通讯从机号:1;ii.通讯速率:9600 BPS;iii.效验:无;iv.停止位:2;v.数据位:8;c)键盘具体操作:i.9952 = 1:参数初始化;ii.1001 = 10;iii.5005 = 2;这样设置后,就可以与TVF2000通讯了。
2.TVF2000使用的MODBUS命令:a)读存储寄存器:03命令;b)写单个寄存器:06命令;c)写多个寄存器:16命令;3.MODBUS单寄存器写入命令说明(其它说明见附录):a)主机发送:i.[地址]:从机地址1-247;ii.[命令]:06,单寄存器写入命令;iii.[寄存器地址_H]:寄存器地址高8位;iv.[寄存器地址_L]:寄存器地址低8位;v.[数据_H]:写入数据高8位;vi.[数据_L]:写入数据低8位;vii.[CRC_H]:CRC效验高8位;viii.[CRC_L]:CRC效验低8位;b)从机返回(正常):i.[地址]:从机地址1-247(相同地址);ii.[命令]:06,单寄存器写入命令;iii.[寄存器地址H]:寄存器地址高8位;iv.[寄存器地址L]:寄存器地址低8位;v.[数据_H]:写入数据高8位;vi.[数据_L]:写入数据低8位;vii.[CRC_H]:CRC效验高8位;viii.[CRC_L]:CRC效验低8位;c)通讯具体操作(菜单1102=7为例):i.主机发送:[01][06][04][4E][00][07][CRC_H][CRC_L];ii.从机返回(正常):[01][06][04][4E][00][07][CRC_H][CRC_L];4.用通讯命令设置菜单值(调速前必须设置):i.MODBUS规定:寄存器都以4开始(内置);ii.1102=7;外部1有效(也可用键盘设置);iii.1103=8;由串行通讯给定(也可用键盘设置);iv.0002=初始频率;如果不设置,为菜单1104的值;v.0001=0x06;命令寄存器:0001;vi.0001=0x0f;vii.0001=0x2f;启动;viii.0001=0x6f;到达设定频率;5.用通讯命令调速(给定寄存器1:0002):i.0002=0-20000;调速:0对应1104的值,20000对应1105的值;ii.通过03命令读取状态寄存器(0004)的值;iii.通过03命令读取保持寄存器(0005、0006)的值;iv.用通讯命令停车:0001 = 0x06;6如下:7. 给定寄存器1:0002(MODBUS 为40002)说明如下:i. 输出频率与给定值成正比例;ii. 输出频率=(0002的值)*(1105的值)/20000;8. 状态寄存器:0004(MODBUS 为40004)说明如下:9.保持寄存器:0005(MODBUS为40005):实际输出频率(单位:Hz);10.保持寄存器:0006(MODBUS为40006):实际输出电流(单位:0.1A);11.状态寄存器、保持寄存器均为只读;12.如果想保存通讯设置,必须用键盘设置菜单1607=1。
PLC资料:三菱PLC RS485通讯使用教程(带示例)
通信
一、联机方式
自动化生产线各工作站中PLC之间通过RS-485串行通信的方式实现互连,构成分布式的控制系统。
二、N:N网络功能
N:N网络功能,就是在最多8台FX可编程控制器之间,通过RS-485通信连接,进行软元件相互连接。
1)根据要链接的点数,有3种模式可以选择。
2)数据的链接是在最多8台FX可编程控制器之间自动更新。
3)总延长距离最大可达500m。
三、链接模式及链接点数
四、N:N网络接线图
五、N:N网络中使用的软元件如下:
1.N:N网络设定用的软元件
是用于设定N:N网络的软元件。
使用N:N网络时,必须设定下列的软元件。
2.判断N:N网络错误用的元件
用于判断N:N网络错误。
请将链接错误输出到外部,并在顺控程序的互锁等中使用。
3. 链接软元件
是用于发送接收各可编程控制器之间的信息的软元件。
根据在相应站号设定中设定的站号,以及在刷新范围设
定中设定的模式不同,使用的软元件编号及点数也有所不同。
1)模式0时
2) 模式1时
3) 模式2时
三菱PLC 485通讯示例(2个PLC)
题目:
按下SB1(0#PLC 的X0),灯L1(1#PLC 的Y0)亮。
按下SB2(1#PLC 的X1),灯L2(0#PLC 的Y1)亮。
通讯线连接方式:
主站程序:
从站程序:。
RS485通信示例程序
RS485通信示例程序看程序时请配合芯片资料一起看,公布源码不是为了抄袭,而是为了相互学习,如果有不对的地方还请指出来,谢谢!/*===================================================== ===程序说明:PC端通过RS232-RS485芯片转换后再经过一个RS485收发芯片MAX485连接单片机的RX和TX(RO-RX,DI-TX)的通信示例程序控制发送和接收的引脚为P2.7,使用时注意正确连接!作者:绘天地点:成都信息工程学院====================================================== ==*/#include <reg52.h>#include "com_communication.h"sbit SHRL=P2^7;/*高电平发送,低电平接收*/void main(){int c;UartInit();SHRL=0;/*保持为发送状态*/while(1){if ( RI ) //如果收到数据{RI = 0; //清除接收标志c = SBUF; //读取收到的数据SHRL=1;UartSendChar(c); //回送收到的数据SHRL=0;}}}所调用的头文件:#ifndef _com_H_#define _com_H_//定义波特率(取值1200、2400、4800、9600、19200等)#define BaudRate 19200L/*********************************************************************** ********函数:UartInit()功能:串行口初始化************************************************************************ *******/void UartInit(){SCON = 0x50; //串口方式1(8位UART),允许接收PCON |= 0x80; //波特率加倍TMOD &= 0x0F; //设置T1为8位自动重装定时器,用于产生波特率TMOD |= 0x20;TH1 = TL1 = 256 - (11059200L / 12) / (16 * BaudRate); //设置T1初值TR1 = 1; //启动T1}/*********************************************************************** ********函数:UartSendChar()功能:通过串行口发送单个字节参数:c是被发送的字节数据,取值0x00~0xFF************************************************************************ *******/void UartSendChar(char c){SBUF = c; //数据写入SBUF,同时启动硬件发送过程while ( !TI ); //等待发送完毕TI = 0; //清除发送标志}#endif。
RS485通讯
精通RS485通讯系列教程一、通讯基础知识1.1什么是通讯要搞清楚RS485通讯我们要先搞明白什么是通讯,通讯就是两个设备之间0、1代码的传递,0-低电平1-高电平。
举例:A设备向B设备传递数据,首先A设备和B设备之间必须通过电缆连接(硬件连接)。
如果A设备要向B设备发送101010这样一串代码,那么A设备就要在他的通讯端口产生如下图所示的高低电平的组合,通过电缆这个介质B设备的通讯端口就会接收到A设备发出高低电平的组合,同时就会将接收到的高低电平组合翻译成101010,这就完成了A设备向B设备数据的传递,B 设备向A设备数据传递也是同样的道理。
与通讯有个的概念。
【全双工与半双工】全双工是通讯端口在发送数据的同时可以接收数据。
而半双工指的是同一时刻通讯端口要么只能发送数据,要么只能接收数据。
举例:全双工-打电话时双方都可以说。
半双工:对讲机-同一时刻只能一个人说另一个人听。
【通讯速率】通讯速率也叫通讯波特率是1S内通讯端口发送01代码(或者说是高低电平)的数量。
举例:我们说通讯速率是9.6kbps,就表示通讯端口每秒发送9600个bit的数据,也就是每秒可以产生9600个高低电平(注意:是高低电平总共加起来9600个)。
【主从通讯】是在一个通讯网络中一个站点是主站,其他站点作为从站。
主站和从站之间可以直接进行数据的传递,但是从站与从站之间不能直接进行数据的传递。
如果需要从站之间交换数据也必须要通过主站进行转发。
如下图所示1.2、485通讯定义明白了通讯的基本概念后再理解485通讯就相对容易了,下面我们从通讯介质、通讯方式、通讯类型、物理层四个方面来介绍485通讯。
通讯介质:屏蔽双绞线,也就是我们通常用的带有屏蔽层的两心电缆如下图所示。
通讯方式:半双工通讯类型:主从通讯物理层:9针接口,需要注意的是通常情况下485通讯的9针接口,只需要将两芯电缆接到3号脚和8号脚上,3是信号“﹢”,8是信号“-”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for(i=0;i<MS;i++) for(j=0;j<1141;j++); } //串口 IO 初始化函数 void USART_IO_Init() { //PORTD=0X00; DDRD|=BIT(PD1); //PD1:TX 为输出状态 //DDRD|=BIT(PD2);}
//串口初始化函数 void USART_Init() { unsigned int Temp; USART_IO_Init(); //串口 IO 初始化函数调用
一般终端匹配采用终端电阻方法, RS-485 应在总线电缆的开始和末端都并 接终端电阻。终接电阻在 RS-485 网络中取 120Ω。相当于电缆特性阻抗的电阻, 因为大多数双绞线电缆特性阻抗大约在 100~120Ω。这种匹配方法简单有效, 但有一个缺点,匹配电阻要消耗较大功率,对于功耗限制比较严格的系统不太适 合。另外一种比较省电的匹配方式是 RC 匹配。利用一只电容 C 隔断直流成分可 以节省大部分功率。但电容 C 的取值是个难点,需要在功耗和匹配质量间进行折 衷。 还有一种采用二极管的匹配方法,这种方案虽未实现真正的“匹配”,但 它利用二极管的钳位作用能迅速削弱反射信号,达到改善信号质量的目的,节能 效果显著。
由于 PC 机默认的只带有 RS232 接口,有两种方法可以得到 PC 上位机的 RS485 电路:(1)通过 RS232/RS485 转换电路将 PC 机串口 RS232 信号转换成 RS485 信 号,对于情况比较复杂的工业环境最好是选用防浪涌带隔离珊的产品。(2)通 过 PCI 多串口卡,可以直接选用输出信号为 RS485 类型的扩展卡。
1.3 RS485 布网
网络拓扑一般采用终端匹配的总线型结构,不支持环形或星形网络。在构建 网络时,应注意如下几点:
(1)采用一条双绞线电缆作总线,将各个节点串接起来,从总线到每个节 点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。 有些网络连接尽管不正确,在短距离、低速率仍可能正常工作,但随着通信距离 的延长或通信速率的提高,其不良影响会越来越严重,主要原因是信号在各支路 末端反射后与原信号叠加,会造成信号质量下降。
HART 网络:HART 是由现在的艾默生提出一个过度性总线标准,他主要是在 4~20 毫安电流信号上面叠加数字信号,物理层采用 BELL202 频移键控技术,以 实现部分智能仪表的功能,但此协议不是一个真正意义上开放的标准,要加入他 的基金会才能拿到协议,加入基金会要一部分的费用。技术主要被国外几家大公 司垄断,近两年国内也有公司再做,但还没有达到国外公司的水平。现在有很大 一部分的智能仪表都带有 HART 圆卡,都具备 HART 通讯功能。但从国内来看还没 有真正利用其这部分功能,最多只是利用手操器对其进行参数设定,没有发挥出 HART 智能仪表应有的功能,没有联网进行设备监控。从长远来看由于 HART 通信 速率低组网困难等原因,HART 仪表的采购量会程下滑趋势,但由于 HART 仪表已 经有十多年的历史现在在装数量非常的大,对于一些系统集成商来说还有很大的 可利用空间。
式,即一个主机带多个从机。很多情况下,连接 RS-485 通信链路时只是简单地 用一对双绞线将各个接口的“A”、“B”端连接起来。而忽略了信号地的连接, 这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患,这有二个原 因:(1)共模干扰问题: RS-485 接口采用差分方式传输信号方式,并不需要相 对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了。但人们 往往忽视了收发器有一定的共模电压范围,RS-485 收发器共模电压范围为-7~ +12V,只有满足上述条件,整个网络才能正常工作。当网络线路中共模电压超出 此范围时就会影响通信的稳定可靠,甚至损坏接口。(2)EMI 问题:发送驱动器 输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号 地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电 磁波。
// 校验,2 位停止位,8 位数据位
Temp=(FXTAL/BAUD/16)-1;
//求出 9600 波特率的赋值
UBRRH=((Temp>>8)&0x00ff);
//波特率寄存器高八位赋值
UBRRL=(Temp&0x00ff);
//波特率寄存器低八位赋值
//UBRR=71; //从手册中直接取得赋值,9600kbps
UCSRB|=BIT(RXCIE);
//接收完毕中断使能
}
RS485 通讯技术介绍
一、 RS485 简介
智能仪表是随着 80 年代初单片机技术的成熟而发展起来的,现在世界仪表 市场基本被智能仪表所垄断。究其原因就是企业信息化的需要,企业在仪表选型 时其中的一个必要条件就是要具有联网通信接口。最初是数据模拟信号输出简单 过程量,后来仪表接口是 RS232 接口,这种接口可以实现点对点的通信方式,但 这种方式不能实现联网功能。随后出现的 RS485 解决了这个问题。下面我们就简 单介绍一下 RS485。
最近两年一些公司基于部分企业信息化的实施已完成,工厂中已经铺设了延 伸到车间每个办公室、控制室的局域网的现状,推出了串口服务器来取代多串口 卡,这主要是利用企业已有的局域网资源减少线路投资,节约成本,相当于通过 tcp/ip 把多串口卡放在了现场。
1.4 RS485 和其它总线网络的区别
我们把工业网络归结为三类:RS485 网络、HART 网络和现场总线网络。
RX_Flag=0;
PORTD&=~BIT(PD2);
}
}
}
//串口发送函数
void USART_Send(unsigned char Data)
{
while(!(UCSRA&(BIT(UDRE)))); UDR=Data;
//数据寄存器 UDR 是否为 //UDR 赋值
while(!(UCSRA&(BIT(TXC))));
{
PORTD|=BIT(PD2);
//UART_Puts();
USART_Send('1');
//USART_Send(RX_Buffer);
RX_Flag=0;
PORTD&=~BIT(PD2);
PORTD|=BIT(PD2);
//UART_Puts();
USART_Send('2');
//USART_Send(RX_Buffer);
现场总线网络:现场总线技术是当今自动化领域技术发展热点之一,被誉为 自动化领域的计算机局域网,它的出现标志着自动化控制技术又一个新时代的开 始。现场总线是连接设置在控制现场的仪表与设置在控制室内的控制设备的数字 化、串行、多站通信的网络。其关键标志是能支持双向、多节点、总线式的全数 字通信。现场总线技术近年来成为国际上自动化和仪器仪表发展的热点,它的出 现是传统的控制系统结构产生了革命性的变化,是自控系统朝着智能化、数字化、 信息化、网络化、分散化的方向迈进,形成新型的网络集成式全分布式控制系统 ---现场总线控制系统 FCS(Fieldbus Control System)。但是现在的现场总线 的各种标准并行存在并且都有自己的生存领域,还没有形成真正统一的标准,关 键是看不到什么时候能形成统一的标准,技术也不够成熟。另外现场总线的仪表
(2)应注意总线特性阻抗的连续性,在阻抗不连续点就会发生信号的反射。 下列几种情况易产生这种不连续性:总线的不同区段采用了不同电缆,或某一段 总线上有过多收发器紧靠在一起安装,再者是过长的分支线引出到总线。
总之,应该提供一条单一、连续的信号通道作为总线。
在 RS485 组网过程中另一个需要主意的问题是终端负载电阻问题,在设备少 距离短的情况下不加终端负载电阻整个网络能很好的工作但随着距离的增加性 能将降低。理论上,在每个接收数据信号的中点进行采样时,只要反射信号在开 始采样时衰减到足够低就可以不考虑匹配。但这在实际上难以掌握,美国 MAXIM 公司有篇文章提到一条经验性的原则可以用来判断在什么样的数据速率和电缆 长度时需要进行匹配:当信号的转换时间(上升或下降时间)超过电信号沿总线 单向传输所需时间的 3 倍以上时就可以不加匹配。
UCSRA=0x00; UCSRB=0x00;
//串口控制器 A 清零 //串口控制器 B 清零
UCSRC|=BIT(URSEL)|BIT(UCSZ1)|BIT(UCSZ0); //选择 USCRC,异步操作,禁止 检验危,1 个停止位,八位数据
//UCSRC=(1<<URSEL)|(1<<USBS)|(0<<UPM0)|(3<<UCSZ0); //选择 UCSRC,异 步模式,禁止
void UART_Puts(unsigned char *Str) { if(*Str) //字符串结束 {
} } //主函数 void main() { DDRD|=BIT(PD2); //PORTD|=BIT(PD2); USART_Init(); //UART_Puts("\r\n 你发送的字符串是:");//发送字符串 PORTD&=~BIT(PD2); DDRD|=BIT(PD2); while(1) { if(RX_Flag)