嵌入式网络信息发布系统设计
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语言结构的文本指令给终端,终端接收到指令后进行解析,并对终端进行相应的控制操作。
3 信息发布系统的关键技术
嵌入式硬件的系统频率、存储空间、缓存大小、编码和解码等性能已经达到了较高的技术水平。那么,对于嵌入式芯片在不同领域中的应用更依靠于操作系统和灵活的软件设计思想来实现。
在该系统的设计中,服务器的设计需要考虑服务器与数据库和终端的交互协议,当通过服务器控制多台终端的时候,对于指令分发、数据包传输、以及数据库的更新都存在着时序和逻辑问题。为了节省系统内存的开销,也要保证系统的实时性和可靠性,所以终端的操作系统选择μC/OS-Ⅱ。该操作系统没有集成网络协议,所以结合其性能条件定制适合它的网络传输协议。
3.1 终端网络程序的设计
远程终端的执行效果只有到现场才可以观察,那么,保证终端接收指令和对指令响应的可靠性是十分必要的。HTTP协议是一种文本协议,文本协议通常是用ASCII符集编码,具有理解简单,扩展扩充方便,容错性较强,可靠性高等优点。开发人员可以方便地进行协议的定制,节省了软件调试时间,大大缩短了开发周期。因此,在该系统的操作系统中定制了HTTP超文本传输协议。
μC/OS-Ⅱ操作系统中创建一个系统网络的入口函数,在此函数中创建一个网络后台任务,该任务的主要功能是请求网络连接,并接收来自服务器的指令。当终端系统初始化后,进入网络后台任务,循环向服务器发送HTTP请求,请求成功后,终端反馈信息到服务器。
系统软件使用C语言编程,将HTTP协议封装在结构体中,用结构体属性字段来表示。
网络端口的所有数据项,包括HTTP协议头、控制指令、lP地址、端口号、端口信号量锁等。HTTP协议的结构体如下:

其中:http_Request[REQUEST_SIZE为HTTP协议头字符串;http_Response为服务器发给终端的控制指令;httpWait为信号量。用信号量来实现网络端口的互斥访问。
在系统中,网络管理平台控制多个嵌入式终端时,通过网络端口与每个终端进行网络连接通信。网络端口是独占性的端口,所以,选择信号量机制对网络端口的访问进行互斥锁处理。本文引用地址:https://www.eepw.com.cn/article/150731.htm
HTTPTcpConnection_t为网络端口连接信息,它也是一个结构体,属性字段包括服务器的IP地址、网络端口号、以及终端请求信息等。代码如下:
3.2 多任务间通信
μC/OS-Ⅱ是多任务机制操作系统,最多可支持64个任务,任务优先级从0~63,对这样的多任务操作系统来说,任务间的通信是必不可少的。μC/OS-Ⅱ中提供了4种通信对象,分别是信号量、邮箱、消息队列和事件。所有这些同步对象都有创建、等待、发送、查询的接口用于实现任务间的通信。
评论