通信协议

2024-10-18

通信协议(精选11篇)

通信协议 篇1

即时通信系统自从1996年第一个实现ICQ出现以来, 经过了迅猛的发展, 当前已经不止是用于网络上的文字讯息传递, 而是包括了文字, 多媒体, 文件传输等多项功能的复合型的通信工具。即时通信系统不止是在用户通信领域发挥作用, 在工业领域, 如电力, 工业制造, 电话通信等各行各业中都出现了专门的即时通信系统。由于即时通信系统在各行各业的发展, 往往面对不同的网络环境 (局域网或广域网, 电缆、光缆、Wifi等不同的网络连接) , 不同的通信要求 (文字, 多媒体, 文件) , 即时通信系统数据的传输往往受到不同的带宽 (bandwidth) 、时延 (delay) 等方面的影响, 同时当前的Internet网络没有提供服务质量保证, 在这样的网络中进行即时通信还要很多问题可以研究。

该论文讨论即时通信系统即时传输的技术选择, 分析了TCP、UDP协议的不同点。对于一些最常用的即时通信系统进行了分析, 探讨了提供博弈游戏功能的即时通信系统的解决方案。

该论文主要完成如下内容:

1) 通过对即时通信系统的研究, 根据不同的业务需求, 提出了对即时通信系统传输数据性能的要求。

2) 通过对不同网络协议的分析, 确定不同协议的主要优缺点及使用范围

3) 结合以上两点, 提出一个在Internet下提供实时文字通信、简单博弈游戏、视频与语音通信、文件传输的即时通信系统实现方案。

1 网络分析

目前常用的网络主要是局域网和广域网。局域网一般限定在较小的区域内, 小于10km的范围, 通常采用有线的方式连接起来。广域网是将分步在不同地区的局域网或计算机系统互连起来的。Internet就是我们日常最经常接触到的广域网。

局域网通常比广域网具有高得多的传输速率, 例如, LAN的传输速率为10Mb/s, FDDI的传输速率为100Mb/s。广域网的典型速率是从56kbps到155Mbps。

从传播延迟上来看局域网内往往是在相对独立的局部范围内联, 使用专门的传输介质进行联网, 延迟很低, 往往在几毫秒内。而广域网由于覆盖的空间广大, 连接的局域网众多, 传输介质不一, 传输延迟可以从几毫秒到几百毫秒。

2 业务分析

即时通信是指能够即时发送和接收互联网消息等的业务。即时通信系统就是一个能够完整的完成发送和接收互联网消息的软件系统。自1998年面世以来, 特别是近几年的迅速发展, 即时通信的功能日益丰富, 逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。

常用的即时通信软件如QQ, 微信, skype, MSN (即将整合到skype) 等都支持文字聊天, 语音对话, 视频会议, 文件发送等即时交流, 还可以查看联系人的联机状态。Skype提供了拨打手机, 固话的功能。而qq也提供了即时的在线游戏功能。

为了实现一个Internet下提供实时文字通信、简单博弈游戏、文件传输的即时通信系统。必须考虑到文字聊天, 语音对话, 视频对话, 文件传输, 在线游戏, 连接电话网络等功能。

1) 文字聊天功能业务分析

对于网络传输速率和延迟的要求并不高。一般的文字聊天几乎都是在两个用户单独聊天或者多个用户群聊天中发生的。至今中文打字最快的专业打字员, 每分钟能输入340个中文字符左右, 而英文的最高速度可达每分钟400个字母左右。以一个中文字符占4个字节 (UTF-8) , 一个英文字符占1个字节来计算。两个用户单独聊天, 如果使用中文每分钟最多需要传输2720字节, 而使用英文聊天则只需要传输800字节。如果是在一个百人群中进行文字聊天, 每分钟最多需要传输的字符也只有136k字节, 平均为2.27kb/s。由此可见文字聊天对网络传输中的带宽、时延要求并不高。

2) 博弈游戏功能业务分析

博弈游戏是对即时通信系统的一个特殊应用。在线的博弈游戏就是通信双方发送, 接收一些包含游戏信息的数据包。而博弈游戏的特性使得游戏节奏比较慢, 对于网络的时延要求不是很高, 因此从网络传输上, 与文字聊天信息的传输相差不大 (事实上, 早期的在线游戏都是通过文字聊天的方式实现的。) 。

3) 语音对话业务分析

语音对话是近年来对文字聊天功能的扩展, 语音对话是采用语音编码的方式将用户即时的语音信号进行编码转化成数字信号, 从而降低传输码率并进行数字传输, 传输后解析成语音信号播放, 从而达到用户即时聊天功能的过程。/*语音编码的基本方法可分为波形编码、参量编码 (音源编码) 和混合编码。波形编码的编码速率为64-16kb/s, 语音质量好。参量编码的编码速率低, 大约为2.4-1.2kb/s, 自然度低, 对环境噪声敏感。混合编码是将波形编码与参数编码相结合, 在2.4-1.2kb/s速率上能够得到高质量的合成语音。*/目前使用最多的语音文件格式还是WMA格式 (通常码率64 Kbps) , 的语音文件, 以两个用户单独使用语音聊天计算, 需要保证至少128kb/s的速率, 而如果是在一个20人的群内进行聊天, 如果在服务器端不进行混音, 而到客户端混音的话则需要保证1280kb/s的速率, 如果在服务器端混音的话, 则仍只需要128kb/s的速率。一般来说语音对话功能对网络传输中的带宽、时延提出了一定的要求

4) 视频对话功能业务分析

视频对话功能则是对语音对话的进一步扩充, 提供了用户直接面对面对话的功能。目前最主要的视频技术就是H.264/MPEG-4 AVC (H.264) 。H264与其它现有的视频编码标准相比, 在相同的带宽下能够提供更加优秀的图象质量, 和MPEG2和MPEG4 ASP等压缩技术相比, 在同等图像质量下, 采用H.264技术压缩后的数据量只有MPEG2的1/8, MPEG4的1/3, 提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。在实际生活中, 人们一般用于网络视频聊天时的分辨率为320×240甚至更低, 传输的帧数为每秒24帧, 此时视频传输速率将不到300kbps。使用H264技术, 可以将传输速率降低到100kbps不到。因此在视频对话中, 至少需要200kbps的带宽。在实现视频会议时, 可以适当的降低图形质量, 但是往往随着参与用户的增多, 对带宽的要求往往呈线性增长。

一般情况下, 即时通信系统都会提供给用户一定的文件发送功能, 文件发送需要尽快的完成, 应该是尽可能的利用现有的带宽, 传输速率越快越好。

3 网络协议分析

即时通信系统为了在网络上传输, 必须选择合适的传输方式。根据网络七层模型, 在网络上传输数据主要是选择传输层协议TCP和UDP。

TCP是Transmission Control Protocol传输控制协议的简称。TCP是一种面向连接 (连接导向) 的、可靠的、基于字节流的运输层 (Transport layer) 通信协议。由于TCP采用三次握手, 四次挥手, 超时重传等机制, 保证了传输的可靠性, 但同时也导致了TCP传输数据的效率相对而言并不高。而且在网络拥堵的情况下, TCP由于有滑动窗口机制, 就会降低自己的传输速率, 导致传输效率更低。

UDP是User Datagram Protocol的简称, 中文名是用户数据包协议, 是OSI参考模型中一种无连接的传输层协议, 提供面向事务的简单不可靠信息传送服务。它是一种无连接的协议, 在网络质量令人不十分满意的环境下, 数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议, 因而具有资源消耗小, 处理速度快的优点, 传输效率比TCP高。一般来说, 在使用UDP的情况下, 都需要在应用层实现验证, 超时重传等功能, 但是对比于TCP来说, 还是要快很多的。而且UDP在网络拥挤的情况下, 不会降低自己的传输速率, 虽然对网络造成了一定负担, 但是更容易抢占到带宽, 保证自身用户的通信。由于NAT技术的使用, 在网络中外网的计算机比较难以访问内网的计算机, 因此需要使用技术手段对NAT进行穿透。

作为一个即时通信系统, 需要实现文字聊天, 语音对话, 视频会议, 文件传输等功能, 根据我们之前的分析, 不同的功能对于网络传输的要求是不同的。

文字聊天功能对于网络的带宽和延迟要求并不高, 但是必须保证绝对不丢失聊天信息。因此在协议的选择上应该尽量倾向于可靠地连接。

在线博弈游戏功能对于网络的要求与文字聊天功能近似, 在协议的选择上也应该尽量倾向于可靠地连接。

语音聊天功能, 出于通话质量的要求, 需要至少128kbps的带宽, 同时还必须保证不丢包。在协议上应该兼顾可靠性与传输速率。

视频聊天功能除了要发送语音信息外, 还要发送视频信息。视频信息即使是使用了最新的压缩技术, 对于网络带宽的要求任然很高。同时视频信息也有它的特点, 就是对网络传输时发生的丢包现象不是很敏感, 即使发生了少量的丢包, 很快就会有新的视频信息发送到客户端, 刷新丢包的信息。因此视频聊天功能在协议的选择上应该以传输速率优先, 兼顾可靠性。

文件传输功能则是要求在尽可能快的时间内, 将文件完整的发送到另一方。一般来说文件总是会被拆分成几个数据包进行发送, 在接收端组成一个完整的文件。文件传输如果是选择可靠性较高的TCP协议的话, 传输速度必然比较慢。如果选择传输速度快的UDP协议, 则必须解决可靠性的问题。

4 即时通信系统中对于协议的选择

当前我国的网络基础建设情况还不尽如人意。相关报告指出, 国内超半数用户实际宽带下载速率低于运营商提供的名义宽带速率。因此在即时通信系统中, 如何有效的利用带宽就成了一个比较敏感的问题。

文字聊天功能与即时游戏功能对于网络速率的要求不高, 但是对于可靠性比较高, 因此应当使用TCP协议进行传输。使用TCP协议既能满足文字聊天的功能需求, 同时传输的可靠性由TCP协议负责, 便于设计。

语音聊天功能对于网络的传输速率和时延要求都比较高, 在带宽允许的情况下, 应该采用TCP协议进行传输, 但是当网络比较拥堵的情况下, 应该转而使用UDP协议进行传输, 同时在应用层采取校验和超时重传的功能进行可靠性保证。一个比较好的设计应该是根据网络情况, 语音聊天系统自动的选择TCP协议或者是UDP协议。当TCP协议能够满足传输要求时, 使用TCP协议进行传输。当网络拥堵, TCP协议传输速率下降到不能保证语音质量的情况下, 则应该自动从使用TCP协议切换到UDP协议。

视频聊天功能由于对网络的传输速率要求比较高, 同时能够忍受一定的丢包, 因此UDP协议是比较好的选择。同时从减少服务器载荷的角度来说, 也可以利用P2P技术来让聊天的对象之间直接进行视频信息的传输, 使用UDP协议更加容易实现对NAT的穿透。

文件传输功能对网络的传输速率要求很高, 应当尽可能的将所有带宽利用上, 在应用层添加数据包校验与重传功能后, UDP就是最好的选择。

5 结束语

以上协议的选择是符合当前国内的Internet网络现状和通信技术并能够提供比较好的即时通信功能的。笔者相信在不太远的将来, 随着国内网络基础建设的进一步发展, 云技术的普及, 新的音频、视频协议的出现, 实时通信系统必将为网络用户提供更好的通信功能。

参考文献

[1]Gary R.Wright W.Richard Stevens.TCP/IP详解卷1:协议[M].范建华, 胥光辉, 张涛, 等, 译.北京:机械工业出版社, 2001.

[2]Gary R.Wright W.Richard Stevens.[M].陆雪莹, 蒋慧, 等, 译.TCP/IP详解卷2:实现北京:机械工业出版社, 2001.

[3]W.Richard Stevens.unix网络编程[M].施振川, 周利民, 孙宏晖, 等, 译.北京:清华大学出版社, 2001.

[4]云亮.基于对等网的NAT穿透技术的研究和实现[D].武汉:华中科技大学, 2007.

[5]王勇.实现高性能IP网络视频服务的若干关键技术研究[D].上海:华东师范大学, 2007.

