0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用电力线宽带通信技术平台构建电力线家庭内部网络系统

电子设计 来源:网络整理 作者:佚名 2020-01-07 08:05 次阅读

电力线宽带通信技术(PowerLine Communication 简称PLC)是近几年来迅速发展起来的一种新兴的利用电力线网络作为载体的通信技术。运用嵌入式系统和电力线调制解调技术所构建的电力线网络通讯终端,人们可以很方便地在办公室、家庭内部、工业现场轻松地组建起局域网络,成为智能家庭、分布式工业过程控制的一种很好的系统构造方式,具有广阔的应用前景和市场。本应用系统利用电力线终端平台和路由器构建电力线家庭内部网络,实现家电、安全防范及三表的集中管理;对外通过宽带连接Internet,远程终端通过软件就可以对家用电器进行状态查询和控制。具体的构建方式,在每个房间和客厅、厨房中安放一个电力线通讯终端平台,挂载在电力线上形成家庭内部网络,集中管理所有的电器,同时利用电力线调制解调模块连接路由器,通过ADSL 上网的方式,把整个家庭内部网络与Internet 交互,使得远程终端可以通过Internet 网络访问家庭内部局域网。

一、系统的功能与设计

本应用系统实现的主要功能如下:

1) 实时监控客厅中的温度,比如:在夏天如果超过33 度,系统会主动控制制冷空调打开;在冬天低于10 度则会打开制热空调。

2) 住宅安防系统能够通过连接电力线通讯终端平台和与之互连的GPRS 上传安保信息,比如:当发生有人非法进入住宅,系统会实时通过Internet 网络向事先设置的报警接收终端,如110 报警台、物业服务公司监控室、业主办公室电话或业主手机等,发送预警信息。

3) 主人可以通过远程终端访问家用电器,并且实行远程控制,比如开关日光灯、打开电饭煲,这样下班回家后就可以吃到香喷喷的米饭。

为了实现上述功能,利用CPU 模块上LPC2210 的GPIO(通用I/O)口连接继电器控制家用电器的开关,比如:电饭煲、空调和日光灯等;利用芯片外部中断连接安防系统,当系统报警时触发外部中断通知ARM CPU 使用GPRS 发送报警信息;同时,在硬件电路上安装有LED 灯、A/D 转换电路用以实时测试、显示当前各种家用电器的运行状态。该应用系统涉及到电力线通讯平台的编程和PC 的编程两方面。其中CPU 模块(下位机)作为服务器端,使用TCP 作为通讯协议,提供服务。在服务器端收到服务请求后,解析请求,根据不同的请求做出相应的服务。而PC 作为客户端发出服务请求,并且在收到服务器的响应后把具体内容在屏幕上显示出来。在本例中,客户端采用Qt 可视化编程环境。以下,首先介绍Qt 的相关知识,然后再具体分为服务器和客户端具体的对该应用设计进行分析。

二、Qt 介绍

Qt 是一个全面的C++应用程序开发框架。它包含一个类库和用于跨平台及国际化开发的工具。Qt 是一个全面的开发框架,它包括广泛的特征,性能与工具,可以开发高性能,跨平台的客户端,以及服务器端的应用程序。

同时Qt 对不同平台(Unix, Windows, and Mac)的专门API 进行了封装,如文件处理、网络(操作,协议),进程处理、线程、数据库访问等。统一的跨平台API 让程序员们集中精力致力于可增值的技术革新,而无须担心维护和管理现有应用程序多版本的基础结构与界面。Qt 已由成千上成商业与开放源应用程序开发员,在多个操作系统与编译器上进行了测试,奠定了高性能与资源性应用程序的基础。Qt 无须“虚拟器”,模拟层或大容量的运行时间环境。它如本地化的应用程序一样,直接写入低级的图形函数,因而Qt 程序能以源代码速度执行。通过使用 Trolltech 的双重授权模式,Qt 在商业支持并行之有效的框架下,呈现出开放源的所有优势:开放源优势包括一个活动的开放源开发员社团。由于Qt的不间断开发,以及完整的代码透明性,允许Qt 开发员进行“彻底深入地查看” ,进行自定义并扩展Qt 来满足其独特的需求。 商业产品的担保包括客户认可的产品支持,专门的Qt 开发小组,以及一个第三方工具、组件与服务的成长生态体系。

(1)信号

当某个信号其客户或所有者发生内部状态改变时,信号被一个对象发射。只有定义过这个信号的类及其派生类能够发射这个信号。当一个信号被发射时,与其相关联的槽将被立刻执行,就象一个正常的函数调用一样。信号-槽机制完全独立于 任何GUI 事件循环。只有当所有的槽返回以后发射函数(emit)才返回。 如果存在多个槽与某个信号相关联,那么,当这个信号被发射时,这些槽将会一个接一个地 执行,但是它们执行的顺序将会是随机的、不确定的,我们不能人为地指定哪个先执行、哪个后执行。信号的声明是在头文件中进行的,Qt 的signals 关键字指出进入了信号声明区,随后即可 声明自己的信号。

