时间:2024-07-28
谢子馨
(湖北大学,湖北 武汉 430062)
计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。通信一般分为串行通信和并行通信。串行通信最显著的优点就是信号线较少,可以两根线并行同步发送数据和接收数据,常用于远距离传输[1]。本文介绍计算机常用的串口通信接口RS-232,RS-422/RS-485,分析了接口的特点,并对常用的通信协议——Modbus的特点进行分析,给出改进方向。
RS-232接口标准是现阶段非常普及的串行通信接口的一种标准,是美国电子工业协会(Electronic Industry Association,EIA)联合通信工业协会(Telecommunications Industry Association,TIA)制定的串行通信标准EIA/TIA-232的简称[2]。
RS-232起源于为远程通信连接数据终端设备(Data Terminal Equipment,DTE)以及常见的数据通信设备(Data Communications Equipment,DCE)制定的标准。RS-232标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场上定义的。
在TXD和RXD上,逻辑1(MARK)为-3~-15 V;逻辑 0(SPACE)为 +3~ +15 V。在 RTS、CTS、DSR及DTR等控制线上,信号有效是正电压+3~+15 V;信号无效是负电压-3~-15 V。实际工作时,应保证电平的绝对值在3~15 V[3]。
RS-232总线标准指定了25脚的DB25连接器,包括一个主通道和一个辅助通道。
RS-232接口标准中,最常用的编码格式是异步起停格式(Asynchronous Start-stop)。
波特率是指每一秒钟设备间传送的比特数(bit/s)。RS-232有一系列波特率标准,常用的有2 400 b/s、4 800 b/s及9 600 b/s等。
奇偶校验Parity主要用于数据准确性检验。传输过程中通常都会设定奇偶性校验。具体地,如果设定为偶校验,奇偶校验位所处位置的传送数字位中“1”的个数就是偶数;如果设定为奇校验,相应位置的“1”的个数就是奇数。
停止位主要是用于接受信号方硬件重同步。
尽管设置波特率和停止位可以解决多数应用的问题,但是会受限于接收方过载的情况,此时必须采用握手。握手分为3种,软件握手、硬件握手及Xmodem握手。其中,硬件握手需要用到5个针脚RTS/CTS、DTR/DSR、DCD、RTS/CTS和 DTR/DSR一起工作,一个作为输出,另一个作为输入。Xmodem握手通常使用在Modem通信中,也叫XModem文件传输协议,现在应用较少。
RS-232虽然是常用的一种串行通信接口标准,但仍存在几点不足[3-4]。
(1)接口的信号容易造成接口电路芯片位置的损坏,且与TTL电平不兼容。
(2)传输速率较低,异步传输时一般为9 600 b/s,或者115 200 b/s。
(3)传输距离较短,且通信距离会受到相应的电容约束。
考虑到RS-232串口标准存在的局限性问题,产生了RS-485/422接口。RS-422标准全称是“平衡电压数字接口电路的电气特性”,随后出现了更高级的RS-485。相对于RS-232,RS-485/422接口可以进行多机通信,允许一条总线上可以连接多达32个设备,甚至可以达到256个设备。
RS-422有4根信号线,两根发送(Y、Z)、两根接收(A、B),可以同时收和发(全双工)。
RS-485有2根信号线,发送和接收都是A和B,不能够同时收和发(半双工)。
RS-485的电气特性驱动器至少能输出电压1.5 V(终端电阻的大小与所用双绞线的参数有关)。
RS-232、RS-422及RS-485串口通信协议如表1所示。
表1 串口通信协议比较
RS-233和RS-485只定义了串行总线标准,主要是电气标准、机械结构以及基本数据链路格式等,但没有具体的数据协议。
Modbus允许多个(约240个)设备连接在同一个网络上进行通信,标准的Modbus信息帧格式为起始,信息,功能,数据,校验,结束。传输模式有两种,ASCII(American Standard Code for Information Interchange)和 RTU(Remote Terminal Unit)模式[5]。ASCII模式的主要优点是发送的两个字符之间间隔时间可以达到1 s。RTU模式中,两个16进制字符包含在一个8位的信息字节中。起始位至少要静默3.5倍的字符时间[6]。
(1)Modbus不支持大型二进制对象数据,只能支持有限的数据类型。
(2)速率较低,无法要求设备“报告异常”。
(3)Modbus协议并没有足够的加密,相应功能码滥用[6]。
(4)Modbus由于只能在单条数据链路上处理少量有限地址,因此极大程度上限制了连接到主控站点的有效设备数量。
(5)对于各个节点,Modbus并没有标准化方法匹配数据对象的描述信息。
(6)Modbus的传输避免了传输过程中存在的缓冲区漏洞的问题,因此对于通信是一定、连续的限制。
3.3.1 安全性
首先,从源头开始控制,从Modbus系统的需求设计、开发实现及内部测试和部署等阶段,全生命周期地介入安全手段,融入安全设计、安全编码以及安全测试等技术。
其次,异常行为检测。针对Modbus系统,要分析其存在的各种操作行为,依据“主体,地点,时间,访问方式,操作,客体”等行为描述成一个六元组模型;然后分析其行为是否属于异常,并决定采取记录或者报警等措施。
再次,Modbus的安全审计就是对协议数据进行深度解码分析,记录操作的时间、地点、操作者及操作行为等关键信息,实现对Modbus系统的安全审计日志记录和审计功能,从而提供安全事件爆发后的事后追查能力。
最后,使用入侵防御和防火墙等网络安全设备。
3.3.2 接 线
由于某些厂家正、负极混乱,通信前要确认线路正常:从站线接好,用万用表量线间电压。
3.3.3 信号源
信号源的问题通常是信号衰减或者有干扰源。Modbus通信的理论距离是1 200 m,距离越长,信号衰减越厉害,加上有一些电缆质量较差,衰减更厉害。
3.3.4 通信地址
对于地址偏移,有时会发现第三方设备给的地址表和读取的不一致,甚至无法读出,可以尝试往前或往后读一位。
对于读取数量,有些设备寄存器较小,读太多会通信错误;还有一些设备,主站读取数量必须与从站一致。
对于从站并联,通常相同设备可以采用并联的方式,最后通过一根电缆接到主站通信卡上。
对于主从站数据不一致,有时发现通信正常,但是数据与从站数据不一致,除检查地址偏移问题外,还要检查数据格式是否正确。
对于数据转换,通信中,经常为了提高精度,从站设备数据会乘以10或者100,所以通信后,主站显示时需要相应地除以10或者100。
随着工业化与信息化进程的不断交叉融合,计算机串口通信应用越来越广泛,本文给出了常用的计算机串行接口标准RS-232和RS-485的发展过程,指出了各自的优缺点,并分析了常用的应用层Modbus协议,给出了详细的数据通信格式,分析了Modbus协议的不足,指出了改进的方向。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!