基于PWM的FSK电力线载波通讯系统设计

基于PWM的FSK电力线载波通讯系统设计,第1张

  1 引言

  电力载波通信是电力系统特有的、基本的通信方式,是指利用现有电力线,通过载波方式将模拟或数字信号进行高速传输的技术。由于使用已广泛存在的电力线作为通信信道,无需特殊维护信道,使得工程造价大幅度下降。该技术大量运用在路灯控制,电力线防盗,恶劣环境通信等需要长距离,多节点的情况。但由于国内电网的复杂性与多样性,比如当居民用电高峰时,大量负载不断的接入与断开,都会对载波信号产生不同程度的衰减与干扰作用;当载波信号调制在电力线上时,在每个交流周期的峰值点,产生的固定脉冲,极易使信号丢失;而且现有的电力载波模块售价较高,需要高性能的单片机支持。因此电力载波还需要大量的研究,才能实现更广阔的应用[1~2]。

  本文研究目的是在使用一般的单片机下,采用FSK的调制技术实现电力载波通信,并优化算法,提供函数接口,使电力载波通信更易使用,并能保证通信数据传输的准确性在96%以上。

  2 系统整体设计结构

  该系统主要完成的功能是实现上位机通过串口将数据发送给单片机,由单片机以FSK调频方式调制信号,通过推挽输出电路将载波信号耦合在电力线上进行信号传输。而处于电力线另一处节点,则通过检波输入电路,功率放大电路以及软件的算法处理,将载波信号还原成原信号,校验后,通过串口发送给另一台上位机。信号输出和输入皆提供函数接口,用于用户工程的后续开发[3]。

  基于PWM的FSK电力线载波通讯系统设计,图1 系统整体设计结构图,第2张

  图1 系统整体设计结构图

  3 系统整体软件设计

  3.1 系统整体软件流程图

  在单片机开始运行时,对各个定时器,IO口以及系统时钟完成初始化之后,会等待5s,然后检测对应的波特率选择IO口以及电力载波模式选择IO口,完成所有的初始化。当程序开始正常运行后,单片机会不断接收串口信号和电力载波信号,并将接收到信号校验后转发出去。

  基于PWM的FSK电力线载波通讯系统设计,图2 系统整体软件流程图,第3张

  图2 系统整体软件流程图

  3.2 电力载波模式的选择

  不过零模式主要运用在直流或无压状态下,而过零模式主要运用在交流状态下。由于居民使用的交流电都为50Hz频率,即在每一个周期内,都会出现一次峰峰值与峰谷值,而这两次峰值对载波通信传输来说会有两次较大的脉冲干扰,即电力线上存在着固定的100Hz的脉冲干扰。除此之外,各次谐波还会出现200Hz或者300Hz等的脉冲干扰。而正是由于这些固定存在的干扰,系统在交流状态下必须选在在电压过零点时进行电力载波通信,即此时各次谐波在过零点时电压也为 0,从而避免固定脉冲的干扰,保证数据传输的准确性[4]。

  如下图3所示,在过零模式下,由函数信号发生器产生50Hz的触发脉冲,上位机以10ms的周期发送数据0xaa时,检测信号耦合的输出端。载波信号会在每次过零时传输,当该次未能成功检测到过零点时,则等待下次重新检测到过零点时继续传输。而每次传输一个字节的数据,加上校验位和起始位,每次传输的时间约为1ms。

  基于PWM的FSK电力线载波通讯系统设计,图3 过零模式实际测量图,第4张

  图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内一直未能中断,直到溢出,则清除接收到的数据,重新等待信号输入。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2684909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-15
下一篇 2022-08-15

发表评论

登录后才能评论

评论列表(0条)

保存