通信协议 篇2

1.AT Command TS 27.007

AT command set for User Equipment(UE)

2.SMS TS 24.011

Point-to-Point(PP)Short Message Service(SMS)support on mobile radio interface TS 23.040

Technical realization of the Short Message Service(SMS)

3.SMS CB TS 23.041

Technical realization of Cell Broadcast Service(CBS)TS 24.012

Short Message Service Cell Broadcast(SMSCB)Support on the Mobile Radio Interface

4.MMS TS 22.140 Multimedia Messaging Service Stage 1 TS 23.140 Multimedia Messaging Service Stage 2 TS 26.140 MMS Media formats and codes

5.Encode and Decode of USSD/SMS/CB etc TS 23.038

Alphabets and language-specific information

6.Layer 3(Voice call/MM/GMM/SM etc)TS 24.007

Mobile radio interface signalling layer 3;General Aspects TS 24.008

Mobile radio interface Layer 3 specification;Core network protocols;Stage 3

7.MMI Code TS 22.030

Man-Machine Interface(MMI)of the User Equipment(UE)

8.USSD TS 22.090

Unstructured Supplementary Service Data(USSD);Stage 1 TS 23.090

Unstructured Supplementary Service Data(USSD);Stage 2 TS 24.090

Unstructured Supplementary Service Data(USSD);Stage 3

9.Supplementary services TS 22.004

General on supplementary services TS 22.081

Line Identification supplementary services;Stage 1.TS 23.081

Line Identification supplementary services;Stage 2 TS 24.081

Line Identification supplementary services;Stage 3 TS 22.082 Call Forwarding(CF)Supplementary Services;Stage 1.TS 23.082

Call Forwarding(CF)supplementary services;Stage 2

.TS 24.082

Call Forwarding(CF)supplementary services;Stage 3 TS 22.083 Call Waiting(CW)and Call Hold(HOLD)supplementary services;Stage 1 TS 23.083 Call Waiting(CW)and Call Hold(HOLD)supplementary services;Stage 2 TS 24.083

Call Waiting(CW)and Call Hold(HOLD)supplementary services;Stage 3 TS 22.086

Advice of Charge(AoC)supplementary services;Stage 1 TS 23.086

Advice of Charge(AoC)Supplementary Service;Stage 2 TS 24.086

Advice of Charge(AoC)supplementary services;Stage 3 TS 22.088

Call Barring(CB)supplementary services;Stage 1 TS 23.088

Call Barring(CB)Supplementary Service;Stage 2 TS 24.088

Call Barring(CB)supplementary service;Stage 3 TS 24.080

supplementary services specification Formats and coding

10.SIM TS 11.11

Specification of the Subscriber Identity ModuleMobile Equipment(SIM-ME)interface

12.PLMN TS 22.003

Circuit Teleservices supported by a Public Land Mobile Network(PLMN)TS 22.101

Service aspects;Service principles TS 51.011

计算机网络通信协议的分析研究 篇3

【关键词】:计算机网络协议网络模型应用研究

目前,计算机网络应用已遍及人类生活、学习、工作等活动的一切领域。这一切网络的应用都是通过网络协议实现的。

一计算机网络协议概述

1计算机网络协议的定义

网络协议(有时也称为通信协议)是指在计算机与计算机之间进行通信必须遵循的一些事先约定好的规则。网络协议必须遵循标准化的体系结构,目前主要有ISO的OSI标准和TCP/IP协议组标准。通信涉及的所有部分都必须认同一套用于信息交换的规则。

在OSI/RM层次模型中,把网络协议规定成7层模型。

一是物理层,给出了一个通信信道的物理媒体上传输原始的二进制数据流(也称比特流)时的协议(IS02110,IEEE802J IEEE802,2)二是数据链路层。给出了把二进制数据流划分成数据帧,并依照一定规则传送与处理的协议(SLIP,CSLIP,PPP,AR P,RARP,MTU);三是网络层把数据帧划分成更小的“分组”,规定分组的格式,给出使分组经过通信子网正确的从源传送到目的地的协议。网络层是控制通信子网正常运行的协议,它提供两类典型的数据分组传送服务方式(IP,ICMP,RIP,OSPF,BGP,IGMP)l四是传输层,根据高层用户的请求建立起有效的网络通信连接,处理端到端之间通信的差错控制、恢复处理和流量控制问题,也可以方便的撤消与拆除网络连接(TCP,UDP);五是会话层,允许不同主机上的各种进程之间进行会话;六是表示层,为应用层提供传输的信息在表示方面的规则与协议;七是应用层,为各类不同的网络应用提供使用网络环境的手段,具体规定了在用户级别需要的、带有通信任务的许多常用信息服务的规则和协议。

2计算机网络协议的分类

(1)局域网协议。局域网协议定义了在多种局域网介质上的通信。目前,常用的局域网协议主要有NetBEUI、IPX/SPX及其兼容协议和TCP/IP三类。

(2)广域网协议。广域网协议是在OSI参考模型的最下面三层操作。定义了在不同的广域网介质上的通信。主要用于广域网的通信协议比较多,如:高级数据链路控制协议、点到点协议(PPP)、数字数据网(DDN)、综合业务数字网(ISDN)、数字用户线(xDSL)、X.25协议等等。

(3)路由选择协议。路由选择协议是网络层协议,它负责路径的选择和交换。路由选择协议还分为内部路由协议(它是在一个自治系统内部交换路由信息的路由协议)和外部路由协议(它是为连接两个或多个自治系统的路由协议)。

二网络协议中ping程序及其应用

这个程序用来检铡一帧数据从当前主机传送到目的主机所需要的时间。当网络运行中出现故障时,采用这个实用程序来预测故障和确定故障源是非常有效的。如果执行ping不成功,则可以预测故障出现在以下几个方面:网线是否连通,网络适配器配置是否正确,IP地址是否可用等;如果执行ping成功而网络仍无法使用,那么问题很可能出在网络系统的软件配置方面,ping成功只能保证当前主机与目的主机间存在一条连通的物理路径。它还提供了许多参数,如-t使当前主机不断地向目的主机发送数据,直到使用Ctrl-c中断;-n可以自己确定向目的主机发送的数据帧数等等。

我们称发送回显请求的ping程序为客户,而称被ping的主机为服务器。大多数的TCP/IP央现都在内核中直接支持Ping服务器。ICMP回显请求和回显应答报文如图所示。

对于其他类型的ICMP查询报文,服务器必须响应标识符和序列号字段。另外,客户发送的选项数据必须回显,假设客户对这些信息都会感兴趣。

UNIX系统在实现Ping程序时是把ICMP报文中的标识符字段置成发送进程的ID号。这样即使在同一台主机上同时运行了多个Ping程序实例,Ping程序也可以识别出返回的信息。

序列号从0开始,每发送一次新的回显请求就加1。Ping程序打印出返回的每个分组的序列号,允许我们查看是否有分组丢失、失序或重复。IP是一种最好的数据报传递服务,因此这三个条件都有可能发生。旧版本的Ping程序曾经以这种模式运行,即每秒发送一个回显请求,并打印出返回的每个回显应答。但是,新版本的实现需要加Ac-s选项才能以这种模式运行。默认情况下,新版本的Ping程序只发送一个回显请求。

三网络协议应用的分析

TCP/IP的应用层协议有多个,HTTP协议是一个面向连接的协议。选用IRIS V4,07作为协议分析工具。这操作系统是WINDOWS XPSP2。运行IRIS的主机位于以太网内,具有内网的IP。

运行IRIS,用热键CTRL+B弹出IRIS地址表。在表中填写机器的IP地址,这里我们运行IRIs的主机IP为102,34,12,113,为了对抓取的包看得更清楚不要添主机的名字(name),设置好关闭此窗口。回到IRIS的主窗口,点击Kilters菜单项,在下拉的菜单中

选择only-http,ftl项。这是IRIS提供的过滤设置,此设置只抓取HTTP协议的数据包。在IRIS的主窗口,点击工具栏中的开始按钮,开始抓包。转到浏览器界面,输入任意一个常用的网址,待此页面在浏览器中完成后回到IRIS主窗口,可以看到抓取的多个包。如果此时没有再抓取新包,可以关闭WEB浏览器,再转到IRIS主窗口按下停止按钮。

为了更好的分析协议,我们先描述一下上述例子数据的传输步骤。第一、应用软件即WEB浏览器向DNS服务器发出请求,要求提供发往它的Web地址的相应的IP地址。第二、DNS服务器收到请求后,发回相应的IP地址。第三、TCP用所获得的IP向WEB服务器发出连接请求。双方建立连接。第四、WEB服务器向目的主机传送数据。第五、目的主机向WEB服务器发送数据传送完成确认。这是TCP建立数据传输通道的三次握手过程。TCP的数据包是靠IP协议来传输的。但IP协议提供的是无连接的服务,只管把数据送出去,不能保证IP数据报能成功地到达目的地,保证数据的可靠传输是靠TCP协议来完成的。当接收端收到来自发送端的信息时,接收端将发送一条应答信息,向对方表示已收到你的信息了。这三组数据将能看到这个过程。TCP是一个面向连接的协议。无论哪—方向另一方发送数据之前,都必须先在双方之间建立一条连接。建立连接的过程就是三次握手的过程。

通信协议设计与实现 篇4

随着超大规模集成电路技术的发展,出现了一大批高性能、低成本的DSP芯片,推动运动控制器从传统的以微处理器或ASIC为核心向以DSP为核心发展[1],多机通信将会是今后的一种发展需要。为此,设计一种1台PC机跟多台以DSP为核心处理器的运动控制器间的串口通讯实现方案有一定的意义,RS-485提供PC访问运动控制器的通道,用于传输控制指令、轨迹参数、运行参数及接受运行状态等,编写上位机软件。

本研究主要探讨一种基于RS485总线串行的通信方案的设计与实现。

1 系统实现

本研究所选DSP为TI公司的TMS320F2812芯片具有高性能位哈佛总线结构、统一寻址模式、最大4MB的程序/数据寻址空间、快速中断响应和处理能力及高代码效率等特点。支持16×16位和32×32位乘累加操作及16×16位双乘累加器,其最高时钟频率可达150MHz,特有的2个EVA和EVB事件管理器特别适合电机控制[2]。它还提供2个串行通讯接口SCI,能很好的实现PC机与运动控制器的串行通讯。SCI提供64K的通信波特率,可以被定义成为全双工异步、半双工同步主控和半双工同步从动方式[3]。

本研究针对电机控制通信的距离采用RS-485通信接口。RS-485是一个多引出线接口,这个接口有多个驱动器和接收器,可以实现1台PC和多台单片机之间的串行通信;而且RS-485接口的最大传输距离标准值为1 200m,适合中距离的传输[4,5]。RS-485总线系统采用一主多从的总线型连接方式,如图1所示。为了消除反射,吸收噪音,采用2个120的终接电阻R1和R2连在总线的两端(但若在短距离传输时可不接终接电阻,一般在300m以下的不需要接终接电阻)[6]。RS-232/RS-485转换选用波利电子公司的RS-232/RS-485转换器。本系统采用MAX 487接口芯片作为收发器,由于它的输入阻抗是标准接收器的4倍,因此最多可以挂128个接收器,而且MAX 487收发器的差分平衡系统抗干扰能力强,接收器可检测到200mV的信号,传输的数据可以在千米以外得到恢复,特别适合远距离通信,可以组成标准的通信网络。

2 通讯协议

在PC机和多台DSP的通讯时,需要定制一个合理的通讯协议[7]。RS-485协议是一种半双工通信协议,发送和接收共用同一物理通道,在任意时刻只允许一台DSP处于发送状态,因此要求DSP必须在侦听到总线呼叫信号已经发送完毕,并且没有其他DSP应答信号的情况下才能应答。如果在时序上配合不好,就会发生总线冲突,使整个系统的通信瘫痪,无法正常工作。

由于运动控制器的RS-485基于ASCII码通信,因此本研究定义SCI帧格式为:1位起始位、7位数据位和2位停止位。在数据包中为了区别不同的分机必须给每个分机一个地址。数据包格式定义如图2所示。

