历史上的今天
返回首页

历史上的今天

今天是:2025年02月04日(星期二)

2018年02月04日 | 嵌入式LonWorks网络智能网关设计解析

2018-02-04 来源:eefocus

内容摘要:为了解决LonWorks设备现场智能控制及远程监控的需要,提出了通过嵌入式网关实现LON网和以太网协议的转换方案。本网关采用电力线收发器PL3150和带有以太网控制器的微处理器LPC1778分别实现LonWorks网络和以太网的接口功能。同时还利用LPC1778內置以太网控制器搭建Web服务器,实现了一个远程监控平台,达到了远程智能交互与监控的目的。本文给出了该智能网关硬件平台和软件平台的方案和实现方法。


    LonWorks技术是美国Echelon公司于90年代初推出的一种现代总线技术,它具有开放性、高速性和互操作性而已被各行业广泛使用。而LonWorks设备往往工作环境恶劣,其自身各部分与周围其他电子设备之间不可避免存在各种形式的电磁干扰和静电放电,保证LonWorks设备的安全稳定运行有着重大的意义。

    LonWorks设备运行过程中涉及的参数众多,控制策略复杂,为了解决其现场远程监控的需要,有必要开发出一款自动化程度高的智能网关,实现LonWorks协议和TC/IP协议的转换,将Lon网和以太网互连,从而达到对远方的LonWorks设备运行集中的、远程的监控的目的。

    而传统的网关基本采用16位单片机来实现,受限于其运算能力低、存储空间小的特点,而不能够适用于多任务、实时性高的应用环境。本文设计的设计的一款嵌入式LonWorks网络智能网关,采用32位的ARM为主控芯片并嵌入μC/OS—II操作系统,具有能够满足多任务、实时性、快速性高等复杂监控环境的功能。

    1 系统总体结构

    图1给出了系统结构示意图,下位机设备将收集到的监控参数通过电力线上传至智能网关,LonWorks网关根据电力通讯协议将已将收集到的数据通过协议转换将Lon网协议的数据包转换成TCP协议数据包上传到ARM内置服务器;远端的监视器作为嵌入式智能网关的人机界面互动平台将远程指令发送到智能网关,智能网关通过电力线下传至下位机设备,下位机设备根据电力线通讯协议接收相应的远程指令,并完成相应的远程控制。

嵌入式LonWorks网络智能网关设计

    2 硬件设计

    硬件平台由3个部分组成,包括由Lon网数据采集收发模块、Lon网协议和LwIP协议转换模块和以太网通讯模块结构框图如图2所示。

嵌入式LonWorks网络智能网关设计

    2.1 Lon网协议和LwIP协议转换模块

    该模块是整个系统的核心,其不仅包括网络协议转换功能,而且完成系统其它显示传输功能。该模块的主控芯片为NXP公司生产的LPC17 78,其片上资源包括512 Kb的FLASH存储器、高达64 Kb的SRAM,系统时钟频率可高达120 MHz,同时可内嵌操作系统。LPC1778内置外部总线控制器,通过总线方式读写双口RAM,从而完成与数据采集收发模块的高速数据交换。另外,嵌入式WEB服务器的架构需要大容量的存储器,片上资源已不能够满足现有的需要,因此外部扩展一片16 Mb的FLASH SST25VF016B。

    2.2 以太网接口模块

    以太网接口是网关与以太网通信的关键部分,本设计中选用的主控芯片LPC1778内嵌一个以太网控制器,通过扩展网卡芯片DP83848C和一个RJ45接口来实现以太网通讯接口。以太网控制器支持精简的媒体独立接口RMII,可在半双工、全双工模式下提供10M/100Mbps的以太网接入。我们采用RMII协议方式和MIIM(媒体独立接口管理)串行总线、以及MDIO(管理数据输入/输出)相结合的方式来实现与网络芯片的连接。使用RMII接口方式时需要接入一个50 MHz的外部有源晶振。

    2.3 数据采集收发模块

    该模块核心器件为电力线收发器PL3150。PL3150是Echelon公司生产的基于开放性ANSI标准的电力智能收发器,其可按LonTalk协议与LonWorks网络上的所有节点进行通信。PL3150通过地址线、数据线以及控制信号线与双口RAM连接。双口RAM我们选用IDT71321,其支持总线读写方式,有2 KB的存储容量。双口RAM作为PL3150和ARM之间数据接收和发送的缓存区。该设计方案可实现两模块之间数据的高速、稳定、低误码率的传输。

    3 网关软件设计

    3.1 网关软件结构设计

    软件结构如图3所示,包括2个主要部分:

