摘要:由传统的高压电力线通信技术发展而来的低压电力线载波通信(PLC,low-voltage power line carrie-current communication)技术已经越来越受到关注,且被视为解决因特网接入“最后一公里”问题的有效手段。文章通过软硬件结合的方式,自主搭建了一个低压电力线载波通信系统,从而实现了利用低压电力线进行数据传输的目的。
关键词:低压电力线;MSCOMM控件;载波通信;接口转换
0 引言
现代社会的发展,人们对生产和生活有了更多、更高的要求,例如要求更节能环保、更舒适便捷,这些要求的实现都需要大量信息的获取、传输和处理,需要把与生产生活相关的大量设备和对象连接起来,构成网络,以实现对它们的监测控制与管理,从而形成物联网、家域网(HAN)等。在这些网络中,需要连接的对象数量众多,位置可能变动,给网络的构成带来一定的困难。由于这些对象的工作大都离不开电力,所以,用低压电力线组成网络进行通信,是一种很需要重新布线,覆盖范围广,维护少,节约资源。为此,本文结合国内外研究动态,对低压电力线载波通信技术进行了研究,并采用相关功能模块,编写了相关控制软件,实现了两点之间通过低压电力线载波通信来进行数据传输,并通过上位机进行监控的目的。
1 系统总体结构
本设计主要包括载波通信模块、上位机监控界面及转换接口电路等几个部分。其中,转换接口电路主要负责PLC模块的TTL电平接口与上位机的串口之间的接口通信。其系统框图如图1所示。
在数据信号发送端,上位机发出数据信号给COM口,通过接口转换电路把上位机发出的数据信号转换为PLC模块能够接收并处理的TTL电平信号。然后经过PLC模块将信号调制成特殊的电力信号,再通过电力线进行传输。
在数据信号接收端,PLC模块将电力线上的信号耦合下来,并通过滤波、解调转换为原来的TTL电平信号,再经接口转换电路把信号发送到上位机进行显示。
该系统信息是双向传输的,即PLC模块与转换接口电路均可以实现双向通信。
2 系统硬件选择与设计
2.1 低压电力线载波模块
本文选用杭州新实科技有限公司的SENS-01嵌入式电力线载波通信模块,该模块可提供半双工通信功能,可以在220 V/110 V、50Hz/60 Hz电力线上实现局域通信;通信速率有600 b/s、1 200 b/s、2 400 b/s、4 800 b/s、9 600 b/s、19 200 b/s等多种速率;每帧长度小于或等于20 B;具有TTL电平接口,可为用户提供透明的数据通道,而且数据传输与用户协议无关。
2.2 接口转换电路选择与设计
本设计选用的是USB接口作为上位机与PLC模块的通信接口,因为现在的笔记本大多没有RS232接口,而且现在许多工业现场也采用USB接口作为串口通信,十分灵活便捷。因此,本文选用FTDI公司生产的FT232RL芯片作为USB与TTL电平接口的转换芯片,该芯片具有全握手协议及MODEM接口(CTS、RTS、DTR、DCD、RI),并具有硬件及Xon/Xoff流量控制。芯片内置晶振,外围电路简单,驱动能力强。其接口转换电路如图2所示。
3 系统软件设计
本文采用MSCOMM控件(即Microsoft Communication Control)进行串口编程,该控件是Microsoft公司为简化Windows下串行通信编程而提供的ActiveX控件。它提供了一系列标准通信命令的使用接口,因此,利用它能够建立和串口的连接,并能够通过串口连接到其他通信设备(如调制解调器)发出命令、交换数据以及监控和响应串行连接中发生的事件和错误。使用MSCOMM控件编写串口程序时,不需要花费时间了解复杂的API函数,但它在执行的时候需要调用API函数。
MSCOMM控件串行通信处理方式采用事件驱动方式,许多情况下,在事件发生时需要得到通知,这时,就可以利用MSCOMM控件的OnComm事件捕捉并处理这些通信事件。这种方法的优点是程序响应及时,可靠性高。
3.1 系统通信程序设计
本系统数据的发送与接收显示都是通过对上位机编写软件来实现的。其流程大致为:关闭串口,对串口的波特率进行选择,然后设置通信参数;打开串口之后,可以选择发送方式为手动或自动(自动发送周期根据模块的处理速度固定为2 s),也可以选择是否为十六进制发送(对应的接收端应选择十六进制显示)。
在监控显示部分,当接收缓冲区有数据时,系统就会触发OnComm事件,对数据进行读取并在编辑框中显示。修改波特率时,一般需要关闭串口然后才能调试。其系统程序流程图如图3所示。
3.2 数据发送部分算法
由于在数据发送时,模块每次只能接收20 b以内的数据,因此,为了使模块能够发送或接收更多的数据,本文采用指针指向的方法,分段取出所要发送的数据,每段20 b。
数据发送首先要获取编辑框内所要发送的数据,然后计算其长度,再判断与20的关系。如果整除得b的话,就直接发送b次,每次分段读取,且必须在两次发送之间添加延时程序,否则,这样处理就没有意义,因为模块的处理速度慢于发送的速度会造成数据丢失。当不能整除且得到的余数为a时,要先发送b次,读取完bX20个字符后,再发送剩余的a个字符。图4所示是其数据发送程序流程图。
3.3 通信与监视界面
图5所示是本系统中上位机的通信与监控界面图。从图中可以看出,在通信界面设置好波特率,然后打开串口,在COM6发送窗口输入字符串,然后点击发送(或自动发送),COM5接收显示窗口就会显示COM6所发送的信息。由图5可知,数据信息的传输量已经突破了模块自定义的20 B,即能够实现较多信息量的发送与接收。
4 结语
电力网络是目前覆盖范围最广的网络,有着巨大的潜在利用价值。在家居自动化、家用电器控制等方面,PLC技术有着得天独厚的优势。本文利用低压电力线载波方式实现了数据在低压电力线上的传输,并能通过上位机实时显示数据。但是,目前PLC技术仍然存在很多不足,在电力线上干扰严重时,通信成功率可能还无法保证,通信速率也比较低,因此还需要更深入的研究。
作者:曾 萍 黄梓瑜 李仕彦 高文刚 叶 程 来源:电子科技