rs485串口通信原理(通用6篇)
rs485串口通信原理 篇1
串口是计算机上一种非常通用设备通信的协议。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:
波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。
rs485串口通信原理 篇2
在一对多的通信模式中, 由于主机与从机、从机与从机之间的物理位置相距较远, 运行环境复杂、干扰大, 使用RS232串口通信协议完全不能达到要求, 而通信距离远、抗干扰能力强的RS485串口协议倍受青睐[1]。它采用差分信号进行传输, 最大传输距离可以达到1km, 最多可连接32个驱动器和收发器;接收器最小灵敏度可达±200m V;最大传输速率可达10Mbps。
本设计就是利用51单片机自身的串行通信口设计出基于RS485的多机通信系统, 实现3个通信终端之间互相通信的功能。
2、多机通信原理
多机通信中, 要保证主机与从机实现可靠通信, 必须通信接口具有识别功能, 而单片机的串行口控制寄存器SCON中的S M2就是满足这一要求而设置的。在串行口以方式2或方式3工作时, 发送和接收的每一帧信息都是11位, 其中第9数据位是可编程位, 通过对SCON的TB8赋1或0, 来区别发送的是地址帧还是数据帧 (规定地址帧的第9位为1, 数据帧的第9位为0) 。若从机的控制位SM2=1, 则当接收的是地址帧时, 数据装入SBUF, 并置RI=1;若接收的是数据帧, 则不置RI, 信息将抛弃;若SM2=0, 则无论是地址帧还是数据帧都产生RI=1中断标志, 数据装入SBUF。多机通信过程如下:
(1) 使所有从机的SM2位置1, 处于只接收地址帧的状态。 (2) 主机发送一帧地址信息, 其中包含8位地址, 第9位为地址、数据标志位, 第9位置1表示发送的是地址。 (3) 从机接收到地址帧后, 各自将所接收的地址与本从机的地址相比较。对地址相符的从机, 使S M2清0以接收主机随后发来的所有信息;对于地址不相符合的从机, 仍保持SM2=1状态, 对主机随后发送的数据不予理睬。 (4) 当主机改为与另外从机联系时, 可再发地址帧寻址其从机, 而先前被寻址过的从机, 恢复SM2=1。
3、MAX485芯片简介
本系统采用MAX485芯片为RS-485总线驱动芯片, MAX485芯片内部含有一个驱动器和接收器, 用于实现RS-485的半双工通信。MAX485采用单一电源+5V工作, 额定电流为300u A, 完成将TTL电平转换为RS-485电平的功能。MAX485的A端和B端分别为接收和发送的差分信号端, 当A引脚的电平高于B时, 代表发送的数据为1;当A的电平低于B端时, 代表发送的数据为0, 在M AX485的A和B端之间需要连接一个匹配电阻, 一般可选120欧的电阻[2]。
4、多机通信系统设计
RS-485方式构成的多机通信系统采用主从式结构:主机控制多个从机, 作为从机的单片机不主动发送命令或数据, 一切都由主机单片机控制;并且在一个多机系统中, 只有一台主机, 各台从机之间不能相互通信, 即使有信息交换也必须通过主机转发。采用RS-485构成的多机通信系统原理框图, 如图1所示。在总线末端接一个匹配电阻, 吸收总线上的反射信号, 使得正常传输信号无毛刺。匹配电阻的取值应该与总线的特性阻抗相当。在总线上没有信号传输时, 总线处于悬浮状态, 容易受干扰信号的影响。将总线上的差分信号的正端A+和负端B-之间接一个10K的电阻;负端B-和地间接一个10K的电阻, 形成一个电阻网路。当总线上没有信号传输时, 正端A+的电平大约为3.2V, 负端B-的电平大约为1.6V, 即使有干扰信号, 也很难产生串行通信的起始信号0, 从而增加了总线抗干扰的能力[3]。
5、多机通信协议及通信规则
为保证单片机之间的通信进行, 需要制定相应的通信协议, 保证数据格式一致、通信波特率相同。如果是多点通信, 每个从机要分配一个地址码。系统中协议有三种帧格式:呼叫帧、应答帧和数据帧。呼叫帧由主机发出, 应答帧只能由从机发出。当从机收到呼叫帧后, 把本机地址和当前状态回发给主机。
数据通信总是由主机发起, 主机处于发送状态“说”时, 从机总是出于“听”状态。若主机发送的地址信息与本地从机相符, 则接收该数据, 否则, 继续“听”总线上的数据。若从机需要发送数据, 则必须等到主机轮询本地从机时, 才可提出请求。这种网络模式下从机不会“侦听”其他从机对主机的响应, 这样就不会对其他从机产生错误的响应。在多机通信协议中, 通信速率设为19.2kbps, 系统上电或复位后, 使所有从机的SM2位置1, 处于只接收地址帧监听状态。主机向从机发送一帧地址信息, 从机接收到地址帧后, 将其与本地地址比较, 判断是否一致。若与本地地址相符, 则清除SM2, 同时发送应答帧, 进入通信状态;其他与本地地址不相符的从机则保持SM2位不变, 继续监听。主从机均以中断方式进行通信。
由于MAX485通信是一种半双工通信, 发送和接收共用同一物理信道。在任意时刻只允许一台单机处于发送状态。因此要求应答的单机必须在侦听到总线上呼叫信号已经发送完毕, 并且没有其它单机发出应答信号的情况下, 才能应答。半双工通信对主机和从机的发送和接收时序有严格的要求。如果在时序上配合不好, 就会发生总线冲突, 使整个系统的通信瘫痪, 无法正常工作。要做到总线上的设备在时序上的严格配合, 必须要遵从以下几项原则:
(1) 复位时, 主从机都应该处于接收状态。 (2) 控制端RE, DE的信号的有效脉宽应该大于发送或接收一帧信号的宽度。 (3) 总线上所连接的各单机的发送控制信号在时序上完全隔开。主机发送和接收的程序流程如图2所示:
6、可靠性及常见故障
在单片机之间中长距离通信的诸多方案中, RS-485因其优点广泛应用于各个领域。但RS-485总线在抗干扰、自适应、通信效率等方面仍存在缺陷, 一些细节的处理不当常会导致通信失败甚至系统瘫痪等故障, 因此提高RS-485总线的运行可靠性至关重要。
RS485驱动器输出信号中的共模部分需要一个返回通路, 如果没有一个低阻的返回通道 (信号地) , 就会以辐射的形式返回源端, 整个总线就会像一个巨大的天线向外辐射电磁波。当共模干扰源内阻较小时, 会在接地线上形成较大的环路电流, 影响正常通信。可以采取以下三种措施: (1) 如果干扰源内阻不是非常小, 可以考虑在接地线上加限流电阻限制干扰电流。接地电阻的增加可能会使共模电压升高, 但只要控制在适当的范围内就不会影响正常通信。 (2) 采用浮地技术, 隔断接地环路。当共模干扰电阻很小时上述方法已不能奏效, 此时可以考虑将引入干扰的结点 (例如处于恶劣工作环境的现场仪表) 浮置起来, 也就是系统的电路地与机壳或大地隔离, 这样就隔断了接地环路, 不会形成很大的环路电流。 (3) 采用隔离接口。有些情况下, 出于安全或其他方面的考虑, 电路地必须与机壳或大地相连, 不能悬浮, 这时可以采用隔离接口来隔离接地回路, 但是仍然应该有一条地线将隔离侧的公共端与其他接口的工作地相连[3]。
7、结语
通过科学的设计和实践, 实现了主机控制两台从机的功能, 并且制定了简单的通信协议, 达到了预期效果, 系统运行情况表明, 设计是正确的, 工作是可靠的, 为进一步的工程应用实践打下了良好的基础。
摘要:本文简要介绍了RS485通信协议及多机通信原理, 给出了利用STC89C52单片机和MAX485实现多机通信的系统设计, 并提出了一些改善意见。
关键词:单片机,多机通信,RS-485
参考文献
[1]刘涛, 马积勋, 廉海涛.利用RS-485通信协议实现PC机与单片机的多点通信[J].现代电子技术, 2002 (05) :86-87, 90.
[2]陈铁军, 谢春萍.PC机与RS485总线多机串行通信的软硬件设计[J].现代电子技术, 2007 (05) :80-86.
rs485串口通信原理 篇3
关键词:RS485总线;控水POS机;防雷
中图分类号:G712 文献标志码:A 文章编号:1674-9324(2012)12-0176-02
随着计算机技术和电气控制技术的发展,RS-485通信被广泛应用于安防监控、电力控制、远程计量、水控电控、远程遥控等系统中,实现了远程数据采集和设备控制,目前在各大院校逐步推广使用的水控管理系统就是一个典型应用。水控管理系统主要用于控制公共浴室、公寓洗澡间和开水房的用水管理,系统硬件由管理服务器、一级管理机、二级管理机、智能级联器、控水POS机组成。管理服务器与一级管理机之间采用RS232串行通讯,一级二级管理机、智能级联器、控水POS机之间均采用RS485通讯。使用管理服务器上的软件可以很方便地对各终端控水POS机的运行状况进行监控和管理,系统配置一级管理机一台,二级管理机可配60台,每台二级管理机所带控水POS机最多为100台(二级管理机连接智能级联器,智能级联器连接控水POS机)。系统理论上最多带6000台控水POS机。
一、问题提出
由于水控管理系统的控水POS机分布面广,并不局限在一幢宿舍楼内,485通信线路必须在各楼宇间铺设,这就造成了雷击隐患,特别是在南方多雨地区,极易造成通信设备的硬件损坏,造成系统大面积故障的发生。雷击现象产生的根源是:雷雨天气,天空云层间由于风力作用产生摩擦,形成电荷积累产生高压,瞬间放电时造成高频辐射及感应电压,造成电子设备击穿损坏。在系统设计阶段,可以从以下几个方面来优化设计,考虑以下防雷措施。
1.电源供电:控水POS机电源可采用级联器供电方式,级联器采用线性电源供电,应用带硅钢片的绕组变压器,能有效利用硅钢片的磁饱和特征来隔离雷击时高压。一级管理机、二级管理机均应采用线性电源供电。
2.接地:控水POS机终端、级联器避免重复接地。屏蔽线材的地线,应分区单独接地,不能形成多点同地现象,防止接地线路中产生非工作电流。
3.分流:在设计RS485通信模块时,可以考虑使用气体放电管、高速稳压管来保护485通信线路,这些元件在雷击时会对高压进行分流泄放,对控制线间电压有一定的保护作用。
4.隔离:在设计RS485通信输入输出时,采用隔离电源并使用光耦元件对信号进行隔离通信,也是防止雷击损坏故障的有效措施。以上几点防雷措施,在早期的RS485应用系统的设计中,许多方面未得到重视,造成系统运行时防雷性能薄弱,系统雷击故障难以有效避免。
二、改造方案
针对雷击现象,如果在系统设计时未考虑到防雷设计,未采用线性电源供电、分流和隔离方法进行预防,那么在户外通信线路选择和施工上,就必须采取有效措施来补救,可以采用以下几种方法实施。
1.直连屏蔽:使用485通信电缆直连布线,采用线路屏蔽接地的方法,如采用具有屏蔽层的双绞线电缆,屏蔽层在楼宇外做专门的接地方案;或者采用双绞线穿铁管,铁管进行屏蔽接地,但铁管施工成本高昂。该方案需要多个专用接地,施工和维护成本相应增加。同时,由于户外485线路较长,选择的线径不宜太细,以免通信线路电阻对信号系统造成不必要的影响,一般应选择线径在0.75MM以上的双胶线。
2.电—电隔离器:布线采用不带屏蔽层的双胶线,在楼宇通信线路边界处,使用电—电通信隔离器,将户外线路与楼内通信线路完全隔离。该方案需成对增加隔离器,能有效降低雷击通信设备现象的发生概率,极端情况下,也仅仅损坏成本较低的隔离器,该方案优点是成本低,部署方便,对既有的通信线路没有大的变动。
3.光—电隔離:使用光纤布线,增加一对485光电协议转换器(光端机),楼宇内使用485通信,户外采用光纤通信,由于光纤本身是绝缘材料,能彻底避免户外线路造成雷击故障的发生。随着光纤价格的价格走低,光纤应用已成为目前应用系统户外布线首选方案。
三、典型案例
我院在2003年实施校园一卡通工程,水控系统共有控水POS机2310只,分为宿舍东区和西区,楼宇间采用485信号线直连方式户外通信,未有屏蔽和接地保护。由于宿舍东区西区距离较远,485通信线路较长,线路反射较大,使用一台服务器和管理机时不能有效管理到所有的控水POS机,所以建设初期,在东区和西区各架设一台服务器和管理机。在历年的夏季高温雷雨季节时,经常有雷击损坏一级管理机、二级管理机、级联器等大面积故障发生。针对该现象,学院组织了485通信线路技术改造,考虑到同步应用的电控系统、宿舍区校园网络、监控应用的需求,应用第三种方案即光—电隔离方案,对原有的水控系统、电控系统的485通信网络进行了改造。改造方案采用户外8芯光纤到楼宇,光纤汇集到管理机房,8芯光纤中水控系统485通信占用一芯,电控系统485通信占用一芯,互联网通信占用两芯,安防监控系统通信占用一芯,备用3芯。水控系统经户外线路改造后,取得了良好效果,主要表现在以下几个方面。
1.通信质量大为改善。原来宿舍区分为东西两片,一台管理机不能有效管理两片宿舍区,采用两台管理机分别进行管理;改造完成后,由于减小了通信线路反射,通信质量有所提高,目前一台服务器和一级管理机可以管理到所有控水POS机。节约了一台管理服务器和一台一级管理机及相应的运维,优化了系统结构,提高了管理效率。
2.通信设备安全性大大提高,改造后的近两年来,未发生过雷击损坏故障,保障了系统设备的安全。水控系统可以不间断长期运行,也提高了服务质量。
3.改造中使用的8芯光纤,分别融合了互联网、电控、安防监控等应用,为各子系统的应用提供了一个较好的通信线路条件,并提供了通信线路布线冗余。
四、发展方向
众所周知,RS485通信网络的优势是经济、部署灵活、使用方便,而缺点就是不适合做长距离通信,在长距离通信时,易造成负载能力下降、防雷性能差、线路反射增大等。如何用好RS485,更好地为系统应用服务,是未来总线发展首要问题。随着物联网的发展,相关标准也已经逐步完善,原来基于485的传输的系统设计也必将规范为现场总线传输。IEC61158标准定义,现场总线是指安装在制造或过程区域的现场装置与控制室内的自动控制装置之间数字式、串行、多点通信的数据总线。RS232、RS485只能代表通信的物理介质层和链路层,如果实现数据的双向访问,就必须自己编写通信应用和程序。而现场总线技术是以ISO/OSI模型为基础的,具有完整的软件支持。
五、结语
在校园信息化管理系统中,水控电控由于使用传统RS485通信线路进行户外布线,极易造成雷击损坏故障的发生,采用户外线路防雷改造方案,能使早期的RS485应用系统继续保持原有的应用和功能。本文提供的三种户外RS485线路改造方法,具有较强的针对性,特别是光纤方案,有着明显的优点。如何让在用的RS485管理信息系统防止雷击故障,本文提供了改造方案和典型案例,并指明了未来发展方向。
参考文献:
[1]徐瑞亚,张智玮.电子信息设备的防雷接地系统[J].低压电器,2009,(6).
[2]潘群,向军,王琳.RS485串行通信接口电路的设计与应用[J].常州工学院学报,2009,(3).
rs485串口通信原理 篇4
一、RS-485总线技术的特点
在一般的测控系统中, 采用普通的双绞线就基本能满足系统需求, 在特殊的应用场合中, 需要采用带屏蔽层的同轴电缆。在信号失真和噪声的影响下, 数字信号允许的最大电缆长度与信号传输波特率成反比例关系, 而RS-485总线在理论上的最大传输距离可达1200m。在传输过程中, 其最多可挂32个底层模块, 利用中继器放大信号, 这样可以有效提高其传输的最大理论距离, 使其长达9.6km。在网络布局中, 一般采用终端匹配总线型结构, 不支持星型和环形结构。
二、能源计量系统功能与构成
1. 系统功能
企业的能源消耗可以简单分成电能量和非电能量, 前者包括自来水、热水、天然气、压缩空气等, 系统对这几项的使用消耗情况进行实时监控和计量, 生成企业经营管理活动中需要的报表, 并对异常情况报警。从总体上来说, 能源计量系统的实时监控、生成报表等功能能为企业的节能减排工作提供科学的依据, 帮助企业了解节能减排的缺口和入手点。同时, 能源计量系统改变了传统的人工计量工作面貌, 能及时发现各类能源在消耗过程中出现的跑、冒、滴、漏等问题, 并促使有关人员立即采取恰当措施解决, 帮助企业节约了成本[1]。
2. 系统结构
该系统采用主从结构, 运用RS-485总线技术实现数据通信传输, 上位机是主站, 现场仪表是从站。该系统的运行流程为:主站向RS-485总线发送数据采集命令, 从站立即作出响应, 并将采集数据结果发送给主站, 这样就实现了主站与从站之间的信息交流沟通, 实现对能源使用的监控和计量[2]。
3. RS-485应用层通信协议
要想通过RS-485总线将主站的指令传递给现场仪表, 必须要有一个可靠的应用层通信协议, 确保主站与从站之间的信息交流顺畅。基于RS-485总线的数据传输单元有两种数据格式:不带校验码的10bit和带校验码的11bit。为提高数据传输效率, 我们为非电能量设计的应用层通信协议为10bit数据格式, 并采用CRC校验生成校验码, 与数据一起发送;为电能量设计11bit数据格式。
首先, 在非电能量应用层通信协议上, 通信方式为异步串行通信RS-485, 波特率为9.6kb/s, 采用无校验码的10bit数据格式, 该数据格式中有一个停止位、1个起始位和8个数据位, 其停止位和起始位由系统硬件自动生成。在通信数据传输格式上, 为提高协议的可靠性, 决定采用ACSⅡ码, 实际应用中有定点数和浮点数两种, 其中的定点数=低字节高4位+低字节低4位+高字节高4位+高字节低4位组成。浮点数=第1字节高4位+第1字节低4位+第2字节高4位+第2字节低4位+第3字节高4位+第3字节低4位+第4字节高4位+第4字节低4位。其次, 电能量应用层通信协议, 采用异步串行通信RS-485, 波特率为1.2kb/s, 字节格式为11bit数据格式, 有1个起始位、1个停止位、1个偶校验位和8个数据位。在具体的数据传输中, 发送方对数据进行加33H处理, 而接收方则对数据进行减33H处理[3]。
4. 软件实现
由于企业能源计量系统的核心是采集能源消耗情况, 故数据采集是整个系统的核心, 也是软件设计和实现的难点。本系统的数据采集软件用VB11.0编写, 上位机通过2.3中提到的RS-485应用层通信协议实现能源数据的接收。现场仪表接收到上位机的读取数据指令后, 立即判断DE是否与自身设备型号匹配, 接着判断校验码是否正确, 若正确就接收和解析数据, 并向上位机发送数据。
为提高编程的效率和可靠性, 上位机程序采用定时器对现场仪表实现轮询, 数据采集时间的间隔则根据仪表数据量来确定。采用中断方式接收数据, 产生On Comm () 时, 系统自动接收数据, 然后再借助RS-485应用层通信协议校验数据, 并判断校验是否正确, 若正确, 系统对数据进行相应的处理, 不正确则重新读取现场仪表上的数据, 重复以上过程。当现场仪表出现故障时, 系统无法正确读取现场仪表上的数据, 而现场仪表也无法正确响应主站的指令, 这时就可能导致系统运行的故障。而本文中提出的系统利用定时器消除这类故障, 一旦定时器超时, 自动跳过该现场仪表到下一现场仪表上读取数据, 并且发出报警信号, 相关工作人员立即对该仪表进行维修处理。该系统上的各个现场仪表相互独立, 互补干扰, 能有效提高系统的可靠性。
三、结束语
综上所述, 基于RS-485能源计量系统, 为实现系统数据采集功能, 首先需要制定应用层通信协议, 在此基础上设计上位机和下位机通信软件, 从而实现企业能源计量自动化。
参考文献
[1]林景波, 祁国华, 马培锋, 等.基于RS-485企业能源计量系统通信和软件的设计[J].低压电器, 2006, (12) :30-33.
[2]王文华, 王志新.基于RS-485总线的能源量计量系统设计研究[J].自动化仪表, 2008, 29 (2) :41-43.
rs485串口通信原理 篇5
由于RS-485通信具有设备简单、容易实现、传输距离较远、维护方便等优点而被许多变频器厂家所采用。对于旋转试验平台需要频繁起停的场合,采用操作面板对变频器进行参数设置或起停操作就显得尤为不便,特别在进行上万次起停循环寿命试验时,对试验系统的全自动化测控就显得尤为重要了。
目前,串口通信程序一般用VB、VC等开发,操作者不得不面对非常繁琐的API函数编程,给编程人员带来许多不便[1]。而Lab VIEW采用流程图式的开发环境大大简化了程序开发的复杂程度,缩短了开发周期,且内置了数据采集、仪器控制、过程监控和自动测试功能,包括VISA、GPIB、RS232、DAQ等模块和基本分析库[2],为实现变频器与工控机的通信、数据采集和系统控制等综合功能提供了一个很好的途径。本文即针对富士变频器FRN1.5E1S-7C采用Lab VIEW开发用于变频器运行控制和状态监测的RS485通信程序。
2 系统结构
由于富士FRN1.5E1S-7C变频器内置了RS485接口,因此在连接工控机与变频器时需在工控机的RS232接口上加装RS232-RS485转换器进行接口转换。系统结构框图如图1所示。
在富士变频器中,为了方便和标准的RS232-RS485转换器进行连接,采用RJ45作为连接接口。将RJ45连接器的引脚以4对排列转换为标准的2对排列,在4引脚上分配DX-,在5引脚上分配DX+信号。其引脚定义和连接方法如图2所示。
在变频器的RJ-45连接器中,连接有操作面板用电源(1,2,7,8引脚)。在和其他设备进行连接时,不能使用分配给电源的引脚,只使用信号线(4,5引脚)。
需要注意的是,在连接变频器时,连接电缆的两端需接入终端电阻(100~120Ω),这样能抑制信号的反射,降低噪声。且必须在终端主机侧和最终连接的设备侧,即构成网络的两终端设备中分别接入终端电阻。变频器作为终端设备时,须把终端电阻接入开关设置为ON状态,连接操作面板时必须把终端电阻切换到OFF状态。
3 通信协议
作为通信控制变频器用的协议,富士变频器备有在各种设备中广泛使用的Modbus RTU协议,和包含了各种机种的富士变频器共同协议的富士通用变频器协议。富士通用变频器协议的传送帧有两种,一种为所有的通信功能都能利用的标准帧;另一种为可向变频器发送指令和可进行被监视器所限定的高速通信的选项帧[3]。本文为了提高程序的可阅读性和标准化,采用通用变频器协议的标准帧作为传送指令格式。标准帧各字段的内容如图3所示。
各字段的含义如下:
SOH:电文开始;
站号:变频器站地址,与变频器功能代码y01设置相同;
ENQ:传送请求,表示由上位机向变频器发送指令,在接收请求后变频器会返回应答帧,此时该字段为ACK(肯定应答)或NAK(否定应答);
命令:R查询(读出),W选择(写入),A高速应答选择(写入),E报警复位;
种类:命令指定的功能;
功能号码:指定具体的功能代码;
SP:未使用;
数据:写入的数据,需要根据不同指令的数据格式将十进制数按规则转换为十六进制,在查询时为0000;
ETX:电文结束;
BCC:校验和,用于检查数据传送时通信帧中有无错误发生,计算方法为:除去SOH以及校验和外,其余所有字段中的字节逐个相加,取其低位字节,再用ASII码表示的数据。
4 通信切换
富士FRN1.5E1S-7C变频器有7个数字量输入端子:【X1】~【X5】、【FWD】和【REV】,其对应的相关功能代码为E01~E05、E98和E99。当这些数字量输入端子未分配为链接运转选择(『LE』,即设定E01~E05、E98、E99中的任何一个等于24)时,自动地为通信有效。另外,把数字量输入端子相关功能代码分配为链接运转选择,然后将其对应的端子与【CM】端子进行短路(链接运转选择为ON),也可设定通信有效。当在链接运转选择中设定数字量输入,使链接无效(『LE』=OFF)时,指令系统将从通信切换至端子台等通信以外设定。即变频器的频率设定、正转运转指令,X1信号从通信专用功能代码S01、S05、S06切换到端子【12】、【FWD】、【X1】。
将功能代码H30链接功能(动作选择)设定为3,选择通信有效时的频率设定以及运转指令均通过485通信发出指令。
需要注意的是,即使在通信无效时,指令数据以及运转操作数据的写入仍为有效,但是因为链接运转选择开关为无效,因此不被反映。
5 Lab VIEW程序设计
富士变频器可以接收字符型和十六进制的传送帧,由于SOH为自定义字符,以字符串形式发送时,程序会默认将SOH作为3个ASCII字符来发送,因此程序设计时须采用十六进制的传送帧进行发送。
在Lab VIEW中,串口写入这个模块只支持字符串型的输入数据类型,输入的字符串自动转换成U8(字符串的ASCII码)的形式后再发送,串口读出的内容也是字符串形式的,因此,在串口写入前需要将十六进制指令转换成字符串,可以使用“字节数组至字符串转换”命令实现。在串口读出后须将字符串形式的应答帧转换为十六进制数组,便于获取所需参数,可以通过“字符串至字节数组转换”命令来实现。
以电机的起动和运转时的转速监测为例,变频器的RS485通信控制程序如图4所示。
根据变频器的控制逻辑,按照数据流的方向,程序主要有以下几个功能模块。
(1)配制串口,设置串口资源名称、波特率、数据位、校验位和停止位,相关设置必须与主机接口和变频器y04、y05、y06、y07参数设置一致。
(2)将转速按变频器格式转换成频率,并转换为十六进制。
(3)将转速数据添加到指令中。
(4)计算校验和,并将各字段组合成完整指令。
(5)写入频率,以10Hz为例,指令格式为SOH01EN-QWS05SP03E8ETX78。由于变频器通信时存在响应间隔时间和收信准备时间,因此需在各个指令之间设定延时时间,避免通信出错。
(6)读取写入频率的应答帧。
(7)起动电机,电机运转指令的数据格式与变频器E01~E05的设置有关,具体格式可参阅RS485通信用户手册[3]。本文在设置变频器时未使用E01~E05的任何功能,因此运转指令的数据部分的X1~X5均为0,电机正转时的指令格式为SOH01ENQWS06SP0001ETX5A。
(8)读取电机运转指令的应答。
(9)电机正反转选择。
(10)发送读取频率指令,指令格式为SOH01EN-QRM09SP0000ETX51。
(11)读取变频器应答,提取频率并转换为转速进行显示。
上述程序实现了变频器任意频率的写入、电机的起动和电机运转时变频器的输出频率,其他的功能实现和参数设置与上述实现过程类似,不再赘述。
6 结束语
工程试验很多场合都需要对测试终端实现自动化控制,不仅仅是对电机的控制,很多测试设备都是通过RS485来实现与外部的信息交换。本文利用Lab VIEW在测试控制方面强大的功能和简单易行的语言特点,实现了富士变频器的自动化控制和状态监测,大大降低了试验操作复杂性,同时也为其他基于RS485通信的测试设备的自动数据采集提供了参考。
参考文献
[1]孟辉,李健,袁成清.基于Lab-VIEW的PC机与变频器的串口通信[J].现代电子技术,2008(17):111-113.
[2]王磊,陶梅.精通LabVIEW8.0[M].北京:电子工业出版社,2007.
rs485串口通信原理 篇6
在当今的数据采集和工业控制中多以单片机为基础, 在我国以前多用MCS-51系列单片机。近年来, ATMEL公司推出了AVR单片机, 它与51系列单片机相比有更快的运算速度和更强大的功能, 更适合于工业控制, 因此工业控制系统中AVR单片机应用得越来越普遍。PC机大多通过RS232接口对单片机进行控制, 由于计算机上的RS232协议所传输的距离不能超过30 m, 所以在远距离数据传送和控制时, 需将RS232转换成RS485协议进行远距离传输, 但这个转换多是通过购买现成的RS-232/485转换器实现, 在单片机端通过相应的RS485转换芯片将485信号转换成单片机需要的串口信号, 在本文中采用的是SN75176芯片。RS485协议对数据传送来说是透明的, 所以在计算机和单片机的通信程序方面和不用RS485协议时几乎是一样的。PC机与单片机一般采用应答方式通信, 当PC机控制多个单片机终端时, PC机发送一个地址帧选中一个终端, 再对选中的终端进行一对一的通信, 实现这种通信方式需要对发送帧的格式和单片机端的相应寄存器进行设置。
1 系统硬件组成
该通信系统由1台PC机作为主控机, 以ATmega16 AVR单片机为核心作为系统终端, 通过RS485总线结构将PC机和各个终端机连接起来。PC机通过RS232/485转换器连接到485总线, PC机通过查询方式与各个终端通信, 完成监测、控制等功能, PC机也可以连接到局域网, 实现信息的网络传输。各个终端接受主控机指令, 完成就地调整、控制、测量以及信息回传等工作。ATmega16 AVR单片机通过SN75176连接到485总线实现与主控机通信。系统硬件结构如图1所示。
2 通信协议及数据传输过程
本系统的通信对波特率没有特殊要求, 在保证通信可靠的情况下尽量采用较高的通信波特率, 对于传输信息的帧, 要求有1位起始位、8位数据位、1位标志位 (0表示数据, 1表示地址) 和1位停止位。
每个终端机有一个地址编号, 各个终端通过寄存器设置成接收地址。通信时主控PC机首先发送地址帧, 数据是所要操控的终端机的编号, 标志位是1, 这时各个终端都接收这个地址帧;各终端接收到地址帧后, 把收到的地址数据与本身的地址编号进行比较, 如果不相等, 则设置成地址接收方式, 继续等待接收地址;如果收到的地址数据与本机的地址编号相同, 则该终端单片机设置成数据接收方式, 并返回该机地址, 等待接收数据;主控PC机在规定的时间内接收到终端机返回的地址后, 发送数据帧;终端机接收到主控机的数据后, 完成主机要求的任务, 并回传主控机要求的数据, 通信结束后终端机重新设置成地址接收方式。
3 通信实现
3.1 采用Visual Basic6.0实现串行通信
采用Visual Basic6.0实现串行通信有2种方式: (1) 通过调用Windows API函数来实现, 这种方法需要对API函数有比较深的认识, 软件编写比较复杂; (2) 通过VB6.0的MSComm控件实现, 它能方便地实现对串口的设置和操控。使用该控件关键是对它的Settings属性进行设置, 该属性格式为“BBBB, P, D, S”, 其中BBBB表示传输速率, P表示校验检查方式, D表示数据位数, S表示停止位数。VB6.0的校验检查种类如表1所示。
该系统中如果设置波特率为1 200 bps, 按前面通信协议的要求, 则传输地址帧时Settings属性应设置为“1 200, M, 8, 1” (第9位为1) , 传输数据帧时该属性应设置为“1 200, S, 8, 1” (第9位为0) 。
MSComm控件其它几个重要属性的说明如下:
CommPort属性:该属性用于设置或返回通信连接端口号码, 程序必须指定所要使用的串行端口的号码, Windows系统使用所设置的通信端口与外界通信。
InputMode属性:用于设置或返回MSComm控件接收数据的类型, 该属性设置为0, 则接收的是ASCII码字符类型。本文所设计的通信系统传输的数据超过了ASCII字符的范围, 所以设置该属性为1, MSComm控件以二进制方式取得数据。
PortOpen属性:用于设置或返回通信端口的状态。在使用串行端口之前必须首先打开该端口, 而在使用完毕后, 也必须执行关闭操作。
Output属性:用于将要发送的数据输入传输缓冲区。当PC机需要向终端机发送一串数据时, 可以将包含该串数据的字节数组附给MSComm控件的Output属性, 计算机就会自动地将这些数据发送出去。
Input属性:返回输入缓冲区中的数据, 并清空输入缓冲区。该属性用于接收终端机返回PC机的数据, 并将数据存入到字节数组中。
PC机与终端机通信的程序流程如图2所示。
3.2 ATmega16 AVR单片机与SN75176的接线
本系统中ATmega16 AVR单片机通过RS485转换器SN75176连接到485网络, 其接线如图2所示。
SN75176的B和A两个管脚分别接到485总线的B、A两条线上;R和D管脚分别连接到ATmega16的RXD和TXD管脚上;控制SN75176允许接收和允许发送的2个管脚undefined、DE短接在一起, 然后连接到ATmega16的PD2管脚上, 当ATmega16要从485总线接收数据时, PD2输出低电平 (PD2=0) ;当ATmega16要向外发送数据时, 需要先将PD2设置为高电平 (PD2=1) 。这2个芯片都要求+5 V电压供电, 所以将它们的VCC管脚都接到+5 V电源上即可。
3.3 ATmega16 AVR单片机的通信程序
从通信协议及数据传输过程可知, ATmega16 AVR单片机在初始化后要保持接收地址状态, 当接收到本机地址后回送地址并设置本机为接收数据状态, 接收完数据后作出相应的反应, 最后回到接收地址的状态。ATmega16 AVR单片机串口通信程序流程如图4所示。
ATmega16 AVR单片机在进行串行通信之前先要完成串口设置, 使其通信波特率与PC主机波特率相同, 并打开串口接收中断。
4 结语
本文介绍了一个以PC机为主控机, 以ATmega16AVR单片机为核心构成终端机, 通过RS485网络把它们连接起来的计算机监控系统的实现方法, 重点介绍了利用Visual Basic6.0控件访问串口实现串行通信、利用SN75176实现单片机的RS485接口转换以及实现AVR单片机串口终端响应程序的方法等, 对工业上利用AVR单片机设计智能监控系统具有一定的指导意义。
参考文献
[1]谢伟, 张永建, 张永超, 等.VB6.0在主通风机分布式监测中的运用[J].煤矿机械, 2005 (5) :71~72.
[2]范逸之.Visual Basic与分布式监控系统——RS232/485串行通信[M].北京:清华大学出版社, 2002.
[3]李长林.AVR单片机应用设计[M].北京:电子工业出版社, 2005.