互操作性电表通讯协议的开发系统转让专利

申请号 : CN201010117907.8

文献号 : CN101820417B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张利平万长文李先怀

申请人 : 威胜集团有限公司

摘要 :

本发明公开了一种互操作性电表通讯协议的开发系统,包括应用数据处理单元、IEC62056通信协议栈模块、帧缓冲区、信息缓冲区,所述IEC62056通信协议栈模块包括物理层,链路层和应用层,所述物理层将接收的数据放入帧缓冲区,帧缓冲区中的信息部分移交到信息缓冲区,应用层对信息缓冲区中的服务部分进行解码,解码后交给应用数据处理单元处理,返回的数据由应用层进行编码送到帧缓冲区;应用数据处理单元对信息缓冲区中的数据部分进行解码、处理、编码,然后送到帧缓冲区;链路层对帧框架进行编码,得到完整的帧,存入帧缓冲区,由物理层对帧进行发送。本发明能最大限度地节约单片机资源,使小容量单片机的电能表能按IEC62056协议规约进行相互通信操作。

权利要求 :

1.一种互操作性电表通讯协议的开发系统,其特征在于该系统包括应用数据处理单元、IEC62056通信协议栈模块、帧缓冲区、信息缓冲区,所述IEC62056通信协议栈模块包括物理层,链路层和应用层,IEC62056的帧组成由帧框架和帧信息体组成,该帧信息体包括服务部分和数据部分,所述应用数据处理单元包括信息体数据部分的解码模块、数据访问库、访问的数据编码模块;所述物理层将接收的数据放入帧缓冲区,链路层对帧缓冲区中的数据按IEC62056的帧格式检测帧框架,在检测到一个完整的帧或者一个明确的错误时通知物理层中断接收;帧缓冲区中的帧信息体移交到信息缓冲区,应用层对信息缓冲区中的服务部分进行解码,解码后交给应用数据处理单元的数据访问库处理,处理后返回的数据由应用层进行编码送到帧缓冲区;应用数据处理单元的信息体数据部分的解码模块对信息缓冲区中的数据部分进行解码,解码后交给所述数据访问库处理,处理后的数据由访问的数据编码模块进行编码,然后送到帧缓冲区;链路层对帧框架进行编码,得到完整的帧,存入帧缓冲区,由物理层对帧进行发送。

2.根据权利要求1所述的互操作性电表通讯协议的开发系统,其特征在于所述应用数据处理单元还包括层管理模块,用于物理层的连接确立、链路层的连接建立、应用层的连接建立和应用层数据的调用。

3.根据权利要求1或2所述的互操作性电表通讯协议的开发系统,其特征在于所述帧缓冲区在CPU的RAM中,信息缓冲区在CPU的RAM及片外flash中。

说明书 :

互操作性电表通讯协议的开发系统

技术领域

[0001] 本发明涉及一种互操作性电表通讯协议的开发系统,尤其是针对电表行业的IEC62056通信的电表通讯协议的开发系统。

背景技术

[0002] 当前电表发展方向是自动化抄表和智能化服务。目前,在国内的电表领域主要以国家标准DL/T645-1997和DL/T645-2007为主,对于国外先进的具有互操作性的IEC62056协议涉猎甚少,面对国外对智能电表的日益需求以及对协议互操作性的需求,越来越多的国家趋向IEC62056协议规约,市场前景相当广泛。
[0003] 然而IEC62056技术复杂,内容丰富,而目前的表计为了降低成本一般单片机空间很小,使IEC62056协议通信无法在现有的表计中实现。如何有效利用现有的平台环境来搭建IEC62056协议成为一个必须解决的问题。

发明内容

