嵌入式网络信息发布系统设计
3 信息发布系统的关键技术
嵌入式硬件的系统频率、存储空间、缓存大小、编码和解码等性能已经达到了较高的技术水平。那么,对于嵌入式芯片在不同领域中的应用更依靠于操作系统和灵活的软件设计思想来实现。
在该系统的设计中,服务器的设计需要考虑服务器与数据库和终端的交互协议,当通过服务器控制多台终端的时候,对于指令分发、数据包传输、以及数据库的更新都存在着时序和逻辑问题。为了节省系统内存的开销,也要保证系统的实时性和可靠性,所以终端的操作系统选择μC/OS-Ⅱ。该操作系统没有集成网络协议,所以结合其性能条件定制适合它的网络传输协议。
3.1 终端网络程序的设计
远程终端的执行效果只有到现场才可以观察,那么,保证终端接收指令和对指令响应的可靠性是十分必要的。HTTP协议是一种文本协议,文本协议通常是用ASCII符集编码,具有理解简单,扩展扩充方便,容错性较强,可靠性高等优点。开发人员可以方便地进行协议的定制,节省了软件调试时间,大大缩短了开发周期。因此,在该系统的操作系统中定制了HTTP超文本传输协议。
μC/OS-Ⅱ操作系统中创建一个系统网络的入口函数,在此函数中创建一个网络后台任务,该任务的主要功能是请求网络连接,并接收来自服务器的指令。当终端系统初始化后,进入网络后台任务,循环向服务器发送HTTP请求,请求成功后,终端反馈信息到服务器。
系统软件使用C语言编程,将HTTP协议封装在结构体中,用结构体属性字段来表示。
网络端口的所有数据项,包括HTTP协议头、控制指令、lP地址、端口号、端口信号量锁等。HTTP协议的结构体如下:
其中:http_Request[REQUEST_SIZE为HTTP协议头字符串;http_Response为服务器发给终端的控制指令;httpWait为信号量。用信号量来实现网络端口的互斥访问。
在系统中,网络管理平台控制多个嵌入式终端时,通过网络端口与每个终端进行网络连接通信。网络端口是独占性的端口,所以,选择信号量机制对网络端口的访问进行互斥锁处理。
HTTPTcpConnection_t为网络端口连接信息,它也是一个结构体,属性字段包括服务器的IP地址、网络端口号、以及终端请求信息等。代码如下:
3.2 多任务间通信
μC/OS-Ⅱ是多任务机制操作系统,最多可支持64个任务,任务优先级从0~63,对这样的多任务操作系统来说,任务间的通信是必不可少的。μC/OS-Ⅱ中提供了4种通信对象,分别是信号量、邮箱、消息队列和事件。所有这些同步对象都有创建、等待、发送、查询的接口用于实现任务间的通信。
消息机制是创建一个消息队列,一个任务将消息发送到该消息队列中,另一个任务在队列的另一端接收此消息。消息队列是在消息的传输过程中保存消息的容器,它的主要目的是为消息的传递提供路径;如果发送消息时接收者没有响应,消息队列会保留消息,直到可以成功地传递给接收者。
消息机制具有灵活性、可扩展性和异步性等优点。因此,该系统采用消息队列的方式实现UI/User层程序和应用程序之间的通信,如图2所示。
消息的结构体如下:
在消息结构体中:
app_id:接受此消息的应用程序或桩函数。
msg_type:消息类型。系统中的消息设计有两种类型。一是命令消息,应用程序接收到来自UI/User程序的命令消息后,对其进行解析,然后,逐个执行消息中的命令集合,并反馈执行结果;二是通知消息,用来通知UI/User命令在应用程序中得到响应。
msg_id:消息的ID号。
msg_value:消息的参数,存放指针的地址。
下面以命令消息处理过程为例,介绍消息的发送、接收和消息相应操作过程,如图3所示。其中,应用程序管理器是一个消息处理中心,它为UI/User层提供了一些API函数,用来为应用程序接受输入命令和分发命令。同时,它还接收来自应用程序的命令执行结果和通知消息,并把这些消息发送给相应的消息处理函数。
4 结语
现场调试中发现,工控机信息发布系统的故障率为5%,而本文设计的嵌入式信息发布系统的故障率为8%。从价格上进行比较,工控机信息发布系统价格是嵌入式信息发布系统价格的10倍左右。显然,该系统具有更好的性价比,且使用简单,操作方便。随着嵌入式系统软件的PC化,它将成为一种理想的信息发布系统,有着十分诱人的应用前景。
- 嵌入式系统的定义与发展历史(11-15)
- 嵌入式系统亲密接触(11-22)
- 嵌入式系统设计中的USB OTG方案(02-01)
- 嵌入式线控驾驶系统开发过程中设计和测试考虑(02-02)
- 一个典型的嵌入式系统设计和实现 (02-02)
- DDR SDRAM在嵌入式系统中的应用(02-07)