多路RS-485板的开发与应用

2013-09-07 07:50徐敏航
中国修船 2013年5期
关键词:通信协议传输速率寄存器

徐敏航,叶 蓓

(1.海军驻上海711所军事代表室,上海 201108;2.上海船舶运输科学研究所,上海 200135)

多路RS-485板的开发与应用

徐敏航1,叶 蓓2

(1.海军驻上海711所军事代表室,上海 201108;2.上海船舶运输科学研究所,上海 200135)

多路RS-485板采用RS-485通信构成远程控制网络,该网络的拓扑结构采用总线结构,传送数据采用单片机通信,传输介质为4芯屏蔽电缆。硬件设计包括通信接口收发模块与多路串口通信技术2个主要部分,在通信接口收发模块中,介绍了MAX485收发器的原理及应用;而在多路串口通信技术中,介绍了该电路板中SC16C554芯片的性能及应用。针对RS-485网络的应用层,介绍了ModBus通信协议的协议特点。该电路板在船舶自动化领域已经得到了广泛的应用。

RS-485;多路串口通信;数据采集

RS-485标准是一种相对经济、高噪声抑制、高传输速率、传输距离远、宽共模范围的通信平台。同时,RS-485电路具有使用方便、可靠性高和成本低廉等优点,最多可以在平衡电缆上连接32个发送器/接收器,在工业控制、电力通信、智能监控领域有着非常广泛的应用[1],特别适用于工业控制领域进行分布式管理、联网检测控件等。目前Profibus-DP、Arcnet和CAN等总线标准的物理层均是RS-485规范。

随着RS-485通信接口的广泛应用和工业控制的飞速发展,多串口通信显得越来越重要。串口通信具有通信线路简单、使用灵活方便、数据传递安全可靠的优点,在工业控制、数据采集和实时监控等场合得到广泛的应用。多串口芯片的性能在不断提高、数据处理能力在不断加强,其应用领域日益增多,应用范围涉及信号处理的诸多行业。本文介绍的多路RS-485板可用于各类船舶自动化控制系统,包括主机遥控系统、机舱监测系统和电站监控系统。

1 RS-485串行接口标准

RS-485标准是一种平衡传输方式的串行接口标准,也是多发送器的电路标准,允许在双导线上有多个发送器,也允许一个发送器驱动多个负载的设备。

一般情况下,发送驱动器之间的正电平在+2~+6 V,负电平在-2~-6 V,还有一个信号地。RS-485标准使用一对双绞线进行传输,数据信号采用差分方式[2]。在RS-485器件中,通常还有一个使能控制信号,该信号用于控制发送驱动器与传输线的切断与连接。当使能端起作用时,发送驱动器处于高阻状态,它是有别于逻辑“1”与“0”的第3种状态。

对于接收器,也有与发送驱动器相对的规定,收、发端通过平衡双绞线将A-A与B-B对应相连[3]。当在接收端A-B之间有大于+200 mV的电平时,输出正电平;小于-200 mV时,输出负电平。在接收器的接收平衡线上,电平范围通常在200 mV至6 V之间。

TIA/EIA-485串行通信方式标准性能如表1所示。

表1 TIA/EIA-485通信方式性能

2 RS-485电气规定

RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。RS-485有二线与四线方式,二线制可实现真正的多点双向通信。采用四线方式时,只能实现点对多的通信,只能有一个主设备,其余为从设备,但无论二线还是四线连接方式,总线上都可连接32个设备。

RS-485的特点是抗干扰能力强,传输距离远,速率高。平衡双绞线的长度与传输速率成反比,如果采用双绞线传输信号,当最大传输速率为100 Mbit/s,传输距离为15 m;在最大100 kbit/s的传输速率下,可以传输1 200 m;如果最大传输速率为9 600 bit/s,则传输距离可达1 500 m。

RS-485电路需要2个终端电阻,其匹配阻值等于传输电缆的特性阻抗。在短距离传输时可以不需要终端电阻,通常在300 m以内不需要。终端电阻接在传输总线的两端。

3 电路设计

3.1 通信接口收发模块

RS-485芯片已广泛应用于工业控制、仪器仪表、智能化系统控制、监控报警、机电一体化产品等许多领域,市场上可用的芯片种类越来越多,选择最合适的芯片往往是每个设计者都会遇到的一个问题。在不同的应用场合,RS-485接口对芯片的要求和使用方法也不同。半双工通信的芯片主要有SN75176、SN75LBC184、MAX485、MAX1487 等;全双工通信的芯片主要有 SN75179、MAX490、MAX1482等。在工业控制领域较为常用的通信接口之一就是物理层采用MAX485的通信接口,可以方便地将许多设备组成一个控制网络。MAX485芯片具有结构简单、价格低廉、抗雷击和抗静电冲击、通信距离和数据传输速率适当等特点。

