基于数据纵横存储及校验处理方法的三相费控智能电能表的制作方法

文档序号:8319991阅读:448来源:国知局
基于数据纵横存储及校验处理方法的三相费控智能电能表的制作方法
【技术领域】
[0001] 本发明涉及电器仪表技术领域,具体来讲是一种基于数据纵横存储及校验处理方 法的三相费控智能电能表。
【背景技术】
[0002] 三相费控智能电能表运行过程中,由于要实时的从存储器中读取或写入电量等数 据。这些数据对于三相费控智能电能表能够正常计量起着至关重要的作用,一定要保证这 些数据存储过程中和读写过程中可靠。在存储的过程中存储器本身受到外界的干扰或本身 的性能出现问题导致部分存储区域失效,这时存储的数据可靠性就不能得到保证。在读写 数据的信号在物理信道中传输时,线路本身电器特性造成的随机噪声、信号幅度的衰减、频 率和相位的畸变、电器信号在线路上产生反射造成的回音效应、相邻线路间的串扰以及各 种外界因素(如大气中的闪电、开关的跳火、外界强电流磁场的变化、电源的波动等)都会 造成信号的失真。将会使单片机收到的二进制数位和存储器实际发送的二进制数位不一 致,从而造成由"〇"变成"1"或由"1"变成"〇"的差错。解决这两个问题目前最常用的方 法是在数据存储的时,按照某种关系附加上一定的冗余码,把数据和冗余码一起存储到存 储器中。目前常用冗余码计算方法是进行累加和校验和循环冗余码校验。
[0003] 累加和校验是通过把要校验的数据进行简单的相加,取累加和的低字节(1个或2 个)高位舍弃。这种方法计算简单但是漏检率比较高,例如其中如有两个字节对掉就无法 检出。
[0004] 循环冗余码校验,目前常采用的是循环冗余校验(CRC-16或CRC-32),这种方法可 以有效的降低漏检率,但存在一个问题计算量比较大,特别是到要校验的数据比较长时或 数据比较短但是要频繁的读写时,处理速度明显减慢。

【发明内容】

[0005] 针对现有技术中存在的缺陷,本发明的目的在于提供一种基于数据纵横存储及校 验处理方法的三相费控智能电能表,本发明降低了漏检率,提高了三相费控智能电能表中 电量数据在存储过程中可靠性;降低了单片机的运算和存储负担,提高了处理速度。
[0006] 为达到以上目的,本发明采取的技术方案是:一种基于数据纵横存储方法的三相 费控智能电能表,包括以下步骤:步骤SlL根据存储器的缓冲区长度,将待存储的数据划 分为至少一块数据块;步骤S12.根据数据类型,将各数据块按字节分成m行横行及η列纵 列,其中m多1,η多1 ;步骤S13.为各数据块分别建立一个用于存放横向校验数据的横向 校验数组,其长度为m个字节;为各数据块分别建立一个用于存放纵向校验数据的纵向校 验数组,其长度为n+1个字节;步骤S14.对各数据块中每一行的η个字节数据进行累加运 算后,再取模运算,并将结果作为校验数据存入横向校验数组;步骤S15.对各数据块中每 一列的m个字节数据进行异或运算后,再求反运算,并将结果作为校验数据存入纵向校验 数组;步骤S16.将横向校验数组中的m个字节数据进行异或运算后,再求反运算,并将结果 作为校验数据存入纵向校验数组;步骤S17.将各数据块、横向校验数组、纵向校验数组写 入到存储器中。
[0007] 在上述技术方案的基础上,步骤Sll中,所述存储器包括随机存取存储器和带电 可擦写可编程只读存储器。
[0008] 在上述技术方案的基础上,步骤Sll中,每一块数据块不大于存储器的缓冲区长 度。
[0009] 在上述技术方案的基础上,步骤S12中,若最后一行横行数据不足,则补零。
[0010] 在上述技术方案的基础上,步骤S14中,所述取模运算具体是把累加运算后的结 果对256取模。
[0011] 在上述技术方案的基础上,步骤S16中,将结果作为校验数据存入纵向校验数组 中第n+1个字节对应的位置。
[0012] 本发明还提供一种基于上述纵横存储方法的基于数据校验处理方法的三相费控 智能电能表,包括以下步骤:步骤S21.校验处理前,先判断数据更新类型,若是对其中某一 行数据进行更新,则进入步骤S22 ;若是对全部数据进行更新,则进入步骤S23 ;步骤S22. 在存储器中更新对应数据块中的一行数据及其在横向校验数组、纵向校验数组中对应的校 验数据,进入步骤S24 ;步骤S23.计算更新后的各数据块的横向校验数组、纵向校验数组, 然后将各数据块、横向校验数组、纵向校验数组写入到存储器中,进入步骤S24;步骤S24. 读取各数据块、横向校验数组、纵向校验数组,计算读取的各数据块的横向校验数组、纵向 校验数组,并将其分别与读取的横向校验数组、纵向校验数组进行比较,校验成功后取读出 的各数据块,否则再次读出并校验。
[0013] 在上述技术方案的基础上,步骤S22中,对其中某一行数据进行更新时,所述计算 具体包括:步骤S221.对更新后的目标行的η个字节数据进行累加运算后,再取模运算,并 将结果存入横向校验数组;步骤S221.对纵向校验数组进行求反运算,将求反后的结果与 更新前的目标行数据进行异或运算;步骤S223.对步骤S222中异或后的结果与更新后的目 标行数据进行异或运算,将再次异或后的结果进行求反运算,存入纵向校验数组中。
[0014] 在上述技术方案的基础上,步骤S23中,全部数据进行更新时,所述计算具体包 括:步骤S231.对各数据块中每一行的η个字节数据进行累加运算后,再取模运算,并将结 果存入横向校验数组;步骤S232.对各数据块中每一列的m个字节数据进行异或运算后,再 求反运算,并将结果存入纵向校验数组;步骤S233.将横向校验数组中的m个字节数据进行 异或运算后,再求反运算,并将结果存入纵向校验数组。
[0015] 在上述技术方案的基础上,步骤S24中,将计算后的横向校验数组、纵向校验数组 分别与读取的横向校验数组、纵向校验数组进行比较,若两者比较均成功,则校验成功;若 任意一组比较失败,则校验失败。
[0016] 本发明的有益效果在于:
[0017] 1.本发明通过纵横存储方法将数据及其校验码一同存储到存储器中,在进行横向 校验的同时也进行纵向校验,从而降低了漏检率,提高了三相费控智能电能表中电量数据 在存储过程中可靠性。
[0018] 2.本发明能够对数据块中
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1