包头2字节,地址1字节,数据长度1字节,数据块n字节,校验码2字节,包尾2字节。考虑到数据传输的可靠性,防止数据误认作包头和包尾,为此本研究设置为2个字节。

TMS320F2812中SCI模块提供16级的接收和发送FIFO,减少了中断的次数。其采用NRZ数据格式,可以与CPU或其他通信数据格式兼容的异步外设进行数字通讯。SCI接收和发送器可以独立操作,在全双工模式下也可以同时操作为保证数据完整性

模块对接收到的数据进行间断、极性、超限和帧错误检测[8]。通过对16位(64K)的波特率控制寄存器进行编程,配置不同的SCI通信频率,本系统配置波特率为9 600。在本系统中接收和发送各设计了1个数据缓冲区用于存取FIFO中的数据和发送数据给FIFO。该缓冲区以结构体的形式给出:

通信的流程为:PC机发1个包给所有的DSP,然后DSP串口接收包,子程序从缓冲区读取数据依次校验包头、地址,如图3所示。当包中地址与本机地址不相符合时丢弃包,当包中的地址与本机地址相符时继续接收数据长度、数据块等信息。最后,检验校验码和包尾是否正确,若正确则发送1个确认收到的指令给PC机,若错误则发送1个错误的指令,要求重发,设置最多支持3次重发,如果3次重发还没确认正确接收,则通信失败。发送数据时还要设置1个定时器,若发送时间超时则重新发送数据包,以免造成无休止的等待。因为RS-485是半双工通信,所以在接收的同时要将发送禁止,在发送的同时也要禁止接收。部分程序的流程图如图3~图4所示(发送子程序跟接收类似)。

SCI模块初始程序代码:

3 上位软件编写

上位机软件采用VC++进行编程,VC++具有强大的串行通信功能。使用功能强大的MSComm控件,MSComm采用事件驱动方式从串口接收数据(消息处理),当串口有事件发生的时候,程序调用消息函数来处理数据。利用OnComm事件捕获和处理通信事件,然后通过CommenEvent属性了解发生了什么事件,从而进行不同的处理[9,10]。因为MSComm控件自身没有提供方法所以大多函数都是函数对用来获取或者设置控件的属性。下面是几个常用的属性设置:

4 结束语

本研究设计的一对多串行通信方案,主要用于运动控制器中指令及状态的传输。在实验室中很好得实现了1台PC机与4、5台DSP运动控制器通信的功能,数据收/发稳定,程序运行可靠。虽然利用DSP的SCI与PC机进行数据传输存在一些不足(传输距离短、传输效率不高等),但其硬件简单,不需专用的通讯接口,性价比高,而且程序容易实现。

参考文献

[1]张宇.基于DSP和FPGA的运动控制卡的研究与开发[D].南京:南京航空航天大学机电学院,2007.

[2]苏奎峰,吕强.TMS320F2812原理与开发[M].北京:电子工业出版社,2006.

[3]TI.TMS320x281x Serial Communication Interface(SCI)[EB/OL].[2009-05-01].http://focus.ti.com/lit/ug/spru051c/spru051c.pdf.

[4]鲍延杰,杨新志.基于RS-485总线的PC与多单片机间的串行通信[J].电子技术,2002,29(10):8-11.

[5]袁德虎,王双林,金惠良.基于组态软件的SF6密度继电器在线监测系统[J].机电工程技术,2008,37(4):28-31.

[6]李现勇.Visual C++串口通信技术[M].北京:人民邮电出版社,2004.

[7]乡碧云.嵌入式PC数控系统控制车铣复合机床的研制[J].机电工程技术,2008,37(3):56-58.

[8]TI.TMS320F2810,TMS320F2812 Digital Signal ProcessorsData Manual[EB/OL].[2007-07-17].http://focus.ti.com.cn/cn/docs/prod/folders/print/tms320f2812.html.

[9]张筠莉,刘书智.Visual C++实践与提高:串口通信与工程应用篇[M].北京:中国铁道出版社,2006.

酒店通信优惠协议 篇5

甲方:景德镇滨江假日酒店有限公司

地址:景德镇市金鱼山路口

乙方:中国电信股份有限公司景德镇市分公司

地址:景德镇市珠山西路3号

景德镇市电信分公司面向宾馆用户推出酒店通信优惠协议,甲、乙双方本着诚实信用、平等互利的原则,达成如下协议:

第一条 本优惠协议是指对宾馆固定电话实行包月制,包月费用的范围为单位乙类固定电话产生的月租费用、来电显示费用、市话费用、国内长途费用,不包括数据费用、国际长途费用、其他运营商IP接入费、声讯台信息费、其他新业务费用及上述包月费用中未列出的其他通信费用。

第二条 甲方只能将话费包月电话作为本单位工作电话,不得私自转让他人。

第三条 甲方使用乙方1条8兆普通光纤、(20)部固定电话。8兆光纤标准资费为1680元/月,一次性安装工料费1000元。乙方以甲方()部固定电话话费按()元/月进行包月优惠,若实际使用费在()元之间,则按()元收取;若实际使用费用在()元以上,则除收取()元以外,另超出()元以上的部分按实际数收取。考虑到双方的长期合作关系,乙方同意给予甲方光纤价格按10000元/年计费,免收安装工料费。

第四条 甲方须提供包月话费托收电话(号码)8515999。

第五条乙方承诺甲方客房固话规定时间内(22:00-07:00),外线打入房间内电话均需总台转接,外线不能直接接通客房电话。规

定时间外可自由通话。此项功能技术、设备上由乙方负责。

第六条 甲方的权利和义务

(一)甲方有权向乙方询问使用中遇到的问题,乙方应予以及时解决;

(二)合同期间,甲方如需拆、停机,包月金额不变更;

(三)合同期间,甲方如新办业务,则费用不包含在包月总额中。如需增加固话,在原包月基值上叠加收取.(四)甲方的包月电话(详细号码见附件)不得私自添加分机,不得用作对外经营通话业务,不得挪做他人使用,不得改变使用性质。一经发现,乙方有权按国家资费标准收取该电话产生的所有通信费。

(五)甲方应对本协议内容负有保密义务。

(六)甲方享有优惠共享权利,即若景德镇地区有任何的优惠政策,甲方将自动套用该政策,享受最大优惠。

第六条 乙方的权利和义务:

(一)乙方有权按照本协议规定收取甲方的固话包月费和光纤使用费。

(二)若甲方未按时交纳电话费,乙方有权按照《中华人民共和国电信条例》相应条款,对甲方同一付费帐号下的所有电话停止电信服务,并追究相应法律责任。

(三)若甲方泄露本协议内容而造成乙方的损失,乙方有权终止本协议,并追回对甲方优惠的一切费用。

第七条 协议期内,如单方终止协议,将赔偿给对方造成的一切损失。

第八条 本协议有效期三年,有效期满后,双方若无异议,本协议自然顺延,直至任一方提前一个月提出书面要求,终止协议。协议期内如甲方违约,乙方将有权追回光纤的安装费。另甲方在使用光纤宽带的过程中,如违反国家法规,所造成的一切后果由甲方自行承担

责任。

第九条 本协议一式二份,甲、乙双方各持一份。协议自双方签字盖章之日起生效,包月费用自下一计费月(每月1日)开始执行。

通信协议 篇6

一夜之间,科技业大洋中出现了一艘融合IT与通信的巨轮。如果不出意外,它至少会在这片广阔的空间中邀游10年。

6月18日,阿尔卡特-朗讯(以下称“阿朗”)与惠普联合宣布,双方将结成为期10年的全球业务联盟,向大中型企业和公共部门提供IT与通信融合的解决方案。同时,该联盟还计划利用两家公司在企业和通信市场的产品组合优势,设计全新的端到端客户解决方案。

虽然还没有签署最终协议,但阿朗和惠普均对结盟前景表示乐观,它们预计合作可以为双方创造数十亿美元的收入,并且它们已经获得了一些可能对整合性H解决方案感兴趣的客户。在阿朗成立之前,阿尔卡特曾在2003年与惠普结成联盟。6年之后的今天,阿朗与惠普携手,它们将如何实现双赢?

阿朗延伸战略调整

首先受惠于结盟的是阿朗,它获得的最直接好处是实现“节流”。

作为合作的一部分,主业为通信设备研发的阿朗将把其IT基础构架部门外包给惠普。阿朗发言人表示:“此举将帮助我们在年内完成7.5亿欧元的成本节约目标。”

在阿朗CEO本·韦华恩的规划中,2009年是公司的“转折年”,缩减成本是主要任务之一。

从2006年12月阿尔卡特与朗讯完成合并成立阿朗后,这家公司至今没能交出一张盈利的财务报表。2009年第一季度,阿朗连续第9次遭遇亏损,累计亏损额已达到90亿欧元。

阿朗亏损缠身加之市值缩水80%以上,这让投资者极为不满,韦华恩的前任帕特里西娅·陆思博和上一任董事会主席瑟奇,谢瑞克正是禁受不住这种压力而双双辞职。

在这种情况下,对于去年10月1日起正式上任的韦华恩来说,他的第一要务自然是把公司拖出亏损的泥淖。

在合并之初,阿朗头上的光环是全球第二大通信设备供应商。但两年多以来,通信设备市场激烈动荡,尤其在无线设备市场,诺基亚和西门子将双方通信网络设备部门合并成立新公司、华为和中兴的崛起,都使得阿朗再也找不到成立伊始的良好感觉,它迫切需要修炼新的竞争之术。

一直以来,电信运营商始终是通信设备供应商的大客户。眼下,由于电信运营商既希望削减成本,又不希望影响到高效地响应用户需求,为电信运营商提供服务成为通信设备供应商们普遍看好的生财之道。在爱立信、阿朗和诺西的现行组织架构中,服务均以单独的业务部门形式运营。

而且面对华为这种以低价换市场为竞争策略的对手,一直在和亏损斗争的阿朗更有必要由提供传统通信设备,转向高利润的通信网络服务领域。

与运营商级市场相比,企业级市场更具开放性,对产品性能要求远没有那么苛刻,而且近年来增速明显。去年底,阿朗成立了四个新的业务集团,企业网络产品集团名列其中。

“如果阿朗获得了中国的一个3G订单,投资人也许会觉得这是理所当然的,但是如果阿朗在中国的企业级设备市场获得了很好的市场份额,资本市场的反应也许会更加热烈,因为那是一个惊喜。”阿朗企业网络集团亚太区高级副总裁杨仪东的一句话表达出这家公司对于企业级市场的浓厚兴趣和决心。

鉴于此,可以说惠普对于阿朗最大的价值正在于,它的IT服务经验和行业渗透能力可以帮助阿朗强化在服务领域的实力和弥补在企业级市场的劣势。

惠普多重利好

阿朗固然可以从这次合作中获益不少,但或许惠普才是最大的赢家。

从硬件角度来说,惠普是一家比较全面的公司,不论是打印机、PC还是服务器、数据中心都做得有声有色。但是近年来,随着PC业务利润日趋微薄,打印机业务增长趋向平缓,以及主要竞争对手纷纷押宝数据中心,专注于服务成为惠普最核心战略之一。

华尔街有观点认为,“蓝色巨人”转型的成功经验给了惠普CEO马克·赫德以灵感,他正努力擦亮惠普身上的服务供应商标签,这样才能避免硬件行业大起大落带来的冲击,而且,卖服务的利润要高得多。

去年8月,惠普斥132亿美元巨资收购EDS,成为全球第二大IT服务供应商。这是惠普向服务供应商转型迈出的一大步。

这回,按照双方协议约定,阿朗不但把自己内部的IT业务外包给惠普,而且它未来的通信产品中将会采用惠普的IT产品,在IP电话、统一通信、移动、安全和联络中心等领域的产品将与惠普的IT解决方案实现全面融合。这些联合产品或通过惠普的经销渠道来分销,或通过惠普的管理服务来提供。国内分析人士认为,惠普因此获得了把硬件产品和IT服务卖给更多客户的机会。