嵌入式LonWorks网络智能网关设计

    1)ARM端软件设计。软件平台由嵌入式μC/OS—II操作系统为基础构建,并利用LwIP协议实现TCP/IP协议,上层的应用程序为WEB服务程序以及网关协议转换程序。

    2)PL3150端设备接口数据通信程序。

    3.2 网络协议转换程序

    在网关中最重要的是实现两个不同网络的协议转换。在LonWorks网络中,节点与节点进行通信时,常采用特定的网络变量的形式进行。网络变量只有数据类型相同的输入网络变量和输出网络变量才能建立连接。在本网关工作过程中,根据图2所示的结构原理,当下位机设备需要向上位机发送数据信息时,将会对自己的输出网络变量进行更新,发送到LonWorks网络上;当PL3150监测到这些网络变量时,将对与之捆绑的输入网络变量进行更新并发送到双口RAM的数据缓冲区;ARM芯片通过外部总线读取双口RAM,其内部以太网控制器依据所使用协议将数据包进行封装,发送到以太网协议的应用层。相反,当上位机想要对远端现场设备进行控制时,也要对相应的网络变量进行更改。

    在协议转换过程中,双口RAM作为一个共享存储器能够进行双边读写操作。为了避免数据信息交换时的读写冲突、产生竞争,在读写操作时要进行控制以进行同步访问。本文采用通过定时查询控制地址的值来进行同步访问操作。将2 KB的双口RAM划分为3个主要部分宋存放不同内容:存放ARM对PL3150的控制信息;存放PL3150向ARM发送的数据信息;控制同步访问信息。

    3.3 μC/OS—II操作系统移植


    操作系统的加入使得我们的内部资源能够更好的利用。μC/OS—II操作系统是一款开源的,针对嵌入式系统的实时内核操作系统,可以应用于多种类型的硬件平台。它最近发布的版本最多可管理多达256个任务。μC/OS—II具有强大的网络支持,并且支持LwIP协议,为我们的网关服务搭建了一个很好的平台。将μC/OS—II操作系统移植到ARM平台上,只需处理μC/OS—II与Cortex—M3接口部分,即OS_CPU_C.C、OS_CPU_A.S、OS_CPU.H这3个文件。

    3.4 网关通讯协议TCP/IP实现

    3.4.1 LWIP简介

    本文的TCP/IP协议选择使用LwIP协议栈来实现。LWIP是由瑞典计算机科学研究院Adam Dunkels设计的开源的嵌入式TCP/IP协议。它是轻型的TCP/IP协议栈,适用于资源紧张的嵌入式系统。LwIP既可以独立运行,也可以移植到不同的操作系统上。

    3.4.2 TCP数据处理流程

    在我们的应用中,使用LwIP的TCP协议,它属于传输层协议,虽然相比UDP协议传输速度较慢,但是它为应用层提供可靠的字节流服务TCP流程如图4所示,当下位机数据信息到达时,通过tcp_write来构造一个报文段,之后tcp_output被调用,同时与ip_route交互,填写首部中的源IP地址字段,最后通过ip_output发送给链路层,加上以太网帧头发送到以太网中。同理可以得知TCP输入流程。

