.网络纵横
张 雷 , 梁建武 , 陈 英
伸 南大学信息科学与工程学院 ,长沙 410075)
摘 要 :分析 了串行异步通信协议中涉及的传榆模式、流量控制、传榆透明性、数据校验、加密方式等问题,
提 出了开发一个高效的 串行异步通信协议的方法,并以实例进行 了具体描述。
关键词:串行通信协议;异步通信 ;流量控制
引 言
目前,工程上利用微机串口进行数据通讯的方法
已得到了广泛的应用。在设计数据传输协议时。设计
人员通常在物理层接 口标准的基础上直接 自行设计
数据链路层传输协议和高层协议。对于物理层来说.
其协议已是国际标准f】】。可以根据实际应用场合对速
率和传输距离的要求选择物理层协议。而数据链路层
和高层的协议在设计中基本上是根据需要设计成不
同的帧结构或干脆就是无帧形式的数据字节流f2i。缺
乏统一的规范和标准。本文旨在提出一种通用的方法
和协议格式,以使协议更加高效和规范 。
同步通信的数据链路层协议的设计.基本上都是
根据其需要设计成各种不同的帧结构或干脆就是无
帧形式的数据字节流传输方式.也可以参照现有的标
准协议作相应简化而得。同步通信协议的典型代表面
向比特的高级数据链路控制规程 HDLC (High Level
Data Link Contro1)和面向字符的二进制同步通信协议
BSC(Binary Synchronous Communication)。异步通信的
链路层协议一般采用起止式异步协议 .由于异步通信
的数据链路层每帧仅传送一个字符,因此需要在高层
形成必要的包格式。 .
1 协议研究与设计
(1)异步通信的特点
异步通信所采用起止式异步协议一般用在数据
速率较慢的场合(小于 19.2kbit/s)。在异步通信方式
下,接口自动生成起正式的帧数据格式。每个字符及
伴随的位作为一帧,构成一个字符的那些数据单元被
称为数据位 ,在数据位的前后要加上起始位 、停止位
和奇偶校验位。一个字符所使用的数据位数根据不同
协议而不同.通常为8位或7位。由于一帧仅包含一
个字符 ,缺乏必要的数据格式 ,传输数据时可 以参照
各种文件传输协议 .如 ZModem、YModem、XModem、
Kermit等制定 自己的包格式。
(2)ASCII码方式和 RTU 方式
串行异步通信的传输模式可以分为 ASCII码方
式和 RTU(Remote Terminal Unit)方式。在 ASCII模式
下消息中的每个 8 Bit字节都作为两个 ASCII字符
发送。用 RTU模式传输的数据是 8位二进制字符。
如欲转换为 ASCII模式.则每个 RTU字符首先应分
为高位和低位两部分,这两部分各含 4位,然后转换
成十六进制等量值 。ASCII模式使用的字符虽是
RTU模式的两倍 ,但 ASCII数据 的译玛和处理更为
容易一些。ASCII可打印字符便于故障检测,而且对
于用高级语言编程的主计算机及主 PC很适宜。RTU
模式编码的自由度大 ,适用于机器语言编程的计算机
和 PC主机。显然RTU模式的传输效率是 ASCII方式
的两倍[41,且 RTU模式的保密性好。
(3)传 输 的透明性
所谓透明传输就是不管所传的数据是什么样的
比特组合,都应当能够在链路中传送。在同步传输中
我们一般采用比特填充和字符填充的方法来解决。在
异步通信中除了使用字符填充来解决传输透明性问
题之外,可以采用固定的长度和格式来解决数据信息
中的字符与控制信息的字符一致而引起的混乱。
(4)流量控 制
由收方控制发方 的数据流是计算机网络 中流量
MODERN COMPUTER 2oo6.9
现
代
计
算
机
^
总
第
二
四
三
期
、,
维普资讯
现
代
计
算
机
^
总
第
二
四
三
期
网络纵横
控制的一个基本方法。握手信号提供了一种控制数据
流的方法 ,即接收设备可 以控制发送设备的数据发
送。流量控制的方法分为硬件握手、软件握手和 EXT/
ACK。
硬件握手采用接 口线中的 RTS/CTS 当接收方准
备好接收数据,置高RTS线,如果发送方也就绪.它
置高 C 。表示它即将发送数据。
软件握手信号是在数据线上进行传送的、用来代
替硬件握手巾在专门握手线上传送的握手信号。对于
软件握手人们已经建立 了一些标准协议,最通用的是
XON/XOFF协议
在 EXT/ACK fEnd—of—Transmission/Acknowledge)
中数据被分组发送,它要求对发送出去的分组数据进
行确认。发送端和接受端分别设定发送窗口和接受窗
口。发送窗口对发送端的流量进行控制。当接收端收
到的数据分组的发送序号落入接收窗口内时才将该数
据分组收下。当收到一个或几个正确的数据分组后,接
收窗口向前移动并对最后一个分组发确认信息。
使用滑动窗口协议可提高串行通信的效率,这一
点在通信线路具有一定时延的情况下表现得尤为突
出【5]。在互联网 ICP/IP协议 中,为了实现流量控制 ,
滑动窗口的长度 (分组数)是变化的 而在工业控制
网络通信中,为简化程序设计 ,宜采用长度固定的滑
动窗口。
在实际应用中一般采用硬件握手和软件握手,或
EXT/ACK相结合的方法。
假设PLC或单片机系统通过调制解调器和上位
机进行通信。调制解调器使用硬件握手的方法与PLC
或单片机系统联系,同样上位机和它的调制解调器之
间也使用硬件握手的方法。但上位机和PLC或单片
机系统之间将使用软件握手或 EXT/ACK的方法进行
通信。上位机和PLC或单片机系统自动监视硬件握
手信号,它们等待握手信号变高以后送出一个字符,
所 以在协议和软件的设计中只需要处理软件握手信
号和 EXT/ACK信号就可以了。
f51数据校验 方式
差错控制的基本方法是接收方进行差错检测 ,并
向发送方应答 ,告知是否正确接收 ,m错则 自动重传。
异 步 通信 中单 个 字 符 采 用 的 是 奇 偶 校 验 (Parity
Checking)的方法 在原始数据字节的最高位增加一个
奇偶校验位,使结果中 l的个数为奇数(奇校验)或偶
数f偶校验1。此方法只能检测出奇数个比特位错。
为了提高数据的可靠传输 ,可采用异或校验或者
@ MOD ERN COM PU TER 2oo6.9
循环冗余校验 CRC(Cyclic Redundancy Check1的方
法 。MODBUS协议和 OMRON公司的 HOSTLINK协
议中的 ASCII传输模式采用的均是异或校验。异或校
验适用于传输数据量较小的场合。当传输的数据量比
较大时可以采用 CRC。MODBUS协议中的 RTU传输
模式采用 CRC。在 CRC中将传输的位串看成系数为
0或 1的多项式 .收发双方约定一个生成多项式 G(x).
发送方存帧的末尾加上校验和,使带校验和的帧的多
项式能被 C(x)整除。接收方收到后 ,用 C(x)除多项式 ,
若有余数 ,则传输有错 。校验和是 l6位或 32位的位
串,CRC校验的关键是如何计算校验和
f61加 密方式
近年来对串行通信协议的剖析已经取得一定成
果,一般通过猜测串口设置参数来监听专用设备之间
的通信.然后分析其数据格式,最后达到剖析协议的
目的 。为了保证传输的保密性 ,可以根据需要采用自
己的加密方式 以防止别人对于协议 的剖析研究带来
的不必要的经济损失。
由此可得到如图 1所示的通用包结构。
包头『目的地址J源地址『序号J控制字I头校验I数据I数据校验I包尾
图 1 通用 包格式
2 实现与应用
笔者在某系统中采用无线 MODEM实现多机主
从式通信。上位机作为基站,通过轮询的方式实现多
个 PLC和单片机系统之间的数据通信。考虑到硬件
的限制只能采用异步通信的方式。在无线通信中要减
小差错的概率必须尽可能减少数据的传输量 ,且考虑
到数据的保密性问题,本系统使用了传输效率较高且
保密性相对好的RTU传输模式。采用的包结构如图2
所示
I皇 I里 些 I翌些 I笙 兰I墼堡l笙堕I皇墨l
图 2 包格式示例
其中由于传输数据量小和采J{{固定的包结构 ,传
输的透明性得到了保证。
流量控制采用硬件握手和 EXT/ACK相结合的机
制 .采用的滑动窗 口分组数为一,即采用停等方式解
决收发双方速率不匹配的问题。其思想是:发送方发
完一帧数据后,一直等到接收方的应答之后才进行下
I 一次发送。由于采用的滑动窗口数为一,所以包结构
维普资讯
中并没有序号。
由于传输的数据量小 .在差错控制中采用 了异或
校验的形式 ,如果出错则会请求重传。
由于无线通信的特殊性.加密方式采用一次一密
的形式,即每次通信前先协商密码,然后用协商的密
码来加密通信内容,有效保证通信的安全性。但由于
密钥的传输的非保密性,此系统也存在一定的安全漏
洞。
结 语
对于串行通信协议的设计.若采用同步通信的方
式 ,则数据链路层 的协 议可 以根据标准 的协议如
HDLC和BSC等加以简化或扩展,若采用异步通信的
方式,则数据链路层的协议为起止式协议.而高层 的
协议可以根据本文所论述的内容形成必要的包格式 .
既达到了规范通信协议的目的,又实现了数据传输的
有效性 、可靠性和保密性。
网络纵横
参考文献
[1】姚予疆.通信设备接口协议手册.北京:人民邮电出版社,
2005.9
[2】赵炯等.串行数据传输协议的剖析研究.计算机工程,
20()4.5
[3】马玉春等.串行通信协议的研究及应用.计算机应用研
究.2004
[4】宫克存等.一种高效 的串行通信协议及实现.长春科技
大学学报.2000,1
[5】孙光等.高效率串行通信协议的设计.仪表技术,2002,3
[6】张敏等.PC间实时全双工同步通信的实现.计算机应用,
2003.12
[7】李卫忠等.微机串行通信协议研究.计算机工程,2001,4
(收 稿 日期 :2006—05—31)
The Study and I mplementation of
SeriaI Communication ProtocoI
ZHANG Lei ,LIANG Jian—Wll , CHEN Ying
(School of Information Science&Engineering,Central South University,Changsha 410075 China)
Abstract:This paper analyzes problems of transport mode
, flow control,transport transparency,data check—up
encryption mode in serial asynchronous communication protoco1
. The method of developing a high—
efficiency serial asynchronous communication protocol is presented and described with an application
.
Key words:Serial Communication Protocol;Asynchronous Communication:Flow Contm1
MODERN COMPUTER 2o06.9 @
现
代
计
算
机
^
总
第
二
四
三
期
v
维普资讯