微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ARM的火灾信息传输网关设计

基于ARM的火灾信息传输网关设计

时间:03-08 来源:互联网 点击:


(1)初始化。初始化的主要工作是为模块间的通信建立有名管道,每个与核心模块通信的进程有一个管道。当前系统需要创建四个管道。其他模块如果想要使用管道,必须首先打开管道。所有与管道的通信都有API供其他用户使用。
(2)启动其他模块。核心模块通过子进程调用execl()来启动其他模块。每个其他模块都是一个可执行程序,通常位于一个固定的路径及固定的文件名。每个模块在启动之后需要向核心模块发送注册信息,这些信息包括模块标识、进程ID、进程状态等。登记信息由核心模块保留,供以后使用。
(3)创建定时器。核心模块需要定时地检测其他模块的生存状况,通过注册一个定时器,可以定时地触发检测功能。
(4)开始监听。当所有初始化工作完成以后,核心模块开始进入工作状态。它的主要工作就是负责处理管道信息。通过使用select()函数可以实现同时监听多个管道。当某个管道有数据,核心模块读取数据包(格式详见后文),并解析出包头,得到包的源地址,目的地址,及控制字并加以分析,选择处理流程。处理流程包括:数据中转,巡检,系统维护等。当该数据包处理完成以后,核心模块返回继续等待下一个数据包。
(5)处理数据中转。其他模块间无法直接通信,都必须通过核心模块进行中转。数据包中指明了包的源地址,目的地址及控制字。这里的控制字说明数据需要中转,核心模块解析到数据包需要中转,就将包写入到给定目的地址的模块管道。
(6)处理巡检。服务器需要定时地检测前置机各个模块的状态,于是发送巡检请求给网络模块,网络模块解析后组包发送给核心模块,核心模块在分析包发现该包是巡检请求,于是通过kill()函数及注册记录信息,判断各个模块的状态,并组包发送给服务器。
(7)处理系统维护。系统维护的主要任务是为了保证系统所有模块的正常运行。前面初始化了一个定时器,通过定时器,可定时地查询其他模块的状态。当发现某个模块异常,核心模块将重启该模块。
3.3.2 关键数据结构
(1)包格式:

(2)模块ID定义
如表1所示:



(3)控制字定义
如表2所示:

(4)管道初始化
首先,用户必须选择正确地管道初始化函数,通过初始化函数,用户正确的建立与管道的连接。初始化函数如表3所示。


(5)管道写操作
一旦管道创建完成,用户就可以通过调用管道写函数来写数据。用于必须调用和初始化一致的写函数。如网络模块调用pipe_init_net-work函数初始化管道,必须通过调pipe_write_network来写,若调用其他函数写入将失败,如表4所示。

表4中目的模块ID和控制字在eonfig.h文件中定义。msg是要发送数据的首地址,必须注意的是msg所指向的数据必须是字符串类型,必须以“\O”结束,否则发送函数无法确定msg数据包的长度。对于不是以msg结尾的数据包,必须字符串化,否则发送函数的行为未定义。
(6)管道读操作
管道读操作从管道读取一个固定长度的数据包,并解析数据包,从数据包中分离信息。管道的读操作可以是阻塞模式和非阻塞模式。在阻塞模式下,读操作将阻塞直到有数据返回。用户通过设置读操作中的参数flag可以实现模式选择。当flag=0时,表示为阻塞模式;当flag= 1时,表示为非阻塞模式。管道读操作也要求管道必须正确的初始化,否则读失败,同时也要求必须选择正确的管道读函数,如表5所示。


表5中,src是unsigned short*类型,如果不要求获取源地址,可以传递NULL。msg用于存放接收数据的内存首地址,msg必须大于或等于251 B。空间必须由用户分配。函数假定msg的空间已分配且空间足够大。
(7)基于TCP/IP的网络通信
装置采用串口采集消防主机上的数据,并且把数据转换成TCP/IP协议能识别的数据包,因此串口采集的数据源要作为以太网帧的一部分。为了向设备提供透明的接口并区分数据源,需要制定统一的帧格式。帧格式如下:


其中,串口号字段用来区分数据源;帧头、帧尾作为一个串口帧的起始分界(可自定义);数据部分是来自串口的原始数据流。
以太网方面采用面向连接的网络通信,采用TCP/IP网络通信协议。数据包结构描述中控制单元格式如下:




消防主机发送的信息一般在10~100 B之间,若选择TCP协议,会使协议开销在网络的吞吐量中占有很大的比例。UDP协议支持实时多播通信,保证了网关向监控中心实时发送火警情报,并能有效地减少用户信息传输装置的开销和网络资源。UDP协议的数据可靠性和完整性问题由应用程序来解决,因此在该系统中使用UDP更合理。
TCP/IP通信模块采用SOCKET套接字编程实现。本系统采用服务器/客户端编程模型,服务器和客户端分别对应监控中心工作站服务器和用户信息传输装置。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top