(2)槽

槽是普通的C++成员函数,可以被正常调用,它们唯一的特殊性就是很多信号可以与其相关联。当与其关联的信号被发射时,这个槽就会被调用。槽可以有参数,但槽的参数不能有缺省值。既然槽是普通的成员函数,因此与其它的函数一样,它们也有存取权限。槽的存取权限决定了谁能够与其相关联。同普通的C++成员函数一样,槽函数也分为三种类型,即public slots、private slots 和protected slots。

三、服务器端

在本应用中,电力线通讯终端平台连接家用电器作为服务器端,在实时显示用电器状态的同时,需要构建一个TCP 服务器来为远程终端提供服务,实现远程控制和报警的功能。在基于QF 操作系统的网络协议栈中,由QL4 接口类来实现对L4 协议(传输层)的解析和处理抽象。本应用中需要派生一个QTcp 类,实现传输层的TCP 协议。

处理抽象。本应用中需要派生一个QTcp 类,实现传输层的TCP 协议。一般基于 TCP 的网络应用程序都要继承QTcp 类,然后在ESTABLISHED 状态中添加子状态完成特定的功能。在服务器端,利用量子框架实现一个QServer 类,是一个活动对象,继承自QTcp 类。QServer 活动对象同客户端TCP Socket 连接后,进入ESTABLISHED状态中,通过调用Recvfrom 函数接收客户端的请求,然后解析请求的服务类型,根据不同请求做出不同的服务。其软件流程图如图1 所示:

采用电力线宽带通信技术平台构建电力线家庭内部网络系统

服务器端需要提供的具体服务包括:(1)当接收到客户端打开家用电器的请求是,使用GPIO口发出电平信号,通过继电器打开相关的电器。(2)监控客厅中的温度,在夏天如果超过33 度,则会主动控制制冷空调打开。在冬天低于10度就会打开制热空调。并及时地把空调开关的信息通过TCP 协议传送给远程的终端。(3)当有人触发了安防系统,发生外部中断时,使用服务器向客户端发送报警信号。并通过GPRS给110 报警台、物业服务公司监控室、业主办公室电话或业主手机等,发送预警信息。

四、 PC 客户端

PC 机作为远程客户端,主要的工作是向服务器发出服务请求,并且在收到服务器的响应或者报警信号后把收到的具体内容在屏幕上显示以达到远程控制和报警的功能。在本例中,我采用的是Qt 的可视化编程环境。以下介绍客户端的具体功能以及实现:在客户端可视化界面上按下日光灯或者电饭煲按钮,就可以向服务器端发送一个开关家用电器的请求,在服务器端收到请求后就会去执行;同理,按下A/D 按钮,就可以发送一个读取A/D 的请求,在收到服务器端采集的A/D 数值后,客户端就会在屏幕上显示;温度的测量则是每隔两秒就会发送一个请求,读取当前的温度,显示在屏幕上,并且判断是否要打开空调,并从服务器端读取其状态信息,更新空调的开关状态栏,显示在文本框中;当服务器端安防系统检测到有人入侵时,就会向客户端发送报警信号,客户端需要相应修改当前的安防系统状态为报警。

首先使用Qt 的工具Qt Designer 设计界面。然后进入具体的客户端编程阶段,构造一个窗体类为TcpClient 类,具体的软件编写如下:

TcpClient::TcpClient(QWidget *parent)

: QWidget(parent)

{

ui.setupUi(this);

adsocket= new QTcpSocket(this); //用以传输A/D数据的TCP通道

tempsocket= new QTcpSocket(this); //用以传输温度数据的TCP通道

applincesocket= new QTcpSocket(this); //用以控制家用电器的TCP通道

securitysocket = new QTcpSocket(this); //用以安防系统报警的TCP通道

QTimer *temptimer = new QTimer(this); //2S的定时器

connect(temptimer,SIGNAL(timeout()),this,SLOT(temp_update()));

temptimer-》start(2000);

connect( adsocket,SIGNAL( connected() ),this, SLOT( ad_request() ) );

connect( adsocket,SIGNAL( readyRead() ), this, SLOT( ad_readresult() ) );

connect( tempsocket,SIGNAL( connected() ),this,SLOT( lm_request() ) );

connect( tempsocket,SIGNAL( readyRead() ),this,SLOT( lm_readresult() ) );

connect(appliancesocket,SIGNAL( connected() ), this,SLOT( appliance_request() ) );

connect(securitysocket,SIGNAL( readyRead() ),this,SLOT( security_readresult() ) );

}

动态分配四个QTcpSocket(Qt 内部对于TCP 协议的封装类)对象,分别用该类的对象指针adsocket、tempsocket、appliancesocket、securitysocket 来指向这四个对象。然后定义一个QTimer对象,用来实现2 秒的定时。接着对一些信号和槽进行连接,从而完成各个组件之间的通讯,其中: QTimer 对象的timeout 信号和temp_update()槽连接、adsocket 对象的connected 信号和ad_request()连接,adsocket 对象的readyRead 信号和ad_readresult()槽。同理连接其他的几个QTckSocket 对象的信号和槽。