[0004] 本发明的目的在于提供一种互操作性电表通讯协议的开发系统,使小容量单片机电能表能按IEC62056协议规约进行相互通信操作。
[0005] 本发明提供的这种互操作性电表通讯协议的开发系统,包括应用数据处理单元、IEC62056通信协议栈模块、帧缓冲区、信息缓冲区,所述IEC62056通信协议栈模块包括物理层,链路层和应用层,IEC62056的帧组成由帧框架和帧信息体组成,该帧信息体包括服务部分和数据部分,所述应用数据处理单元包括信息体数据部分的解码模块、数据访问库、访问的数据编码模块;所述物理层将接收的数据放入帧缓冲区,链路层对帧缓冲区中的数据按IEC62056的帧格式检测帧框架,在检测到一个完整的帧或者一个明确的错误时通知物理层中断接收;帧缓冲区中的信息部分移交到信息缓冲区,应用层对信息缓冲区中的服务部分进行解码,解码后交给应用数据处理单元的数据访问库处理,处理后返回的数据由应用层进行编码送到帧缓冲区;应用数据处理单元的信息体数据部分的解码模块对信息缓冲区中的数据部分进行解码,解码后交给所述数据访问库处理,处理后的数据由访问的数据编码模块进行编码,然后送到帧缓冲区;链路层对帧框架进行编码,得到完整的帧,存入帧缓冲区,由物理层对帧进行发送。
[0006] 所述应用数据处理单元还包括层管理模块,用于物理层的连接确立、链路层的连接建立、应用层的连接建立和应用层数据的调用。
[0007] 所述帧缓冲区在CPU的RAM中,信息缓冲区在在CPU的RAM及片外flash中。
[0008] 本发明与现有技术相比具有如下优点:
[0009] 1、本发明仅设置了两个缓冲区,一个是将物理层缓冲区和链路层缓冲区共用的帧缓冲区,另一个是用于存储帧信息体体的信息缓冲区。其中帧缓冲区是接收和发送共用的,有效节约了单片机资源。
[0010] 2、帧缓冲区的信息部分移交给信息缓冲区,通常多帧交互时会携带大量信息,RAM资源远远不够,此时需要将其余信息数据存入flash中。通过SPI总线方式访问数据,解决了现有技术中RAM资源不够的问题。
[0011] 3、将应用层对信息部分的解码,分成两部分,第一部分是应用层对服务方式的解码,第二部分是应用数据处理单元对数据内容的解码。这样应用数据处理单位直接对信息缓冲区中解码取出数据,而不需要额外开辟大量空间存储解码出的数据。
[0012] 4、应用数据处理单元得到的数据,直接编码进入帧缓冲区的相应信息部位。而不需要经信息缓冲区中转下发。保护了之前信息缓冲区中的数据,并巧妙的省去了应用层发送缓冲区。

附图说明

[0013] 图1是本发明的结构示意图。
[0014] 图2是IEC62056的帧组成图。
[0015] 图3是本发明的功能模块构架图。
[0016] 图4数据访问库组成图。

具体实施方式