MAX485是Maxim公司生产的一种低功耗、可用于RS-485和RS-422通信的收发器,通信方式采用半双工,数据传输率为2.5 Mbit/s。该芯片有DIP/SO和μMAX 2种封装形式,它们只是引脚定义的顺序不同,代表的含义是相同的。DE和RE分别是该芯片的发送使能和接收使能,控制通信的收发状态。DI和RO是信号的输入端和输出端,一般情况下是与单片机的串口TXD和RXD相连。A和B是差分信号的两端,当A的电平高于B端200 mV时,代表RO输出是高电平;当A的电平低于B端200 mV时,代表RO输出是低电平。同时将A和B端之间加匹配电阻,一般可选120 Ω的电阻。MAX485的框图与电路图如图1。

3.2 多路串口通信技术

一般来说,多路串口通信技术有两种实现方案:一种是通过软件编程实现,采用程序控制模拟串口的收发。这种方案存在的主要缺点有:采样速率低,难以保证数据的连续性和正确性;无法实现高波特率的通信,串口模拟软件一般达不到高于4 800 bit/s的波特率[4];编程复杂、开发周期长、可靠性不高。

另一种是通过硬件的方法实现,采用专用的串口可扩展芯片[3]。这种方法可靠性高,开发相对简单。目前市场上的串口可扩展芯片选择性较多,如TI或Philips等公司开发的l6C554系列芯片。该系列芯片通过全硬件实现串口扩展,保证了芯片工作的稳定性,与标准串口通信格式兼容,完全能满足一般系统需求,利用该系列芯片实现串口扩展是性价比较高的串口扩展方案。本设计是采用通用异步通信芯片SC16C554实现串口扩展,采用单片机实现与异步串口扩展芯片之间的控制。

图1 MAX485引脚图及工作电路图

SC16C554是Philips公司生产的4路可扩展串口的低功耗芯片,4个通道独立收发数据,与TI公司的TL16C554兼容。该芯片实现的功能是并行口和串行口的扩展转换,功能强大,通信速率高,最高处理串行数据的速率可达5 Mbit/s。具有可编程的控制寄存器,可以灵活选择数据的收发频率。SCl6C554实现多路串口通信的连接示意图如图2所示。

SCl6C554提供了15个内部寄存器,这些寄存器分别是数据保持寄存器 (THR/RHR)、中断状态和控制寄存器 (IER/ISR)、FIFO控制寄存器(THR/RHR)、线路状态和控制寄存器 (LCR/LSR)、modem状态和控制寄存器 (MCR/MSR)、可编程数据速率控制寄存器 (DLL/DLM)、用户可访问暂存寄存器 (SPR),三位地址线A2~A0控制的内部寄存器如表2所示。

3.3 应用层通信协议

RS-485收发器仅能够用于实现RS-485网络的物理层。在一个实际运行的RS-485网络中,还需要基于应用层的通信协议,以完成预定功能的目标之间的数据通信。由RS-485网络的传输特性决定,任一时刻在同一物理连接网络中只能够存在一个发送节点,多节点同时发送可能会导致RS-485总线出现竞争“锁定”。因此,通常选择单主多从的通信协议作为RS-485网络的应用层通信协议。

RS-485是一种标准的物理接口,没有统一的通信协议。很多具有RS-485接口电路的用户设备都有自己制定的简单通信协议,但目前应用非常广泛的是ModBus协议,大部分公司的RS-485产品都支持此协议,或是直接取自 ModBus协议(ASCII/RTU/TCP模式)中的一部分功能。ModB-us协议需要对数据进行校验[5],串行协议中除了有奇偶校验外,RTU模式采用16位CRC校验。每次通信由主机发出数据请求信息,从机接收到正确消息后发送数据响应主机的请求;主机也可以直接发信息修改从机的数据,实现双向读写。

4 工作原理

电路板的原理结构框图如图3所示。

