公开/公告号CN102045352A
专利类型发明专利
公开/公告日2011-05-04
原文格式PDF
申请/专利权人 中国电力科学研究院;
申请/专利号CN201010581932.1
申请日2010-12-10
分类号H04L29/06(20060101);H02J13/00(20060101);
代理机构11271 北京安博达知识产权代理有限公司;
代理人徐国文
地址 100192 北京市海淀区清河小营东路15号
入库时间 2023-12-18 02:09:16
法律状态公告日
法律状态信息
法律状态
2014-03-12
授权
授权
2013-03-20
专利申请权的转移 IPC(主分类):H04L29/06 变更前: 变更后: 登记生效日:20130217 申请日:20101210
专利申请权、专利权的转移
2012-09-05
实质审查的生效 IPC(主分类):H04L29/06 申请日:20101210
实质审查的生效
2011-05-04
公开
公开
技术领域
本发明涉及电力通讯领域的通讯协议方法,具体讲涉及从站侧协议的解析与实施方法。
背景技术
《多功能电能表通讯协议》DL/T645-2007标准统一规范了多功能电能表与数据终端设备进行数据交换时的物理连接和主从式通讯协议要求。主从双方通讯时由于它们在相互间的角色与地位上的差异,从站侧则完全处于盲听状态,它需要对主站发来的信息帧进行相应辨识处理:如解析命令与数据操作对象等,并能据此作出正确的响应以实现主从双方最终的通讯目的要求。从站侧通常可为表计类产品。从站侧设备没有一种较好的处理算法,则从站侧收到主站侧命令帧后不能作出快速的应答响应,从站系统的实时性操作性能也会因此而降低;这更是从机系统性能或功能日后升级的一道屏障。
《多功能电能表通讯协议》DL/T645-2007标准包含有12条命令及数千种数据标识。对于这样一个数目庞大的数据结构体系,现有的程序设计大多采用查找比对法和二分法的程序设计算法,这导致的后果是程序编译后目标代码偏大且运行耗时较长,影响了从站侧设备通讯的实时性和可靠性。
发明内容
本发明提供了从站侧协议的解析与实施方法,发明目的是提升从站侧响应速度的同时有效缩减程序代码的大小,降低程序空间的占用率,使程序执行效率高,保证从站设备通讯的实时性和可靠性。
为实现本发明的目的,本发明采用下述技术方案予以实现:
从站侧协议的解析与实施方法,其改进之处在于,所述方法包括下述步骤:
A、设定主站侧发至从站侧的数据标识为多维数组的维指针参数;
B、对维指针参数排序;
C、对维指针交换后的数据作指针运算处理;
D、用等式表示数据或数据块在内存单元的存储地址。
本发明提供的一种优选的技术方案是:所述步骤A中,设定主站侧发至从站侧的数据标识为多维数组A[i][j][k][q]的维指针参数,并设定所述的多维数组A[i][j][k][q]各维的维数分别为M3、M2、M1和M0;
所述步骤B中,根据维指针频率的大小由小到大、自左向右的方式对所述多维数组A[i][j][k][q]进行维指针参数排序;所述维数最小的维指针是指针频率最高的维指针,被排在最右侧;
所述步骤C中,定义数据或数据块在从站侧EEPROM内存单元中的起始地址为Start_Addr,则执行维指针参数排序后的结果为i→q→j→k,所述多维数组A[i][j][k][q]变为数组B[i][q][j][k];
所述步骤D中,数据或数据块在所述从站侧EEPROM内存单元中的存储地址用Any_EEPROM_Addr表示,所述数据或数据块在所述从站侧EEPROM内存单元中的存储地址Any_EEPROM_Addr可被表示为下述等式①:
Any_EEPROM_Addr=Start_Addr+i×M0×M2×M1+q×M2×M1+j×M1+k。
本发明提供的第二种优选的技术方案是:所述步骤D中,又定义等式等式②M021=M0×M2×M1和等式③M21=M2×M1,所述数据或数据块在所述从站侧EEPROM内存单元中的存储地址Any_EEPROM_Addr又被表示为下述等式④:
Any_EEPROM_Addr=Start_Addr+i×M021+q×M21+j×M1+k。
本发明提供的第三种优选的技术方案是:所述方法用下述步骤进一步加快寻址速度:
(1)将数据列表存储在所述从站侧EEPROM的内存单元中;
(2)得到数据或数据块在所述从站侧EEPROM内存单元中的存储地址。
本发明提供的第四种优选的技术方案是:所述步骤(1)中,将下列数据{{0×M021,1×M021,2×M021,3×M021,...i×M021,...(M3-1)×M021}、{0×M21,1×M21,2×M21,3×M21,...q×M21,...(M0-1)×M21}和{0×M1,1×M1,2×M1,3×M1,...j×M1,...(M2-1)×M1}分别列表存储在所述从站侧EEPROM的内存中;
所述步骤(2)中,使用所述i、q和j作偏移量查取对应列表的值进行累加和运算,再与所述k的值及所述从站侧EEPROM内存单元的起始地址Start_Addr相加,得到数据或数据块在EEPROM内存单元的存储地址。
与现有技术相比,本发明达到的有益效果是:
1、本发明提供的从站侧协议的解析与实施方法结合协议规定的数据格式使用了多维数组、多维结构体数组等自定义型数据结构类型组织,构建DL/T645-2007数据格式并采用指向多维数组的指针方法,通过简洁的指针运算根据数据标识直接指向对应数据的存放地址。
2、本发明提供的从站侧协议的解析与实施方法通过简洁指针运算,根据数据标识直接指向对应数据的存放地址,充分提高从站侧对主站侧命令帧的响应能力。
3、本发明提供的从站侧协议的解析与实施方法提升从站侧响应速度的同时有效缩减程序代码的大小,降低了程序空间的占用率,程序执行效率高。
附图说明
图1是电能量数据标识编码图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的详细说明。
图1是电能量数据标识编码图,将数据标识看作是多维数组A[DI3][DI2][DI1][DI0]的维指针参数,A[DI3][DI2][DI1][DI0]是主站发往从站的原数据标识,根据维指针频率的大小,维指针进行排序,通过维指针交换后变为数组B[DI3][DI0][DI2][DI1],再通过维指针运算处理后得到数据或数据块在从站侧EEPROM内存单元中的存放地址。EEPROM表示电可擦除可编程只读存储器。
本发明提供的从站侧协议的解析与实施方法通过下述步骤具体实现:
A、设定主站侧发至从站侧的数据标识为多维数组A[i][j][k][q]的维指针参数,并设定多维数组A[i][j][k][q]各维的维数分别为M3、M2、M1、M0;
B、根据维指针频率的大小由小到大、自左向右的方式对多维数组A[i][j][k][q]进行维指针参数排序;维数最小的维指针是指针频率最高的维指针,被排在最右侧;
C、定义数据或数据块在从站侧EEPROM内存单元中的起始地址为Start_Addr,则执行维指针参数排序后的结果为i→q→j→k,多维数组A[i][j][k][q]变为数组B[i][q][j][k];
D、数据或数据块在从站侧EEPROM内存单元中的存储地址用Any_EEPROM_Addr表示,数据或数据块在从站侧EEPROM内存单元中的存储地址Any_EEPROM_Addr可被表示为下述等式①:
Any_EEPROM_Addr=Start_Addr+i×M0×M2×M1+q×M2×M1+j×M1+k。
E、又定义等式②M021=M0×M2×M1和等式③M21=M2×M1,数据或数据块在从站侧EEPROM内存单元中的存储地址Any_EEPROM_Addr又被表示为下述等式④:
Any_EEPROM_Addr=Start_Addr+i×M021+q×M21+j×M1+k。
本发明提供的从站侧协议的解析与实施方法使用上述步骤A-E得到了数据在从站侧EEPROM内存单元中的存储地址,步骤A-E中使用了乘法而占用了从站侧CPU的时间资源,使用下述步骤进一步加快其寻址速度,其原理是空间换速度:
(1)将下列三个系列的数据{0×M021,1×M021,2×M021,3×M021,...i×M021,...(M3-1)×M021}、{0×M21,1×M21,2×M21,3×M21,...q×M21,...(M0-1)×M21}和{0×M1,1×M1,2×M1,3×M1,...j×M1,...(M2-1)×M1}分别列表存储在从站侧CPU的内存;
(2)使用i、q和j作偏移量查取对应列表的值进行累加和运算,再与k的值及从站侧EEPROM内存单元的起始地址Start_Addr相加,得到数据或数据块在EEPROM内存单元的存储地址。维指针i、q、j对应的地址值如列表1所示。
列表1维指针i、q、j对应的地址值
本发明提供的从站侧协议的解析与实施方法提高了从站侧对于主站侧发送的命令帧的响应能力,是优化具有主从关系和通讯实时性能的一个重要措施,提升从站侧响应速度的同时还能有效缩减程序代码的大小,降低了程序空间的占用率,程序执行效率高。
最后应该说明的是:结合上述实施例仅说明本发明的技术方案而非对其限制。所属领域的普通技术人员应当理解到:本领域技术人员可以对本发明的具体实施方式进行修改或者等同替换,但这些修改或变更均在申请待批的权利要求保护范围之中。
机译: 主站侧通信设备,从站侧通信设备,通信系统,主站侧通信程序和从站侧通信程序
机译: 地址解析协议填充攻击检测系统,能够使用地址解析协议的弱点来检测外部攻击
机译: 通用协议解析的参数获取方法和装置以及通用协议解析的方法和装置