基于嵌入式平台的G3-PLC 系统设计与性能优化*
2020-06-08周宇,张峰,刘艳
周 宇,张 峰,刘 艳
(西安工业大学 电子信息工程学院,陕西 西安 710021)
0 引 言
电力线通信(Power Line Commun-ication,PLC) 是现代智能电网中的一种重要通信方式,在智能家居、能源控制和智能抄表等场合有着广泛应用[1]。
G3-PLC 技术是基于OFDM 技术的高速窄带电力线载波技术体系。OFDM 因具有抗多径干扰和频率选择性等特点,非常适合在电力线载波通信系统中使用。但是,由于电力线信道特性恶劣,噪声显著且具有时变性[2],通信质量易受信号衰减、阻抗匹配等多种因素的影响。如何提高电力线通信的可靠性,一直是研究的热点[3]。
文献[4]表明准确的符号定时同步是实现OFDM 系统数据可靠传输的关键,目前主要的延时自相关同步方法具有一段峰值平台,不利于准确的符号定时同步。文献[5]指出,相比PRIME 标准,G3-PLC 标准抗干扰性良好,但速率相对较低,结构复杂,不利于硬件实现。
针对上述问题,本文在对G3-PLC 物理层信号传输模型、信号处理算法及信号的可靠传输进行优化研究的基础上,以ARM 处理器为核心,实现基于G3 标准的电力线载波通信系统,极大地改善了系统效率和数据传输的可靠性。
1 G3-PLC 系统设计方案
G3-PLC 系统中核心的PLC 信号处理单元涉及的算法较多,计算量大,且系统对实时性要求较高。本文选择意法半导体的ARM 处理器STM32F4 构建PLC 信号处理单元。该处理器主频400 MHz,片上资源丰富,能够满足PLC 信号处理单元对处理速度、控制、参数配置及通信接口等各方面的开发需求。信号传输模型的硬件平台方案,如图1 所示。
图1 系统方案
实现方案具体工作原理如下。
数据发送:终端设备A 将待传输的数据通过UART 传送至PLC 信号处理单元,经过各种编码处理及OFDM 调制后形成多载波信号,再进行D/A 转换将待传输模拟信号由耦合单元耦合至电力线发送。
数据接收:电力线上传输的信号由耦合单元接收,经自动增益控制模块处理成为PLC 信号处理单元要求的幅度范围,经A/D 转换由PLC 信号处理单元进行存储、OFDM 解调及译码处理形成接收数据,通过UART 传送至通信终端设备B。
2 G3-PLC 系统效率优化
2.1 OFDM 调制解调
OFDM 通过FFT 将宽带信道分成许多正交的子信道,将连续的高速数据流转变为许多平行的低速数据流并调制在不同的子载波上[6]。
在OFDM 系统中,若电力线信道被分为N个具有相互正交特性的子信道传输信号,发送端的N个信号用S=[s0,s1,…,sN]T表示,则每个OFDM 符号由N个调制后的子载波合成。OFDM 调制解调原理可以用数学公式表示为:
式中,0 ≤t≤T,T表示OFDM 符号持续时间;si表示第i个子信道中的待传输信息;fi表示第i个信道对应的载波频率。
2.2 通过定点化FFT 提高运算效率
IFFT/FFT 算法的实现与优化在OFDM 系统中至关重要。针对浮点FFT 运算量大以及浮点单片机存在功耗大、价格高、计算效率低等问题,采用浮点格式与Q0~Q31定点格式的程序转换,提高系统运算效率。浮点转定点可表示为:
其中x表示浮点数,Xk表示转换后的定点数,k为移位次数。由于ARM 中移位操作可以作为四则运算指令的一部分不占用额外的指令周期,可大大提高格式转换效率。本文通过ARM 外设定时器测试FFT 运行时间,结果表明,浮点FFT 运行时间为8.80 ms,而定点FFT 仅为0.47 ms,运算时间大幅减少。FFT 效率的提高加快了OFDM 符号输出的频率,提高了系统通信速率。
2.3 通过帧结构的合理设计优化传输效率
传输数据经多载波合成得到的信号一般为复值信号。为保证OFDM 调制信号为实信号,避免接收端的相关检测,需对帧结构进行合理设计。
由于任一复数序列可进行虚实分解,即:
式(5)中:
对式(6)和式(7)分别进行DFT 变换,得:
由上述可知,为了使基带OFDM 调制信号实数化即需要使Xop(k)为零,对应的X(k)=X*(N-k),即将IFFT 之前的N/2 个信息数据与该N/2 个信息数据的共轭倒序信息数据共同组成长度为N的具有共轭对称特性的信息数据。
结合推导,设计的OFDM 符号结构如图2 所示。
图2 OFDM 符号帧结构
图2 中一个OFDM 符号结构包含N个子载波,m个有效子载波,整个OFDM 符号帧关于中心对称。在进行N点IFFT 变换时,可保证OFDM 信号为实信号,减少系统运算量。
3 G3-PLC 系统的可靠性优化
3.1 通过OFDM 符号同步保证可靠性
符号同步的目的是使接收端得到与发送端相同周期的符号序列。为了使OFDM 系统中数据可靠传输,必须解决恶劣电力环境下的数据同步问题。
系统中,发送端在每个符号前加一小段高电平信号,接收端通过高电平检测判断OFDM 符号的位置。发送端D/A 模块由定时器中断控制转换频率,接收端由定时器触发A/D 转换,并通过DMA 完成A/D 模块与存储器的数据传输,将DMA 配置为每传输N个数据产生一次传输完成中断。由于系统中每个OFDM 符号包含N个子载波且带一小段峰值电平,所以最多两次DMA 传输可得到一个完整的OFDM 符号。
在程序中通过状态转移的方法实现符号同步。设计的状态转移方案如图3 所示。
图3 状态转移方案
S0状态:待DMA 接收完成一组数据后,将C置1,然后判断DMA 是否为第一次传输数据;若是,则进状态S1,否则进入状态S2。
S1状态:对DMA 传输过来的数据进行阈值判断,寻找FFT 窗的起始位置W;若未找到窗的起始位置,W置-1,进入S0状态;若W>0,则进入状态S2;W=0,则进入S3。
S2状态:若是DMA 第一次传输的数据,将数据的W~N-1 位赋值给数组FFT[]的0 ~N-W-1位,C置0,进入S0状态。若是第二次DMA 数据,则将DMA 传输数据的0 ~W-1 位的值赋给数组FFT[],并将C置0,T 置1,进入状态S3。
S3状态:对fft[]中的数据进行解调,将T和F置0,进入状态S0。
状态转移变量描述,如表1 所示。
表1 状态转移变量描述
3.2 通过纠错编码提高可靠性
3.2.1 利用RS 编码纠正系统突发错误
RS 编码(Reed-Solomon Codes,RS)是一种m进制BCH 码。实际应用时,m被设置为2q,即每个码元由q个二进制比特序列组成。RS 码具有很强的纠错能力,编码效率高,适合纠正突发错误。编码器如图4 所示。
图4 编码器结构
将k个码元信息分两路输入编码器中,在完成除法功能后,把余式的系数保留在移位寄存器中,即保存所有生成的监督码元。
将得到的监督码元按顺序跟在原始输入信息码元后面组成RS(n,k)码。系统接收端利用BM 迭代算法进行RS 译码,运算复杂度较低,可满足通信实时性。
3.2.2 利用卷积编码消除系统错误
G3-PLC 系统权衡了卷积编码的编码效率与约束度两种因素,最终选用(2,1,7)卷积编码。编码电路中采用6 位移位寄存器,对应的编码效率为1/2,约束度N=7。卷积编码器如图5 表示。
图5 卷积码编码器
在接收端采用维特比译码算法,维特比算法利用卷积码的网格结构,大大降低了译码复杂度,具有高效性、实时性和准确性。
3.2.3 利用时频联合分段重构提高系统抗扰性
为了同时在时频二维空间中增强系统的抗干扰性,对信号进行时频联合分段重构。对待编码信息先按照频域分段重构算法进行编码,经IFFT 调制后再进行时域分段重构[7]。
分段重构算法原理如下。有用的OFDM 信号为E,经分段重构编码后的信息用S(m,l)表示,分段重构编码原理可用式(10)描述:
式中,m表示子载波的个数,n1表示分段重构次数,l表示OFDM 信息的序号,u为整型变量且有u=0,1,2,3,…,n1-1。
发送端信号进行时频联合分段重构后,接收端利用最大似然译码方法,依据信息所占的比率判断发送信息,能够极大提高译码准确性。
3.3 利用循环维纳滤波优化可靠性
维纳滤波(Wiener Filtering)是一种基于最小均方误差准则对平稳过程的最优估计器,结构如图6 所示。
图6 维纳滤波结构
s(n)是原始信号,w(n)是噪声信号,则输入信号为:
输出信号可表示为:
根据最小均方误差准则,最佳滤波器的加权系数h(k)应满足维纳-霍夫方程:
其中,xxφ表示x(n)的自相关序列,sxφ表示x(n)和s(n)的互相关序列。
维纳滤波要求信号是平稳的,直接运用维纳滤波效果较差。因此,利用循环维纳滤波对OFDM 信号进行处理,以便在较低阶次时依然有较好的滤波效果[8]。
考虑到维纳-霍夫方程的求解运算量较大,为了减少运算量,采用莱文森递推算法求式(10)的最优解,避免了矩阵求逆运算。
在电力线系统中采用循环维纳滤波器的算法过程如下。
(1)对待滤波信号x(n)进行分段处理,每一小段待处理信号的长度大于一个完整的OFDM 信号的长度,形成新的待滤波信号x(l,k):
其中,k表示第k段信号,l表示分段长度。
(2)若分段长度为N,对待滤波信号x(l,1)进行自相关:
对待滤波信号x(l,1)和期望信号s(l,1)的互相 关为:
根据维纳霍夫方程得出第1 段的系统函数h(n,1),计算y(l,1):
同理,对待滤波信号x(l,k),k=2,3,…,m的自相 关为:
对待滤波信号x(l,k)和y(l,k-1)的互相关为:
根据维纳霍夫方程得出第k段的系统函数h(n,k),计算y(l,k):
(3)信号重组,将y(l,k)依次连接,组成滤波输出结果y(n)。
4 测试实验及数据分析
4.1 系统可靠性测试
为了验证通信系统性能,利用MATLAB 对系统进行仿真,系统参数按照G3 标准进行设置。时频联合分段次数均为4 次,循环维纳滤波阶次为60,在实测电力线信道环境下对每个信噪比进行800 帧数据测试,多次实验得到误码率曲线如图7 所示。
图7 系统误码率
由图7 分析可知:通信系统受实际的电力线噪声干扰时,信噪比从-16 dB 开始误码率下降明显,在信噪比为-11 dB 时误码率可达10-4,表明设计的通信系统可靠性高,可以满足一般通信需求。
4.2 系统功能测试
系统测试方案如图8 所示,采用两台PC 机作为系统的通信终端,通过UART 和ARM 发送单元及接收单元通信。按照G3-PLC 标准进行参数设置,最后采用电力线作为通信测试信道。
通信终端A 通过串口助手连续发送由0 和1 组成的数据,由ARM 发射机进行编码和调制后发送到ARM 接收机。接收机对接收到的数据进行滤波、解调和解码,并将解码后的数据显示到串口助手。通过对比发现,系统收发数据相同且保持同步。系统通信速率可达100 kb/s,验证了设计的通信系统的合理性。
图8 系统测试方案
5 结 语
论文在高性能、低功耗的ARM 上实现G3-PLC通信系统,成功进行了数据发送和接收的系统验证,结果表明:
(1)在纠错编码的基础上,将循环维纳滤波算法和时频联合分段重构编码引入G3-PLC 系统,大幅提高了系统抗干扰性能。
(2)状态转移方案的设计,解决了接收机数据状态和进度不同步的问题。
(3)对称的帧结构设计及定点化FFT,提高了系统运行效率。