基于电力线传输媒介的通信终端设计

最新更新时间:2010-11-10来源: 互联网关键字:PLC  通信终端  服务器 手机看文章 扫描二维码
随时随地手机看文章

   摘要:本文开发一种基于电力线传输媒介的数据通信终端,该系统完全兼容HomePlug 标准,具有成本低、速度高、保密性好的诸多优势,能够用于构建电力线网络,实现诸如视频点播、VoIP、远程监控等数字化、智能化系统的高速信息交互。网络终端可以完成电力线数据包和以太网数据包的转换,因此便于如同开发一般以太网应用系统一样地实现电力线通信的应用系统开发。

  电力线宽带通信技术(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 QServer 活动对象状态流程图

  服务器端需要提供的具体服务包括:(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 发送开启或者关闭空调的命令。并根据服务器端的执行结果修改空调开关状态栏显示。

  五、结论

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

关键字:PLC  通信终端  服务器 编辑:金海 引用地址:基于电力线传输媒介的通信终端设计

上一篇:Maxim推出多通道电源管理器
下一篇:Microsemi推出60W多端口以太网供电中跨设备

推荐阅读最新更新时间:2023-10-18 15:02

联想集团仍有意收购IBM低端服务器业务
      1月21日凌晨消息,对于IBM(190.09, 1.33, 0.70%)可能出售的低端服务器业务,全球最大的PC厂商联想集团仍然很有兴趣展开收购。   华尔街日报昨天报道,IBM计划出售低端服务器业务,而戴尔(13.86, 0.00, 0.00%)已经表达出对该业务的收购兴趣。华尔街日报认为,并购有望给戴尔带来更大的规模经济。   按照服务器营收计算,惠普(29.8, 0.24, 0.81%)、IBM、戴尔是全球前三大服务器厂商。低端服务器主要是指X86架构服务器,这类服务器通常使用与PC一样的CPU。   对于IBM的低端服务器业务,除了传闻中的戴尔之外,联想集团实际上也一直保持着很大的兴趣。该公司的一位高管昨天向新浪
[手机便携]
利用NI机器视觉方案改进您的PLC系统
  引言   凭借着可靠的、分立逻辑和简单的模拟I/O,可编程逻辑控制器(PLC)几十年来在生产和自动化行业占据着主导地位。尽管PLC的这些性能可以很好地满足大部分工业应用的要求,但是不断发展的工业机器仍然在持续推动着传统PLC性能向更广方向延伸。   针对一些传统测量传感器无法检测出的产品缺陷,在过去的几年中,机器视觉已经逐渐成为识别这类产品缺陷的重要工具。添加机器视觉到现有的工业控制和自动化系统中可以帮助您监控工业设备中的各种安全隐患以及必要的维修包养,实时跟踪产品开发过程,帮助产品的质量控制以减少废品并确保顾客满意度。   集成机器视觉到现有的系统   NI视觉产品可以轻松地集成到可编程逻辑控制器(PLC)、可编程自动化控制器
[嵌入式]
思科生产服务器传言引发产业猜想
  思科CEO钱伯斯曾表示不会进入无法成为排名第一或第二的市场。   不久的将来,市场上真会出现“思科牌”服务器吗?从网络市场进入并不熟悉的临近市场,思科将面临利润和昔日伙伴竞争的双重考验。    思科真的要进军服务器市场了吗?   2009年1月19日,《纽约时报》刊登了一篇题为《思科大举进军服务器市场》的文章,文中披露,全球最大的互联网设备制造商思科公司计划推出一款恐怕会震惊科技界的产品,并会与其传统的合作伙伴惠普和IBM产生利益冲突。作者还透露:“这是一款安装了精密虚拟软件的服务器。”   然而,人们依稀记得,思科首席执行官钱伯斯曾经信誓旦旦:“我可以利用网络服务来赚钱,但不会进入无法成为排名第一或第二的市场
[嵌入式]
基于LINUX 的嵌入式WEB 服务器的设计
  1 引 言   PC 机时代的到来引发了信息产品的产生, 而Interne t与信息产品的结合是当今发展的一个趋势,嵌入式Internet技术的产生正好迎合了这个趋势。   由于Internet技术的渗透, 嵌入式系统正变得越来越智能化并具有越来越多的网络友好特性。本文主要对嵌入式Web 服务器技术进行了设计并测试,W eb服务器的功能是*客户端的服务请求, 并根据客户请求的类型提供相应服务。嵌入式W eb服务器是指将W eb服务器引入到现场嵌入式设备中,并驻留在有限的代码空间内。在当前的嵌入式应用领域, 多数嵌入式系统转变为嵌入式W eb Server, 基于嵌入式设备的W eb服务器可以向任何接入它所在网络的合
[单片机]
基于LINUX 的嵌入式WEB <font color='red'>服务器</font>的设计
AMD:ARM服务器2019年可望拿下20%到25%的服务器市场
AMD全球副总裁暨伺服器事业群总经理Suresh Gopalakrishnan表示,ARM架构将改变目前x86主导伺服器市场的现况,2019年可望抢下20%到25%市场。 AMD今年初发表Opteron A1100,期望以 这款ARM架构处理器开拓新的伺服器市场。看好ARM伺服器发展,AMD预估2019年将取得20%到25%市场。 Opteron A1100采用ARM 64位元的Cortex-A57处理器,内建4或8个核心4MB的 L2快取记忆体与8MB的L3,除了支援DDR3外,还首度支援DDR4记忆体,系统记忆体最大支援到128GB。其效能为x86架构低功耗Opteron X处理器的2到4倍。 AMD全球副总裁暨伺服器事
[手机便携]
基于ADSP-BF537嵌入式FTP服务器的设计与实现
0 引言 随着嵌入式设备的不断发展,其对通信也提出了越来越高的要求。FTP(File Transfer Protocol)作为internet上最早提供的服务之一,至今仍然被人们广泛使用,FTP是实现文件传输服务的最主要的规范。当需要考虑到文件传输安全、传输质量、访问控制等诸多因素时,FTP服务器就成了解决文件传输问题的关键所在。 然而,有时嵌入式系统的开发环境并不支持FTP协议(如ADSP的集成开发环境Visual DSP++),在这种情况下,利用已有的LWIP堆栈中的一些基础函数来构建一个FTP服务器,正是本文要详细探讨的话题。 1 文件传输过程 FTP协议与一般的Intemet协议不同。Intemet协议通
[嵌入式]
基于PLC的一氧化碳焚烧炉控制系统的设计
   0 引言   催化裂化再生工艺有完全再生和不完全再生两种形式。对于不完全再生工艺,烟气中含有3%~10%的一氧化碳,其回收利用是节约能源保护环境的一项重要课题。对于完全再生工艺,由于热平衡及再生设备的限制,往往需要改造再生设施,设备投入比较大。此外,重油催化裂化进料中含有较高的贵重金属(如,铂、铑等),生产运行中引起催化剂失效,助燃剂损失也较大。因此.催化裂化再生工艺常采用不完全再生工艺,配以后续装置清除一氧化碳气体。许多炼油厂设置一氧化碳余热锅炉,辅以瓦斯气助燃,回收C0高温再生烟气的物理显热和化学能,同时消除再生烟气中CO及其他有害气体对大气的污染。   目前,CO焚烧炉和余热锅炉控制系统采用国外进口模块化的
[嵌入式]
基于<font color='red'>PLC</font>的一氧化碳焚烧炉控制系统的设计
小广播
最新电源管理文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved