通信协议范文

时间:2023-04-10 06:45:03

导语:如何才能写好一篇通信协议,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

通信协议

篇1

【关键词】 直放站 监控 直放站监控系统 通信协议

一、引言

直放站作为一种中继产品,不仅可以在不增加基站数量的前提下保证网络覆盖,而且具有结构简单、投资较少和安装方便等优点,可广泛用于移动信号难于覆盖的盲区和弱区,是实现“小容量、大覆盖”目标的一种优选方案。对直放站设备进行远程监控,可以实时获取设备的各种工作参数,并根据实际需要进行调整,如遇设备故障,可在第一时间内获知并及时派人进行维护,这对于提高设备维护效率和质量,确保设备长期、稳定运行具有重要意义。目前,由于直放站设备厂家各自为政,没有一个统一、合理的监控通信协议,因此直放站市场也出现了一些问题[1]:

(1)各地运营商基本同时使用着多个不同设备厂家的直放站及室内覆盖设备,但不同厂家的监控项目功能和设备的监控通信协议各不相同,给运营商的直放站设备统一管理工作带来了很大不便。

(2)监控系统应该具有稳定性、可靠性、扩展性、前瞻性等技术能力,可是目前已有的多种通信协议和监控系统已不能满足监控功能扩充、协议扩充、多种类型设备兼容的需求。

(3)考虑到未来4G直放站室内覆盖设备的特点及未来新增设备兼容性的需要,制定一套高标准的统一监控技术规范以及建立一个统一的、有前瞻性的直放站覆盖设备监控平台已势在必行。

二、直放站监控系统原理

直放站监控系统一般由监控单元、通信信道和监控中心三部分组成。监控单元是安装在直放站设备内部的监控电路,它的主要功能包括设备上电初始化与自检,本地信号的采集、控制和处理,与监控中心数据交换等。通信信道完成监控单元与监控中心的物理连接。监控中心的主要职能是对众多厂家提供的多类型、多数量的直放站进行“集中控制,统一监管”。监控中心对直放站的操作主要包括参数设置、数据查询、告警处理三种主业务;直放站作为被监管对象,在被动应答来自监控中心的命令外还必须将当前故障信息以告警命令的形式主动上报给监控中心。监控中心和直放站的通信方式可以是RS232串口直连、有线MODEM拨号和CDMA短信方式、TCP、UDP等。不管采用什么通信方式,直放站统一监控协议只是作为应用层协议[2],与具体的传输介质、传输手段无关[2]。直放站监控系统基本组成如下图所示:

三、 直放站的监控现状

由于种种原因,直放站的监控一直没有国际标准化组织的统一规范,也无实际的行业使用规范。近年来,国内外设备厂家大多根据各自的理解和需求,逐步开发了一些直放站监控设备,但数百种产品的监控协议不统一、功能不健全、系统不开放,远不能满足电信级监控需求,运营商几乎无法开展有效的直放站的网络监控和运行管理。所以一直以来直放站设备故障通常都是被动发现,如用户投诉或巡检等, 因此反应速度慢,工作效率低,严重影响了网络质量和网络服务。

近年来出现了一些直放站的监控协议,并开展了产品化工作,但这些通信协议由于有先天的缺陷,如各厂家对运营商统一协议理解有歧义、而且对应用层协议格式也不统一。另外还由于厂家设备实现的差异性,即使有统一监控协议封装信息,也不能够完全保证一家对其它厂家设备管理的透彻性和高效性,为此,并没有真正形成电信级的直放站与分布系统的监控功能[3]。

四、 当前主流通信监控协议

在早期建设过程中,各厂家对直放站监控系统采用的是不同的通信协议,各厂家之间难以实现互联互通,这对建立统一监控系统带来了诸多不便,同时对设备监控性能考核也缺少统一的评判依据。

为此,中国联通在CDMA 直放站建设不久就开始关注这一问题并着手寻找解决方案,经过近一年的研讨论证与反复修改,于2002 年底推出了《中国联通CDMA 直放站统一监控管理协议规范》。此标准的颁布执行对规范直放站市场和监控性能的提高具有极其重要的意义,逐渐成为直放站监控领域的技术规范,并逐渐成为各网络运营商制定直放站协议标准的重要参考。在CDMA 统一协议成功应用的同时,统一监控的需求也日益提高,GSM 设备的接入和管理相比之下显得较为混乱,各省分公司和设备供应商都急盼早日制定GSM直放站统一监控协议。为此,并于2004年初正式颁布了《中国联通GSM 直放站综合网络监控管理协议规范》,该标准的颁布为统一监控的实现提供了进一步的便利。中国联通推出的相关监控协议规范也成了当时众多直放站厂家的厂家协议模板。

在中国联通CDMA、GSM协议标准相继形成的同时,另一大运营商中国移动也于2005年7月颁布了中国移动直放站设备监控接口技术规范1.0.0,并在全国推行,各直放站厂家也纷纷依据此规范进行通信协议的编码,从而中国两大主流通信监控协议就此形成。

五、 两大主流通信监控协议之比较

5.1 通信协议功能比较

两在主流监控协议在规范监控系统功能方面,都明确了监控系统的具体功能,主要包括设备参数信息:如设备类型、厂家代码、上报号码、版本号等,监控参数信息:如通信方式、查询/设置电话号码等,告警使能:如电源掉电告警使能等,告警状态:如电源掉电等,设置参数:如电平告警门限、功放开关等,实时采样数据:如输出功率等。为此,两大协议都基本上实现了通信协议所需具备的功能项,满足直放站监控的需要。

5.2 通信协议结构比较

中国联通监控协议为非模块化的设计:所有的监控信息都集中在一条报文中,报文在组装、发送、接收、处理等方面都是不可分割的,这使直放站的监控系统很难实现模块化设计,稳定性和可维护性不强。协议设计也没有充分考虑多帧数据的处理(如建立缓冲区、采用先入先出等),对监控中心发送的多条数据无法识别其通信顺序,使得多包发送适应能力差,监控功能的实现效率和性能较低。

中国移动监控协议采用软件工程理论中倡导的集约式模块化开发设计方法, 使各个模块不仅可以独立安装, 还可以对某个模块单独升级。模块化结构设计方法的关键在于模块间接口的标准化、通用化、规格化程度。笔者将数据协议结构分成模块( 每个模块的规模小到可以管理的程度) , 然后分别将各个模块隐藏在内部接口后面, 让模块之间通过接口相互交流。监控协议的模块化总体思路是: 承载层模块负责将通信设备驱动收发的字符流转化为协议接入层的监控报文,接入层接收承载层提供的监控协议报文并进行帧识别、差错控制和报文封装等处理, 然后提交给网络层进行目的节点操作数据流的分发, 并分解出操作指令和监控应用层数据单元,监控应用层负责监控对象单元的提取、识别、执行、回应以及设备主动告警信息的形成, 由此实现了各层模块间的独立性和关联性。协议分层结构和模块化设计思路解决了监控协议的灵活组装、升级换代和二次开发等问题, 提高了协议的适应能力。

5.3 协议通信方式扩展性比较

中国联通监控协议的网络功能扩充性差,其未考虑网络层的存在,很难在现有功能之上再进行扩充。

中国移动监控协议采用了目前在通信领域被普遍认同和使用的协议分层的设计思想, 整个体系由承载层、接入层、网络层和监控应用层组成[4]。

承载层: 通信的实际链路, 此层确定了数据通信的实际信道类型, 向接入层提供面向字节的数据包。承载层用于适应并实现直放站远程监控的多种通信方式(包括短信、数据传输、GPRS等), 解决了监控数据流的承载问题。承载层概念的引入, 实现了底层通信链路的可扩展性, 用户可以将通用的底层通信方式各自模块化封装,当出现新的数据链路方式, 通信协议和设备监控模块可以方便地将其接入到监控系统中。

接入层: 接入层是网络层与承载层之间的接口, 用于承载层各通信方式之间的匹配, 同时对上层数据进行编码, 以适应和屏蔽不同承载层的特性和差异。由于监控数据流载体的复杂性, 同时为利用各个物理载体的信号特性, 监控数据不宜采用完全一样的数据帧格式, 而是应支持数据传输、GPRS 和短信等多种接入层协议, 实现通信方式的多样性和可扩展性, 这样接入层为上层协议屏蔽了通信信道的细节特征, 并保证网络层协议数据的可靠传输。

网络层: 网络层承载监控应用层协议包, 进行数据包寻址处理和分组, 向监控应用层提供本设备需要处理的监控指令和数据, 并可以实现通信包的转发( 转发的包不需要监控应用层来处理) 。网络层提供点对点设备监控信息的交互,提供了网间广播功能, 降低了网络维护的工作量, 提高了网络的灵活度, 还可以通过动态路由技术来克服目前网络需要静态分配网络地址的弊端, 在路由技术支持下, 设备可以选择多个通信链路, 从而适应多种通信方式的监控。

监控应用层: 监控应用层针对各种监控所需功能, 实现了面向监控功能的数据组织和数据结构。监控应用层解决了设备监控信息的语法表示问题, 提供格式化的数据表示和数据转换服务, 并提供网络层与上层应用软件之间的接口服务。监控应用层采用最基本的设备状态为基本监控项, 通过对高独立性的基本监控项的算法设计形成告警信息, 从而实现了监控项的高独立性和设备监控功能的自由组合, 使得对单个或多个参量的监控功能操作时不再受相互关联的设备状态信息制约,提高了监控信息的传输效率。同时监控应用层保证了每种监控功能目的单纯、语义清晰, 设备每项监控功能对应特定的一个监控代码和数据类型。监控应用层也帮助系统预留了数据的压缩和解压缩、加密和解密等拓展功能。

5.4 协议监控对象自由度比较