嵌入式LonWorks网络智能网关设计

    3.4.3 LwIP移植

    LwIP的移植主要是为了实现操作系统模拟层,它是操作系统和协议栈的一个接口,可为进程处理同步、消息传送机制以及定时器等操作系统服务提供统一接口。

    移植需要添加以下文件,具体包括:

    1)与CPU和编泽器相关的头文件。

    2)与操作系统相关的文件。sys_arch.h的内容是与操作系统相关的结构和函数。此文件中需要实现4个函数:消息函数;数据结构及信号函数;系统超时函数;创立新线程函数。

    3)与网卡驱动相关的函数。LwIP源码提供者将ethernetif.c中的函数实现一个框架形式,用户可以根据这个框架定制网卡驱动。

    3.5 网关监控平台的实现

    嵌入式处理器LPC1778在μC/OS—II操作系统平台上,利用LwIP协议的上层协议HTTP协议搭建轻型服务器,提供人性化的操作界面,实时监控底层数据及控制输出等功能。Web服务器的结构如图3所示。当远端的浏览器发送请求时,HTTP协议处理程序会将该请求发送给Web服务器处理;而CGI(通用网关接口)程序作为处理客户端Web浏览器输入数据的接口规范,用来解释处理表单的输入信息,并在服务器产生相应的处理,完成客户机与服务器之间的交互操作功能。

    实现步骤如下:

    1)通过在μC/OS—II建立相应的任务。当任务建立起来之后,任务的调度就由μC/OS—II的任务调度器调度。μC/OS-II的任务调度是抢占式的,所以在设置任务优先级的时候要考虑任务对实时性的要求。同时注意LwIP的初始化要在μC/OS-II完全启动之后。

    2)Web服务器实现。由于本网关采用B/S通讯模式,嵌入式ARM则充当服务器,提供网页数据信息。B/S模式需要HTTP协议的支持。它是基于请求/响应模式的,并使用TCP作为传输层。当服务器运行时,始终在80服务端口监听,等待请求的出现。Web服务器的编程是基于LwIP的API函数编写的。API函数专为LwIP设计,充分利用LwIP的内部结构以实现其设计目标。

    3)HTTP处理子函数在获得请求报文之后,根据其请求报文进行相应处理。在HTTP请求报文中,第一行就是请求行,方式有GET和POST两种。由于CGI程序中具有HTML生成和FORM解析功能,CGI程序会根据请求数据中的URL信息找到相应的网页文件,并对文件中的程序代码解析并执行,然后生成HTML网页回传至浏览器。

    4 网关的功能和应用

    该监控平台每2 s就从下位机刷新一次实时监测数据,可以获得例如下位机ID号、电压、电流、功率等实时量。图5为开发完成的网关嵌入式网页服务页面,可以控制某一个下位机的开闭状态、功率因子大小,并可以定时上传数据并具有数据管理系统。服务器的系统功能结构框架如图6所示。

嵌入式LonWorks网络智能网关设计
嵌入式LonWorks网络智能网关设计

    本网关IP静态地址设为192,168.0.100并与路由器相连,通过动态域名解析与一个固定域名绑定,用户通过访问固定域名便可远程实时观测。

    5 结束语

    文中系统地论述了嵌入式LonWorks网络智能网关的实现方法,主要分析了嵌入式网关的硬件和软件的实现方法。本网关的实现可为将来远程监测应用方面带来很大便利,可广泛应用与远程查表、路灯控制等项目中,具有很好的社会价值。


推荐阅读

史海拾趣

Bivar公司的发展小趣事

在电子行业的初期,Bivar公司以其创新的技术突破赢得了市场的认可。公司研发出一款新型电阻器,具有高稳定性和长寿命的特点,迅速在行业内引起了关注。凭借这一技术优势,Bivar逐渐在电阻器市场上占据了一席之地,并逐渐扩大生产规模,实现了公司的初步成长。

3L Electronic Corporation公司的发展小趣事

面对日新月异的电子科技,3L Electronic Corporation始终坚持以技术创新为核心竞争力。公司投入大量研发资源,不断推出具有市场竞争力的新产品。从传统的电子零组件到智能电子设备,再到物联网解决方案,3L的产品线不断升级,满足了市场的多样化需求。

DS-IMP公司的发展小趣事

DS-IMP公司非常重视人才培养和团队建设。公司建立了完善的人才培养机制,为员工提供丰富的培训和学习机会。同时,公司还注重团队建设和文化建设,通过组织各种团队活动和文化建设活动,增强员工的凝聚力和归属感。这些努力使得公司拥有一支高素质、专业化的团队,为公司的发展提供了坚实的人才保障。

AMS公司的发展小趣事

DS-IMP公司一直将研发创新作为企业发展的核心动力。在研发过程中,公司不断投入大量资金,引进先进设备和技术,并与国内外知名高校和研究机构建立合作关系。通过不懈努力,公司在多个领域取得了重大突破,成功研发出了一系列具有自主知识产权的高性能模拟混合电路产品。这些产品不仅满足了国内外客户的需求,还为公司赢得了良好的市场声誉。

维峰电子(WCON)公司的发展小趣事

维峰电子(WCON)于2002年在广东成立,由创始人李文化带领的团队共同创立。创业初期,公司面临着资金短缺、技术落后和市场竞争激烈等多重挑战。然而,团队凭借着对电子连接器行业的深刻理解和坚定信念,不断研发新产品,优化生产工艺,逐渐在市场中站稳脚跟。他们通过不懈努力,成功开发出多款具有竞争力的电子连接器产品,为公司后续的发展奠定了坚实基础。

Electrocube Inc公司的发展小趣事

Electrocube Inc公司的创始人在创立之初便面临着重重挑战。当时,电子行业正处于快速发展阶段,市场竞争激烈。然而,创始人凭借对电子技术的深刻理解和敏锐的市场洞察力,成功开发出了一款高性能、低成本的电容器产品。这款产品迅速获得了市场的认可,为公司赢得了第一桶金,也为后续的发展奠定了坚实的基础。

问答坊 | AI 解惑

仪表与检测 -不知道发这里合适不合适?

仪表与检测 一。.什么叫测量?测量技术?测量技术有哪几类?什么是检测,检测仪表由哪些组成? 答1.所谓测量是指用一个已知量或量具与一个未知量或被测量进行比对,从而确定未知量多少倍的过程。 2.所谓测量技术主要是指测量的原理与根据测量 ...…

查看全部问答>

求助:系统要求支持11种语言

我们开发的一个板子要求支持11种语言(中、日、韩、英、德、法、西班牙、意大利、葡萄牙、瑞士、芬兰)。 现在我们使用的GUI时MicroWindows(nano-X)。里面能支持PCF以及freetype2等字库。但是如果用freetype2的话,采用TTF的字库对我们的板子来说 ...…

查看全部问答>

方向识别,高手指导一下!

我在做一个东西,想找一个成本比较的识别方法,来实现识别五米开外的物体。原想用红外源发射接收的但是找了市面上找了都只有开关式的红外,高手指导一下,多谢了~~…

查看全部问答>

请问USB字符串描述符

                                 请问在USB设备向主机发送字符串描述符时,怎么定义一个从指定FLASH空间地址中读取的变量数据呢?如何将读取的内容 ...…

查看全部问答>

入手LM3S8962后自己写的第一个程序,为什么编译不通?求高人指点。

程序编译效果见附件。我的问题如下:1、这个程序里还需要include哪些文件?2、这个程序已经include的文件,哪些是多余的?3、已经include的文件,都是做什么用的?(例如:inc/hw_types.h是干什么用的,为什么要这个文件)?4、我怎么知道我需要incl ...…

查看全部问答>

S6LX9 Microboard试用申请

最近将实施一个QPSK调制解调通过高斯白以及Rayleigh信道后的误码率曲线,要求在FPGA内完成QPSK的调制、上变频、信道加噪、下变频、解调等,测试误码率曲线,验证噪声产生电路的合理性与可行性。…

查看全部问答>

怎样用stm32f103rbt6来驱动ili9320来显示图片?

大侠们能帮助我一下,教教 我步骤。…

查看全部问答>

不喜欢模电单片机,却喜欢FPGA的人是不是注定悲剧收场

     快毕业很纠结,一直很讨厌C  模电 单片机  ,看见就吐根本不想学进去,不过很喜欢数电,用74徒手搭了整个系统。 原本计划放弃研发,大三却狂热FPGA开发,觉得在IC上实现自己的想法特别有成就感,跟 ...…

查看全部问答>

TI 2553最小系统(含键盘显示)原理图

本帖最后由 paulhyde 于 2014-9-15 03:45 编辑 很实用的,大家看看  …

查看全部问答>