专利名称:一种通讯终端及其实现通讯协议的方法
技术领域:
本发明涉及电力通讯设备,尤其涉及一种通讯终端及其实现通讯协议的方法。
技术背景
在研发电力监控设备的时候,例如配变监测终端、配网DTU等等,经常会遇到这样的情况,需要支持多种通讯协议和多种通讯方式,在实现这些需求时,现有技术方案主要有以下2种1.通讯与协议紧密结合,一种通讯方式,例如串口、TCP、UDP等)等和一种通讯协议,例如IEC60870-5-101协议、IEC60870-5-104协议等等,将这种通讯方式和通讯协议的代码绑定在一起,这种情况多出现在对单片机直接编程中。
2.以协议为主,封装通讯接口,将多种通讯方式封装成统一接口,提供给通讯协议模块来调用,代码实现遵循通讯协议流程。
上述两种方案,在研发新的电力监控设备时,利用现有技术实现产品,可重复利用率不高,特别对于实现新出现的通讯协议时,绝大部分功能代码需要重新编写,对研发周期也造成了影响,而在重新开发的产品中,如果通讯协议差别比较大,会导致方案与已有产品方案不一致,也需要花费更多的时间在测试工作上。因此,迫切需要提供一种在开发通讯相关的项目时,以相同的方案去实现所有的通讯协议。发明内容
本发明要解决的技术问题在于,针对现有技术利用率不高和成本高的缺陷,提供一种通讯终端及其实现通讯协议的方法,该技术方案可有效提高程序代码的复用性、可阅读性以及可测试性;且在产品研发期间可节约资源,提高研发人员的开发效率。
本发明解决其技术问题所采用的技术方案是构造一种通讯终端,所述通讯终端与用于监控所述通讯终端的外部控制站建立异步通讯连接,所述通讯终端包括相互独立的通讯模块和协议模块,所述通讯模块包括通讯管理单元、数据通知单元以及数据发送单元, 所述协议模块包括外部交互单元和内部处理单元,其中,通讯管理单元,用于主动建立通讯链路、被动响应建立通讯链路以及主动断开通讯链路;数据通知单元,用于在通讯链路断开时将断开连接信息通知外部交互单元,并保存外部控制站所发送的数据帧。
数据发送单元,用于根据协议要求将外部交互单元所保存的回应帧发送至外部控制站;外部交互单元,用于响应外部连接请求、主动请求建立连接、响应连接断开、主动断开连接、协议帧编解码以及协议请求响应处理;内部处理单元,用于在所述通讯终端内部处理协议相关数据及对协议帧进行编解码。
在本发明所述的通讯终端中,所述外部控制站与所述通讯终端建立的异步通讯方式包括串口、TCP以及UDP。
在本发明所述的通讯终端中,所述协议模块的具体表现形式包括IEC60870-5-101 协议和IEC60870-5-104协议。
本发明还构造一种通讯终端实现通讯协议的方法,所述通讯终端为上述权利要求任一项所述的通讯终端,所述方法包括主动建立通讯链路流程、被动响应建立通讯链路流程以及主动断开通讯链路流程,其中,主动建立通讯链路流程具体包括以下步骤Al.初始化对应外部控制站的连接状态参数,并将数据发送至通讯管理单元; Bi.通讯管理单元接收到该数据后,主动与外部控制站建立通讯连接; Cl.在建立通讯连接后修改对应的连接状态参数,并创建数据接收缓冲区; 被动响应建立通讯链路流程具体包括以下步骤 A2.外部控制站主动与通讯管理单元建立通讯连接;B2.通讯管理单元保存连接状态参数,并创建数据接收缓冲区,以将数据发送至外部交互单元;C2.外部交互单元接收到该数据后,初始化对应外部控制站的连接状态参数; 主动断开通讯链路流程具体包括以下步骤A3.清除外部交互单元对应的连接状态参数,并将主动断开信息发送至通讯管理单元;B3.通讯管理单元接收到主动断开信息后,关闭对应的连接,并清除对应的连接参数和数据接收缓冲区。
在本发明所述的方法中,所述方法还包括被动断开通讯链路流程,其具体包括以下步骤A4.通讯管理单元或数据通知单元发现连接断开时,清除对应的连接状态参数和数据接收缓冲区,并将被动断开信息发送至外部交互单元;B4.外部交互单元接收到该被动响应断开信息后删除对应的连接状态参数。
在本发明所述的方法中,所述方法还包括被动响应数据通讯流程,其具体包括以下步骤A5.外部控制站将数据帧发送至通讯管理单元,并在接收该数据帧后将其保存至与之对应连接的数据接收缓冲区;B5.通过调用协议模块所提供的回调函数截取一个完整的数据帧,并将该数据帧保存到公共缓冲区,以经由外部交互单元从公共缓冲区提取该数据帧; C5.外部交互单元对该数据帧进行协议编解码;D5.判断是否需要回应该数据帧,若是,则执行步骤E5,若否,则步骤结束; E5.生成回应帧,并将其保持至公共缓冲区,以经由数据发送单元从公共缓冲区提取该回应帧;F5.将该回应帧发送至对应的外部控制站。
在本发明所述的方法中,所述方法还包括主动建立数据通讯流程,其具体包括以下步骤A6.生成回应帧,并将其保存到公共缓冲区,以经由数据发送单元从公共缓冲区提取回应帧;B6.根据用户需要将该回应帧发送至指定的外部控制站或者通过广播或组播方式发送至多个外部控制站。
实施本发明的技术方案,具有以下有益效果通过将通讯终端划分为相互独立的通讯模块和协议模块,并实现该通讯终端与外部控制站建立异步通讯连接,可有效提高程序代码的复用性、可阅读性以及可测试性;且在产品研发期间可节约资源,提高研发人员的开发效率。
下面将结合附图及实施例对本发明作进一步说明,附图中 图1是本发明通讯终端的结构示意图;图2是本发明通讯终端实现通讯协议的方法实施例一的流程图; 图3是本发明通讯终端实现通讯协议的方法实施例二的流程图; 图4是本发明通讯终端实现通讯协议的方法实施例三的流程图; 图5是本发明通讯终端实现通讯协议的方法实施例四的流程图; 图6是本发明通讯终端实现通讯协议的方法实施例五的流程图; 图7是本发明通讯终端实现通讯协议的方法实施例六的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
应当说明的是,本发明通讯终端所涉及的异步通讯方式包括串口、TCP以及UDP,另外,通讯终端中的协议模块的具体表现形式包括IEC60870-5-101协议和 IEC60870-5-104协议,在下述实施例中,以TCP的通讯方式为例实施本发明的技术方案。
请参阅图1,图1是本发明通讯终端的结构示意图,如图1所示,所述通讯终端与用于监控所述通讯终端的外部控制站建立异步通讯连接,所述通讯终端包括相互独立的通讯模块和协议模块,其中,所述通讯模块包括通讯管理单元、数据通知单元以及数据发送单元,所述协议模块包括外部交互单元和内部处理单元。下面具体介绍各个部分的作用通讯管理单元,用于主动建立通讯链路、被动响应建立通讯链路以及主动断开通讯链路。
外部交互单元,用于响应外部连接请求、主动请求建立连接、响应连接断开、主动断开连接、协议帧编解码以及协议请求响应处理。
数据通知单元,用于在通讯链路断开时将断开连接信息通知外部交互单元,并保存外部控制站所发送的数据帧。
数据发送单元,用于根据协议要求将外部交互单元所保存的回应帧发送至外部控制站。
内部处理单元,用于在所述通讯终端内部处理协议相关数据及对协议帧进行编解码。
结合参考图1,所述方法包括主动建立通讯链路流程、被动响应建立通讯链路流程、主动断开通讯链路流程、被动断开通讯链路流程、被动响应数据通讯流程以及主动建立数据通讯流程,下面具体介绍各个流程的具体步骤。
请参阅图2,图2是本发明通讯终端实现通讯协议的方法实施例一的流程图,如图 2所示,主动建立通讯链路流程具体包括以下步骤在步骤Al中,初始化对应外部控制站的连接状态参数,并将数据发送至通讯管理单元;在步骤Bl中,通讯管理单元接收到该数据后,主动与外部控制站建立通讯连接; 在步骤Cl中,在建立通讯连接后修改对应的连接状态参数,并创建数据接收缓冲区; 请参阅图3,图3是本发明通讯终端实现通讯协议的方法实施例二的流程图,如图3所示,被动响应建立通讯链路流程具体包括以下步骤在步骤A2中,外部控制站主动与通讯管理单元建立通讯连接; 在步骤B2中,通讯管理单元保存连接状态参数,并创建数据接收缓冲区,以将数据发送至外部交互单元;在步骤C2中,外部交互单元接收到该数据后,初始化对应外部控制站的连接状态参数;请参阅图4,图4是本发明通讯终端实现通讯协议的方法实施例三的流程图,如图4所示,主动断开通讯链路流程具体包括以下步骤在步骤A3中,清除外部交互单元对应的连接状态参数,并将主动断开信息发送至通讯管理单元;在步骤B3中,通讯管理单元接收到主动断开信息后,关闭对应的连接,并清除对应的连接参数和数据接收缓冲区。
请参阅图5,图5是本发明通讯终端实现通讯协议的方法实施例四的流程图,如图 5所示,被动断开通讯链路流程具体包括以下步骤在步骤A4中,通讯管理单元或数据通知单元发现连接断开时,清除对应的连接状态参数和数据接收缓冲区,并将被动断开信息发送至外部交互单元;在步骤B4中,外部交互单元接收到该被动断开信息后删除对应的连接状态参数。
请参阅图6,图6是本发明通讯终端实现通讯协议的方法实施例五的流程图,如图 6所示,被动响应数据通讯流程具体包括以下步骤在步骤A5中,外部控制站将数据帧发送至通讯管理单元,并在接收该数据帧后将其保存至与之对应连接的数据接收缓冲区;在步骤B5中,通过调用协议模块所提供的回调函数截取一个完整的数据帧,并将该数据帧保存到公共缓冲区,以经由外部交互单元从公共缓冲区提取该数据帧; 在步骤C5中,外部交互单元对该数据帧进行协议编解码;在步骤D5中,判断是否需要回应该数据帧,若是,则执行步骤E5,若否,则步骤结束; 在步骤E5中,生成回应帧,并将其保持至公共缓冲区,以经由数据发送单元从公共缓冲区提取该回应帧;在步骤F5中,将该回应帧发送至对应的外部控制站。
请参阅图7,图7是本发明通讯终端实现通讯协议的方法实施例六的流程图,如图7所示,主动建立数据通讯流程具体包括以下步骤在步骤A6中,生成回应帧,并将其保存到公共缓冲区,以经由数据发送单元从公共缓冲区提取回应帧;在步骤B6中,根据用户需要将该回应帧发送至指定的外部控制站或者通过广播或组播方式发送至多个外部控制站。
相较于现有技术,通过将通讯终端划分为相互独立的通讯模块和协议模块,并实现该通讯终端与外部控制站建立异步通讯连接,可有效提高程序代码的复用性、可阅读性以及可测试性;且在产品研发期间可节约资源,提高研发人员的开发效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
权利要求
1.一种通讯终端,其特征在于,所述通讯终端与用于监控所述通讯终端的外部控制站建立异步通讯连接,所述通讯终端包括相互独立的通讯模块和协议模块,所述通讯模块包括通讯管理单元、数据通知单元以及数据发送单元,所述协议模块包括外部交互单元和内部处理单元,其中,通讯管理单元,用于主动建立通讯链路、被动响应建立通讯链路以及主动断开通讯链路;数据通知单元,用于在通讯链路断开时将断开连接信息通知外部交互单元,并保存外部控制站所发送的数据帧;数据发送单元,用于根据协议要求将外部交互单元所保存的回应帧发送至外部控制站;外部交互单元,用于响应外部连接请求、主动请求建立连接、响应连接断开、主动断开连接、协议帧编解码以及协议请求响应处理;内部处理单元,用于在所述通讯终端内部处理协议相关数据及对协议帧进行编解码。
2.根据权利要求1所述的通讯终端,其特征在于,所述外部控制站与所述通讯终端建立的异步通讯方式包括串口、TCP以及UDP。
3.根据权利要求2所述的通讯终端,其特征在于,所述协议模块的具体表现形式包括 IEC60870-5-101 协议和 IEC60870-5-104 协议。
4.一种通讯终端实现通讯协议的方法,其特征在于,所述通讯终端为上述权利要求1 至3任一项所述的通讯终端,所述方法包括主动建立通讯链路流程、被动响应建立通讯链路流程以及主动断开通讯链路流程,其中,主动建立通讯链路流程具体包括以下步骤Al.初始化对应外部控制站的连接状态参数,并将数据发送至通讯管理单元; Bi.通讯管理单元接收到该数据后,主动与外部控制站建立通讯连接; Cl.在建立通讯连接后修改对应的连接状态参数,并创建数据接收缓冲区; 被动响应建立通讯链路流程具体包括以下步骤 A2.外部控制站主动与通讯管理单元建立通讯连接;B2.通讯管理单元保存连接状态参数,并创建数据接收缓冲区,以将数据发送至外部交互单元;C2.外部交互单元接收到该数据后,初始化对应外部控制站的连接状态参数; 主动断开通讯链路流程具体包括以下步骤A3.清除外部交互单元对应的连接状态参数,并将主动断开信息发送至通讯管理单元;B3.通讯管理单元接收到主动断开信息后,关闭对应的连接,并清除对应的连接参数和数据接收缓冲区。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括被动断开通讯链路流程, 其具体包括以下步骤A4.通讯管理单元或数据通知单元发现连接断开时,清除对应的连接状态参数和数据接收缓冲区,并将被动断开信息发送至外部交互单元;B4.外部交互单元接收到该被动响应断开信息后删除对应的连接状态参数。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括被动响应数据通讯流程, 其具体包括以下步骤A5.外部控制站将数据帧发送至通讯管理单元,并在接收该数据帧后将其保存至与之对应连接的数据接收缓冲区;B5.通过调用协议模块所提供的回调函数截取一个完整的数据帧,并将该数据帧保存到公共缓冲区,以经由外部交互单元从公共缓冲区提取该数据帧;C5.外部交互单元对该数据帧进行协议编解码;D5.判断是否需要回应该数据帧,若是,则执行步骤E5,若否,则步骤结束;E5.生成回应帧,并将其保持至公共缓冲区,以经由数据发送单元从公共缓冲区提取该回应帧;F5.将该回应帧发送至对应的外部控制站。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括主动建立数据通讯流程, 其具体包括以下步骤A6.生成回应帧,并将其保存到公共缓冲区,以经由数据发送单元从公共缓冲区提取回应帧;B6.根据用户需要将该回应帧发送至指定的外部控制站或者通过广播或组播方式发送至多个外部控制站。
全文摘要
本发明公开一种通讯终端及其实现通讯协议的方法,通讯终端与用于监控所述通讯终端的外部控制站建立异步通讯连接,通讯终端包括相互独立的通讯模块和协议模块,所述通讯模块包括通讯管理单元、数据帧的数据通知单元以及数据发送单元,所述协议模块包括外部交互单元和内部处理单元。通过将通讯终端划分为相互独立的通讯模块和协议模块,并实现该通讯终端与外部控制站建立异步通讯连接,可有效提高程序代码的复用性、可阅读性以及可测试性;且在产品研发期间可节约资源,提高研发人员的开发效率。
文档编号H04L29/06GK102546637SQ201210008090
公开日2012年7月4日 申请日期2012年1月12日 优先权日2012年1月12日
发明者刘海涛, 周道平 申请人:航天科工深圳(集团)有限公司