4个月前,当思科大张旗鼓地借推出统一计算系统之机进军服务器领域时,惠普不以为然。的确,惠普有对思科越界之举“不屑一顾”的资本,唯有自己在服务器市场有与IBM叫板的实力和资本,而且早已切入了思科一家独大的交换机和路由器市场。

异常敏感的华尔街分析师们确信,惠普可能会通过收购网络设备公司进行反击,他们的理由可以用考夫曼兄弟公司分析师肖·吴的话来总结——“思科进人服务器领域基本上宣告了战争的开始”。

虽然惠普还没有出手收购,但它选择同阿朗这家同时在移动网络和固网领域均有优势的公司进行深度合作,并打算接受来自后者IT基础构架部门的1000名员工,与收购有异曲同工之妙。业界相信,惠普的网络和通信平台构架能力将因此获得提升。

赫德说:“我们期待该联盟能够为客户创造新的商业机遇。”其实更应该说,惠普期待该联盟能为自己创造新的商业机遇。

统一通信之争

“IT和通信正在以一种前所未有的方式进行融合。能够目睹我们做出的种种努力正在加快行业创新步伐,我感到非常高兴。”韦华恩的话揭示了促使阿朗和惠普结盟的根本原因——IT和通信融合的行业大趋势。

在介绍合作内容的过程中,两家公司多次提到整合、一站式等词语,也是为了强调,它们能帮助客户从IT和通信融合中受益。

大约从2006年起,业界出现了一个标志着IT与通信高度融合的词语——统一通信。今天,无论是IBM、微软、惠普、戴尔,还是思科、甲骨文,亦或是爱立信、阿朗等,每家具有行业影响力的公司都把统一通信纳入核心战略之中。

近期。IT和通信企业在合作方面掀起了一个小高潮。在阿朗牵手惠普大约一周之后,英特尔和诺基亚也宣布建立长期的战略合作关系,共同开发全新的移动平台和设备。

而对于阿朗和惠普来说,前者的通信设备和技术加上后者的软硬件和服务,正好搭建起一个比较完整的统一通信平台。由此看来,虽然每家公司侧重点不同,但无一例外希望能在统一通信领域大有作为。

通信协议 篇7

低压配电网由于其具有分布广、用户数量多等特点,使其在节约资源、方便用户、减少安装费、实现多媒体通信等方面被广泛关注。但由于低压配电网电气负载环境的复杂性和介质环境的共享性、开放性和多样性的影响,造成通信可靠性低,使目前电力线载波通信的广泛应用受到限制和普遍质疑。针对建立网络中继提高电力线通信可靠性的方法,国内外的研究人员进行了一定的研究。其中,文献[1-2]提出基于蚁群算法的电力线载波通信组网方法在一定程度上解决了电力线载波通信网络的通信可靠性问题。笔者对蜘蛛织网的行为、圆形蛛网的结构特性、猎物在蛛网上信息传递机理等方面进行大量的研究[3],同时借鉴前人的相关研究成果[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],提出了基于人工蛛网通信模型,并将低压配电网的主要负责通信协议部分(Media Access Control,MAC)层网络转化成由多个人工蛛网组成的逻辑拓扑,制定了一种新的自动路由协议,建立了人工蛛网仿真模型,验证了该种新型网络结构及路由协议的优越性,试图为研究适合电力线载波通信网络的路由模式,提高电力线通信的可靠性,提供一条新的思路。

1 新型网络模型

1.1 人工蛛网拓扑

蜘蛛经过了约18亿年的进化,现在的蜘蛛网不仅具有优雅、超轻的结构,而且具有超级弹性和抗张强度,可以抵抗各种大风、昆虫等的冲击。即使有几个网格单元遭到破坏,它仍能作为网来捕获猎物,具有极强的抗毁能力。针对蜘蛛网的结构特点、蜘蛛的捕食机理以及人工蜘蛛网通信拓扑的构建等方面问题,文献[3]中已进行了详尽的阐述,并建立了双层六边形人工蛛网逻辑拓扑模型。本文以单层六边形人工蛛网为通信子网模型进行组网,并进行了相应的分析与仿真。

1.1.1 人工蛛网逻辑拓扑模型

电力线载波通信的时变性、频率选择性和强干扰性等特点,使电力线通信的组网方式具有其独特的特点,如,网络物理拓扑和逻辑拓扑具有时变性,没有专用的交换机和中继器,通信媒质共享信道,弱数据处理能力,一对多通信等。为保证一定的通信距离/组网规模,电力线通信组网通常需要通过路由器/中继器将同一个物理子网划分成多个逻辑子网。低压电力线通信网络是由星形网络和树形网络组成的混合网络。从物理层看,图1所示的单层人工蛛网除具有多个星形网络(如v1,v2,vh,v4,v5)和树形网络(如v1,vh,v3,v2,v4)外,还具有自己独特的环形网络(如v1,v2,v3,v4,,vm);从数据链路层角度,人工蛛网的结构是一对多、多对一的这种通信方式,与低压配电网的总线型逻辑拓扑相吻合,所以,不论从物理层还是数据链路层,人工蛛网结构都能作为低压配电网的组网结构。

1.1.2 人工蛛网数学模型

为了能更清楚地阐释人工蛛网的结构特征和建立新型路由模型,且为进一步研究蛛网提供理论基础,本文定义了人工蛛网的主要特征参数如下。

(1)Nr为围绕中心节点vh的蛛网层数,即同心圆层数。该参数反映人工蛛网的复杂度,同时也决定人工通信蛛网所覆盖的通信范围,本文中取值为1。

(2)Ns为中心节点vh与周边节点iv(i=,1,m)相连的蛛网轮辐数,即中心节点与相邻周边节点通信路径数量。

(3)Nn为人工蛛网总节点数,与Nr,Ns的关系如式(1)所示。

(4)Dw为蛛网直径,直接反映蛛网所覆盖的物理范围。

(5)Hm为网眼高度,是同一径向上相邻两层节点之间的距离。该参数反映网络的密度,与wD,Nr的关系如式(2)所示。

(6)Δθ为蛛网扇区角,即相邻两径向路径的夹角。

这样,蛛网中任一节点的位置可由式(4)所示的极坐标方程来表示。

其中:ri=i×Hm,i=0,1,,Nr,为径向方向上的路径长度;θk=k⋅Δθ,k=0,1,,Ns-1,为径向路径与水平线的夹角。这些只是网络的逻辑关系,因此式(2),式(3)可以标准化为式(5)、式(6)。

则式(4)可以简化为式(7)。

1.2 PLC网络的人工蛛网结构

在PLC系统中,下行方向定义为信息由基站传输到所有的用户终端,每个终端可以直接或通过中继间接收到下行信息;上行方向定义为用户终端传送信息给基站。上行方向的信息不仅可以被基站接收,也可以被其他用户终端接收。所以,从MAC层角度,PLC网络是一个树形物理拓扑下的总线型逻辑结构[19],如图2所示。其中BS(Base Station)为基站,负责网络内所有节点的数据采集及组网等。近、中、远的定义是根据收到BS广播信息的节点与BS的距离定义的,如BS一次广播后,收到该广播的节点定义为“近”,收不到该广播,且需要以“近”节点为中继与BS通信的节点定义为“中”、“远”节点是以“中”、“近”的节点为中继与BS通信的节点。基于网络的此种结构特点,本文建立这种基于蛛网结构的PLC组网模型。

低压配电网三相之间的衰减较大,在没有相间耦合器的情况下,低压配电网三相之间可以看作并列且相对独立的逻辑关系,因此可将其中某一相的逻辑拓扑作为重点研究对象。由于电力线通信数据传输距离有限,在实际应用中,某一相内可能只有离基站物理距离近的用户终端能与该相基站可靠通信。假设某相网络内用户节点总数为n,基站一次广播后有m(1≤m≤n)个节点能与之可靠通信,剩下n-m个用户节点虽然物理链路是连通的,但由于信号随传输距离的衰减等原因,不能与基站通信。为了解决这个问题,本文提出了基于单层蛛网的组网模型。

在m个能与基站可靠通信的节点中,假设相邻两节点间是可靠通信的,m个节点组成图1所示的m-1边蛛网结构,相邻节点之间能可靠通信,不相邻节点可通过节点h为中继进行通信。节点v1,v2,,vm代表用户终端节点。假定节点vh位于逻辑子网的中心(vh为v1~vm中的一个,1≤h≤m),其与所有周边节点均能可靠通信,功能与基站类似,负责收集其所在蛛网周边各节点的数据,维护子网内的路由以及与其他子网的中心节点通信。同时,由此节点发起对剩下的n-m个用户节点的组网广播。由于节点vh较基站与其余n-m个节点物理上的相近性,所以当vh继续发起组网广播后,有新的节点收到vh的组网广播,这些新的节点构成新的人工蛛网子网。然后,新的子网选取中心节点vm+1,确定子网节点数目,由vm+1与上一子网的中心节点vm+1保持数据通信,同时,进行新一次的组网广播,会有新的节点收到该广播。依次类推,最终该网络内的所有节点组成了多个类似的人工蛛网。如图3所示,离基站节点“近”的蛛网的中心节点(例如h),可以直接与基站通信,处在“中间”位置的蛛网的中心节点需要以“近”的中心节点为中继与基站通信,同样,处在“较远”位置的蛛网的中心节点,是以“中间”、“近”的中心节点为中继与基站通信。基站只要确保每个子网的中心节点能与之可靠通信即可,这样在一定程度上提高单相基站采集数据的效率,降低了网络节点的数量,降低了数据冲突率。

2 电力线通信人工蛛网路由

2.1 人工蛛网组网算法

2.1.1 子网中心点选取算法

研究电力线通信组网可以将低压配电网抽象为图G(V,E),记为G(V(G),E(G))。如图1所示,其中,V(G)为图G的节点集,元素v∈V称为图G的一个顶点或节点,E(G)是V中节点组成的无序对的集合,称为边集。图G每条边的权值vivj,代表任意两个终端节点间的通信距离。这里“通信距离”是指网络内可以直接通信的两个节点所跨过的节点个数,相邻两个节点的通信距离为1。通过Dijkstra算法[20]求出图G中所有顶点间的最短通信距离,并组成距离矩阵D,其元素vivj是图G中顶点vi与顶点vj间的距离,i,j=1,2,,m。

给图G的所有顶点赋权值T(v),代表各终端节点在一定时间段内产生的数据量。对j=1,2,,m,给矩阵D的第j行乘以T(v j),并求所得矩阵的行和。

比较所有行和f(g(v i)),根据Dijkstra算法,其中最大者所在的行对应的顶点即为子网的中心点,故对于某个子网选取中心节点的优化目标函数可表示为式(11)。

2.1.2 组网算法

人工蛛网组网算法如下:

(1)组网开始,由基站节点发送组网广播,在收到该广播的m(1≤m≤n)个节点中,通过中心节点选择算法选择其中一个用户终端节点为第一个蛛网的中心节点h,由节点h对剩下的m-1个节点分配逻辑ID,直到所有m个节点均获得逻辑ID为止。

(2)第一个人工蛛网组网完成后,基站向节点h发送指令,由节点h再次发送组网广播,设有k(m≤k≤n)节点收到节点h的广播,剔除掉已经获得逻辑ID的m个节点,在剩下的k-m个节点中选择一个与节点h可靠通信的终端节点为第二个人工蛛网的中心节点l,重复步骤(1),直到所有k-m个节点均获得逻辑ID。

(3)基站以节点h为中继给节点l发送指令,由节点l发送组网广播,重复步骤(1),假设第二个蛛网已经将剩下的所有n-m个节点连通,此时节点l会得到空响应,并把该响应通过节点h传回基站,至此,组网结束。形成了以节点h为中继节点的m-1边蛛网逻辑通信拓扑和以节点l为中心的n-m-1边蛛网逻辑通信拓扑,这样就建立了基站到该单相网络内所有节点的通信路由。

2.2 自动路由协议

