嵌入式网络信息发布系统设计
引言
随着信息时代、数字时代的到来,尤其是互联网技术的飞速发展,网络设备与系统体现出高效、灵活、可移植性强的特点。嵌入式技术也有着飞速的发展,从硬件方面来看,嵌入式微处理器的性能提升到了一个新的高度。从软件方面来看,它已经拥有了高效的操作系统,方便开发人员进行软件个性化设计。嵌入式系统在的实践过程中,具有体积小,携带方便,便于安装调试和价格低廉等优点,从而使嵌入式系统满足了多数的消费电子、通信、工业控制等领域的要求。
为了实现面向公众的信息传递,人们采用了告机、单宣传画、工控广机广告机等方式。但这些信息发布方式,存在着信息量局限,成本高,更换内容困难等缺点。基于对市场的理解,并结合先进的嵌入式互联网视频技术,本文介绍了一种嵌入式网络信息发布系统,阐述了服务器、数据库和嵌入式终端解决方案,以及服务器与数据库的交互、服务器与终端的通信协议等关键单元技术,并详细介绍终端的软件设计思想。
1 系统组成
该系统分为网络信息发布管理平台和远程嵌入式终端两部分。系统的软硬件部署,主要分为三个部分:嵌入式终端,发布系统服务器和内容服务器。其中,在实际应用中,发布系统服务器和内容服务器可以合并为同一台服务器,如图1所示。
1.1 硬件方面
1.1.1 管理平台硬件环境
一台Windows操作系统的计算机,配置Java开发运行环境,并且装有Apache Tomcat 6.0服务器和MySQL5.1数据库等软件。
1.1.2 嵌入式硬件环境
嵌入式芯片需满足多媒体开发和网络开发的基本要求。
(1)支持视频格式、音频格式、图片格式的编码和解码;
(2)支持视频图像和音频输出接口;
(3)支持USB接口;
(4)支持HTTP协议;
(5)支持10 M/100 M网卡。
1.2 软件方面
在这种系统软件设计中,信息发布管理平台基于Web开发,采用了目前常用的Java+Struts+Hibernate方法。struts框架定义了管理平台系统的结构(表示层)和页面之间流转的规则(业务层)。Hibernate将数据库连接抽象化,使得开发过程中对数据库的使用更加简洁方便,同时,Hibernate降低了更换不同类型数据库所用的开发时间。基于Java语言编写服务端代码,开发效率高,面向对象的设计方法提高了代码的可维护性。该模块还使用了较多的JS代码和基于Ajax的技术来提高客户端页面刷新和页面功能;数据库服务器的设计使用瑞典MySQL AB公司开发的小型关系型数据库管理系统MySQL5.1,它为Java语言提供了丰富的API,方便Java应用程序对其访问。
嵌入式终端操作系统采用μC/OS-Ⅱ操作系统。μC/OS-Ⅱ是一个源码开放的抢占式实时操作系统。它的内核短小精悍、可裁减、执行时间确定。系统大部分代码采用C语言编写,与硬件有关的部分都集中在固定的文件中,移植相当方便,可应用于目前大多数型号的CPU。但是,没有集成网络协议,所以,开发人员使用该操作系统进行网络程序开发时,需要自行定制网络协议。
2 信息发布系统的单元交互
嵌入式网络信息发布系统单元之间的通信可以分为两层:服务器与数据库交互、服务器与远程终端通信。
2.1 服务器与数据库交互层
该系统的服务器具有远程监控服务功能,包括Web服务器、文件服务器、本地控制服务器。其中,Web服务器提供信息网络发布系统的用户交互界面和业务逻辑处理模块的运行环境;文件服务器主要提供系统管理的视频、图像等多媒体信息的存取服务;本地控制服务器主要管理辖区内所有显示终端的通信分发。
在服务器上编写了具有人机交互功能的JSP静态管理平台界面,用户可以通过该界面方便地进行图形化操作,并将终端反馈的信息显示在该界面,方便用户获取终端的运行情况,还为用户提供有用户权限管理、内容管理、播放控制等模块的监控页面。用户只需登录该管理平台界面,即可通过网络对远程终端进行监控。
服务器对数据库的访问采用JDBC两层模型方法。JDBC是一种用于执行SQL语句的Java API,利用这种方法可以方便地与数据库建立连接,发送操作数据库的语句,并处理结果。两层模型可使得Java Applet或应用程序将直接与数据库进行交互。
服务器与数据库服务器的数据交互主要用于存取终端基本状态信息。例如:网络连接是否正常,连接在同一个服务器的各个终端ID号,终端硬盘的空间大小,硬盘中的内容等。指令的生成依赖于该模块在数据库中所查询到的终端状态标志位。当服务器对某终端进行相应的控制操作时,首先从数据库中读取出该终端当前的状态标志位,根据这些标志位进行逻辑判断,生成本次控制操作所需要发送的XML文本指令。
2.2 服务器与远程终端通信层
服务器与远程终端的通信采用HTTP超文本传输协议,终端定时(初定8 s)发送请求到服务器。服务器接受到请求后,将相应的XML文本语言形式的控制操作指令发送到连接的网络端口,远程终端读取端口的数据进行解析,完成本次控制操作。如果一定时间内(初定1 min)没有收到终端的消息,可断定出现网络异常(终端离线)。
终端系统正常启动之后,系统将自动分配一段内存空间,一部分用来存储请求信息和控制指令,一部分作为消息队列。然后,终端的状态信息作为请求信息循环向指定IP地址(服务器)的端口(初定80端口)发送。终端请求成功后,服务器读取端口接收的请求信息,将请求信息解析后作为终端的当前状态信息,更新数据库中的状态标志位。同时,服务器也可以通过HTTP传输协议发送XML语言结构的文本指令给终端,终端接收到指令后进行解析,并对终端进行相应的控制操作。
- 嵌入式系统的定义与发展历史(11-15)
- 嵌入式系统亲密接触(11-22)
- 嵌入式系统设计中的USB OTG方案(02-01)
- 嵌入式线控驾驶系统开发过程中设计和测试考虑(02-02)
- 一个典型的嵌入式系统设计和实现 (02-02)
- DDR SDRAM在嵌入式系统中的应用(02-07)