接收数据时,8路外部接口进来的数据输入到各自的RS485通信收发器MAX485芯片,完成电平转换变成串行信号。再经过光耦元件对4路通用异步通信芯片SC16C554和RS-485总线电路进行隔离,提高系统的抗干扰能力,将串行数据存入到各路串口的缓存区。当转换芯片SC16C554检测到某路串口有接收数据时,该芯片发出该路的中断信号,通过PC104总线通知CPU串口存在需要接收的数据。CPU接收到外部中断指令后,通过依次发出8路串口对应在转换芯片SC16C554中的中断状态寄存器的地址,读取地址线上中断状态寄存器中的数据,从而判断出是哪路串口得到数据。随后CPU在地址线上发送相应的串口数据缓存的地址,在数据线上得到接收的串行数据,CPU通知转换芯片SC16C554接受数据完成,该芯片上的相应缓存得到释放。

发送数据时,CPU首先在内存中准备需要发送的数据,通过PC104总线接收4路串口/并口转换芯片的中断,CPU通过转换芯片SC16C554内部的寄存器来判断中断是否是因为某路发送缓冲区为空而发出的。如果是,则CPU将准备好的数据通过PC104总线的数据线写入4路串口/并口转换芯片内部相应的寄存器,该芯片内部有16 byte的发送数据缓存,可以在一次中断中发送较多的数据。而转换芯片SC16C554则根据设定好的数据流管理方式在相应的时间内将需要发送的数据加上起始位、校验位和终止位以串行数据的方式发送出去。串行数据通过光耦元件隔离后进入RS485通信收发器MAX485芯片,然后发送至RS485通信线上的其他设备。CPU的分配地址如表3所示。

单块RS-485板可以完成8路485的收发,电路板很好地考虑了扩展功能,只要使用4路RS-485板就可以完成总线上32路485的收发。扩展后的结构框图如图4所示。

图3 电路板的原理结构框图

表3 CPU的地址分配

图4 扩展后的结构框图

5 结束语

可以看出,采用多路RS-485开发板的系统设计有2个突出的特点。首先,降低了硬件设计的难度,缩短了硬件开发周期,提高了设计的可靠性,使用上相当的灵活、快速。再次,由于使用的是4路扩展芯片SC16C554,使得软件开发容易,开发者无需过多地考虑细节性的电路设计,可以把注意力集中在系统整体构架和功能上,同时还可以得到比较好的系统稳定性和可靠性。

作为一种便利的通信方式,基于485总线的系统具有接口简单,性价比高等特点。本文提出了一种采用串口扩展芯片SC16C554实现多路RS-485通信的方法,硬件设计逻辑上比较简单。该技术可应用于各类多路RS-485的需求控制,适用领域广泛,体现了多路RS-485通信的灵活性、高可靠性等特点,大大降低了成本,缩短了开发时间。目前已经在船舶自动化领域得到了广泛的应用,实践证明,该开发板使用稳定、可靠,可为解决相关课题提供新思路。

[1]郭诠水.通信设备接口技术及其应用[M].北京:人民邮电出版社,2009.

[2]谭志东,杨著,刘青山,等.基于RS485总线的集中监控系统设计与仿真 [J].科学技术与工程,2010(28):1-5.

[3]谢辉,陈立万.基于RS485网络的智能通信系统设计[J].自动化与仪表,2009(10):1-4.

[4]胡成华,刘传瑞,郭文生.嵌入式网络编程串口通信、工业总线、传感器网络应用开发[M].北京:电子工业出版社,2012.

[5]宋建,瞿金平.基于Modbus协议的PCC与触摸屏串口通信的实现 [J].机电一体化,2007(2):1-3.

RS-485 communication is adopted in multi-channel RS-485 board to form the remote-control network with bus structure as its topology stucture,fourchips shielded cable as its medium and monolithic communication as its data transmission.Hardwork design includes two main parts-communication interface bistatic module and multiple-serial communication technology.In the first part,the principle and application for MAX485 transceiver are introduced and in the second part,the performance and application of SC16C554 chip in the board are introduced as well.The character of the ModBus Agreement is given directed against the application layer of RS -485 network,which is widely used in ship-automation.

RS-485;multiple-serial communication technology;data acquisition

U672

C

1001-8328(2013)05-0033-05

徐敏航 (1979-),男,黑龙江哈尔滨人,工程师,学士,主要从事船用机电系统装备监造工作。

2013-07-02

猜你喜欢
通信协议传输速率寄存器
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
Lite寄存器模型的设计与实现
三星利用5G毫米波 实现创纪录传输速率
二进制翻译中动静结合的寄存器分配优化方法
移位寄存器及算术运算应用
车载网络通信协议标准化问题研究
夏季滨海湿地互花米草植物甲烷传输研究
电动汽车充电接口及通信协议新国标发布
数据传输速率
Lx5280模拟器移植设计及实施