假设某单相网络组网完成后由三个蛛网子网组成,路由协议利用这三个子网进行数据包的发送、接收。数据包格式如图4(a)所示,包括帧头、数据源地址、目的地址、子网中心节点地址、节点层数,分层标志位、节点数据及帧尾。其中,帧头、帧尾用于区分数据帧的起始和结束;数据源地址为源节点的地址标识,为基站,各子网中心节点地址;目的地址为目的节点的地址标识,本文均设置为基站地址;子网中心节点地址为各个子网的中心节点地址标识,是各周边节点发送数据的目的地址;节点层数为网络内组成的子网个数,与分层标志位作比较;分层标志位用于判定节点所在子网及数据包来源,同时,防止发送到基站的数据包被反复广播,提高数据处理效率。数据传输流程图如图4(b)所示。数据传输开始,设置所有节点的初始化节点层数为3,分层标志位为0,基站地址为0。数据传输开始,基站广播分层标志位为0的数据包,只有子网1内的节点收到数据包,判断数据源地址是否等于基站地址,如果是基站地址,则创建新的数据包,包括选取中心节点地址,数据源地址设置为该子网的中心节点地址,目的地址设为基站地址,分层标志位设置为1,节点层数与分层标志位相等,添加节点数据。子网1的周边节点将数据包发给中心节点,中心节点处理完所有数据包后,将其发送至基站节点。基站收到来自子网1的数据包后,进行记录。然后,子网1的中心节点广播请求数据包,这个数据包会被子网1内的周边节点、子网2的所有节点收到。子网1内的节点收到数据包后,判断数据包节点层数与分层标志位是否相等,相等则结束传输。子网2的节点收到子网1的中心节点广播数据包后,首先判断数据源地址是否为基站地址,如果不是,再判断节点层数大于分层标志位,子网2内的所有节点创建新的数据包,与子网1创建数据包过程一致,数据包的节点层数与分层标志位相等,设置为2。子网2的中心节点处理完周边节点数据后将其发送至子网1的中心节点,子网1的中心节点比较本节点数据包的节点层数小于收到数据包的分层标志位,则将该数据包发送至基站,至此完成子网2的数据与基站之间的通信。然后,子网2的中心节点广播请求数据包,被子网1,子网3的节点收到,子网1的周边节点收到该广播数据包,结束程序,中心节点收到该数据包将其发送至基站。子网3的节点判断收到数据包的节点层数大于分层标志位,创建数据包。节点层数与分层标志位相等,设置为3。子网3的中心节点处理来自周边节点的数据后,以子网2,子网1的中心节点为中继节点,将数据发送到基站,至此完成所有节点与基站的通信。子网1到子网3的网络内数据采集以及数据广播是依次进行的,例如,子网1数据采集完成后,将数据发给基站,中心节点h向子网2的中心节点发送广播,子网2开始数据采集与发送,依次类推。同一时间段内,只有一个子网占用信道,进行数据采集与传输,在一定意义上减少了节点数量。

利用三层网络进行数据包的产生,发送过程如图5所示。在每一层子网中都创建新数据包,其中源地址设置为其所在子网的上一层子网的中心节点/基站地址,目的地址均为基站地址,子网的中心节点把数据发送到上一级子网的中心节点/基站,同时对下一层网络进行数据广播。这种将大型网络分割成若干小型子网的数据传输方式在理论上有利于降低总线型信道的数据冲突率,提高信道的利用率和系统的效率。

2.3 终端节点建模

在本文中,不考虑用户终端节点的物理故障造成的通信失败。假设在信道环境良好的情况下,每个用户终端均工作良好,只有信道环境的改变,造成用户终端节点的工作状态的改变。因此,可以应用两状态马尔科夫模型来表征由于信道环境改变造成的用户终端节点通信状态的变化情况[21],仿真观察故障节点对系统的影响。如图6所示,“良好”“故障”表示用户终端节点的两种工作状态。“良好”代表终端节点可以与其所在子网的中心节点直接通信,“故障”代表终端节点不能与其所在的子网中心节点通信。本文假设,在一个数据采集周期内,节点的工作状态是不变的。在一个采集周期结束后,由于信道状况的改变,“良好”“故障”两种状态才发生改变。Pg和Pb分别定义为节点在一定信道状况下处于“良好”和“故障”状态的概率,Pgg和Pgb分别定义为一个数据收集周期后,“良好”状态的节点仍处于“良好”状态或是变成“故障”状态的概率,Pbb和Pbg也是类似的定义。式(12)~式(15)为状态变换的数学表达式。

3 仿真与试验研究

3.1 仿真环境

本文根据实际低压配电网的配电环境,在半径50 m范围内分布14个用户终端和一个基站节点,以PC机为仿真硬件平台,以Opnet14.5为编译和仿真环境。在不考虑数据处理延时的情况下,具有2个子网的网络结构就可以表示路由协议的有效性。假设在仿真时间内所有节点组成的两个6边形蛛网结构不发生改变,并依据式(11)确定每个子网的中心节点。由于中心节点到每个周边节点的“距离”都为1,则此处的中心节点为与各个周边节点通信流量最大的节点。图7所示为组网完成后的网络拓扑,subnet_0代表基站节点,subnet_1_0和subnet_2_0为各自子网的中心节点,其他节点为终端节点,信道传输速率为1 000 bps,每个数据包大小为24 bits。对采用新的蛛网路由协议后的信道数据冲突率,吞吐量,信道利用率等参数与采用CSMA协议下的相关参数进行仿真对比分析。本文设定一个数据采集周期为600 s,所有的仿真时间设定为3 000 s,即5个数据采集周期。

3.2 试验结果分析

从马尔科夫模型两状态表达式(12)~式(15),可以明显看出在Pg,Pb,Pgg,Pgb,Pbb,Pbg六个变量中,只有Pg和Pgb为独立变量,其他参数均可由这两个参数来表达。因此,分析这两个变量来观察新型重路由算法的时间特性和工作效率。由式(15)可知Pgb=(Pb Pg)·Pbg,由于0

图9所示为gP=0.9情况下的信道状态仿真结果。图9(a)为两种协议的吞吐量仿真结果,图9(b)为与之相对应的链路利用率的仿真结果。从仿真结果中可以得出,CSMA协议下的信道数据冲突率比较高,信道吞吐量及利用率均比较低,相同条件下,CWRP协议由于数据冲突率很低,信道的吞吐量与利用率均有大幅提高,这对电力线通信的上层应用,保证服务质量是非常重要的。

4 结论

(1)本文从提高低压配电网通信可靠性角度出发,提出了基于人工蛛网的电力线通信组网拓扑,并建立了相应的蛛网数学模型,为以后针对蛛网模型的相关研究提供理论基础。

(2)建立基于蛛网的组网结构,针对该结构,首次提出中心节点选取算法,详细叙述组网过程,建立新的自动路由协议,理论分析表明该路由协议在降低数据冲突率,提高信道吞吐量,信道利用率方面有很大优势。以两状态马尔科夫模型表征通信节点,具有代表性。

(3)与CSMA协议在数据冲突率,信道吞吐量,利用率方面进行仿真对比结果显示,新的CWRP协议在以上方面表现均大幅度优于CSMA协议,证明了理论分析的正确性,以及CWRP协议的优越性,在提高通信可靠性方面具有一定的意义。

摘要:针对低压电力线载波通信可靠性低的问题,提出了人工蛛网通信网络模型,并建立了相应的数学模型。将三相配电网的MAC层转化成由多个人工蛛网组成的逻辑拓扑。详细叙述了组网过程,提出了中心节点选取算法,制定了自动路由协议。以两状态马尔科夫模型表征用户终端的工作状态,模拟实际中由于信道变化产生的终端节点通信失效。针对数据冲突率、通信流量、链路利用率等方面进行建模仿真对比实验,仿真结果表明新的组网方式及路由协议在提高电力线载波通信可靠性方面具有较大优势。

通信协议 篇8

由于PLC发展的历史原因,不同品牌PLC之间通信较困难。目前在PLC控制系统扩展改造中,如果新增PLC由于某些原因与原系统中PLC品牌不同而又需要通信,一般采用某种现场总线,但采用现场总线成本较高,且需要改动原有PLC。本文提出了在某些实时性要求不高的场合,可以充分利用各品牌PLC的上位机通信协议,采用单片机进行协议转换,不修改原有PLC系统,低成本实现异种PLC通信。

2 设计要求分析

上位机通信协议是主从式协议,一般用于上位机对PLC的运行监控,主机(上位机)发出初始命令,从机(PLC)对其做出响应,返回相应值或响应代码,PLC中不需要另行编写程序。扩展PLC与原PLC通信的主要目的,在于读取原PLC中相关软元件的数值或状态,作为部分输入条件,参与本机内程序控制,较少出现扩展PLC改写原PLC中软元件的情况(如果改写较多,则原PLC系统需要重新考虑)。限于篇幅,为简洁起见,本篇以系统中原有PLC是欧姆龙CPM1A系列、新增PLC是三菱FX2N系列为例,采用单片机作为上位机,只讨论FX2N对CPM1A软元件的读操作,写操作可类似推导。

如图1所示,单片机采用国内流行的工业级芯片P89C669FA[1],P89C669FA基于PHILIPS半导体新51MX内核,包含96kB的Flash程序存储器、2kB的数据SRAM、两个增强型UART,可以不需扩展外围器件即能满足与两PLC通信连接的需要。FX2N和CPM1A通过各自的专用上位机通信电缆SC-09和CQM1-CIF01与P89C669的两路串行口连接。

整个通信过程使用的协议可分为几个层次,如图2所示划分,底层采用单片机自带的串口采用异步串行通信协议实现单片机与两PLC的数据收发;中间层采用两PLC各自的上位机通信协议组帧实现单片机对两PLC数据的读写,应用层为本文重点讨论的两上位机发送、接收帧正文内容的转换程序。转换程序采用C语言[2]描述。

3 程序设计思路

3.1 上位机通信协议概述

通过对FX2N的串口通信侦测,可获得上位机通信协议中读写数据寄存器的发送帧格式如下:

命令码一字符(读为“0”,写为“1”)。寄存器首地址按公式addr(H)=addrs(H)×2+1000H计算出,例如首地址D100则转换为1064H。字节数用来表示操作的寄存器数目,每个寄存器的字节数为两个。数据块只有写操作时才有,表示需写入寄存器中的数据,每个寄存器存放四位十六进制数,高两位写在后,低两位写在前。寄存器首地址、字节数、数据块构成发送帧的正文部分。和校验码为命令至和校验前所有字符的ASCII码和的低两位的ASCII码。例如读出D1000开始的三个寄存器的内容,其发送帧内容如下:

正文部分在读操作正确时为依次从数据寄存器中读出的十六进制数据(高两位在前,低两位在后),最多一次可读写64个字节的数据;写操作正确时返回代码ACK(06H);读写操作不正确时,返回代码NAK(15H)[3]。

欧姆龙上位机通信协议对外公开,可从CPM1A编程手册中获得读操作发送帧格式为:

机号为参与通信的PLC编号,在PLC内DM6653中设置,在帧中占两字节。本篇中为方便描述,参与通信CPM1A只有一台,机号设为0。识别码为软元件(欧姆龙PLC中称为通道)操作类型,常用的主要有读操作:RR(读输入输出继电器状态),RC(读定时/计数器当前值),RG(读定时/计数器状态),RD(读数据寄存器值)。通道起始地址和通道数都是四位十进制数,在帧中各占四字节。识别码、起始通道、通道数构成发送帧的正文。

读操作的响应帧格式为:

机号、识别码与发送帧内容相同,结束码为命令的执行状态,主要的有00H(正常结束),13H(FCS错误)等(具体请参考CPM1A编程手册[4])。正文部分只在读出数据时才有。需说明的是CPM1A通信中,超过131字符的帧需分割处理。

3.2 主程序设计

在FX2N选择数据寄存器D1000-D1999,存放描述对CPM1A软元件读操作的参数,D1000存放该区域寄存器的数目。描述一次读操作,需占用FX2N三个寄存器:约定上述四类读操作类型分别以数字1,2,3,4表示,存放在指定区域中一个寄存器;其后的两数据寄存器内,依次存放起始通道号及通道数(为方便程序设计,规定每次操作通道数不超过30,以符合两PLC上位机通信协议中对一帧长度的要求),FX2N最多可对CPM1A进行333次不同的读操作。指定D2000向上数据寄存器,按各次对CPM1A读操作的通道顺序依次存放从CPM1A中返回的数据(每通道占一寄存器)。

