基于PWM的FSK电力线载波通讯系统设计
1 引言 电力载波通信是电力系统特有的、基本的通信方式,是指利用现有电力线,通过载波方式将模拟或数字信号进行高速传输的技术。由于使用已广泛存在的电力线作为通信信道,无需特殊维护信道,使得工程造价大幅度下降。该技术大量运用在路灯控制,电力线防盗,恶劣环境通信等需要长距离,多节点的情况。但由于国内电网的复杂性与多样性,比如当居民用电高峰时,大量负载不断的接入与断开,都会对载波信号产生不同程度的衰减与干扰作用;当载波信号调制在电力线上时,在每个交流周期的峰值点,产生的固定脉冲,极易使信号丢失;而且现有的电力载波模块售价较高,需要高性能的单片机支持。因此电力载波还需要大量的研究,才能实现更广阔的应用[1~2]。 本文研究目的是在使用一般的单片机下,采用FSK的调制技术实现电力载波通信,并优化算法,提供函数接口,使电力载波通信更易使用,并能保证通信数据传输的准确性在96%以上。 2 系统整体设计结构 该系统主要完成的功能是实现上位机通过串口将数据发送给单片机,由单片机以FSK调频方式调制信号,通过推挽输出电路将载波信号耦合在电力线上进行信号传输。而处于电力线另一处节点,则通过检波输入电路,功率放大电路以及软件的算法处理,将载波信号还原成原信号,校验后,通过串口发送给另一台上位机。信号输出和输入皆提供函数接口,用于用户工程的后续开发[3]。
图1 系统整体设计结构图 3 系统整体软件设计 3.1 系统整体软件流程图 在单片机开始运行时,对各个定时器,IO口以及系统时钟完成初始化之后,会等待5s,然后检测对应的波特率选择IO口以及电力载波模式选择IO口,完成所有的初始化。当程序开始正常运行后,单片机会不断接收串口信号和电力载波信号,并将接收到信号校验后转发出去。
图2 系统整体软件流程图 3.2 电力载波模式的选择 不过零模式主要运用在直流或无压状态下,而过零模式主要运用在交流状态下。由于居民使用的交流电都为50Hz频率,即在每一个周期内,都会出现一次峰峰值与峰谷值,而这两次峰值对载波通信传输来说会有两次较大的脉冲干扰,即电力线上存在着固定的100Hz的脉冲干扰。除此之外,各次谐波还会出现200Hz或者300Hz等的脉冲干扰。而正是由于这些固定存在的干扰,系统在交流状态下必须选在在电压过零点时进行电力载波通信,即此时各次谐波在过零点时电压也为0,从而避免固定脉冲的干扰,保证数据传输的准确性[4]。 如下图3所示,在过零模式下,由函数信号发生器产生50Hz的触发脉冲,上位机以10ms的周期发送数据0xaa时,检测信号耦合的输出端。载波信号会在每次过零时传输,当该次未能成功检测到过零点时,则等待下次重新检测到过零点时继续传输。而每次传输一个字节的数据,加上校验位和起始位,每次传输的时间约为1ms。
图3 过零模式实际测量图 3.3 采用FSK方式发送载波信号 为了能使载波信号传输过程中具有较好的抗噪声与抗衰减的性能,采用FSK(Frequency-shift keying)数字调制技术。由单片机PWM模块提供100k和120k的载波频率,可以使信号切换更加方便。 FSK调频技术,即二进制频移键控由幅度恒定不变的载波信号的频率随着输入码流的变化而切换(称为高音和低音,代表二进制的0和1)。在本系统中,采用120k的载波频率代表0,100k的载波频率代表1。为了让每一位信号切换之间减少相位的不连续,同时发送足够多的信号以便检波输入端采集,选定每一位信号的发送时间为100ms。即在120k下会发送12个方波,100k下会发送10个方波,这样1和0的切换之间就不会有多余的波形。 由于在电力线一侧有大电容的存在,在每一次进行电力线传输之前,会先发送一位0,作为起始位。否则,第一位的数据耦合时易受到电容充放电的影响,会有很大的误差存在。 3.4 采用多次比较方式采集载波信号 当单片机的定时器采集到第一次信号输入时,即产生中断,并开启100ms定时器,记录下当前中断定时器的值,继续采集信号。直到采集到七次中断后,关闭中断定时器。计算每次中断之间的时钟数,即算出该信号的频率,当其在100kHz左右时,1的标志位加1,当其在120kHz左右时,0的标志位加1,最后判断该位的数值。在100ms定时器溢出时,重新开启中断定时器,开始接受下一位数据,直到所有数据接收完成。若是中断定时器在100ms内一直未能中断,直到溢出,则清除接收到的数据,重新等待信号输入。 4 电力载波信号耦合 4.1 推挽输出电路 在下图4中,采用准互补对称电路来增强驱动能力,其中Q1和Q2复合管与NPN管等效,Q5和Q6复合管与PNP管等效,实现了互补作用。由电路分析可知,当输入信号为0V时,四个管子都无偏置而截止,故输出OUT上无电流。当输入信号为正半周期时,Q1与Q2导通,Q5与Q6截止,电流流经Q1与Q2输出,反之电流流经Q5与Q6输出,输出信号都将随输入信号而变化。四只三极管输出的半周信号合并后(互相补充),得到一个完整周期的输出信号波形。经过电容和限幅稳压管起到滤直流和稳定电压的作用,再通过变压器将信号耦合到 电力线上,从而实现数据的传输[5]。
图4 推挽输出电路 4.2 过零检测电路 在该电路中,先是由电阻R1,R2限制电流。当输入信号为正方向波形时,信号从L端进入,流经发光二极管的N级。此时光耦导通,输出微小电压,三极管导通,IO端输出0V;当输入信号为负方向波形时,信号从二极管的N端输入,流经R1,R2,此时光耦闭合,无输出电压,三极管不导通,由于外部有上拉电阻,IO端输出5V。在220V交流电输入后,在IO口得到标准的过零方波。
图5 过零检测电路 4.3 实际示波器测量 如下图6当输电线上未加220V,输出信号为0xaa时,左上和右上为推挽输出波形,左下为单片机PWM输出波形,右下为经过400m输电线后的推挽输出波形。由图中可知,当输出0,即120k时,刚好12个方波,且每一位传输的时间都为标准的100ms。当载波信号经过一定距离的输电线后,波形会发生畸变,但波形频率发生的变化不大,可以作为检测信号的依据。
图6 推挽输出电路实际测量图 5 电力载波信号采集 5.1 检波输入电路 下图7为信号的检波输入电路。当信号经过高通滤波电路,滤去低频率的干扰信号,尤其是50Hz的电力信号以及载波脉冲,当经过稳压二极管D4限伏后通入放大电路。由于输入的信号需要经过足够大的放大倍数,将其整型成可供单片机采集的信号。同时由于输入信号为交流信号,且该电路处于前置级,故选用阻容耦合的多级放大电路。由于电容C5有隔直作用,它可使前,后级的直流工作状态相互之间没有影响。同时经过两级共射放大,电压放大倍数为正数,即输入与输出信号同相[6]。
图7 检波输入电路图 5.2 阻波器设计 阻波器是电力载波通讯及高频保护不可缺少的原件,可以减少高频能量损耗。从理论上耦合电容与阻波器电感在选用频率下形成并联谐振电路,对外电路相当于短路。故在设计中选用电感作为阻波器,即低通作用使50Hz的工频信号顺利通过,同时使高频噪音信号损失[7]。
图8 阻波器电路图 5.3 实际示波器测量 如下图9上面信号为输入的高频信号(0xaa),下面信号为经过电路之后输出给单片机的信号,由图中可知,经过检波放大,可输出可供单片机采集的信号,且其跟随着输入信号变化。
图9 检波输入电路实际测量图 6 试验效果 根据以上设计,制作PCB板,并在节点A,B之间使用800m的电力线作为通信信道。在A节点端,使用上位机的串口调试助手发送数据0xaa,调节发送间隔,且接入不同负载,在B节点通过串口调试助手查看数据情况,并计算发送的准确率,由下表可知,各种负载下,电力载波的通信准确率都在96%以上,能完成设计要求。
表1 通信数据记录表 7 结 语 本文讨论了基于PWM的FSK电力线载波通讯系统设计,且只要单片机具有PWM的输出功能和定时器的信号中断功能,就能实现电力线上稳定的传输数据。同时,采用FSK的输出方式,以及采用多次比较方式采集载波信号,使信号的传递可靠性大大提高,也使电力载波在一般化的应用上有了更大的提高,相信电力载波会使我们的生活更加的舒适。 |