中国联通监控协议的监控对象不独立,导致监控项的内容相互关联, 当出现告警时,需从上报报文中提取并解析相关信息,获得真正的告警信息,使得单个监控项的操作变得复杂。当增加新的监控项时,需重新定义监控内容,使得系统监控的灵活性无法保证,同时增加了软件代码的冗余,不利于监控算法的形成。协议格式如下图:

联通监控协议将多个告警状态信息放在统一格式的数据块中, 当只想设置下行输入功率告警上门限值时, 根据其通信协议的格式要求, 必须同时携带和输入上行输出功率告警上门限的值和下行输出功率告警上门限的值。当出现下行输入过功率告警时, 也必须上报其他两项信息, 并由监控中心进行告警判断和甄别。

中国移动监控协议因将各个监控对象作为一个个体而存在的,将每个设备运行状态封装在各自独立的数据块, 如果用户只想设置下行输入功率告警上门限值, 则用户只需输入此值, 无须携带其他冗余的监控信息。其协议格式如下图所示

5.5 协议告警处理机制比较

中国联通监控协议的告警处理机制是以实时告警的方式来上报告警和告警恢复的,这在告警的及时性上是比较好的机制,但在直放站实际工作环境中常出现恶劣环境,从而导致设备的运行状态在短时间发生频繁切,为此上报大量的重复告警和误告警。

中国移动监控协议制订了“9 次告警重发机制”(即告警3 min 确认机制”:每2 s采样1 次,3 min 共采样90 次,当采样处于告警状态的次数大于等于上门( 如40%, 即36 次)时,设备就上报告警,当采样处于告警状态的次数小于等于下门限( 如10%, 即正常状态的次数大于等于81 次) 时, 才可上报告警恢复正常的信息,而且当直放站连续3次上报告警信息后末收到监控中心的回应包的,如果上传失败,直放站停止告警,在间隔一个规定的时间(3小时)后,继续上报告警,如果再连续3次失败,则在间隔一个规定的时间后继续,共循环3次,即9次重发机制)、“告警使能机制”、“告警屏蔽机制”、“告警同步机制”等, 建立了完善、合理、可靠的告警处理机制,在防止监控中心频繁收到重复告警和误告警方面起了明显效果。

六、结束语

两大主流监控协议在各自的领域都发挥着重要的作用,在当前网络发展阶段,对当前在网的直放站及分布系统的监控及综合监控建设都起着重要的作用。虽然中国移动监控协议比中国联通监控协议在模块化、结构、可扩展性等方面更有优势,但协议在站点编号、多级站点还可以改进其扩展性,以符合更多类型、更多网络结构的设备接入,如接入GSM、WCDMA、TD-SCDMA、cdma 1X、cdma 2000、TD-LTE、LTE FDD、WLAN、固网宽带等系统的光纤分布系统设备[5]。直放站监控协议的制订是一项严谨、科学、系统的工作,也是一项不断完善的工作,随着4G网络的发展及逐步接入电信级监控的发展趋势,两大主流通信监控协议合二为一或是另定义标准协议也可以是后续的研究方向。

参考文献

[1]许奕,直放站监控规范的研究与应用,通信世界,2007年3月,第10期,20

[2].中国联通,中国联通CDMA直放站综合网络监控管理协议规范V2.0,2004,7

[3]胡宪华,吴捷,直放站与分布系统监控协议的研究与开发,电信科学,2006年第11期,26-27

篇2

乙方:_________

为了满足宽带网用户使用高科技视频通信的需要,促进中国互联网增值业务的发展,_________ 公司推出具有国际领先水平的可视电话视频通信业务。为维护甲、乙双方的合法权益,双方就甲方使用乙方提供的视频通信服务一事,根据国内现时的相关法律、行规规定达成如下协议,以供共同遵照执行:

1.为了保证乙方对甲方的服务质量,甲方必须向乙方提供包括姓名(单位用户则为单位全称)、出生年月、住址(包括邮政编码)、身份证号、工作单位、联系电话等在内的客户资料。若甲方提供的客户资料虚假或不详细,乙方保留向甲方要求进一步提供身份证复印件(单位用户则为法人营业执照副本复印件)的权利,必要时有权停止向甲方提供服务,并依法追究甲方的法律责任。乙方保证对甲方提供的身份资料只作提供本协议项下的服务之用,未经甲方授权不向任何第三方公开,但法律另有规定的除外。

2.乙方提供的视频通信服务内容及其价格见乙方网址_________ ,甲方向乙方申请服务过程中所生成的订单等文件作为本协议的附件,与本协议具有同等法律效力。

3.甲方保证合法地使用乙方提供的服务,否则将承担相应的法律责任。

乙方提供给甲方的软件是乙方及其关联方具有自主知识产权的产品,甲方只能为接受乙方提供的服务而使用。甲方不能对其修改、解析或试图寻找它的源代码。任何前述的行为及为进一步转载或重新分发而对本软件进行复制或仿制给其他服务器或地址的行为都是禁止的。

4.乙方的终端是按照电脑工业标准由新的或相对新的零部件制作的。乙方保证乙方的终端无材料上或工艺上的瑕疵。保修期限为一年,从终端安装之日起算。具体如下:

(1 )由于邮寄给甲方而产生的终端损害包括在保修范围内。但保修范围不包括由于外部原因引起的损害,包括但不限于意外事故、滥用、不正确的使用、打开封闭的电话机及视频通信装置、电源问题、不按照指令使用、不按照规定检修、将乙方终端与非乙方提供的设备和网络连接引起的问题等。

(2 )在一年的保修期内,乙方可视具体情形自由选择是修理终端设备或调换终端设备,但甲方须在保修期内书面通知乙方的技术支持部门方可享受此保修期。

(3 )乙方从修理的终端设备上替换下的任何部件都由乙方所有。乙方可以使用新部件,也可以使用任何可达到技术要求的部件进行修理。乙方修理或调换设备后,原有的保修期并不相应延长。

(4 )乙方对硬件的缺陷或故障所负的责任仅限于在保修期内修理或调换。

(5 )如果乙方提供的终端设备被甲方或甲方的雇员或任何其他第三人擅自打开,保修期自动终止。

5.甲方应在规定日期内足额向乙方交纳服务费用。逾期除应补交所欠费用外,还应交纳违约金(每日按所欠费用千分之三计);逾期超过一个月,乙方有权中止提供服务;逾期超过三个月,乙方有权终止提供服务,并向甲方追缴欠费和违约金。

6.若甲方对乙方收取的通信费用存在异议,乙方有责任调查解释,核实处理。

7.为提高通信质量,乙方可能会对网络采取扩容、调整、软件升级等措施。乙方应按有关规定以业务公告或其他形式提前告知甲方。对因此导致甲方通信中断、号码更改等而造成的损失,乙方不承担违约赔偿责任。

8.乙方为更好地为甲方提供服务,当研制出软件新版本时将对甲方现有软件进行自动升级。甲方同意乙方作前述自动升级。

9.甲方应根据乙方的要求和自身能力对通信费用进行控制,甲方月通信费超过选定的信用额时,乙方有权暂停提供部分或全部视频通信服务,直至甲方缴清已发生费用。

10. 乙方应依法保护甲方的通信自由和通信秘密不受侵害。当司法机关因国家安全或追查刑事犯罪的需要,要求协助调查时,乙方可以依法暂停向甲方提供视频通信服务,暂停期间月租费按规定照常收取。

11. 甲方要求停止接受乙方服务时,应在结清所有费用后终止本协议。

12. 由于乙方提供给甲方的是互联网增值业务,因此乙方对由于互联网的状况引起的诸如不能接通、中断、音像质量不稳定等不负任何责任。

13. 在甲方使用乙方提供的终端、软件或服务时,乙方不对其他的服务提供商或任何第三方的行为或过失承担责任。乙方对小于连续24小时的服务中断及服务的局限或打断不负责任。乙方及任何乙方服务提供商对任何故障或过失的责任,仅限于甲方受影响时的服务费用。乙方及任何乙方服务提供商对任何附带的、惩罚性的或继起的损害赔偿要求(如损失的利益)不负任何责任。

14. 对不可抗力(如地震、洪水等自然灾害、战争、暴乱等)及政府行为而使本协议部分或全部不能履行,双方互不承担违约责任。

15. 本协议如有变更,乙方将以业务公告的形式通知甲方;若甲方对新协议有异议,须在业务公告出后一个月内与乙方协商,否则将视为甲方已熟悉并同意本协议的变更。

16. 本协议的目的是为了保护甲、乙双方的利益,如有未尽事宜,双方可以协商解决,也可以直接提交_________ 仲裁委员会进行仲裁。

17. 本协议经甲乙双方签字、盖章后生效,一式两份,双方各持一份,具有同等法律效力。

18. 本协议的解释权归乙方。

甲方(盖章):_________

乙方(盖章):_________

负责人(签字):_______

负责人(签字):_______

篇3

[关键词]局域网;通信协议;TCP/IP

HowTOConfiguretheCommunicationProtocolsoftheLAN

WangGuangming