初始时,P89C669按照上位机协议读取D1000中内容,将其换算成十进制数N。将FX2N中D1001起始的N个数据寄存器数据全部读入P89C669中后,把这些对CPM1A读操作的描述转换成CPM1A上位机协议格式的发送帧正文,顺次保存在一数组中。

从数组中选取一读操作发送帧正文对CPM1A读操作;若CPM1A响应错误,则重新发送原读操作帧,连续三次错误,则报警;响应正确,则提取CPM1A响应帧的正文内容,保存到一数组中,并将响应帧中读到的数据转换成FX2N发送帧,对FX2N中D2000以上指定区域写操作,若响应错误,则重新发送写操作帧,连续三次错误,则报警;响应正确,则选取下一帧正文内容对CPM1A读操作,直至完成所有要求的对CPM1A读操作及向FX2N回写数据后,开始下轮读写循环。为提高实时性,在完成一次CPM1A读操作后,提取有效响应帧的正文内容与上轮比较,相同,则不必向FX2N发送;不同才转换成FX2N发送帧,对FX2N写操作,刷新数据。如此往复循环下去。主程序流程图如图3所示。

3.3 协议转换实现

从主程序设计分析中可知,P89C669需完成两次转换:即FX2N中对CPM1A各次读操作的描述(D1000向上N个寄存器内容)向对CPM1A读操作的发送帧转换;CPM1A的响应帧向对FX2N写操作的发送帧转换。

定义unsinged int型数组CHNNumber[N/3],用以顺序存放各次对CPM1A读操作的通道数,定义unsinged in型数组Total CHNNumber[N/3],用以顺序存放各次对CPM1A读操作后累计已读通道数。定义unsinged int型变量k为读取次数,k

定义char型数组FromFXFirst[4觹N],用以顺次存放P89C669从FX2N中D1001向上的N个数据寄存器读到的内容。定义unsigned int变量i<4N,则FromFXFirst[i%12]~FromFXFirst[i%12+3]对应对CPM1A读操作类型的描述,FromFXFirst[i%12+4]~FromFXFirst[i%12+7]对应CPM1A中起始通道号的描述,FromFXFirst[i%12+8]~FromFXFirst[i%12+11]对应通道数的描述,都是低两位在前,高两位在后的四位十六进制数字符。定义char型数组ToCPM[10觹N/3],用以存放P89C669向CPM1A各次读操作发送帧正文内容,按顺序包括每次的识别码(2字符),起始通道号(4字符),通道数(4字符)。

定义unsigned int变量j<10N/3,则ToCPM[j%10],ToCPM[j%10+1]对应识别码字符。ToCPM[j%10+2]~ToCPM[j%10+5]对应通道号,ToCPM[j%10+6]~ToCPM[j%10+9]对应通道数,都是高两位在前、低两位在后的四位十进制数字符。

如此,从FromFXFirst[i%12+1]的值就可判断出每次对CPM1A读操作的类型,转换为对应的两位字符,分别存入ToCPM[j%10]、ToCPM[j%10+1],具体对应如图4所示;将FromFXFirst[i%12+4]~FromFXFirst[i%12+7]、FromFXFirst[i%12+8]~FromFXFirst[i%12+11]中内容各自由低两位在前,高两位在后的四位十六进制数字符转换成十进制数,再转换为高位在前、低位在后的四位十进制数字符,分别存入ToCPM[j%10+2]~ToCPM[j%10+5]、ToCPM[j%10+6]~ToCPM[j%10+9],即可完成FX2N中读操作的描述到向CPM1A读操作的发送帧正文转换;另在通道数的四位字符FromFXFirst[i%12+8]~FromFXFirst[i%12+11]换算成十进制数后,存入CHNNumber[k]中。

定义char型数组,用以顺序存放各次读操作后CPM1A响应帧的识别码和正文(即所读各通道数据)字符。数据在CPM1A的读响应帧中表达形式较复杂,RR、RD以四位十六进制数表示一数据,RC以四位十进制数表示一T/C的当前值,RG时以一位二进制数表示一T/C的状态。第k次读操作识别码为RR、RC、RD的响应帧中每通道内数据都以四位字符表示,可直接对应。

存入;第k次读操作识别码为RG的响应帧中每T/C的状态以一位字符表示,应将字符存入中。定义char型数组,用以顺序存放首轮向FX2N中回应数据的各发送帧正文内容。第k次向FX2N写操作的发送帧中寄存器首地址应为2000+TotalCHNNumber[k-1],字节数应为2×CHNNumber[k],换算成低两位在前、高两位在后的十六进制数字符,分别存入中。

数据在CPM1A的读响应帧中表达形式略微复杂:RR、RD以四位十六进制数表示一数据,RC以四位十进制数表示一T/C的当前值,RG时以一位二进制数表示一T/C的状态。可根据的值可以确定读操作类型,即可确定正文数据的进制,统一换算为十六进制数,再转换为四位字符,存入中。

如此,则完成CPM1A的响应帧内容和FX2N写操作发送帧的转换。

4 扩展PLC中编程注意点

FX2N中编写程序时,先在D1000向上的寄存器中设定对CPM1A软元件读操作的描述。根据设定中各次读操作的软元件数,即可确定各次从CPM1A中读得的返回值在D2000向上数据寄存器中的存放位置,根据对应所读软元件的类型可确定数据的意义(数值或状态),作为控制条件,编写入PLC控制程序。

需要说明的是,由于上位机通信本身的实时性不强,对实时性要求较高的控制点,应直接从扩充PLC的输入点引入,必要时在扩充PLC中采用中断实现快速响应。

5 结语

本篇为描述方便,没有涉及FX2N对CPM1A的写操作功能,以及FX2N运行过程中改变对CPM1A读操作等内容,对于这些可类似加以设计,扩展功能。程序完成后,可在KeilC51中仿真运行调试[5],借助GX-Developer和CX-Programmer软件,可很方便地观察FX2N和CPM1A中软元件内容,验证通信效果。本设计实际应用于特殊玻璃生产的均质炉控制系统中,目前效果良好。

参考文献

[1]徐爱均,彭秀华.单片机高级语言C51Windows环境下编程与应用[M].北京:电子工业出版社,2003.

[2]肖闽进.基于P89C669微控制器的MODBUS协议转换器设计与实现[J].常州工学院学报,2006,19(2):12-15.

[3]李众,高键.单片机与FX系列PLC通信协议应用研究[J].华东船舶工学院学报,2001,15(5):44-48.

[4]欧姆龙(中国)有限公司.SYSMAC CPM1A可编程控制器操作手册[Z].1997.

LVDS高速并口通信协议设计 篇9

关键词:高速传输系统,LVDS并口,通信协议,停止等待,IEEE802.3

非对称的点对点通信在应用中十分常见,非对称指的是某一方向的数据传输量明显大于相反方向。高速数据传输系统主要传输图像数据,需要完成由PC向存储设备的高速传输,它是非对称的。针对图像数据的高速传输,美国国家半导体公司推出了CameraLink标准[1],美国自动化成像协会提出了GigE Vision标准[2]。这两个标准均整合了相机,GigE Vision甚至集成了部分TCP/IP协议,而系统中数据传输是由以太网、高速接口级联而成,故不可以直接使用以上标准。对于点对点通信,有着完备的协议和专用设备,如USB3.0[3]接口。但对于本系统简单的点对点高速传输,其实现比较复杂。高速总线主要有HOTLink和低摆幅差分信号LVDS(Low Voltage Differential Signaling)[4],其中LVDS可以在差分PCB线对或平衡电缆上以几百兆至几千兆比特每秒的速率传输数字信号,在实际中应用较多,Cameralink标准的电气连接也是基于LVDS的。

为提高带宽,LVDS标准提议使用提高总线位宽的方法[5],三线同步串行传输已得到实现[6]。同样,使用DDR传输也是提高带宽的一种方法,也已实现[7]。

本文结合增加总线位宽和DDR传输两种方法,提出一种基于LVDS并口的通信协议:帧格式、数据分包方法,分析协议效率和基于停止等待ARQ的差错、流量控制方法,在IEEE802.3千兆以太网的应用中证明该协议完全可行。

1 高速数据传输系统

高速数据传输系统通过存储设备连接显示设备,通过IEEE802.3千兆网卡连接控制计算机,其结构如图1所示。

千兆网卡和存储设备分别由两片FPGA控制,数据经FPGA通过高速接口传输至存储设备,为使千兆网卡能全速工作,接口速率至少为1 Gb/s。

2 停止等待ARQ通信协议设计

2.1 协议电气接口

由于千兆网卡和SDRAM间为超短距离传输,故本协议使用LVDS接口。为提高接口速率,采用并行接口[5];为减少传输数据冗余,采用源同步,即1路时钟,4路数据,双沿采样(DDR)的源同步方式。此时当时钟频率为150 MHz时,总理论带宽就可达1.2 Gb/s。

2.2 帧格式

通信协议的设计中首要问题是帧格式的设计[8]。超近距离非对称点对点通信有源端、宿端明确、误码率低的特点,故帧格式设计依照减少冗余、降低校验复杂度的原则。其由命令帧和应答帧组成,帧格式如图2、图3所示。传输数据的长度以字节为单位,上升沿发送高4位数据,下降沿发送低4位数据,每一个时钟周期正好传送1 B数据。

2.2.1 开始停止界定符

一帧的开始由前导码标志,但无停止码,数据的长度由长度字段指示。为保证每次通信开始时数据总线均发生翻转,前导码使用FF00;总线空闲时,保持最后发送的数据不变。

2.2.2 其他字段

命令帧由长度、类型、数据、校验字段构成:长度字段长度为2 B,高字节先发,其表示“类型”、“数据”、“校验”字段总长度;类型字段长度为1 B,最多可表示256种命令(例:0x10:写寄存器,0x11:读寄存器,0x12:写RAM数据);数据字段长度可变,数据类型为写寄存器时其由1 B的写寄存器地址和1 B的写寄存器内容组成,为读寄存器时由1 B的读寄存器地址组成,写RAM时为待写入数据(由于长度字段为2 B,所以待写入数据最长为65 533 B);校验字段长度为1 B,为模256校验结果。

应答帧由长度、类型、操作结果、响应、校验字段构成:长度、类型、校验字段的构成同命令帧;操作结果字段长度为1 B,其表示接受端对命令的处理结果;响应字段长度可变,数据类型为写寄存器时其为1 B长度的寄存器内容,写RAM时为2 B的已接收数据长度,主要用于流量控制。

2.3 收发流程

由于使用源同步传输,系统不需要再进行同步操作[9],发送时将时钟延迟数据90度以获得更佳时序。每次通信由发送端发送命令帧开始,发送端收到应答帧结束。

读写寄存器帧格式相对固定,本文对写RAM操作分析。每次通信发送端发送命令帧,接收端在接收、处理完数据后响应应答帧。

图4为发送端处理流程,只要缓冲区内有数据,发送端就组帧发送,每次发送有效数据的最大值可自定义(本文中为2 048 B),发送完数据收到应答帧后再进行下帧的发送。

图5为接收端流程,接收端启动后一直处在等待状态,直到收到前导码后启动接收流程,通过判读长度字段获得帧长信息,在接收校验完数据后应答实际接收数据长度给发送端并复位系统等待下次传输。

2.4 差错和流量控制

通信中的误码率非零,为保证数据的可靠传输,协议中需包含校验部分以进行差错控制。为简化设计,校验部分只进行检错,不进行纠错,放弃使用常见复杂的CRC32校验,使用简单的256求模校验,即除前导码、长度字段外所有数据字节之和为256。

当发送端数据发送速率高于接收端处理速率或通信出现错误时需要进行流量控制,本协议使用停止等待ARQ协议,停止等待ARQ在传播延时较低的信道中工作良好[10]且易于实现。正常情况下发送端在收到最近发出的命令帧对应的应答帧后再发送下一命令帧,控制逻辑如下:

