×
嵌入式 > 技术百科 > 详情

远程操控信息家电

发布时间:2021-06-08 发布时间:
|

将嵌入式cpu芯片嵌入到家电设备中,是单片机技术与家电产品技术充分结合的一种表现形式。同时,将嵌入式操作系统固化在其中,通过运行针对系统编写的应用程序来对装有嵌入式芯片的设备进行控制和管理,以使该设备具有相当的智能。如果在家用电器的控制板内置一块webcontroller,就可以将它们连接到internet网。这就促成我们的梦想变成现实:一方面,我们可便捷地通过手机、个人数字助理或pc上的web浏览器等工具对它们进行远程控制; 另一方面,家电制造商可通过internet对售出的产品进行监控,如果出现故障,它们会自动发出维修请求信号,并指出故障部位,从而使售后服务更为迅捷。

下面给出一个实现网络家电控制器的实例,在其上能模拟实现家电设备的基本网络功能。

网络设计

由嵌入式设备及连接介质组成的物理网络被称为嵌入式网络,网络中的每一个节点代表一个家电设备。连接介质可以采用的utp双绞线或无线微波。图1是本文所采用的以太结构的总线型嵌入式网络。网络中的每个结点对应着一个网络家电控制器。本例中的设备可使用普通的utp双绞线经rj45连接。

图1 总线型嵌入式网络

在设计上,嵌入式网络由于受应用环境的限制,应满足以下多种因素的要求:

● 实时性;

● 可靠性;

● 实现难度和造价;

● 开放性;

● 小型化和专业化;

● 使用简单,配置要求低。

无线连接

目前,有线网络己经非常发达,但是在特定的情况下仍然不能满足人们的需要,此时,无线网络则日渐风行。人们常常采用无线的方式进行设备访问,如实时告警等。无线告警的基本思想是,控制器不间断地监测某一参数的状态变化,一旦出现异常(如火灾事故,盗窃案例等设定)则启动无线短信息及语音功能向相关部门或用户进行警戒报告,使事故在发生破坏作用之前得到有效控制或将破坏作用降低到最低程度,从而有力地保证财产及生命安全。

以下介绍实例是采用sonyericsson的gr47无线模块的有关功能模拟紧急情况下自动报警。gr47基本具备gsm所能提供给移动终端的所有功能,还支持近年来开始完善gprs的业务。模块向用户提供了嵌入式应用接口,允许用户通过这些接口使用模块系统资源或在其基础上扩展客户应用功能。利用模块的一个gpio口监测某一参数的状态变化,一旦状态出现异常则启动短信息及语音功能向用户进行通报的方式模拟告警功能。

按照功能分类,该实例所采用的硬件平台主要由微处理器单元、gprs通信模块单元、存储器单元、串口通信单元、电源单元和看门狗单元以及jtag接口单元组成,基本硬件框图如图2所示,其实质是一个完整的嵌入式系统再加上相关的网络设备。

图2 硬件结构框图

软件设计

用户与设备接口设计

作为当今市场上使用最为广泛的一种人机接口,网络浏览器成为一种实现嵌入式设备访问的有效途径,无论是通过internet还是直接和嵌入式设备连接,在与嵌入式设备接口时,快速、简单地与嵌入式设备进行双向数据传输是必不可少的,因此设计中尽量减少和嵌入式设备之间的往返信息能够使网络成为一种更为高效的通信媒介,而且在传输过程中最花时间的是图像数据,所以在设计中尽可能地考虑减少图像的比例,则与设备之间的通信速度就可以大大加快。

由于在远程监控时设备需要实时状态发送给客户端浏览器,而且在远程控制中设备也需要将结果信息及时地反馈给用户,这些都要求系统不仅具备静态网页的功能还应能满足动态网页的要求。实例中,动态网页是采用cgi程序来实现的。系统中嵌入式internet(这里主要指web服务器)功能块主要是通过cgi程序来获取用户的请求、查询条件并利用应用程序为其提供的后台服务,结果使用html方式描述,并直接回送到客户端的浏览器。cgi是web服务器在调用外部程序时的接口规范协议, 它规定了一套标准的参数格式和环境变量,扩展web服务器的功能,使之能够执行一些web服务器本身不能完成的任务。如与各类应用服务器通讯、访问数据库等。

设备参数输出排序的sofm机制

如上所述,在远程控制及实时监控情形下要求系统能尽快地查找到相应的参数值(如温度、湿度等)并以动态网页的形式将信息报告给用户,为了满足访问的实时性,就需要尽可能加快参数的查找速度。在网络家电控制器软件中采取将设备的参数变量依一定规则事先排序,再按序查找的方法。这样就可以根据索引号很快定位某一参数,从而检索出其变量值并传送给用户显示终端。针对诸具体特性,如: 家电设备的参数一般均为向量形式,而且不同用户所需要的参数种类和数量具有不确定性,在家电网络控制器的软件系统中采用sofm ( self socket发起一个连接请求,然后用本地ip地址初始化本地节点结构,在远程节点结构中初始化远端ip地址及远程端口号。接着在socket上发起一个“open”操作。该“open”操作会发出一个arp请求来询问对方服务器的mac地址,当tcp socket收到arp应答后,tcp程序会经历“三次握手”来和服务器端建立tcp连接。当连接建立以后,客户端从socket接收缓冲区里读取数据,并向socket发送缓冲区里写入待传送数据。

与客户端相反,服务器端应用则不主动获得socket,而是当收入一个远端客户请求时,tcp将分配一个空闲的socket,随后调用应用层提供的回调例程,回调例程检查其是否为一个合法的应用,如果是,则连接被接纳,之后该socket被此连接使用。 否则,tcp将拒绝该连接并释放socket。连接建立以后,任何一方都可以发起一个终止该tcp连接的信号,连接终止后,socket随即被释放。

任何的状态变化以及任何携带有应用层数据或确认信息的tcp数据报到来,应用层回调例程都会被调用。应用层来决定如何处理这些数据或状态变化。

大多数复杂的协议处理由tcp软件完成并与上层应用隔离。如:tcp协议监控每一个tcp分组的传输,如果某个分组在规定时间内没有得到确认,tcp将会重传该分组。这对应用层来说是透明的,而且应用程序只需要专注于处理用户层的数据并将tcp socket视为可靠的数据传输管道。

软件结构

根据项目功能,软件大致可以分为几个独立模块及驱动,如: ethernet driver、izc driver、 dart driver、arp处理模块、ip包处理模块、icmp与传输层处理模块,以及http服务器、动态网页处理模块等。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
RFID的电子关锁系统设计与实现