文摘
无处不在的电力物联网的建议(UPIoT)增加了对通信的需求覆盖率和智能电网的数据收集;的数量和质量通信网络正面临着更大的挑战。这个短暂的(73年,37岁,13)适用于二次剩余(QR)编码电力线载波技术改善UPIoT地方数据通信的质量。为了提高解码QR码的性能,一个感应方法错误模式,提出了可将原本耦合误差模式划分为6个部分和重用相同的解码模块。这种方法大大减少了资源需求,因此(73年,37岁,13)二维码可以在FPGA硬件实现。值得注意的是,硬件架构是一个模块化的框架,它可以适应不同大小的FPGA。作为一个例子(73年,37岁,13),二维码是英特尔Arria10 FPGA上实现;实验结果表明,这个体系结构的最大解码频率是21.7 Hz,也达到4121 x加速相比CPU。此外,建议的体系结构的好处从高灵活性,模块化设计和解码等框架的形式的管道可以被视为一个替代方案解码长度QR码。
1。介绍
随着电力系统的发展,电气设备的种类和数量正在迅速增加,例如,能源储存(ES)是被广泛采用的网格来满足的需要间歇性发电(1]。这带来了信息共享的需求越来越大2)和分析(3电网系统中的所有节点之间的]。无处不在的电力物联网(UPIoT)提出了建设智能电网的先进技术。它可以集成的组合物联网(物联网)和电力业务,有效地集成物联网和电力系统,电力系统,提高信息的透明度。的“无处不在”UPIoT体现在电力系统的各个节点(传输、转换、分配和消费),这意味着人们的实时互联,机械,电力网络,平台可以实现在任何时间(4]。
UPIoT提出了基于物联网的,所以它有一个结构类似传统的物联网,包括感知层、网络层、平台层和应用程序层(5]。感知层是由不同功能的传感器各个环节和节点的网络。网络层主要由互联网或专用网络,负责大量的信息传播。平台层是数据共享和发布中心。应用程序层为用户提供数据显示和控制信号传输功能。它是认识到UPIoT主要包括三个部分6当地通信)的沟通,边缘物联网网关和远程通信。作为一个中间载体平台感知层和层之间,物联网网关假定边缘收集数据的功能和当地边缘快速计算。远程网络通常由4 g / 5 g和专用网络实现,而本地通信网络可以选择有线或微波无线网络由于其短的距离。测量数据的类型和数量由当地UPIoT传感器将大大增加与电网的发展。因此,本地传输网络应该具有以下特点:(我)双向实时通信能力(2)低功耗和低成本(3)强大的数据兼容性
电力线载波通信(PLC)技术,当地的通讯技术,可以把电源和数据,已被广泛用于高速数据传输,即使在相对偏远地区(7]。PLC的良好特性,如直接应用电力线传输数据,不需要修改线路布局,容易实现,和双向通信,可以满足本地传输网络的基本特征。然而,使用电力载波线会导致载波信号的相对较大的衰减,从多个噪声和破坏性能仍然是一个挑战。为了处理的缺点,一些研究提出Reed-Solomon (RS),低密度奇偶校验(LDPC) [8,9),卷积码(CC),和其他高级代码(10,11]。此外,使用调制技术,如正交频移键控(QFSK)和正交频分复用(OFDM) [12)可以提高系统的可靠性。
选择LDPC码作为信道编码方案5 g的数据通道的新收音机,因为其优秀的代码纠错性能。在当地通信中,大多数的传感器和物联网网关之间的传输信号功率状态数据和控制信号,可视为短数据;低密度奇偶校验(LDPC)码的优点不能反映由于密集的和短的通信数据8]。近年来,随着不断发展,root-protograph (RP) LDPC码似乎解决高炉通道的干扰限制由于其nontraversal特征(9]。CC解码由于维特比算法具有较高的计算复杂度和交错的使用造成重大的端到端延迟。Reed-Solomon (RS)代码,用于在许多制度,将导致大量的计算冗余时大。由于信道编码器的误差修正能力不足,接收机的性能仍不能达到令人满意的性能(10]。因此,我们建议使用二次剩余(QR)代码13)编码数据和控制信号的PLC信道,而且还能使用更多的常用调制OFDM等方法;它可以获得以下优势:(我)传动功率的要求在相同的环境中可以减少(2)提高通信的可靠性,从而提高通信效率
二维码获得强大的纠错功能通过增加解码的复杂性;虽然二维码解码算法改进了几次,仍然很难在实际应用脱颖而出由于其不满意的解码速度。基于现有的解码算法,不同综合症(DS)算法(14),和优化解码算法循环重量(OCW) (15),我们提出一个方法适合数字电路的硬件实现,即称为感应错误模式(EPI)。通过使用EPI,我们减少(73年,37岁,13)二维码分成6部分,以便它可以使用相同的管道处理器,和(73年,37岁,13)二维码可以实现在有限的硬件资源。同时,我们实现了硬件解码的架构(73年,37岁,13)二维码在英特尔Arria10 10 ax115-u4f45i1sg FPGA平台,实现最高时钟频率(fmax) 260.42 MHz,相当于21.7 MHz频率解码。
2。二维码和解码算法
二维码是1958年提出的e . Prange,优秀的错误检测和校正能力由于其庞大的最小汉明距离3]。二维码是有限域上定义的 ,和是一个有限域包含吗元素。(73年,37岁,13)QR代码构造 ,及其二次剩余集是由
让是最小的正整数 ,和(73年,37岁,13)二维码, 。让 是一个本原多项式的根 ,然后在有限域生成所有非零元素 。很明显, ,所以 是73年的理查德·道金斯根的团结 ,的生成多项式(73年,37岁,13)给出了二维码
消息的一部分(73年,37岁,13)二维码是一个向量的长度37和可以被一个多项式表示 。然后,码字可以表示为 通过使用系统的编码,高37位是信息位,表示为 ,和更低的36位奇偶校验位,表示为 。如果码字通过加性高斯白噪声(AWGN)信道,噪音可以表示为 ,然后接收到的码字可以表示为 让 ,和被称为综合症多项式。
我们将描述解码算法通过整合DS算法和OCW算法;当然,还有其他的解码算法,如Berlekamp-Massey (BM) [16),快速代数译码算法(ADA) [17],综合症和综合征不同译码算法(SSDDA) [18,19),都是在软件中实现。
为简单起见,码字一个消息部分和奇偶校验部分 ,和解码码字一个消息部分和奇偶校验部分 。让是一个错误th一些 ,和综合症对应表示为 。的症状 表所示1。
对收到的码字 ,这种综合症的首先是计算,那么体重吗的计算,码字可以通过以下步骤解码。
步骤1。如果 ,所有错误的收到了码字在 。然后,解码的消息部分 ,和解码完成。如果 ,至少有一个错误存在的消息部分 。
步骤2。计算 在哪里的意味着位操作XOR,计算重量的 。如果存在于的范围 这样 ,只有一个错误 ,我们可以获得解码消息部分 。然后,在这个时候完成解码,这一步的计算复杂性 。如果不存在这样的吗 ,至少有两个错误的消息部分 。
步骤3。计算 ,和计算重量的 。如果 存在于的范围 这样 ,有两个错误 ,我们可以获得解码消息部分 。然后,在这个时候完成解码,这一步的计算复杂性 。如果 不存在使吗 ,至少有三个错误 。
步骤4。计算 ,和计算重量的 。如果 存在于的范围 这样 ,有三个错误 ,我们可以获得解码消息部分 。然后,在这个时候完成解码,这一步的计算复杂性 。如果 不存在使吗 ,至少有四个错误 。
第5步。循环移位36位向左,表示为转移的结果 。然后,计算综合症的 ,和计算重量的 。重复步骤1 ~ 4,然后在4 ~ 6错误可以是正确的。完成这些后,解码。我们可以推断总DS算法的计算复杂度 。
二维码的仿真是必不可少的,37-bit随机生成消息和编码(73年,37岁,13)二维码。然后,计算后的解码性能混合编码信号与高斯白噪声。仿真结果不同的比特误码率(BER)性能如图1。我们也显示曲线的两个RS码(20.)和EPI的算法。从图1,我们可以看到,QR码比RS码有更好的性能,和QR码也将更好的性能在实际的应用程序。EPI的具体算法将部分中解释3。
3所示。错误模式归纳法
为了提高解码速度和保证解码时间的可控性,需要计算所有解码可能性,然后解码可以在固定的时间内完成。然而,长码字的长度(73年,37岁,13)二维码导致解码复杂度高,与一个完整的并行模块和解码将导致大量的资源消耗。这个解码框架总结了错误的模式来实现多路复用模块基于DS算法;然后,我们可以减少资源消耗和硬件负担,我们可以让它可能实现在低成本的硬件。
3.1。错误模式归纳和分类
部分2表明,当有三个错误 ,解码复杂度是最高的,所以我们首先考虑优化它。
3.1.1。Three-Error模式
three-error模式的数量 ,总共有7770种,可以分解成几个部分,我们称之为感应错误模式;归纳错误模式如表所示2。
从表2,有210种归纳错误模式。循环移位留下的每个模式 位,这样我们才能获得 种three-error模式,这些模式是7770年的形式进一步分解。
在这一点上,第一次分解完成,但是由于不均匀分布的数量错误,硬件实现将导致不同的管道长度,所以我们需要处理归纳错误模式。如表所示3,我们结合归纳错误模式和把他们分成6组均匀分布的模式,和每个组合模式组35归纳错误模式。
我们所说的感应模式在同一组的组合模式和实施相同的管道。然后,three-error模式分解为形式 。
3.1.2。两种错误模式
两种错误模式的数量 ,总共有666种可以分解为18种感应模式,表示为 。然后,我们周期性每个模式转向左边 这样我们就可以得到所有 两种错误的模式。
自从three-error模式分为6组,我们还结合两种错误模式分成6组保持管道的一致性,和每个组有3两种错误归纳模式。两种错误的组合模式如表所示4。
在这一点上,两种错误模式分解为形式 。
3.1.3。单一错误模式
单一错误模式的数量 ,总共有37种。最小误差校正单元,可以组合而不分解。自从37号不能均衡,单一错误模式分为6组。每组7单一错误模式,不执行操作的冗余部分,确保管道的一致性。单一错误部门组如表所示5。
3.2。遍历和解码错误模式框架
与DS算法不同,FPGA的内存占用优化应用程序的优先级不高。因此,我们提出一个解码框架:多个解码操作分离到一个错误模式遍历部分和一个码字解码部分。我们使用记忆细胞减少注册消费,在FPGA设计中是可行的。
这个解码框架的具体操作部分所示4。预处理操作后,码字 和标记位存储在第一输入输出(FIFO)的记忆。然后,码字 计算得到初始综合症 ,我们可以遍历所有错误模式 。当遍历,如果是满足相应的条件(见部分4详情),解码标记位表示“d_flag将被设置为1,当前错误模式表示为“ep1”、“ep2”和“ep3“将记录登记”e_reg_out1”、“e_reg_out2”和“e_reg_out3”。当错误模式遍历完成后,将进行解码根据解码标记位,记录错误模式位置,存储在FIFO和原始码字。
这个框架可以减少管道的每个阶段的注册消费整个码字的存储73位存储三个错误模式的18位位置(每个错误模式的位置是6位),大大减少了消费。这里的寄存器保存可以用于其他中间大量的存储整个框架的速度增加。
4所示。硬件体系结构设计
根据节3之前和之后的操作循环移位是相同的,所以我们可以实现这两个在相同硬件业务框架通过预处理和后处理接收的码字,然后我们可以实现管道多路复用来提高资源利用率,减少资源消耗。所有的错误模式进行了总结和分为6部分,然后可以多路解码模块。我们遍历每个时钟一部分,遍历所有错误模式六个钟。具体的模块如下。
4.1。码字预处理模块
预处理输入码字循环移位操作,原始码字 ,和循环移位的码字是由
具体结构如图2;当前数据决定根据预处理标记的状态标记为“pre_flag”(0/1);当 ,目前的数据是原始码字 ;当 ,当前数据循环移位的码字 。然后,数据序列 输入初始综合症生成单元。请注意,为了使数字清晰,时钟信号不是如下面的图所示。
4.2。重量计算单元
重量计算单位可以积累的总和(如图3)。为了减少路径延迟和增加操作频率,我们把S_in分成6个部分并完成在2的步骤和操作。
此外,介绍了一个名叫“条件”的模块识别信号,使重量计算单元来适应不同的模块。
在初始综合症生成模块,“flag_out”时启用 。
在单一错误遍历模块中,“flag_out”时将启用 。
在“flag_out”两种错误遍历模块,将时启用 。
在“flag_out”three-error遍历模块,将时启用 。
4.3。综合征生成单元
综合症的一代单位有两种单位,一个,另一个用于 。
计算初始综合症是由
其他综合症给出的计算 在哪里 错误的位置吗 。
具体结构如图4。最初的综合症计算公式(6)根据 和症状 。然后,其他症状 ,和可以通过计算 ,和 。
根据该算法,当最初的计算综合症完成后,体重最初的综合症首先计算。如果 ,解码标记位的d_flag_init设置为1时,寄存器的e_reg_out3“当前错误的模式分配给“40”,可以提供一个指示后处理单元解码。
4.4。遍历单位错误
错误的遍历单元分为三种类型根据错误的数量 ,单个错误的遍历单位,两种错误遍历单位,three-error遍历单位。为了减少寄存器的消费在这个设计中,在每次遍历单元计算的重量新综合症,只有当前解码标记位d_flag_out,和当前错误模式ep1, ep2, ep3的记录,而不是直接解码。毕竟模式遍历完成后,执行解码,解码标记位和记录错误模式。
4.1.1。单一错误遍历单位
具体结构如图5。根据输入的错误模式“ep1”位置,计算 ,和计算重量的 ,然后标记位d_flag_out将根据 。无论当前错误模式满足解码状态,当前错误模式位置“ep1”记录ep1_out,简化了逻辑和精确记录错误的模式。
10/24/11。两种错误遍历单位
具体结构如图6。根据输入的错误模式位置ep1, ep2,计算 ,和计算重量的 。然后,标记位d_flag_out将根据 。同时,当前的错误模式位置ep1, ep2的记录“e_reg_out1”,“e_reg_out2”。
4.4.3。Three-Error遍历单位
具体结构如图7。根据输入错误模式的位置的ep1”、“ep2”、“ep3”,计算 ,和计算重量的 。然后,标记位的d_flag_out将根据 。与此同时,当前位置的错误模式ep1”、“ep2”、“ep3被记录到e_reg_out1”、“e_reg_out2”、“e_reg_out3”。
4.5。遍历模块错误
每个错误遍历模块可以完成遍历的一种错误。为了便于管道实现,遍历单位需要集成的错误。一个适当的积分法可以提高资源利用率,提高整个系统的运行速度。
4.5.1。Three-Error遍历模块
根据表归纳错误模式相结合3。结合后,每个组合模式是35的数量。此时,可以通过控制执行模块复用的输入参数的值的pctr”。在每一个时钟,我们遍历35种归纳错误模式;所有three-error模式将完成6钟(如表所示6)。
改变输入参数的pctr” 控制开关的组合模式,根据偏移量参数的poff” ,我们可以确定初始化模式构建管道的基本单位。的初始化参数的计算方法
根据输入解码标记位的d_flag_in的,如果 ,前一个阶段的误差模式遍历单位遇到了解码状态,设定d_flag_out1,注册的e_reg_in1”、“e_reg_in2”、“e_reg_in3“直接”e_reg_out1”、“e_reg_out2”、“e_reg_out3”;如果 ,前一个阶段的误差模式遍历单元不符合条件,解码和错误模式这一水平被认为是遍历的结果。
基本管道单元的具体结构如图8(一个)。最初的错误位置的e_init1”、“e_init2”、“e_init3“根据参数的确定pctr”和“poff”。然后,模36 + 位,分别与初始误差的位置来获取新的错误模式遍历。结合输入初始综合症 ,37错误遍历单位获得基本管道单元。遍历这些错误模式后,37个遍历判断和选择的结果。如果错误模式在这个单元满足解码状态,“d_flag_out是分配给1,当前错误位置输出的错误模式记录登记的e_reg_out1”、“e_reg_out2”、“e_reg_out3”。然后,输入初始综合症传递给下一个层次遍历。
(一)
(b)
35 three-error遍历连接管道单位逐步形成一个完整的three-error遍历模块。具体结构如图8 (b)。最初的综合症 ,参数的pctr”,解码国旗”d_flag_out“和错误模式记录登记”e_reg_out1”、“e_reg_out2”、“e_reg_out3传递的阶段,以确保错误模式遍历的完整性和稳定的数据。
4.5.2。两种错误遍历模块
three-error遍历的管道单元,所有three-error模式已经被6分布式时钟,所以我们也分发所有两种错误模式6钟。在每一个时钟,我们遍历3归纳两种错误模式,所有两种错误模式将完成6钟(如表所示6)。
改变输入参数的pctr” 控制开关的组合模式,根据偏移量参数的poff” ,我们可以确定初始化模式构建管道的基本单位。的计算方法是由初始化模式
根据输入解码标记位的d_flag_in的,如果 ,前一个阶段的误差模式遍历单位遇到了解码状态,设定d_flag_out1,注册的e_reg_in1”、“e_reg_in2”、“e_reg_in3“直接”e_reg_out1”、“e_reg_out2”、“e_reg_out3”;如果 ,前一个阶段的误差模式遍历单元不符合条件,解码和错误模式这一水平被认为是遍历的结果。
具体结构如图9(一个)和最初的错误位置‘e_init1’,‘e_init2决心根据参数“pctr”和“poff”。然后,模36 + 位,分别与初始误差的位置来获取新的错误模式遍历。结合输入初始综合症 ,37错误遍历单位获得基本管道单元。遍历这些错误模式后,37个遍历判断和选择的结果。如果错误模式这个模块满足解码的前提条件,“d_flag_out”分配给1,当前错误位置输出的错误模式记录登记“e_reg_out1”,“e_reg_out2”,和“e_reg_out3”的值设置为42岁,后处理单元提供一个指示。然后,输入初始综合症是传递到下一个层次遍历。
(一)
(b)
一步一步三两种错误遍历管道单元相连,形成一个完整的两种错误遍历模块。具体结构如图9 (b)。最初的综合症,参数“pctr”、“poff”,解码国旗d_flag_out,和错误模式记录登记“e_reg_out1”,“e_reg_out2”、“e_reg_out3”传递阶段确保错误模式遍历的完整性和稳定的数据。
4.5.3。单一错误遍历模块
一样three-error和两种错误遍历管道单元,所有单个错误的遍历单位分布6钟(如表所示6)。
改变输入参数“pctr” 控制开关的组合模式,我们可以确定初始化模式构建管道的基本单位。的计算方法是由初始化模式
根据输入解码标记位d_flag_in,如果 ,前一个阶段的误差模式遍历单位遇到了解码条件,设置“d_flag_out”1,并注册‘e_reg_in1’,‘e_reg_in2’,‘e_reg_in3直接‘e_reg_out1’,‘e_reg_out2’,‘e_reg_out3’;如果 ,前一个阶段的误差模式遍历单元不符合条件,解码和错误模式这一水平被认为是遍历的结果。
具体结构如图10和最初的错误位置的e_init1决定根据参数“pctr”。然后,模36 + 位,分别与初始误差位置获得新的错误模式遍历。结合输入初始综合症 ,7单一错误得到了遍历单元形成一个完整的单一错误遍历模块。
遍历误差模式后,7遍历判断和选择的结果。如果错误模式满足解码条件在这个模块中,“d_flag_out”设置为1,当前错误位置输出的错误模式寄存器“err_reg_out1”记录。和“err_reg_out2”设置为0,“err_reg_out3”设置为41,这为后处理单元提供迹象。然后,输入初始综合症通过对最终解码。
4.6。解码和后处理单元
读取数据存储在FIFO,表示“r_delay”和“pre_flag_delay”,和“r_delay”包含一个消息部分“m_delay”和平价p_delay的一部分。根据解码状态标志位d_flag1,记录错误模式寄存器‘e_reg_out11’,‘e_reg_out12’,‘e_reg_out13’,预处理状态标志位pre_flag_delay和管道通过综合症s_delay,解码可以完成。表示消息部分的解码码字为“m_decode”和表示解码码字平价p_decode的一部分。解码的操作如表所示7。
解码完成后,需要后处理来恢复原始码字的顺序。解码码字是周期性转移和恢复根据预处理状态寄存器的pre_flag_delay”,从而我们可以获得最终解码码字的m_final”
此时,完成解码,m_final是最后的解码码字,和具体结构如图11。
4.7。管道架构
预处理模块,初始综合症生成模块,three-error遍历模块,两种错误遍历模块,单一错误遍历模块和解码和后处理模块连接一步一步形成42-stage管道。具体结构如图12。
4.8。硬件实现结果
实验和验证分为两个部分,软件验证和硬件验证。软件验证测试QR码的性能,硬件验证测试的加速度影响QR码。软件验证部分是进行个人电脑(PC),这也是中提到的部分2。验证软件运行在VS2019,英特尔酷睿i5 - 6500, windows 10环境,和解码时间如表所示8。为了显示各种译码算法之间的区别,我们已经记录下各种译码算法的解码错误校正时间不同数量的错误。毫无疑问,错误一个编码信息越多,时间越长解码时间成本,和不稳定的解码延迟会影响物联网设备的实时性能。此外,软件实验内容还包括各种译码算法的平均解码时间计算平均概率分布的基础上的数量错误,结果可以用作参考解码算法的实时性能。
硬件验证框架如图13。随机信息和噪声是由ROM查找表生成的。编码信息和噪声的总和将输入解码加速器。误码率计数器记录错误率比较解码的结果与原来的消息。
解码加速器是部署在英特尔Arria10 10 ax115u4f45i1sg FPGA;表中给出的结果9。
在这个解码框架,所有错误模式是均匀分布的管道,所以解码时间是固定的。完整解码需要125时钟,遍历模块成本12钟,6钟遍历所有模式和6钟后重复发生转变。因此,经过12时钟的管道处理,可以获得一个有效的解码结果。在操作频率260.42赫兹,每12时钟输出可以相当于一个解码速度21.7 Hz,解码时间是46.07 ns,每个条件的解码时间如表所示8。与PC相比,硬件解码加速度可以获得解码速度提高4121倍,可以维持一个恒定的解码时间。
5。结论
本文介绍了二维码在电力载波技术的可行性和优势UPIoT的概念的基础上,根据其缺点与解码时间长(解码复杂度和缺陷)提出了一个解决方案。通过提高DS解码算法,错误模式分裂根据错误的归纳结合模式的特点,提出误差模式归纳方法模拟证明性能不会丢失和优于RS代码。本文还分析了硬件分离错误模式遍历和解码操作的可行性和实现了FPGA硬件解码结构在此基础上,对英特尔Arria10 10 ax115u4f45i1sg FPGA平台,一个等价的解码实现21.7 MHz的频率,这是软件解码速度的4121倍。我们最好的知识,硬件解码架构提出了第一个硬件实现的(73年,37岁,13)二维码解码架构。
同时为公司提供一个新的实现方案基于UPIoT纠错编码,这种架构还显示较长的QR码码字也可以很快被我们的硬件解码帧。
数据可用性
我们的数据尚未公开,因为保密,读者可以联系(电子邮件保护)可用的数据。
的利益冲突
作者宣称没有利益冲突。
确认
这项工作是由浙江省的主要研究和开发项目(2020 c01110)。