以下,具体描述如何实现温度检测和空调自动控制的功能(其他功能的实现类似,就不赘述):

(1)定时器每隔2S 触发一次,客户端使用tempsocket 连接服务器端后发送测温请求。

(2)接收到服务器的温度数据后在界面上显示,并且根据要求决定是否需要启动空调。

(3)利用appliancesocket 发送开启或者关闭空调的命令。并根据服务器端的执行结果修改空调开关状态栏显示。

五、结论

在实际的测试中,服务器端运行在实验室,连接有日光灯、电饭煲和空调。客户端运行在寝室中。本应用在实现所有功能的基础上,电力线终端作为服务器连续开机一周,并进行高流量的负荷测试,能够稳定运行,所有功能均表现正常,没有发生故障。从而验证了本终端的稳定性和该智能家居应用的可行性。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18274

    浏览量

    288360
  • 路由器
    +关注

    关注

    22

    文章

    3495

    浏览量

    111331
  • 电力线
    +关注

    关注

    1

    文章

    86

    浏览量

    23326
收藏 人收藏

    评论

    相关推荐

    电力线载波通讯芯片PLT050运用于家庭联网

    ;nbsp;    POEM-TECH的电力线载波通讯芯片PLT050是电力系统特有的、基本的通信方式,由于使用电力线作为载波信号的传输媒介,因此具有
    发表于 11-29 15:33

    电力线载波通讯芯片PLT050运用于家庭联网

         POEM-TECH的电力线载波通讯芯片PLT050是电力系统特有的、基本的通信方式,由于使用电力线作为载波信号的传输媒介,因此具有信息
    发表于 12-30 17:08

    DS2Aitana++电力线载波通讯芯片运用于家庭联网

    DS2Aitana++电力线载波通讯芯片运用于家庭联网DS2Aitana++的电力线载波通讯芯片DSS9501是电力系统特有的、基本的通信
    发表于 09-22 17:12

    FSK电力线载波通信实验

    应用上具有潜在的价值,如在家庭自动化系统、远程抄表系统等应用场合。由于电力线上的干扰及噪声相当大,线路阻抗很不稳定,信号传输损耗大,要利用电力线
    发表于 10-11 09:01

    DS2Aitana++电力线载波通讯芯片运用于家庭联网

    DS2Aitana++电力线载波通讯芯片运用于家庭联网DS2Aitana++的电力线载波通讯芯片DSS9501是电力系统特有的、基本的通信
    发表于 04-02 11:19

    基于电力线载波的注水测调通信系统的研究

    】:针对油田注水井测试调节系统中存在的问题,提出并设计了基于电力线载波(PLC)的远程测调技术方案。利用LonWorks现场总线处理通信任务的优势,以
    发表于 05-06 09:06

    电力线载波通信芯片LMl894M

    。典型应用电路如图2所示。外接控制单元控制系统进行半双工通信及负责数据的发送和接收。多端通信采用编码形式完成,从而可借助于
    发表于 07-26 09:31

    电力线上网

    电力线上网(Power Line Communication)即利用电力线来进行网络数据的传输,只需借助电力猫就可以实现网络数据传输。
    发表于 10-26 10:24

    电力线通信

    我有一个关于电力线通信问题。我意识到这不是电源管理,但没有更好的选择的主题和找不到一般。柏树的客户支持是无益的。我回到了一个低速电力线通信采用
    发表于 08-29 16:18

    DC应用的电力线通信实施

      引言  电力线通信 (PLC) 是一种通过现有电力线缆发送数据的通信技术。该技术
    发表于 09-30 16:14

    基于嵌入式/PL2000A的电力线载波通信接口设计

    1 概述 作为世界上最大的网络电力线网络的主要功能是输送电能,但是,随着信息技术的发展,基于电力线路的通信成为今年的热门话题,利
    发表于 12-04 10:44

    实现电力线通信的关键技术是什么

      1前言  近年来,电力线通信技术发展非常迅速,现在已经进入初步应用阶段。PLC系统充分利用电力系统的广泛线路资源,通过OFDM等
    发表于 05-30 06:26

    如何寻找基于OFDM技术采用小波原理的电力线载波芯片

    寻找基于OFDM技术采用小波原理的电力线载波芯片。目前大部分芯片都适用于傅立叶变换,我需要找一种适用于小波变换的电力线载波芯片。
    发表于 06-17 15:53

    电力线通信模拟前端AFE031的应用及设计介绍

    应用背景、基本框架及系统设计三个方面进行介绍。一. 应用背景电力线通信(Power Line Communication, PLC)是一种利用电力线进行数据信息传输的
    发表于 11-07 07:18

    电力线宽带通信技术在智能电网用电信息采集系统中的应用探讨

    电力线宽带通信技术在智能电网用电信息采集系统中的应用探讨
    发表于 01-17 19:43 10次下载