含有中继通信的KQ-130F电力载波通信实验系统
2021-01-22曹德安宋相慧
曹德安 宋相慧
(广东开放大学(广东理工职业学院),广东广州 510091)
0 引言
为便于物联网专业进行电力载波通信技术相关内容的实践教学,文献[1]中设计并实现了一个基于四川科强电子KQ-130F电力载波模块、清翔电子QX-mini51单片机最小系统板的电力载波的通信实验系统,并验证了主机与多从机的直接双向通信,但没有考虑中继通信的情况。实际上,电力载波通信与其他有线通信方式相比,虽然不需要进行专门的布线,但是噪声干扰强、信号衰减大,这些特性缩短了载波信号的可靠传输距离。为了扩大电力载波信号的可靠传输距离,常常采用在主机与较远从机之间增加中继器的方法,利用中继器进行主机控制信号与从机状态信号的再生与放大。例如,KQ-130F电力载波模块在专线的情况下,最远传输距离是2km,而城市路灯系统一般都会超过这个距离,这种情况下如果想用KQ-130F电力载波模块进行通信,就需要考虑利用中继器,而且是通过编程实现中继功能。所以,对于物联网专业的学生来说了解电力载波通信中的中继通信是很有必要的。文献[2-3]虽然介绍了中继通信,但相对于高职物联网专业的学生来说,过于专业和理论化。本文将在文献[1]的基础上,增加一个由KQ-130F电力载波模块和清翔电子QX-mini51单片机最小系板构成的中继器,通过编程实现主机直接与从机、主机通过中继器与从机的双向通信。
图1 系统的简化电路原理图
1 系统介绍
与文献[1]的硬件系统相比,这里主要增加了电力载波模块和单片机最小系统板组成的中继器单元。图1为系统的简化电路原理图,其中的主机、从机和中继器模块均为QX-mini51单片机最小系统板。系统采用主从通信方式,主机的P1口,从机P1口的低四位都接了发光二极管,主机与从机P3.2至P3.5都接了开关。中继器模块单片机硬件路虽然也连接了开关和发光二极管,但为简单起见,编程时可以不考虑。主机与从机1是经过串口、电力载波模块、220V电力线而实现物理连接的。主机和从机2之间的通信,还需要通过中继器,也就是主机发给从机2的命令或者从机2返回的状态信息都需要通过中继器的转发。通过编程实现主机对从机LED灯的远程监控,即主机上的开关可以控制从机灯的亮与灭,也能让从机返回各自灯的状态,并在主机对应LED灯上显示。主机与从机各开关具体功能与文献[1]中相同,如表1所示。
表1 主机与从机各开关功能
表2 数据帧格式-不含中继器
表3 数据帧格式-含中继器
2 软件设计
2.1 自定义数据帧
如文献[1]所述,KQ-130F的串行通信方式唯一,其接口波特率9600bps,数据格式为1个起始位,8个数据位1个停止位格式,该数据格式对应单片机的串行方式1。因此,对于包含KQ-130F载波通信模块,通信方式唯一,该方式也就是51单片机在串行方式1,如果要实现多机通信,我们只能采用自定义数据帧的方法。
文献[1]中,由于没有考虑中继通信问题,数据流类型比较简单,只有主机发给从机和从机返回给主机2种类型数据流,数据帧也只有4部分,占4个字节即可,分别是:帧长度、目标机地址、控制命令/状态数据、结束标志,如表格2表示。当考虑中继器时,数据流类型就增加到6种类型,而且数据帧所包含信息也必须增加,才能让收到该数据帧的单片机明确这些数据的含义,数据帧格式如表3所示。可以看出,与表2相比,数据帧格式中多了“附属地址”“数据帧类型编码”2项,这2项能够反映出接收机收到数据来自哪里或者将要发送到哪里。其中的命令码,可以定义为如表4所示内容。状态码即为从机P1口的值。
表4 命令码
图2 中继器主程序流程图
2.2 程序设计
为简单起见,中继器模块单元的作用仅仅是在主机与指定从机之间进行命令与状态数据的转发,不作一般的从机使用。中继器主程序框架如图2所示,在初始化程序中进行中断及串口通信等设置,然后进入空循环等待串口接收数据引起的中断,其中断响应程序结构与文献[1]中的图4基本相同,不同之处在于读串口次数由4次修改为6次,这是由于含中继器的情况下,数据帧定义为了6个字节长度。主机和从机的主程序框架、中断响应框架也与文献[1]中基本相同,不同之处同样是由于数据帧内容及长度变化了。另外,主机、从机和中继器,对于串口发送和接收数据的处理方式都相同:即判断串口是否发送完一个字符帧的数据采用查询标志位的方法,而是否接收完一个字符帧的数据采用中断方式。
图3 包含中继模块的电力载波通信实验系统实物图
3 实验结果
图3为包含中继器模块的电力载波通信实验系统实物图,从左至右,各个模块与图1相对应。实验系统中主机与最右边从机距离其实非常近,可以直接通信,在其中加入中继器模块是为了演示包含中继器模块下的电力载波通信。实验测试效果与表1完全相同,验证了包含中继器情况下电力载波通信程序的正确性。
4 结语
本文在文献[1]提出的硬件设备基础上,增加一个KQ-130F电力载波模块和QX-mini51单片机最小系统板组成的单元,通过编程,使其具有中继器的功能,实现了包含中继模块下的电力载波通信实验,使得该实践教学平台内容更丰富。该功能的增加,既能进一步锻炼学生的单片机编程能力,又能加深对电力载波通信知识的了解,提升了该实践教学平台的实用性能。