(1)发送端发送命令帧并启动延迟计数器,等待应答帧;

(2)接收端收到命令帧校验接收后将实际写入到缓冲区内的数据长度由应答帧响应给发送端,其间如果校验错误则丢弃该帧数据;

(3)发送端收到应答帧后根据响应字段长度决定重发、补发或继续发送下帧数据(响应长度为0,重发数据;响应长度小于已发长度,补发剩余数据;响应长度等于已发长度,发送下帧数据),如果发送端等待应答帧超时则重新发送上帧数据。

3 协议效率分析

如图2、图3帧格式所示,高速并口协议在读写寄存器操作时命令帧长度较短,协议效率固定,而写RAM操作参数可以配置。因此,对写RAM操作的协议效率进行分析有较大意义。

协议效率主要受命令帧最大长度、传输/传播延迟和误码率影响。命令帧数据字段长度最大值由人为设定,范围为1~65 533 B,记为Lm/B;传输延迟由数据帧的总长度决定,记为Dt/s;传播延迟由通信链路的长度所决定,记为Dp/s;收发系统工作频率记为Fs/Hz,总传输有效数据长度记为Lp/B,总传输数据帧长度为Lt/B,误码率为Er,通信线路长度为Dis/m。则Dt=Lt×Fs,Dp=2×Dis/(2.8×108)。

协议效率为:

在理想传输,误码率为0情况下协议效率为:

在忽略传播延迟时,协议效率为:

本协议主要用于近距离通信,收发器通信链路长度在20 cm~10 m之间,收发系统工作频率150 MHz。

由式(2)可知,链路长度一定时,不同Lm所对应的协议效率如图6所示。

由图6可见,命令帧最大长度一定的情况下,随着通信链路长度的增加(即传播延时的增加),协议效率将降低;在传播延时一定的情况下,随着命令帧最大长度的增加,协议效率增加,但这种增加不是线性的,长度达到2 000 B后增长趋于平缓。

最大命令帧长度直接影响到收发端的缓冲空间,综合考虑数据最大长度为2 048 B、3 072 B或4 096 B最佳。此时在链路长度为20 cm时效率可达99.26%、99.51%和99.63%。

忽略传播延时,由式(3),数据最大长度一定时,不同误码率下的协议效率如图7所示。

由图7可见相同误码率下数据最大长度越大协议效率越高,当误码率高于10-6时误码率才对协议效率有较大影响。误码率低于10-8时,最大长度为2 048 B时效率可达99.27%,最大长度为3 072 B时效率可达99.51%,最大长度为4 096 B时效率可达99.64%.

实际应用中由于每次传送的数据不会都按照最大数据长度传输以及系统组帧、解帧需要时间,故协议效率会低于理论值。相对于IEEE802.3协议98.28%的理论效率[11],本协议优势明显。

实际中,使用本通信协议进行千兆网卡与SDRAM间的数据传输,通信链路长度20 cm,链路误码率小于10-12,帧最大数据长度2 048 B。千兆网卡以90 MB/s连续接收电脑端发来60 MB数据,高速接口可以准确无误地将数据传送至SDRAM中。计算机发送1 480 000 B数据给千兆网卡,数据被分成了7 722帧,协议效率为96.96%(含传播延时82.37%);计算机发送148 000 000 B数据给千兆网卡,数据被分成了817156帧,协议效率为96.97%(含传播延时81.80%)。平均每帧有效数据长度低于200 B,由此可见本通信接口在应用中尚有较大裕量,系统中的速率瓶颈在千兆网络处。

参考文献

[1]BASLER.Camera link specifications of the camera link in-terface standard for digital cameras and frame grabbers[S].October 2000.

[2]Automated Imaging Association.GigE vision 1.0[S].May2006.

[3]Universal Serial Bus 3.0 Specification Revision 1.0[S].June 6,2011:47.

[4]向冰.高速图像串行总线传输[J].现代电子技术,2006(24):97-100.

[5]Electrical characteristics of low voltage differential signal-ing(LVDS)interface circuits revision 1.2[S].May,2000:10.

[6]王文华,何斌,任建岳.LVDS三线同步串口的传输速率[J].液晶与显示,2011,26(3):344-349.

[7]盂令军,张国兵,王宏涛,等.基于FPGA的LVDS高速差分接口应用[J].化工自动化及仪表,2010,37(5):94-96.

[8]Zheng Qiao.An embedded short-range wireless data com-munication protocol design[C].Apperceiving Computing andIntelligence Analysis,2009:399.

[9]陈莹,高双成.基于FPGA的LVDS接口应用[J].电子科技2012,25(1):10.

[10]ALBERTO L G,INDRA W.通信网-基本概念与主体结构[M].王海涛,李建华,译.北京:清华大学出版社,2005.

通信协议 篇10

在现代化工业控制中, 由于被控对象、测控装置等物理设备的地域分散性, 以及控制与监控等任务对实时性的要求, 不同设备之间现场交互性信息的传递越来越多。Modbus这一全开放、免费提供, 非常容易理解和实施的协议,得到了广泛的应用。其Master/ Slave通信机理能很好地满足实时性要求, 是一种真正开放的理想解决方案。目前工业中常用的Modbus通信分为两种, 一种是经由RS-232C兼容串行接口组成Modbus网络进行通信, 另一种是通过以太网结合TCP/IP协议组成Modbus/TCP网络进行通信。

本文就上述两种Modbus通信方式, 用VC++6.0/MFC开发了监测两种通信时效的时间监测软件,以比较其通信的优劣。通过这个软件, 实现通信、传输数据与计时等功能。

本文在介绍协议的基础上对时间监测软件进行探讨。

1 Modbus串口通信

标准的Modbus口使用的是RS-232C兼容串行接口, 它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验等, 控制器能直接或经由Modem组网。Modbus协议采用请求响应模式进行通信,通信方法是对等的。Modbus规定仅客户机能发起查询,服务器仅能对客户机发出的查询消息作出响应。

在Modbus串行链路上的所有设备(客户机和服务器),需要配置相同的串口参数和通信模式才能进行通信。

Modbus串口通信模式包括ASCII模式和RTU模式。

典型的ASCII数据帧格式如表1所示。

典型的RTU消息帧如表2所示。

在相同的波特率下,相对于ASCII模式, RTU模式表达相同的信息需要较少的位数,且具有更大的数据流量,所以本课题采用RTU模式。

1.1 Modbus串口通信的实现

Modbus串口通信由SerialPort类方法实现,包括参数设置、串口的选择、串口的打开及串口的关闭。

其中,参数设置在主类中实现。

sportbaud=19200; //波特率 sportnum=1; //端口号

sportparity=[XCΡ20.ΤΙF,JΖ]Ν[XCΡ20.ΤΙF,JΖ]; //奇偶校验 sportdatabits=8; //数据位数

sportstopbits=1; //停止位

使用OnButtonSportopen()函数完成打开串口功能,当点击“打开串口”按钮时,消息触发。

使用OnButtonSportclose()实现关闭串口的功能,点击“关闭串口”按钮时,消息触发。

1.2 Modbus串口数据处理

由于条件有限,课题中客户端发给服务器的数据是自己定义的,服务器返回给客户端的数据也是自己定义的。

串口传输数据时,使用OnButtonSportsend()函数实现字符发送功能,点击命令栏组框中的“串口传输”按钮时,消息触发。

使用OnComm()函数实现字符接收功能,当输入缓冲区有字符时,消息触发。

2 Modbus/TCP通信

Modbus/TCP协议以一种比较简单的方式将Modbus帧嵌入到TCP帧中,它具有较好的通信效率。

Modbus TCP/IP的协议实现了IOS 7层协议的下五层,即物理层、数据链路层、网络层(IP协议)、传输层(TCP协议)、应用层。

Modbus/ TCP协议在应用层采用Modbus协议,在传输层和网络层采用TCP/IP协议 ,用于以太网通讯。在通讯过程中,通讯链路的两端被分别定义为Modbus主机(TCP客户端) 及Modbus从机(TCP服务器),两者间遵循“主- 从”通讯原则,主机(客户端) 请求数据,从机(服务器) 提供数据。一个完整的通讯过程由查询周期和响应周期组成,查询周期由Modbus 主机发起,从机收到主机发来的查询指令并验证后,在响应周期中回传主机需要的数据信息(或者是错误提示)。

Modbus/TCP 数据帧包括报文头、功能代码和数据三个部分, 其结构如图1所示。

其中,MBAP报文头被用于Modbus/ TCP主从/机双方,在各种TCP数据流中唯一地标识Modbus应用数据单元(ADU)。功能码被用于表示主机请求从机执行的任务类别或者从机响应的类别。数据则反映主机要求的信息范围或从机响应的数据内容。

2.1 Modbus/TCP通信

Modbus/TCP通信由Winsock实现,过程如下:(1)用Connect命令建立与目标设备的连接; (2)准备Modbus报文包括7个字节的MBAP在内的请求;(3)使用send命令发送报文;(4)在同一连接下等待应答;(5)用recv命令读取报文,完成一次数据交换过程。当通信任务结束时,使用closesocket(),WSAClear()关闭TCP连接,使Modbus/TCP Slave可为其它服务,如图2所示。

其中,使用OnButtonConnect()函数实现套接字的建立及连接,当点击TCP/IP组框中的“连接”按钮时,消息触发。

2.2 Modbus/TCP数据处理

TCP/IP传输数据时,使用SendOneMessage()函数实现字符的发送功能,点击命令栏组框中的“TCP/IP传输”时,消息触发。

使用SListen()函数实现字符的接收功能,有数据到达时,消息触发。

3 计时实现

由于测试时定义的传输数据只有100个字节,无法进行计时。所以,设计时采用了多次传输取平均的方法。

计时时,先使用GetLocalTime()函数获得消息发送时刻与发送完成时刻的系统时间,然后用TimeDiff()函数计算得到传输完全部数据所消耗的时间,最后用总时间除以发送的次数就可以得到传输一次数据所需的平均时间。

4 实验结果

4.1 时间监测界面

本课题中设计了一个时间监测主界面,即Modbus串口通信与Modbus/TCP通信的客户端设计在了一个界面里,还设计了Modbus串口通信服务器界面。

客户端主界包括:用于选择通信模式的两个组框,TCP/IP通信的组框与串口通信组框;用于选择命令类型、命令执行次数及通信方式的组框;用于显示的组框。具体如图3所示。

串口服务器的界面包括:任务栏组框,命令栏组框和显示组框,如图4所示。

4.2 时间监测结果

串口通信的测试由虚拟串口软件VSPD XP 5设置一对虚拟的串口完成。

实验测得的数据如表3所示。

由上表可计算出数据传输的平均速度是4.4kbps。

以太网测试由一台计算机完成,所以测试时将服务器的IP地址设置为本机地址即127.0.0.1。

实验测得的数据如表4所示。

由上表可计算出数据传输的凭据时间为0.6301485ms,平均速度是1.21Mbps。

实验所得速度与以太网的10Mbps相差很多,是因为测试时用的是无线网,它的传输速度在实验时是1.307Mbps,这与实验结果是很相近的。说明Modbus/TCP的传输速率是与所使用的网速相一致的。

5 结束语

由实验结果可以很明显地看出,在速率上:Modbus/TCP通信速率比Modbus串口通信快很多倍,理论上,Modbus/TCP通信速率最快可达100Mbps甚至更快,而Modbus串口通信在使用RS-232进行传输时最快只有20kbps,使用较快的RS-485进行传输的速率最快也只有10Mbps。在距离上:Modbus/TCP通信不受距离限制,能够进行全球通信,而Modbus串口通信有距离的约束,RS-232最远只能传送50米左右,功能更强大点的RS-485最远距离也只有3000米左右。在传输的数据量上,Modbus/TCP通信采用的是多线程通信,能够满足数据大量而快速的传输。在传输的可靠性上,Modbus/TCP通信的传输层采用的是TCP协议,该协议在传输时,为了保证数据包的可靠传递,发送方必须把已发送的数据包保留在缓冲区,并为每个已发送的数据包启动一个超时定时器,如在定时器超时之前收到了对方发来的应答信息(可能是对本包的应答,也可以是对本包后续包的应答),则释放该数据包占用的缓冲区,否则,重传该数据包,直到收到应答或重传次数超过规定的最大次数为止,且接收方会发送一个应答包给发送方表明接收情况,这样就保证了数据的传输及接收。而串口通信则没有这样的功能。