[0017] 从图1可以看出,本互操作性电表通讯协议的开发系统,包括应用数据处理单元、IEC62056通信协议栈模块、帧缓冲区、信息缓冲区,所述IEC62056通信协议栈模块包括物理层,链路层和应用层。物理层单片机中断接收外部帧内容和干扰。每接收一个字节会放入帧缓冲区,帧缓冲区是一个循环容器,当接收的字节达到帧尾部时就重新放入缓冲区的头部。此时物理层的任务只管接收数据。结合图2可以看出IEC62056的帧组成,包括帧框架和帧信息体,其中帧框架包括标志、帧格式、目的地址、源地址、控制、HCS、FCS、标志,帧信息体分为服务和数据。链路层对帧缓冲区按IEC62056的帧框架时时检测是否一个完整的帧已到达,检测的过程不包含信息部分。如果检测到一个完整的帧或者一个明确的错误,则通知物理层中断接收。由于表计通信方式是单窗口一问一答的方式,这给帧缓冲区收发共用提供了保障。
[0018] 将帧缓冲区的帧信息体移到信息缓冲区中。信息缓冲区根据容量大小设计,当单片机资源不够时可使用片外flash存储。
[0019] 帧信息体由服务部分和数据部分组成。服务部分内容有:访问的方式,访问的对象特征。数据部分内容有:读的选择性数据,写操作携带的数据。
[0020] 应用层对信息缓冲区中的服务部分进行解码,解码出的服务部分交给应用数据处理单元的数据访问库处理,处理后返回的数据由应用层进行编码送到帧缓冲区。
[0021] 应用数据处理单元包括信息体数据部分的解码模块、数据访问库、访问的数据编码模块,应用数据处理单元的信息体数据部分的解码模块对信息缓冲区中的数据部分进行解码,解码后交给所述数据访问库处理,处理后的数据由访问的数据编码模块进行编码,然后送到帧缓冲区。应用数据处理单元还可以有层管理模块。
[0022] 链路层对帧框架进行编码,得到完整的帧,存入帧缓冲区,由物理层对帧进行发送。
[0023] 从图3可以看出,利用本开发系统实施开发时首先设计物理层的收发系统,根据不同的硬件载体设计单片机中断收发。物理层是和底层物理介质打交道的,主要负责数据接收发送以及服务上传的层管理功能。其设计根据通信方式的不同而不同,本地可以采用IEC62056-21E模式进入HDLC通信。远程可以采用IEC62056-41部分,载波可以采用IEC62056-31部分,如果客户没有物理层协议通信要求,则可以不实现这些协议部分。
[0024] 然后设计链路层的模块,包括检帧部分、组帧部分、以及链路连接部分。链路层的缓冲区通过单片机接收发送中断控制接收缓冲区和发送缓冲区共用一个缓冲区即帧缓冲区。帧的检测按循环检帧执行。在每一个循环周期内将帧按模块进行分块检帧。并且第一块(字段0x7E)的检测位置是根据检测过程递增、当位置超过缓冲区的范围就重置为缓冲区的头部,就好比将缓冲区看成是个循环列表。帧检测成功后则移交信息部分给应用层缓冲区。链路层缓冲区采用收发共用技术,指在单片机资源有限的情况下,为了最大限度节约资源,通过串口中断的关闭达到接收缓冲区和发送缓冲区合理共用的目的。由于表计通信方式是单窗口一问一答的方式,这给缓冲区收发共用提供了保障。当循环检帧检测到完整帧或者一条需要回复的错误帧时,关闭接收中断,防止接收缓冲区数据被干扰冲掉。之后移交帧信息体体到应用层缓冲区中,当数据访问完毕后需要回复帧组,回复帧直接放入之前接收的缓冲区。如果缓冲区放满后续还有数据,则记录断点位置,先发送已经组装的帧,等待下一次从断点位置编码继续发送。
[0025] 再设计应用层模块,包括应用层的解码、编码和应用层的连接。由于信息体的内容丰富,为了减少应用层上传给应用数据处理单元的数据量,减少系统开销。采用分级解码技术,将服务请求内容先进行解码,将数据内容移交给应用数据处理单元进一步解码。应用层的分级解码技术,是针对IEC62056应用层解码服务过于复杂提出的。将应用层的解码分级别成2部分,第一部分是请求方式解码,包括请求类型,优先级,类,OBIS,属性或方法号。第二部分是data区解码,将data区解码移交给应用进程处理。这样处理可以减少应用层提交给应用进程的服务数据,减少系统RAM开销,提高单片机效率。
[0026] 最后设计应用数据处理单元,应用数据处理单元包括信息体数据部分的解码模块、数据访问库、访问的数据编码模块、层管理模块四部分。信息体数据部分的解码是进一步解出读的选择性数据,写操作携带的数据。然后是设计数据访问库,根据图4所示,函数库包括三个部分请求的服务解析、查表寻找权限、如果权限通过则寻找数据。将应用层解码出的服务按服务进行类、OBIS、属性的swich语句解析。然后判断请求的服务类型的权限是否通过,如果权限允许则通过调用数据函数库从存储介质RAM,.EEPROM,FLASH等中获取数据。然后访问后数据编码部分对数据按数据编码的格式进行相应的编码。应用数据处理单元中还有层管理,它是系统通信交互部分的驱动接口,驱动数据流自低向上接收和自上向下发生。层管理模块包括数据参数的初始化,物理层的连接确立,链路层的连接建立,应用层的连接建立,应用层数据的调用。层管理模块实际上是一个调度模块,由于单片机资源有限,不可能进行多任务时时调度,故要有一个层管理模块对各层的层进行任务调度。其主要任务为:数据参数的初始化、物理层的连接确立、链路层的连接建立、应用层的连接建立、应用层数据的调用。