(ClassOne,GradeThree,DepartmentofComputerScience,ZaozhuangTeachers''''College,Zaozhuang277100)

Abstract:BasedontheLAN,forNetWare、Windows95/98andthemainisWindowsNToperationsystem,thispaperintroduceandanalysisthecharacteristic、capabilityandtheessentialconfiguremethodofthecommunicationprotocols.

KeyWords:LAN;CommunicationProtocols;TCP/IP

不同的网络协议都有其存在的必要,每一种协议都有它所主要依赖的操作系统和工作环境。在一个网络上运行得很好的通信协议,在另一个看起来很相似的网络上可能完全不适合。因此,组建网络时通信协议的选择尤为重要。

无论是几台机器组成的Windows95/98对等网,还是规模较大的WindowsNT、Novell或Unix/Xenix局域网,凡是亲自组建或管理过网络的人,都遇到过如何选择和配置网络通信协议的问题。由于许多用户对网络中的协议及其功能特点不是很清楚,所以在组网中经常选用了不符合自身网络特点的通信协议。其结果就造成了网络无法接通,或者是速度太慢,工作不稳定等现象而影响了网络的可靠性。下面我就分析一下各个协议的特点和性能借以说明我配置协议的理论和立场。

一、通信协议

组建网络时,必须选择一种网络通信协议,使得用户之间能够相互进行“交流”。协议(Protocol)是网络设备用来通信的一套规则,这套规则可以理解为一种彼此都能听得懂的公用语言。关于网络中的协议可以概括为两类:“内部协议”和“外部协议”下面分别予以介绍。

1.内部协议

1978年,国际标准化组织(ISO)为网络通信制定了一个标准模式,称为OSI/RM(OpenSystemInterconnect/ReferenceModel,开放系统互联参考模型)体系结构。该结构共分七层,从低到高分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中,任何一个网络设备的上下层之间都有其特定的协议形式,同时两个设备(如工作站与服务器)的同层之间也有其使用的协议约定。在这里,我们将这种上下层之间和同层之间的协议全部定义为“内部协议”。内部协议在组网中一般很少涉及到,它主要提供给网络开发人员使用。如果你只是为了组建一个网络,可不去理会内部协议。

2.外部协议

外部协议即我们组网时所必须选择的协议。由于它直接负责计算机之间的相互通信,所以通常称为网络通信协议。自从网络问世以来,有许多公司投入到了通信协议的开发中,如IBM、Banyan、Novell、Microsoft等。每家公司开发的协议,最初一般是为了满足自己的网络通信,但随着网络应用的普及,不同网络之间进行互联的要求越来越迫切,因此通信协议就成为解决网络之间互联的关键技术。就像使用不同母语的人与人之间需要一种通用语言才能交谈一样,网络之间的通信也需要一种通用语言,这种通用语言就是通信协议。目前,局域网中常用的通信协议(外部协议)主要有NetBEUI、IPX/SPX及其兼容协议和TCP/IP三类。

3.选择网络通信协议的原则

我们在选择通信协议时一般应遵循以下的原则:

第一、所选协议要与网络结构和功能相一致。如你的网络存在多个网段或要通过路由器相连时,就不能使用不具备路由和跨网段操作功能的NetBEUI协议,而必须选择IPX/SPX或TCP/IP等协议。另外,如果你的网络规模较小,同时只是为了简单的文件和设备的共享,这时你最关心的就是网络速度,所以在选择协议时应选择占用内存小和带宽利用率高的协议,如NetBEUI。当你的网络规模较大,且网络结构复杂时,应选择可管理性和可扩充性较好的协议,如TCP/IP。

第二、除特殊情况外,一个网络尽量只选择一种通信协议。现实中许多人的做法是一次选择多个协议,或选择系统所提供的所有协议,其实这样做是很不可取的。因为每个协议都要占用计算机的内存,选择的协议越多,占用计算机的内存资源就越多。一方面影响了计算机的运行速度,另一方面不利于网络的管理。事实上一个网络中一般一种通信协议就可以满足需要。

第三、注意协议的版本。每个协议都有它的发展和完善过程,因而出现了不同的版本,每个版本的协议都有它最为合适的网络环境。从整体来看,高版本协议的功能和性能要比低版本好。所以在选择时,在满足网络功能要求的前提下,应尽量选择高版本的通信协议。

第四、协议的一致性。如果要让两台实现互联的计算机间进行对话,它们两者使用的通信协议必须相同。否则中间还需要一个“翻译”进行不同协议的转换,这样不仅影响通信速度,同时也不利于网络的安全和稳定运行。

二、局域网中常用的三种通信协议

BEUI协议

■NetBEUI通信协议的特点。NetBEUI(NetBIOSExtendedUserInterface,用户扩展接口)由IBM于1985年开发完成,它是一种体积小、效率高、速度快的通信协议。NetBEUI也是微软最钟爱的一种通信协议,所以它被称为微软所有产品中通信协议的“母语”。微软在其早期产品,如DOS、LANManager、Windows3.x和WindowsforWorkgroup中主要选择NetBEUI作为自己的通信协议。在微软如今的主流产品,如Windows95/98和WindowsNT中,NetBEUI已成为其固有的缺省协议。有人将WinNT定位为低端网络服务器操作系统,这与微软的产品过于依赖NetBEUI有直接的关系。NetBEUI是专门为几台到百余台PC所组成的单网段部门级小型局域网而设计的,它不具有跨网段工作的功能,即NetBEUI不具备路由功能。如果你在一个服务器上安装了多块网卡,或要采用路由器等设备进行两个局域网的互联时,将不能使用NetBEUI通信协议。否则,与不同网卡(每一块网卡连接一个网段)相连的设备之间,以及不同的局域网之间将无法进行通信。

虽然NetBEUI存在许多不尽人意的地方,但它也具有其他协议所不具备的优点。在三种通信协议中,NetBEUI占用内存最少,在网络中基本不需要任何配置。尤其在微软产品几乎独占PC操作系统的今天,它很适合于广大的网络初学者使用。

■NetBEUI与NetBIOS之间的关系。细心的读者可能已经发现,NetBEUI中包含一个网络接口标准NetBIOS。NetBIOS(NetworkBasicInput/OutputSystem,网络基本输入/输出系统)是IBM在1983年开发的一套用于实现PC间相互通信的标准,其目的是开发一种仅仅在小型局域网上使用的通信规范。该网络由PC组成,最大用户数不超过30个,其特点是突出一个“小”字。后来,IBM发现NetBIOS存在的许多缺陷,所以于1985年对其进行了改进,推出了NetBEUI通信协议。随即,微软将NetBEUI作为其客户机/服务器网络系统的基本通信协议,并进一步进行了扩充和完善。最有代表性的是在NetBEUI中增加了叫做SMB(ServerMessageBlocks,服务器消息块)的组成部分,以降低网络的通信堵塞。为此,有时将NetBEUI协议也称为“SMB协议”。

人们常将NetBIOS和NetBEUI混淆起来,其实NetBIOS只能算是一个网络应用程序的接口规范,是NetBEUI的基础,它不具有严格的通信协议功能。而NetBEUI是建立在NetBIOS基础之上的一个网络传输协议。

2.IPX/SPX及其兼容协议

■IPX/SPX通信协议的特点。IPX/SPX(InternetworkPacketeXchange/SequencesPacketeXchange,网际包交换/顺序包交换)是Novell公司的通信协议集。与NetBEUI的明显区别是,IPX/SPX显得比较庞大,在复杂环境下具有很强的适应性。因为,IPX/SPX在设计一开始就考虑了多网段的问题,具有强大的路由功能,适合于大型网络使用。当用户端接入NetWare服务器时,IPX/SPX及其兼容协议是最好的选择。但在非Novell网络环境中,一般不使用IPX/SPX。尤其在WindowsNT网络和由Windows95/98组成的对等网中,无法直接使用IPX/SPX通信协议。

■IPX/SPX协议的工作方式。IPX/SPX及其兼容协议不需要任何配置,它可通过“网络地址”来识别自己的身份。Novell网络中的网络地址由两部分组成:标明物理网段的“网络ID”和标明特殊设备的“节点ID”。其中网络ID集中在NetWare服务器或路由器中,节点ID即为每个网卡的ID号(网卡卡号)。所有的网络ID和节点ID都是一个独一无二的“内部IPX地址”。正是由于网络地址的唯一性,才使IPX/SPX具有较强的路由功能。

在IPX/SPX协议中,IPX是NetWare最底层的协议,它只负责数据在网络中的移动,并不保证数据是否传输成功,也不提供纠错服务。IPX在负责数据传送时,如果接收节点在同一网段内,就直接按该节点的ID将数据传给它;如果接收节点是远程的(不在同一网段内,或位于不同的局域网中),数据将交给NetWare服务器或路由器中的网络ID,继续数据的下一步传输。SPX在整个协议中负责对所传输的数据进行无差错处理,所以我们将IPX/SPX也叫做“Novell的协议集”。

■NWLink通信协议。WindowsNT中提供了两个IPX/SPX的兼容协议:“NWLinkSPX/SPX兼容协议”和“NWLinkNetBIOS”,两者统称为“NWLink通信协议”。NWLink协议是Novell公司IPX/SPX协议在微软网络中的实现,它在继承IPX/SPX协议优点的同时,更适应了微软的操作系统和网络环境。WindowsNT网络和Windows95/98的用户,可以利用NWLink协议获得NetWare服务器的服务。如果你的网络从Novell环境转向微软平台,或两种平台共存时,NWLink通信协议是最好的选择。不过在使用NWLink协议时,其中“NWLinkIPX/SPX兼容协议”类似于Windows95/98中的“IPX/SPX兼容协议”,它只能作为客户端的协议实现对NetWare服务器的访问,离开了NetWare服务器,此兼容协议将失去作用;而“NWLinkNetBIOS”协议不但可在NetWare服务器与WindowsNT之间传递信息,而且能够用于WindowsNT、Windows95/98相互之间任意通信。

3.TCP/IP协议

TCP/IP(TransmissionControlProtocol/InternetProtocol,传输控制协议/网际协议)是目前最常用到的一种通信协议,它是计算机世界里的一个通用协议。在局域网中,TCP/IP最早出现在Unix系统中,现在几乎所有的厂商和操作系统都开始支持它。同时,TCP/IP也是Internet的基础协议。

■TCP/IP通信协议的特点。TCP/IP具有很高的灵活性,支持任意规模的网络,几乎可连接所有的服务器和工作站。但其灵活性也为它的使用带来了许多不便,在使用NetBEUI和IPX/SPX及其兼容协议时都不需要进行配置,而TCP/IP协议在使用时首先要进行复杂的设置。每个节点至少需要一个“IP地址”、一个“子网掩码”、一个“默认网关”和一个“主机名”。如此复杂的设置,对于一些初识网络的用户来说的确带来了不便。不过,在WindowsNT中提供了一个称为动态主机配置协议(DHCP)的工具,它可自动为客户机分配连入网络时所需的信息,减轻了联网工作上的负担,并避免了出错。当然,DHCP所拥有的功能必须要有DHCP服务器才能实现。

同IPX/SPX及其兼容协议一样,TCP/IP也是一种可路由的协议。但是,两者存在着一些差别。TCP/IP的地址是分级的,这使得它很容易确定并找到网上的用户,同时也提高了网络带宽的利用率。当需要时,运行TCP/IP协议的服务器(如WindowsNT服务器)还可以被配置成TCP/IP路由器。与TCP/IP不同的是,IPX/SPX协议中的IPX使用的是一种广播协议,它经常出现广播包堵塞,所以无法获得最佳的网络带宽。

■Windows95/98中的TCP/IP协议。Windows95/98的用户不但可以使用TCP/IP组建对等网,而且可以方便地接入其它的服务器。值得注意的是,如果Windows95/98工作站只安装了TCP/IP协议,它是不能直接加入WindowsNT域的。虽然该工作站可通过运行在WindowsNT服务器上的服务器(如ProxyServer)来访问Internet,但却不能通过它登录WindowsNT服务器的域。如果要让只安装TCP/IP协议的Windows95/98用户加入到WindowsNT域,还必须在Windows95/98上安装NetBEUI协议。

■TCP/IP协议在局域网中的配置。在提到TCP/IP协议时,有许多用户便被其复杂的描述和配置所困扰,而不敢放心地去使用。其实就局域网用户来说,只要你掌握了一些有关TCP/IP方面的知识,使用起来也非常方便。

IP地址基础知识。前面在谈到IPX/SPX协议时就已知道,IPX的地址由“网络ID”(NetWorkID)和“节点ID”(NodeID)两部分组成,IPX/SPX协议是靠IPX地址来进行网上用户的识别的。同样,TCP/IP协议也是靠自己的IP地址来识别在网上的位置和身份的,IP地址同样由“网络ID”和“节点ID”(或称HOSTID,主机地址)两部分组成。一个完整的IP地址用32位(bit)二进制数组成,每8位(1个字节)为一个段(Segment),共4段(Segment1~Segment4),段与段之间用“.”号隔开。为了便于应用,IP地址在实际使用时并不直接用二进制,而是用大家熟悉的十进制数表示,如192.168.0.1等。IP地址的完整组成:“网络ID”和“节点ID”都包含在32位二进制数中。目前,IP地址主要分为A、B、C三类(除此之外,还存在D和E两类地址,现在局域网中这两类地址基本不用,故本文暂且不涉及),A类用于大型网络,B类用于中型网络,C类一般用于局域网等小型网络中。其中,A类地址中的最前面一段Segment1用来表示“网络ID”,且Segment1的8位二进制数中的第一位必须是“0”。其余3段表示“节点ID”;B类地址中,前两段用来表示“网络ID”,且Segment1的8位二进制数中的前二位必须是“10”。后两段用来表示“节点ID”;在C类地址中,前三段表示“网络ID”,且Segment1的8位二进制数中的前三位必须是“110”。最后一段Segment4用来表示“节点ID”。

值得一提的是,IP地址中的所有“网络ID”都要向一个名为InterNIC(InternetNetworkInformationCenter,互联网络信息中心)申请,而“节点ID”可以自由分配。目前可供使用的IP地址只有C类,A类和B类的资源均已用尽。不过在选用IP地址时,总的原则是:网络中每个设备的IP地址必须唯一,在不同的设备上不允许出现相同的IP地址。表1列出了IP地址中的“网络ID”的有关属性,“节点ID”在互不重复的情况下由用户自由分配。其实,将IP地址进行分类,主要是为了满足网络的互联。如果你的网络是一个封闭式的网络,只要在保证每个设备的IP地址唯一的前提下,三类地址中的任意一个都可以直接使用(为以防万一,你还是老老实实地使用C类IP地址为好)。

子网掩码。对IP地址的解释称之为子网掩码。从名称可以看出,子网掩码是用于对子网的管理,主要是在多网段环境中对IP地址中的“网络ID”进行扩展。举个例子来说明:例如某个节点的IP地址为192.168.0.1,它是一个C类网。其中前面三段共24位用来表示“网络ID”,是非常珍贵的资源;而最后一段共8位可以作为“节点ID”自由分配。但是,如果公司的局域网是分段管理的,或者该网络是由多个局域网互联而成,是否要给每个网段或每个局域网都申请分配一个“网络ID”呢?这显然是不合理的。此时,我们可以使用子网掩码的功能,将其中一个或几个节点的IP地址全部充当成“网络ID”来使用,用来扩展“网络ID”不足的困难。

当我们将某一节点的IP地址如192.168.0.1已设置成一个“网络ID”时,网络上的其它设备又怎样知道它是一个“网络ID”,而不是一个节点IP地址呢?这就要靠子网掩码来告知。子网掩码是这样做的:如果某一位的二进制数是“1”,它就知道是“网络ID”的一部分;如果是“0”便认作是“节点ID”的一部分。如将192.168.0.1当做“网络ID”时,其子网掩码就是11111111.11111111.11111111.00000001,对应的十进制数表示为255.255.255.1。否则它的子网掩码就是11111111.11111111.11111111.00000000,对应的十进制数表示应为255.255.255.0。有了子网掩码,便可方便地实现用户跨网段或跨网络操作。不过,为了让子网掩码能够正常工作,同一子网中的所有设备都必须支持子网掩码,且子网掩码相同。表2列出了A、B、C三类网络的缺省子网掩码。

网关。网关(Gateway)是用来连接异种网络的设置。它充当了一个翻译的身份,负责对不同的通信协议进行翻译,使运行不同协议的两种网络之间可以实现相互通信。如运行TCP/IP协议的WindowsNT用户要访问运行IPX/SPX协议的Novell网络资源时,则必须由网关作为中介。如果两个运行TCP/IP协议的网络之间进行互联,则可以使用WindowsNT所提供的“默认网关”(DefaultGateway)来完成。网关的地址该如何分配呢?可举一个例子来回答:假如A网络的用户要访问B网络上的资源,必须在A网络中设置一个网关,该网关的地址应为B网络的“网络ID”(一般可理解为B网络服务器的IP地址)。当A网络的用户同时还要访问C网络的资源时又该怎么呢?你只需将C网络的“网络ID”添加到A网络的网关中即可。依次类推……网关连多少个网络,就拥有多少个IP地址。

主机名。网络中唯一能够代表用户或设备身份的只有IP地址。但一般情况下,众多的IP地址不容易记忆,操作起来也不方便。为了改善这种状况,我们可给予每个用户或设备一个有意义的名称,如“WANGQUN”。至于在网络中用到“WANGQUN”时,怎样知道其对应的IP地址呢?这完全由操作系统自己完成,我们大可不必考虑。

三、通信协议的安装、设置和测试

局域网中的一些协议,在安装操作系统时会自动安装。如在安装WindowsNT或Windows95/98时,系统会自动安装NetBEUI通信协议。在安装NetWare时,系统会自动安装IPX/SPX通信协议。其中三种协议中,NetBEUI和IPX/SPX在安装后不需要进行设置就可以直接使用,但TCP/IP要经过必要的设置。所以下文主要以WindowsNT环境下的TCP/IP协议为主,介绍其安装、设置和测试方法,其他操作系统中协议的有关操作与WindowsNT基本相同,甚至更为简单。

■TCP/IP通信协议的安装。在WindowsNT中,如果未安装有TCP/IP通信协议,可选择“开始/设置/控制面板/网络”,将出现“网络”对话框,选择对话框中的“协议/添加”,选取其中的TCP/IP协议,然后单击“确定”按钮。系统会询问你是否要进行“DHCP服务器”的设置?如果你的IP地址是固定的(一般是这样),可选择“否”。随后,系统开始从安装盘中复制所需的文件。

■TCP/IP通信协议的设置。在“网络”对话框中选择已安装的TCP/IP协议,打开其“属性”,在指定的位置输入已分配好的“IP地址”和“子网掩码”。如果该用户还要访问其它WidnowsNT网络的资源,还可以在“默认网关”处输入网关的地址。

■TCP/IP通信协议的测试。当TCP/IP协议安装并设置结束后,为了保证其能够正常工作,在使用前一定要进行测试。笔者建议大家使用系统自带的工具程序:PING.EXE,该工具可以检查任何一个用户是否与同一网段的其他用户连通,是否与其他网段的用户连接正常,同时还能检查出自己的IP地址是否与其他用户的IP地址发生冲突。假如服务器的IP地址为192.168.0.1,如要测试你的机器是否与服务器接通时,只需切换到DOS提示符下,并键入命令“PING192.168.0.1”即可。如果出现类似于“Replyfrom192.168.0.1……”的回应,说明TCP/IP协议工作正常;如果显示类似于“Requesttimedout”的信息,说明双方的TCP/IP协议的设置可能有错,或网络的其它连接(如网卡、HUB或连线等)有问题,还需进一步检查。

四、小结

在组建局域网时,具体选择哪一种网络通信协议主要取决于网络规模、网络间的兼容性和网络管理几个方面。如果正在组建一个小型的单网段的网络,并且对外没有连接的需要,这时最好选择NetBEUI通信协议。如果你正从NetWare迁移到WindowsNT,或两种平台共存时,IPX/SPX及其兼容协议可提供一个很好的传输环境。如果你正在规划一个高效率、可互联性和可扩展性的网络,TCP/IP则将是理想的选择。

参考文献

[1]阮家栋俞丽和《微型计算机网络原理及应用》北京中国纺织大学出版社1995

[2]瞿坦《计算机网络及应用》北京化学工业出版社2002

篇4

【关键词】SPI协议;双DSP通信;TMS320DM642;TMS320C6747

1.引言

在水声通信机的设计中,经常是由一个处理器进行唤醒检测、AGC(自动增益控制)、A/D(模拟-数字转换)、D/A(数字-模拟转换)等工作。另外一个处理器负责信号调制、解调、纠错编码/解码等复杂计算。在我们的水声通信机设计中,前端采用低功耗的TMS320C6747浮点DSP,进行数据预处理;后端采用高性能的TMS320DM642定点DSP,进行复杂计算。这就需要双DSP分工协作,共同完成系统整机的功能。不可避免的,将涉及到双DSP之间大量的指令和数据交互操作。我们希望采用灵活的架构,简洁的接口连线,简单的控制协议,实现高可靠和高效率的指令与数据双向传输,通过大量的实验,我们最终选择了SPI协议,并对典型的SPI协议进行了改进。典型的水声通信机的架构如图1所示。

图1 典型水声通信机的架构

在我们的设计中,“处理器A”选用了低功耗的TMS320C6747浮点DSP,“处理器B”选用了高性能的TMS320DM642定点DSP。在实际系统中,根据水声通信机的不同工作频段和运算能力要求,处理器A也可选择FPGA/CPLD或者低功耗单片机;处理器B也可选择不同运算能力的DSP、ARM或者FPGA。

2.SPI协议

SPI(Serial Peripheral Interface,串行设备接口)是Motorola公司于2000年提出的一种串行接口协议。该接口占用硬件资源少,通信协议简单,具有同步时钟,通信速率较高,分主设备和从设备,特别适合处理器与设备之间交换数据,在EEPROM(非易失存储器)、串行A/D(模拟-数字转换器)、串行D/A(数字-模拟转换器)、实时时钟等嵌入式系统中得到了广泛的应用。

SPI协议的原理很简单,它以主从方式工作,这种模式需要有一个主设备和一个或多个从设备。典型的SPI协议定义了4线接口,这也是所有基于SPI的设备共有的,分别是SIMO(从机输入、主机输出),SOMI(从机输出、主机输入),SCK(时钟)和CS(片选)。根据系统的不同需求,SPI接口也可以采用3线(数据单向传输)或5线等不同方式,以实现不同的功能。采用4线制SPI接口时,接口示意图如图2所示。

从图2可知,所有的控制信号均由SPI主设备提供,SPI从设备只能在被查询时才能与主设备建立通信。这种限制在处理器与设备通信时影响不大,但应用在双处理器对等双向通信时就有问题,作为从机的处理器无法主动发起通信,与主机交换数据。

在我们设计的水声通信机中,双DSP之间需要对等双向通信,无论哪一方都能发起通信,因此需要对典型的SPI通信协议进行修改,使得从机也能主动发起通信。这需要修改硬件接口设计,增加额外的信号线来实现。

SPI协议没有定义握手机制,在进行双向高速率的可靠通信时,需要从硬件和软件两方面设计握手机制。同时,SPI协议也没有定义“指令”和“数据”传输标识,需要由软件来解析。为了解决上述问题,我们对SPI通信接口进行了改进,主要包括硬件接口设计和软件协议设计两部分。

3.系统硬件接口设计

硬件接口方面,在标准4线SPI协议的基础上,增加ENAn、RSm和RSs三根控制线,分别代表从机请求主机通信、主机发给从机指令/数据指示、从机发给主机指令/数据指示。其控制思路如下:

当TMS320C6747(SPI主机)有指令/数据发给TMS320DM642(SPI从机)时,先设置RSm为某电平(约定高电平代表指令,低电平代表数据),然后发起通信,DM642的SPI模块配置位从动模式,其底层硬件逻辑将自动检测接收,并通知DM642进行后续接收/发送处理。

ENAn信号线平时为低电平,当DM642有指令/数据要传递给C6747时,先设置RSs电平(指示将指令/数据传输),然后设置ENAn信号线为高电平,C6747检测到ENAn信号线电平的变化时,主动发起与DM642的通信。

我们设计的改进型SPI接口示意图如图3所示,图3中左侧虚线框内的部分为TMS320DM642芯片内集成的McBSP0接口,配置为4线SPI从动工作模式;图3中右侧虚线框内的部分为TMS320C6747芯片内集成的SPI1接口,配置为4线SPI主控模式,其中SPI1_ENAn由GPIO引脚控制。

图2 典型的4线制SPI接口连接图

图3 TMS320DM642(SPI从);TMS320C6747(SPI主)

经过如此改进之后,TMS320C6747(主机)和TMS320DM642(从机)之间能进行高速率的全双工数据与指令的交互。

4.系统软件设计

硬件接口设计为实现SPI高速率传输创造了通道,但难以保证数据传输的可靠性和有效性。为此,我们设计了SPI主机(TMS320C6747)和SPI从机(TMS320DM642)通信的软件协议。

为了能进行指令和大容量数据传输,并且易于对接收到的SPI数据进行实时解析,为“指令”和“数据”设计了不同的“帧”结构。

进行指令传输时,固定每个数据包的长度,由“0x55AA”指示一个指令帧的开始,之后跟着帧序号,每次成功传输一帧后,帧序号增1,接下来是本机在前次握手通信时收到的帧序号,方便对方据此判断前次指令是否被成功接收。

序号之后是20个指令字,最后是CRC校验字段,接收端对前23个字进行CRC校验,如果与接收到的CRC不同,则重新请求该指令序号;如果与接收到的CRC相同,则解析该指令。如果接收端收到的帧序号不连续,则表明两个序号之间的部分指令出错,根据需要可请求重发;如接收端收到的对方“已接收序号”和之前发送的不同,也能识别出通信出错。

在进行数据传输时,由“0x55A5”指示一个数据帧的开始,在帧序号之后是数据区的长度,接下来是数据区,最后是CRC校验。指令帧和数据帧的序号分别编号,与传输“指令帧”同样的机制,如果CRC出错也可以请求重传。连续的数据区便于接收端和发送端启用EDMA模式,极大提高传输大量数据的效率。

构建的“帧”结构如下表所示。

“指令”帧格式:

0x55AA 序号 已接收序号 指令1 指令2 …… 指令20 CRC

“数据”帧格式:

0x55A5 序号 数据长度 数据…… CRC

采用上述协议后,有效地保障了SPI主机和从机之间双向、可靠、高速、稳定的指令和数据传输。

5.结论

在我们设计的水声通信机中,采用了上述改进型SPI接口协议,TMS320C6747和TMS320DM642最小系统板之间以SPI接口进行板间连接,采用非屏蔽杜邦排线,长度大约10cm,实际测试表明,SPI时钟速率在8.6 MHz时可稳定进行指令和数据的全双工通信。由于通过SPI接口传输一个字节最少需要8个时钟,加上发送端准备数据、接收端解析并处理数据的开销等,实际测试能以800kB/s稳定通信。

参考文献

[1]http://.cn/cn/lit/ds/symlink/tms320c6747.pdf

[2]http://.cn/cn/lit/ds/symlink/tms320dm642.pdf

[3]张岩,马旭东,张云帆.ARM与DSP的SPI通信设计实现[J].工业控制计算机,2008,21(9):56-57.

[4]高振,罗秋凤.SPI接口与CRC算法在双DSP数据通信中的应用[J].电子产品世界,2011(1-2):46-48.

[5]梁德坚,刘玉琼.SPI总线数据远距离传输实现[J].电子测试,2009(1):72-75.

[6]赵,张楚.多媒体处理器中的SPI接口设计[J].电子测量技术,2007(6):126-129.

[7]任宇飞,张相,程乃平.一种透明传输的双向SPI接口的设计与实现[J].电视技术,2009,49(2):51-54.

基金项目:福建省自然科学基金(项目编号:2013J01253);中央高校基本科研业务费专项资金资助(项目编号:2010121062);国家自然科学基金(项目编号:61301098)资助。

作者简介:

解永军(1978―),男,工程师,主要研究方向:单片机与嵌入式系统,水声通信技术。

篇5

近些年来,所有的企业在扩展信息传输系统的功能方面受到了兼容性的严重制约,因为监控系统的软件和硬件在扩充和补套以及服务上都对既定的厂家存在着极大的依赖性。如果企业运用的监控系统出现问题而无法解决,那么就只有采购其他厂家的监控系统进行替代。所以说,混乱的通信协议严重局限了系统补套和升级改良系统软硬件,企业不断的更换系统设备,造成了极大的成本浪费。在这种情况下,我国难以形成有序、良性的安全监控系统市场竞争,而行业垄断的出现可谓是必然。文章以这个大背景为前提,分析和研究了统一的监控系统通信协议。

1 监控系统分站统一通信协议框架

1.1 制定监控系统分站统一通信协议的目的

监控系统不同,其分站与主站之间就会存在不一致的通信协议,必然会导致难以互相调换其分站的结果。假设我们能够采用相同的通信协议来设计监控系统的分站,则当我们另外一个厂家生产的分站来代替原有分站时,系统的运行就不会受到设备更换的影响,用户应用起来也比较方便,同时也会造成市场上的竞争加剧,进而降低其价格。对于监控系统的主站来说,分站的通信协议统一化也能够提升其软件水平,即便是部分卓越的软件公司没有具有竞争力的硬件产品,其也能够将优秀的软件应用于安全监控系统中。这就是对监控系统统一通信协议进行研究的一个原因。除此之外,企业在构建信息化平台方面也会受益于监控系统通信协议的统一。

1.2 统一通信协议构架

下表1给出了监控通信协议帧的一般格式,以此为基础我们相应的构架来对监控系统通信协议进行构建,无论是主从通信结构还是无主通信结构都能够运用此通信协议。

表1 监控通信协议帧的一般格式

2 监控系统中心站数据通信框架

因为一致的通信协议不能马上应用于监控系统所有的分站,而分站数据不能直接被高层的应用接收,因此监控系统接入协议必须进行专门的制定。下面罗列的类型可供监控系统中心站接入协议选择:

(1)文件共享型。以采样周期或者规定的时间为单位,监控系统设计者将一组数据文件以规范的文件结构形式进行共享,其他的应用就能够获取到相应的信息,目前所有的监控系统都能够在保证系统正常运行的情况下实现这种方式的文件共享。(2)数据库共享型。对于数据库来说,其优势为开放性、标准化和完备的支持环境,采用数据库形式,监控系统能够共享实时数据或者历史数据,以此为基础构建的数据共享标准化模型也非常优秀。(3)应用软件在过去必须通过特定的接口程序才能连接到现场设备或者应用程序,之后才能完成通信,加大应用程序之间通信的难度,以COM为基础,规范了工业自动化软件接口便形成了OPC,监控中心站软件业可以通过OPC方式连接其他软件,进而完成数据信息的传输,而为了保证OPC与开发环境相兼容,微软平台成为了开发中心站软件的基础。下图1显示了详细的OPC结构。(4)对象管理集团OMG针对分布对象提出了一种解决方案,就是所谓的CORBA,而且近些年出现的众多产品都能够与CORBA相匹配。对象管理集团研发了对象管理架构用来对分布计算机系统的异构性进行解决。下图2显示的就是具体的对象管理架构。各个模块之间通过对象请求这条软件总线进行通信和协作是该架构的核心。

图1 OPC的客户/服务器结构

图2 对象管理架构

篇6

【关键词】计算机网络路由通信协议

随着应用需求的增加,现代计算机网络变得日趋复杂,网络接入的通信设备数量迅猛增加,这就使得单IP多目通信成为现代计算机网络的主要特点之一。为实现该通信,必须对通信数据进行路由,确保数据能够被准确传输到目的地址中。

一、计算机网络路由通信协议目标及其存在问题概述

应用路由的目的在于利用诸如UDP等协议实现多目通信。这种多目通信路由协议需要具有以下特性。(1)首先是有效性。(2)其次是伸缩性。(3)再次是增量可配置。

二、动态路由选择协议及其分类

动态路由选择协议可以促使路由器对当前网络内的各终端和路由设备生成一个明确的了解,然后按照协议要求将网络通信数据经由最佳传输路径转发到接收端。目前常用的动态路由选择协议存在两种类型:一类为基于距离矢量的动态路由选择协议,另一类为基于链路状态路由的动态路由选择协议。

2.1距离矢量路由选择协议

该通信协议会使得距离矢量路由器按照网络结构特性等形成一个路由选择表,并间隔一定时间向相邻路由器发送该选择表,当相邻路由器接收到该选择表后将自身路由信息添加到该路由选择表中对其进行完善和丰富,当所有路由器均被添加入该选择表后,路由通信协议完成路由的聚合过程。当数据需要经由路由进行转发时,可以依照该路由选择表实现。显而易见的,该通信协议存在一个明显的应用缺陷,即路由网络聚合过程中会出现路由回路。为解决该问题,多种改进算法被提出来改善或修正该问题,如水平分割、抑制时间、跳数定义等。

2.2链路状态路由选择协议

相对上一种方法而言,该类协议使用分布式路由算法将网络中每一路由的协议都被用于进行数据路由控制和转发,因而使得数据路由实现的复杂度大大增加。具体实现中,链路状态路由器会将路由器所在网段、路由链路状态等聚合成自身路由信息,该信息不会在整个网络中进行广播,而是当出现信息更改时会通知与其相邻的其他路由,相邻路由接收到状态通知后对自身信息表进行修改,实现状态同步。该路由选择协议同样存在较为明显的缺点:实现数据的最优路由较为困难,且路由器不能编程。

三、改进的路由选择协议

为综合上述两类路由的优点,同时尽量消除其中存在的缺陷或不足,可以设计一种主动层次多目路由协议。该协议中定义路由器只用于进行信息转发,而与路由路径相关的内容由容错网关计算完成。在提升多目路由的快速收敛特性,可以将路由的拓扑结构设计为层次式结构。

具体来说,改进的路由选择协议使用ARD协议来实现主动路由协议,利用SNMP协议来控制形成路由网络的拓扑结构和链路状态,利用容错网关进行内部域报文通信和通信信息路由计算,利用管理网关进行外部域通信信息路由计算和IP地址管理。

四、内网和外网网关通信协议

当某一计算机网络的网络类型较大时通常会将其分为多个小的、相对独立的自治网络每一个独立的自制系统内的路由相关协议是统一的。当路由通信协议将木雕定位于控制路由传播和确定最佳路由选择时,该协议属于外部网关通信协议。虽然该类协议同样存在自治系统,但是其自治系统的规模和复杂度通常会大于内网自治系统。这类路由通信协议被应用在域间信息通信中,处于自治系统的边缘,只要少量的信息交换即可提供数据路由服务。目前成熟的、应用广泛的外部网关路由协议有BGP和EGP等。

五、总结

总之,在需要使用多层通信结构的计算机网络中必须使用路由通信协议来对数据进行路由、对终端设备进行网络部署。好的动态路由算法不仅可以增强数据传输的有效性、降低数据路由所带来的资源损耗,还能够增强路由网络内的通信带宽,确保各设备处于最佳运行状态。

参考文献

[1]罗炎炎,柳清芬,祁耀斌.浅论网络通信中应用的动态路由选择协议[J].沿海企业与科技,2005(5)

[2]何丹,陈道蓄,谢立.主动层次多目通信路由模型[J].软件学报,2000,11(6)

篇7

经过整个产业的努力,2016年初,充电联盟了充电桩与电动车之间的标准协议。这极大的推动了新能源汽车的发展。然而,随着充电网络建设规模的不断扩大,作为整个产业链的重要的两个环节,充电桩运营商和充电桩设备制造商面临着非常重要的问题:充电桩与运营管理平台接口协议不一致。

一方面,一家充电桩企业可能要为多个运营商提供设备,如果不同运营商制定的协议不一致,充电桩企业适配的成本会很高。

另一方面,每个运营商制定自己的企标也是摸石头过河,成熟慢,经验不共享,升级改造测试成本高。两者都希望能够有规范的行业标准或者国家标准可以作为运营平台建设和充电桩设备开发的依据。有了标准,大家可以不用在接口对接上再投入大量的成本,而把重点放在各自的核心业务上去。

中国普天曾积极参与了电动汽车行业充电接口协议统一的相关工作,另外,在互联互通相关标准制定方面,普天也是相关协议制定的主体单位之一。普天信息技术有限公司是中国电动汽车充电技术与产业联盟的副理事单位,作为主编单位之一,积极参与联盟组织的《充电桩与运营平台通讯协议》的编写工作。

本次协议编写工作,参考了国内主流的充电桩运营企业已有的标准和国际上一些有广泛影响力的标准如OCPP。基本的思路是满足运营商的共性需求,支持个性需求的扩展;面向国际市场,兼容国外的主流标准协议。标准的制定工作得到了联盟内企业的积极响应,纷纷报名副主编单位和参编单位。

联盟内部多次组织针对标准的讨论,大家抠细节、钻场景,讨论过程热烈而高效。1月13日,充电联盟最终了《充电桩与运营平台通讯协议》的征求意见稿。

为了推动协议的完善和应用,接下来,充电联盟会组织相关企业进行试点应用,针对应用中发现的问题修订协议,为协议的大规模推广打下一个坚实的基础。

此外,联盟计划把协议栈开源化,促进协议的推广和使用,让更多桩企能快速接受。

篇8

Abstract: The IEC104 protocol is still widely used in the power system, the communication between main station and sub station is related to the safety of power system. The error retransmission mechanism is used to detect the network state, which is a basic method to realize the stable data transmission of IEC104, timeout is handled in accordance with the protocol definition, but the IEC104 protocol does not make further processing of this fault. So, if there is a fault, station staff will experience a long time to find the cause of the trouble. In order to guarantee the communication between the main station and sub station correctly and timely, a system that can monitor the communication process of IEC104 protocol is designed and developed. It implements the monitoring of IEC104 protocol communication process though capture analysis of the communication of simulated remote control station and sub station. Report library error message rate, IEC104 error rate, and repeat message rate are used to objectively evaluate communication of remote control station and sub station, to provide the basis for the control station personnel to quickly find out the fault causes, and to ensure the safe operation of the power system.

关键词:远动系统;IEC104规约;监听;故障分析

Key words: SCADA System;IEC104 protocol;monitoring;fault analysis

中图分类号:TM764 文献标识码:A 文章编号:1006-4311(2017)02-0085-03

0 引言

目前IEC104协议仍在电力系统中广泛的应用,柳坪和雅都电站的集控中心与下属电站及调度通讯均采用IECl04规约进行通信[1]。自2009年起,IEC60870-5-104规约在黄梅电网新建变电站和改造站的自动化系统中已大量采用[2]。远动主站和子站之间能否正确及时的通信关系到电力系统的安危。利用错误重传机制检测网络状态是实现应用IEC104稳定传输数据的一个基本方法。超时处理按照规约定义进行超时断开处理[3]。但IEC104协议未对这种故障做出进一步处理,当发生故障时控制站人员要经历很长时间才能找出故障源,所以开发一款能够对IEC60870-5-104协议的通信过程进行监听的系统非常必要。本设计应用端口汇聚和端口镜像技术将模拟主站和子站的通信双报文复制到端口镜像并监听这个镜像端口的通信报文来实现对模拟主站和子站通信报文的监听。通过对模拟远动主站和子站的通信报文的抓包分析统计出通信过程中的错误报文率、IEC104错误帧率及重复报文率来客观评价远动主站和子站的通信,为控制站人员快速找出故障原因提供依据,保障电力系统的安全运行。

1 IEC104协议通信过程分析

IEC104协议采用应-答模式的通信方式,即发送一条报文后收到此条报文的确认或回复报文才认为此次通信成功,否则将会重传这条报文。协议采用TCP协议传输报文,使用2404端口作为通信端口。TCP的通信方式采用客户端/服务器端的形式,模拟主控站作为客户端模拟子站作为服务器端。

服务启动后先由控制站检查当前链路的状态,然后再发送一些启动需要的一些确认和对时等报文,规约启动流程如图1。

规约启动后便可以进行遥控、遥信、遥测等操作。根据协议规定为了保障遥控等操作的成功率,在执行前需要进行预置、反校操作,否则从站拒绝执行。为了确保通信的成功,协议采用了应-答模式的通信方式,从站在收到主控站的命令时会向主控站发送命令执行确认报文以示命令已接收到并且正要执行命令。当执行完命令后会向主控站发送命令执行结束报文以示命令已成功执行。主控站可以通过发送遥控取消报文取消刚刚下发的命令,从站收到命令后取消相应的操作并发送取消确认报文。未发生故障的遥控操作和带取消命令的遥控操作的泳道图如图2。

在命令执行过程中,由于网络原因或其他可能的原因造成未收到某一个条报文的确认报文或回复报文的情况,按照规约规定会启动重传机制重传这条报文,直到收到这条报文的确认或者超过最大重传次数断开链路连接。图3左图是未收到确认报文遥控操作的泳道图,右图是未收到执行报文的遥控操作的泳道图。

IEC104协议为了确保通信的正常并在发生网络故障时的一些超时处理方案,IEC104协议采用的超时处理方案如表1。

2 系统建模分析及实现

监听系统采用端口汇聚技术将物理上的两个端口连接起来形成一条逻辑链路,并使用端口镜像技术将通信报文复制到镜像端口,通过对镜像端口的通信报文的监听达到监听主控站和子站之间的通信的目的。

监听系统实现的功能主要有获取通信报文、解包、获取IEC104协议帧、判断协议帧是否正确、记录报文、记录报文到达时间,分析统计等功能。协议监控系统的用例图如图4。

当监听系统启动后便一直监听IEC104协议通信端口2404端口有无报文到达,若有到达则获取报文并作相应的处理。使用这种监听方法的优点是不会影响主控站和子站的正常通信,监听系统作为第三方仅监听两站的通信报文。监听系统的主线程流程图如图5

监听系统对报文处理过程的活动图如图6。

分析统计部分主要是对协议的传输过程和传输结果进行统计和分析。主要统计分析报文到达间隔、报文的错误率、IEC104协议帧的重复率以及遥控、遥测、对时等操作的完成的时间。

监听系统采用C++编程语言和VC++ 6.0为开发平台,使用ws2-32.lib库函数,实现对IEC104协议通信报文的监听。当监听系统启动后便一直监听2404端口有没有数据到达。通过报文的目的IP地址和源IP地址来区别主控站和从站并且监听系统会将通信报文保存到数据库中为以后分析数据提供数据源。监听系统的实现如图7。

3 结论

由于建设时期及所属项目类别的差异各系统技术平台不一通信方式和数据组织多种多样由此形成了一个个信息孤岛既影响了现有系统的有效运行也影响了新系统的开发和实施[4]。本设计将通信双方的报文记录并存储到数据库中,为以后数据共享和分析提供源数据可以有效的解决信息孤岛的现象。

随着IEC104协议在电力系统中得到广泛的应用,远动主站和子站之间能否正确及时的通信关系到电力系统的安危。本系统主要针对远动主站和子站之间能否及时并正确的通信以及出现网络故障不能及时发现的问题,设计开发了一种电力远动设备的IEC60870-5-104通信协议监听与测试系统。本系统主要利用端口汇聚和端口镜像技术将远动主站和子站的报文复制到镜像端口并使用SOCKET编程对镜像端口的通信报文进行抓包和分析,实现了对远动主站和子站的通信的监听与测试,并在发生通信故障时第一时间报警,为电力远动系统的正常运行提供了保障。

参考文献:

[1]关鸿耀,刘榕.IECl04规约在水电厂远动通讯中[J].计算机应用 小水电,2011(1):61.

[2]雷兰.IECl04规约在黄梅电网中[J].电气工程与自动化 机电信息,2013(3):31.

篇9

关键词: LabVIEW; J1939协议; 电池管理系统; 充电机; 协议测试

中图分类号: TN915?34 文献标识码: A 文章编号: 1004?373X(2013)17?0114?04

0 引 言

随着近年来电动汽车行业如火如荼的发展,电动汽车技术相关的各种标准也相继推出,其中包括了《电动汽车非车载传导式充电机与电池管理系统之间的通信协议》(GB/T 27930?2011)[1]。该协议是基于CAN应用层协议SAE J1939,J1939是目前在国内汽车行业中应用广泛的CAN总线应用层协议[2?4]。只有电池管理系统与充电机之间的正常数据交互才能保证电动汽车进行高效、安全的充电。因此,电池管理系统与充电机通信协议测试是电池管理系统测试的一个必不可少的项目。本课题来源于北方车辆研究所电池管理系统测试平台项目。美国国家仪器NI PXI CAN采集卡以及LabVIEW为模拟充电机与BMS通信提供了良好的软硬件环境。

LabVIEW是美国国家仪器推出的一种程序开发环境,图形化语言使其与其他的代码类型语言相比之下更为方便直观[5]。以计算机作为运行环境的LabVIEW,充分利用了计算机无可比拟的硬件优势,具有强大的数据处理能力。开发者可以很容易实现多线程编程,极大降低了软件开发的难度。LabVIEW的前面板提供了丰富的类似传统仪器的控件,开发者可以很方便的创建用户界面。

本文重点在于如何用LabVIEW实现SAE J1939多帧传输机制,完成超过8 B报文的接收重组、拆分发送。以及如何实时判断通信过程出现的错误、指出错误类型、定位错误发生的阶段。

1 SAE J1939协议

J1939协议是基于CAN 2.0B制定的,协议对物理层、数据链路层、网路层以及应用层都进行了相关的规定。本文针对数据链路层的规定进行简单介绍。

1.1 协议数据单元(PDU)

J1939将CAN 2.0B的29位标识符ID划分为六部分,每部分都代表不同的含义,包括优先级(P)、保留位(R)、数据页(DP)、PDU格式(PF)、特定PDU(PS)、源地址(SA),见表1。

根据CAN 2.0总线的仲裁机制,标识符值越小,CAN帧优先级越高,J1939把这一权利赋予了标识符最高三位(P)。R、DP通常为0。SA代表了该帧数据的发送节点的地址,CAN网络中每个设备都分配了惟一的SA。在介绍PF与PS之前有必要先介绍下参数组编号(PGN)的概念。每个PGN代表着惟一的参数组(可以包含一个或多个参数),当参数组的数据域大于8 B时,需要遵循J1939的多帧传输机制。PGN由R、DP、PF以及PS组成,见表2。从表2中可以看出PDU2格式报文没有目标地址,此类报文只能发送给全局地址。由于PS作为PDU2格式参数组编号的一部分,因此PDU2比PDU1能定义更多的参数组编号。

1.2 多帧传输机制

CAN 2.0B数据域最多有8 B,而在J1939协议中当一个参数组编号(PGN)所对应的数据超过8 B时,规定了一种多帧传输机制,发送者按此机制拆分发送,接收者按此机制接收重组,因此一个参数组编号所对应的数据最多可以为1 785 B。点对点未发生错误的多帧传输机制如图1所示,J1939对传输过程出现错误的情况也规定了相应的处理机制,在此不作介绍。

TP.CM_RTS、TP.CM_CTS、TP.DT、TP.EndofMsgACK均为J1939特定功能报文,其参数组编号也由J1939规定,因此这些参数组编号不能再被用户定义。TP.CM_RTS为消息发送者发送的请求发送帧,由此开始建立多帧传输链接,其数据域包括了此次发送的消息全部字节数、全部数据包数(TP.DT帧数)以及该消息的参数组编号等信息。接收者根据自己的接收能力,发送准备发送帧TP.CM_CTS,通知发送者下次可发送的数据包数、下一个要发送的数据包编号以及消息的参数组编号。发送者根据接收者的要求开始发送数据包TP.DT,数据包的数据域第一字节代表了该包号,因此一个数据包最多包含消息的7 B。

这个过程循环进行,直至接收者接收到全部数据包后发送消息结束应答帧TP.EndofMsgACK代表着这次多帧传输的结束。若发送的消息是全局消息,则所有接收者不应有任何应答,整个传输过程如图2所示。

2 基于LabVIEW实现J1939协议平台

2.1 硬件接口

利用NI PXI?8513 CAN接口板卡实现该系统的硬件接口。NI已为开发者提供了该板卡的底层驱动,可以很方便对CAN节点参数进行配置以及接收和发送符合CAN 2.0的消息帧,然而对于多帧传输机制还需开发者自行设计。由于J1939协议涉及发送者与接收者的应答,因此在基于LabVIEW开发J1939同时也利用C语言开发基思卡尔单片机的电池管理系统中使用的J1939协议,两者相辅相成,并且利用VECTOR CANoe软件监视总线,以保证程序开发的顺利进行。

2.2 软件实现

利用LabVIEW多线程编程以及生产者消费者结构实现J1939协议。分别为未拆分的发送报文、已拆分发送报文、未重组的接收报文、已重组的接收报文建立队列。创建已重组报文读取线程,已重组报文出队列用于应用层协议。创建接收报文处理线程,用于按多帧传输机制处理接收到的CAN 2.0数据帧,程序流程图如图3所示,经过目的地址过滤报文后,利用条件结构按照报文参数组编号进行分类处理,在计算参数组编号时要注意PDU1与PDU2格式的区别,主要分为以下几种情况:数据小于7 B的正常数据报文:直接入已处理接收报文队列供应用层使用;请求发送帧TP.CM_RTS:由于两个节点之间同一时间最多只能有一个发送和一个接收的多帧传输链接,若这时已有一个接收链接,则需要发送放弃链接帧TP.ABORT告知发送者,若无接收链接,创建新的接收状态机并插入接收状态机数组。接收状态机为一个数据簇,包含了参数组编号、下一个接收数据包编号、数据包总数、当前已接收字节数、字节总数、以及已接收字节数组。之后应发送准备发送帧TP.CM_CTS通知发送者发送数据包,同时应开始计时,若发送者响应时间超过规定时间,应发送放弃帧TP.ABORT;准备发送帧TP.CM_CTS:此报文为接收者对发送报文的应答,此次发送状态机已建立,搜索相应状态机,根据准备发送帧要求拆分数据创建数据包TP.DT;数据包TP.DT:搜索相应的接收状态机并核对是否与目前状态机相符,如果相符则对数据进行重组存入状态机的接收字节数组,若不符则发送该参数组编号的放弃链接帧,最后判断多帧传输是否结束,并根据是否为全局报文决定是否发送完成链接帧;完成链接帧TP.EndofMsgACK:表示相应的多帧发送链接已完成,删除相应的发送状态机。广播公告消息TP.CM_BAM:收到全局消息的请求链接帧,只需建立相应的接收状态机,等待接收数据包,而不需要任何的应答。

发送报文均先入未拆分发送报文队列;创建未拆分发送报文处理线程,用于按多帧传输机制处理发送报文,程序流程图如图4所示,若发送报文数据超过8 B则需要通过多帧传输机制拆分发送。

2.3 J1939平台应用效果

定义电池管理系统BMS和LabVIEW的J1939协议地址分别为244和86。首先由BMS发送PGN为256的9 B报文给LabVIEW,CANoe监视到总线时序如图5所示。

由第一帧ID可以看出源地址为0xF4(244),目的地址为0x56(86),PGN为0xEC00,因此该帧为链接管理帧TP.CM,并且Data域控制字节(第1字节)为0x10,综上该帧为BMS发送给LabVIEW的请求发送帧,并由Data域可以看出此次报文共有0x09字节(第2,3字节),数据包共有0x02包(第4字节),PGN为0x0100(第6,7,8字节)。同理第二帧为LabVIEW发送的准备发送帧,通知BMS从第0x01包(第3字节)开始发送0x02(第2字节)包数据包。待接收到BMS发送的两帧TP.DT,LabVIEW发送TP.EndofMsgACK代表此次多帧传输完成。LabVIEW接收重组后的数据如图6所示。

同理分析LabVIEW作为发送节点的情况,总线时序图如图7所示,LabVIEW拆分前的发送数据如图8所示。综上分析,利用LabVIEW开发平台很好地实现了J1939协议。

3 通信协议测试软件的开发

通信协议将整个通信分为多个阶段:充电握手阶段、充电参数配置阶段、充电阶段、充电结束阶段。每个通信阶段均涉及充电机与BMS的信息交互,每次信息交互均有超时限制。为了实现对通信协议进行测试,不仅要模拟充电机与BMS进行通信,还要实时监测通信的状态,判断通信过程是否出错并解析BMS发送的信息。测试软件主要测试通信阶段出现的时序错乱以及信息交互超时这两种错误。

在已开发J1939协议基础上进行测试软件的开发,J1939协议提供了两个接口:需要发送报文直接入未处理发送报文队列、已处理接收报文出队列供应用层使用。通信阶段改变利用LabVIEW状态机结构来实现。创建充电机接收状态、充电机发送状态两个数据簇,记录接收报文是否已被接收、发送报文是否已被发送以及发送的时间。利用单独程序线程通过这两个数据簇实时判断是否有错误发生。

应用效果如图9所示,为了试验是否能准确测试出错误类型,有意将BMS程序设置为不发送电池充电需求报文,测试软件指示超时类型代码为5,即电池充电需求报文超时,接收错误类型主要为通信顺序出错。通过对每个接收超时类型以及顺序出错类型进行测试,结果表明能很好地实现对通信协议进行测试。

4 结 语

在LabVIEW开发平台上,利用其强大的数据处理能力以及丰富实用的程序结构实现了J1939协议,在此基础上开发电动汽车非车载传导式充电机与电池管理系统之间的通信协议测试软件,不仅可以辅助BMS的程序开发,还可以作为BMS测试平台的部分功能评价BMS合格与否。通过与BMS进行通信,并利用CANoe对总线进行监视,试验结果表明该测试软件可以实现J1939协议,能完成多帧传输机制,并且可以测试出通信协议中出现的通信流程错乱以及通信超时错误,可以满足要求。

参考文献

[1] 中国国家标准化管理委员会.GB/T 27930?2011电动汽车非车载传导式充电机与电池管理系统之间的通信协议[S].北京:中国标准出版社,2011.

[2] SAE Group. SAE J1939?21 data link layer standard [S]. USA: SAE Group, 2001.

[3] 高松.浅谈J1939协议在客车CAN总线中的应用[J].农业装备与车辆工程,2005(2):30?31.

[4] 苏喜红.基于J1939的汽车网络控制系统CAN高层协议设计与实现[D].哈尔滨:哈尔滨工业大学,2007.

[5] 陈树学,刘萱.LabVIEW宝典[M].北京:电子工业出版社,2011.

[6] 阮奇桢.我和LabVIEW[M].北京:北京航空航天大学出版社,2009.

篇10

【关键词】STM32;单片机;嵌入式;数据通信;HJ/T212

1.引言

近年来,随着环保意识的增强,各种各样的环保采集、传输、监控等设备被广泛使用,为了指导各个城市污染源在线自动监控(监测)系统的建设,规范数据采集、传输、存储和管理,保证各种环境监测仪器、监控设备、传输网络和环保部门应用软件系统之间的连通,国家环保行业制定了数据传输标准协议HJ/T212。

STM32系列单片机基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的,采用STM32F103系列ARM Cortex-M3内核。时钟频率72MHz时,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。该系类单片机集成功能丰富、以8位机的价格提供32位的性能,现已广泛应用于多种领域,比如嵌入控制、消费电子产品、家用电器以至及工业设备等。

STM32系列单片机这些特点适合在环保数据的采集和传输环节作为主控MCU使用,本文介绍了HJ/T212在以STM32F103C8T6单片机为主控MCU的环保数据传输设备中的实现方法。

2.HJ/T212协议包组成

3.HJ/T212协议在STM32F103C8T6中的实现

STM32F103C8T6处理器内的通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率。支持查询、中断和DMA三种方式,当选择使用DMA方式,可以实现高速数据通信。

从协议可以看出,当接收到两个字符时可以判断一个完整的协议包接收完成。进而对该协议数据帧进行解析协议解析部分可以用C语言实现,下面的程序流程图1为STM32F103C8T6响应HJ/T212协议数据帧函数,主要功能是判断协议包包头是否有效,校验码是否正确,如果校验码正确的则把数据包的内容按照项目内容进行分割处理协议包的内容。由于从上位机发送的协议包通常都是一包发送完成,所以协议单片机段的协议解析可以忽略总包号和包号,如果系统设置访问密码,则解析协议时需要判断密码是否正确,只有密码有效才能认为是有效数据包,这个密码的使用可以对数据的传输是一种安全措施。设备唯一标识MN也是一个必要参数,上位机通过网络可能同时与多台终端相连,此时上位机下发的指令需要根据设备标识符MN判断上位机要操作的终端设备。

STM32F103C8T6单片机接收并解析数据包后,需要根据协议的应答要求分步骤进行应答。通常收到一包完整数据包后,现场机立刻进行请求应答,然后返回操作执行结果。

4.CRC算法及其实现

CRC即循环冗余校验码(Cyclic Redun-dancy Check):是数据通信领域中最常用的一种差错校验码,该校验算法的特点是信息字段和校验字段的长度可以任意选定。CRC校验码的两个字节,包含一16位的二进制值。它由传输设备计算后加入到数据包中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。

①装一个16位寄存器,所有数位均为1。

②取被校验串的一个字节与16位寄存器的高位字节进行“异或”运算。运算结果放入这个16位寄存器。

③把这个16寄存器向右移一位。

④若向右(标记位)移出的数位是1,则生成多项式1010000000000001和这个寄存器进行“异或”运算;若向右移出的数位是0,则返回③。

⑤重复③和④,直至移出8位。

⑥取被校验串的下一个字节

⑦重复③~⑥,直至被校验串的所有字节均与16位寄存器进行“异或”运算,并移位8次。

⑧这个16位寄存器的内容即2字节CRC错误校验码。

5.结束语

STM32F103C8T6为开发人员提供了高性能的数字解决方案,通过在该MCU上实现HJ/T212协议使得系统具有很好的开放性和通用性,同时在别的嵌入式系统的串口通信的实现上也有很好的借鉴意义。

参考文献

[1]曹圆圆.基于STM32的温度测量系统[J].仪器仪表与分析监测,2010,1:16-18.