参考文献

[1]贺怀清,刘洁瀚,郭航.Visual C++的使用及面向对象软件工程实例分析[M].北京:电子工业出版社,2007:13-80.

[2]万跃华,胥芳,张宪.Visual C++.Net网络编程[M].北京:科学出版社,2002:324-351.

[3]白焰,钟艳辉,秦宇飞.基于VC的Modbus协议通信测试软件的实现[J].现代电力,2008,25(6):76-80.

[4]孙璐.Modbus/TCP协议在远程监测中的应用[J].计算技术与自动化,2009,28(4):119-124.

[5]胡平平,王东兴,王晶杰.Modbus协议在无线监控系统中的应用[J].电气自动化,2006,28(1):56-59.

[6]刘忠.基于Modbus/TCP协议的以太网监控软件的设计与实现[J].工业控制计算机,2008,21(2):6-7.

[7]徐银生,王晞.基于以太网的Modbus/TCP协议的实时性研究[J].微计算机应用,2007,28(12):1256-1259.

[8]蒋近,毛六平,戴瑜兴.基于Modbus和TCP/IP协议的远程网络通信[J].低压电器,2005,1:43-46.

[9]林勇坚.基于Modbus/TCP工业以太网的计算机控制系统[J].通信技术,2008,10(41):207-209.

[10]王可鹏.基于Modbus TCP/IP通信的实现[J].电脑知识与技术,2008,3(4):553-554,764.

通信协议 篇11

鉴于国外发达国家通信电源监控系统的研发工作较早且产品成熟,我国相关研究工作通常是先借鉴国外的经验,然后研发具有自主知识产权的系统。其中,最关键的问题就是通信协议的破解。一般的破解思路是通过不断试探,截获通信信息,分析其规律性,进而推测得到通信协议,然后按此协议发送指令进行验证[3]。这种方法具有一定的盲目性,工作量较大,而且具有一定的局限性。

文中在破解美国Power-One通信电源监控系统时,以数据链路层通信协议的一般格式为指导,结合监控系统生成的各种文件,通过合理的逻辑推理和分析,破解通信规约和通信命令,并利用破解的通信命令直接对电源系统实施监控,实际验证其正确性。这种方法,准确性高、通用性强,而且节省时间和精力。

1 通信协议解析

1.1 解析思路

通信协议(Communication Protocol)是两个实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。以下对Power-One通信电源监控系统所采用的通信协议进行破解。

PowCom是一个基于Windows的通信软件,用于实现对Power-One的AC/DC电源变换系统的监控。破解时,运行上位机软件PowCom,并利用串口监听工具,截获Power-One通信电源监控系统上位机(PC)与下位机(即电源控制模块PCU)之间的通信信息,即捕获下行(PC→PCU)和上行(PCU→PC)数据帧。对于截获的上下行数据帧,首先根据高级数据链路控制规程HDLC帧结构如图1所示,推理出对通信协议的格式和各种功能命令;然后根据菜单界面和监控系统生成的各种文件,如配置文件(.pcg)、参数文件(.prm)、测试文件(.tst)和告警历史文件等,推理出各种功能命令中数据字段的格式。

1.2 协议破解

基于上述思路,就可以进行具体的解析。

首先,将Power-One通信电源监控系统上位机(PC)通过串口Com1与PCU相连,运行上位机软件PowCom, 选择通信(Communication)菜单下的菜单项端口设置(Port Setup),选择COM1口,波特率9 600 bit·s-1,如图2所示,然后选择该菜单下的菜单项Direct直接通信(Communication)实现与PCU连接如图3所示。注意,通信采用10 bit异步方式:起始位1 bit,数据位8 bit,停止位1 bit,无校验,波特率9 600 bit·s-1,必须与PCU设置相同。

依次选择PowCom各个菜单下的各种监控功能,包括通信(Communication),如图3所示;监控(Supervision),如图4所示;使用工具(Utilities),如图5所示, 菜单下的各种监控功能。参照图1的一般格式,分析用SUDT SerialTrace Monitor截获的上下行数据帧,推断通信协议的格式如下:每个数据帧的第一个Byte均为FFH,由此推断为标志字段。最后一个Byte可能是校验和字段,经过计算,它是帧中其他字段的校验和。第2个Byte很显然是帧长字段。第3和第4个Byte在上下行数据帧中数值总是颠倒,初步推断为发送地址字段和接收地址字段,选择对不同整流模块进行监控操作,证明了上述推断,其中,上位机的地址始终为00H,下行接收地址为整流模块的地址。第5个Byte在下行数据帧时为01H,而在上行数据帧时为00H,推断为应答字段,即00H表示无须应答;01H表示必须应答。第6个Byte始终为01H,可能是结构控制字段。第7个Byte对每个监控功能而言都是惟一的,而在每对上下行数据帧中相同,故此推断为功能码或命令字字段。最后,第7个Byte与最后一个Byte之间的部分显然为数据字段,其长度为(帧长-8)。

综合以上的分析推理结果,得到Power-One通信电源上下位机间通信协议的格式,如表1所示。

其中,标志字段表示每一帧的开始,取值恒为FFH。帧长字段为帧中所有字段的字节数,取值范围为08H~FFH。发送地址和接收地址字段分别表示数据发送和接收者的地址,上位机监控系统地址始终为00H,整流模块的地址为01H~FFH。应答字段表示接受者是否需要对接收的数据进行回复:00H表示无须回复;01H表示必须回复。结构控制字段恒为01H。功能码字段为请求或响应数据帧的功能编码,取值范围为00H~FFH。数据字段为请求或应答数据,数据格式取决于具体的监控功能。校验和字段对帧中其他字段按字节计算的校验和,用于检测数据帧在传输中是否出现差错。

在推断通信协议的同时,根据菜单功能与上下行数据帧的对应关系,可以解析出Power-One通信电源上下位机间的各种通信命令,如表2所示。

1.3 数据字段解析

在解析出表2中所列出的功能命令以后,下一步的工作就是解析出每一种命令数据字段的格式。这本来是一个耗时且繁琐的过程。但是,只要掌握文中的基本分析方法,特别是有效地利用监控系统生成的各种文件,最终能够获得令人满意的结果。

1.3.1 设置日期/时间、日期/时间设置完成

通过上位机PowCom菜单命令将日期和时间设置为2011 年3月15日15时13分时,如图6所示,截获如下的设置日期/时间下行数据帧

FF 0D 01 00 01 01 07 0B 03 0F 0F 0D 4F

将数据字段与预设定的日期和时间比对后,推断数据字段的格式如表3所示。

其中,YY为年份(0~99);MM为月份(1~12);DD为日(1~31);hh为小时(0~23);mm为分钟(0~59),所有数据Byte以16进制表示。注意应答字段为01H,表示PCU必须回复。

此时,截获到PCU回复如下的日期/时间设置完成数据帧,表示日期/时间设置成功。注意应答字段为00H,表示PC无须回复。

FF 08 00 01 00 01 07 10

1.3.2 设置/更改密码、密码设置完成

通过上位机PowCom菜单命令将密码设置或更改为8888时,如图7所示,截获如下的设置/更改密码下行数据帧

FF 0C 01 00 01 01 08 38 38 38 38 F6

显然,数据字段为密码数字的ASCII码,因为十进制0~9对应的ASCII码30H~39H。注意应答字段为01H,表示PCU必须回复。

此时,截获到PCU回复如下的密码设置完成上行数据帧,表示密码设置成功。注意应答字段为00H,表示PC无须回复。

FF 08 00 01 00 01 08 11

1.3.3 验证密码、密码确认

当通过上位机PowCom菜单命令输入错误密码5678时,截获如下的验证密码下行数据帧

FF 0C 01 00 01 01 09 35 36 37 38 F1

注意应答字段为01H,表示PCU必须回复。此时截获到PCU回复如下的密码确认上行数据帧

FF 09 00 01 00 01 09 00 13

根据PowCom此时的显示界面如图8所示,推断数据字段00H表示密码错误。同样,应答字段为00H,表示PC无须回复。

当通过上位机PowCom菜单命令输入正确的密码8888时,截获如下验证密码下行数据帧

FF 0C 01 00 01 01 09 38 38 38 38 F7

注意应答字段为01H,表示PCU必须回复。此时截获到PCU回复如下的密码确认(password confirmation)上行数据帧

FF 09 00 01 00 01 09 01 14

数据字段01H表示密码正确。同样,应答字段为00H,表示PC无须回复。

1.3.4 其他

对于其它数据帧的解析,只说明大致的解析方法和过程:在相关菜单运行相应的菜单项监控功能,将截获的数据帧与菜单项的参数、配置数据等进行比对,推断数据字段的格式。另外,在解析很多数据帧的数据字段时,参考了系统生成的相关文件。这样,既节省了大量的时间,又提高了推理的准确性。

(1)借助于配置文件(.pcg),解析了与配置相关的数据帧,如表2中序号33~36和39~44。

(2)借助于参数文件(.prm),解析了与参数相关的数据帧,如表2中序号1~6。

(3)借助于测试文件(.tst),解析了与测试相关的数据帧,如表2中序号7~12。

(4)借助于告警历史文件,解析了与告警相关的数据帧,如表2中序号25~28。

2 实际验证

首先利用串口调试工具替代PowCom上位机软件,直接与下位机PCU通信;然后将以上解析得到的下行(PC→PCU)数据帧逐一经串口调试工具发出,检查PCU是否正确响应,返回正确的上行(PCU→PC)数据帧,并正确无误地完成监控工作。

图9~图13分别是设置日期/时间、设置密码、请求系统信息、请求历史告警数据和请求系统信息的测试截图。测试截图显示,利用破解的通信命令可以直接与PCU通信,并正确地完成监控工作。

以图9为例加以说明。PC通过串口测试工具向PCU发送设置日期/时间下行数据帧

FF 0D 01 00 01 01 07 0B 03 0C 0F 13 52

通过串口测试工具截获的PCU回复如下的日期/时间设置完成(date/time set)数据帧

FF 08 00 01 00 01 07 10

表明设置日期/时间(set date/time)下行数据帧格式正确,PCU能正确识别,并成功设置日期/时间。

3 结束语

基于数链层通信协议一般格式的破解方法,对于各种数链层通信协议的破解具有通用性。但是,文中的破解结果具有一定的局限性,原因是Power-One通信协议的格式和通信命令并不是开放的和通用的。尽管如此,对于通信电源的监控管理人员以及通信电源监控系统的设计人员仍具有一定的理论指导意义。破解是手段而不是目的,下一步的工作是在此基础上设计适合中国国情,而且适应通信电源发展的监控系统和通信协议。通信电源地理上的分散化,必然要求监控的分布式[4,5,6],而分布式电源监控系统必然要求通信协议的规范化和统一化[7]。因此,研究工作的重点是我国通信电源分布式监控软件的设计和实现。

参考文献

[1]徐小杰,侯振义.通信电源集中监控系统发展浅析[J].电源世界,2006(5):13-15.

[2]刘兴纲,康洪波.基于B/S结构的通信电源监控系统的研究与设计[J].河北北方学院学报,2010,26(3):43-46.

[3]张洪生,杨三民,吴莹.串行通信协议的破解和控制系统的功能扩展[J].电气自动化,2008,30(5):44-45.

[4]杨永标,王双虎,王余生,等.一种分布式电源监控系统设计方案[J].电力自动化设备,2011,31(9):125-128.

[5]李玲,王欢欢,谢利理.基于集散控制的分布式电源并网监控系统研究[J].计算机测量与控制,2010,18(3):580-582.

[6]郑家庆.通信电源监控系统的发展与完善[J].硅谷,2011(12):25-25.

上一篇:社会影响力投资在中国下一篇:仓储企业