首页 / 专利库 / 广播 / 卫星电视 / 便携式机动卫星气象水文信息保障系统及方法

便携式机动卫星气象文信息保障系统及方法

阅读:25发布:2020-05-13

专利汇可以提供便携式机动卫星气象文信息保障系统及方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及气象 水 文信息传输与处理技术领域,具体为便携式机动卫星气象水文信息保障系统及方法,包括 数据采集 层、 信号 与状态分析层、综合处理层和交互层。该便携式机动卫星气象水文信息保障系统及方法中,通过设置接收解码子系统,便于接收卫星数据广播,并依照终端 站点 资料属性配置和本地权限确定是否接收到达资料,通过设置数据属性管理子系统,便于对资料类型进行识别并对资料存储目录和资料信息进行操作和管理,通过设置系统状态监测及配置子系统,实现数据接收、嵌入式平台状态的运况显示、分系统站点注册、站点属性设置、本地过期资料清除、存储空间可用空间检查。,下面是便携式机动卫星气象文信息保障系统及方法专利的具体信息内容。

1.便携式机动卫星气象文信息保障系统,包括数据采集层、信号与状态分析层、综合处理层和交互层,其特征在于:所述交互层包括嵌入式操作系统、接收解码子系统、数据属性管理子系统、数据存储子系统、系统状态监测及配置子系统和数据共享子系统。
2.根据权利要求1所述的便携式机动卫星气象水文信息保障系统,其特征在于:所述嵌入式操作系统基于嵌入式Linux操作系统开发,嵌入式操作系统包括Bootloader、内核、文件系统和驱动设计。
3.根据权利要求1所述的便携式机动卫星气象水文信息保障系统,其特征在于:所述接收解码子系统包括数据文件接收模卫星信号处理模块、接收调度模块、传输应用协议解析模块和喷泉编码解析模块;
所述数据文件接收模块用于卫星接收天线、低噪放单元实现卫星电视信号的接收;
所述卫星信号处理模块用于卫星电视信号的变频、解调、解码和气象水文数据的存放;
所述接收调度模块用于根据优先级调度线程的方式进行气象水文数据文件处理;
所述传输应用协议解析模块利用气象水文专用传输应用协议对气象水文数据业务编码包进行解析,并将解析出的文件存至硬盘临时存储目录;
所述喷泉编码解析模块用于将气象水文专用传输应用协议解析模块解析出的临时文件进行喷泉编码解码,解析成气象水文数据原始文件,存储至临时目录。
4.根据权利要求1所述的便携式机动卫星气象水文信息保障系统,其特征在于:所述数据属性管理子系统包括资料存储目录管理模块和资料信息管理模块;
所述资料存储目录管理模块用于允许用户查看资料存储的默认目录并定制指定类型资料的接收目录;
所述资料信息管理模块用于分系统管理所有可接收资料的名称、唯一标识、默认存储目录、到达时段等信息,可由用户决定是否接收某种资料。
5.根据权利要求1所述的便携式机动卫星气象水文信息保障系统,其特征在于:所述数据存储子系统用于将数据资料存储在与资料类型对应的目录中。
6.根据权利要求1所述的便携式机动卫星气象水文信息保障系统,其特征在于:所述系统状态监测及配置子系统包括接收卡状态模块、系统状态监测模块、数据文件接收状态模块、存储空间可用空间检查模块、本地资料过期清除模块、站点注册模块、站点信息管理模块、时统配置模块和站点性能报警模块;
所述接收卡状态模通过访问接收卡,实时获取并显示接收卡的信号状态、信号电平、信号强度等信息;
所述系统状态监测模块用于监测并显示嵌入式设备的CPU利用率、内存使用率、可用存储,分系统的数据接收成功率、运行时长等信息;
所述存储空间可用空间检查模块用于定时监测本地存储的剩余空间,与本地资料过期模块相配合,确保存储空间可用;
所述本地资料过期模块用于清除维护本地存储的已接收资料,针对已超过规定时间范围的资料进行删除;
所述站点注册模块用于负责处理来自主站的注册指令,完成分系统初始化,获取资料接收许可,以及相应的权限;
所述时统配置模块用于同一数据分发分系统、数据接收分系统、站点管理分系统、组播代理分系统之间的信息交互,以及日志数据和事件放入标准;
所述站点性能报警模块用于实时检查存储空间可用率、CPU利用率等状态,并对低于正常值的状态项,进行警示。
7.根据权利要求1所述的便携式机动卫星气象水文信息保障系统,其特征在于:所述数据共享子系统包括共享任务管理模块、资料共享链路检测模块和Samba资料共享模块;
所述共享任务管理模块用于实时获得分系统资料接收状态,驱动资料共享任务完成资料传输操作;
所述资料共享链路检测模块用于实时监测资料传输链路的畅通性;
所述Samba资料共享模块用于文件之间的网络共享。
8.便携式机动卫星气象水文信息保障方法,包括上述权利要求1-7中任意一项所述的便携式机动卫星气象水文信息保障系统,其特征在于:方法步骤如下:
S1、由卫星天线接收卫星电视信号并用同轴电缆传至接收终端;
S2、信号通过高频头解调处理后变为TS流,数据解码子系统根据TS包头中的PID判断是否为气象水文数据,如果不是则丢弃,如果是,则将其解析成气象水文业务编码流;
S3、按照气象水文专用传输应用协议将气象水文业务编码流解析为MPE/IP流;
S4、将MPE/IP流进行UDP解封,变为临时存储的喷泉编码文件;
S5、将临时存储的喷泉编码文件进行喷泉编码解码,变为数据编组;
S6、将数据编组文件进行按照数据属性管理子系统中用户定制资料的接收目录或资料对应的默认目录进行存储。

说明书全文

便携式机动卫星气象文信息保障系统及方法

技术领域

[0001] 本发明涉及气象水文信息传输与处理技术领域,具体为便携式机动卫星气象水文信息保障系统及方法。

背景技术

[0002] 气象水文环境作为作战环境中可变性最大的因素,贯穿战争全过程,直接影响战争决策、战略战役筹划和作战行动的组织实施。
[0003] 海量气象水文数据的传输与共享是实施气象水文保障的基础,也是气象水文保障的重难点问题。实时和准实时的全局和区域气象水文信息通过观测网和通信网多以“个例收集”和“集中共享”方式进行层层收集、汇聚和交换,因此从传输的效率和通信资源的利用率来看,卫星气象水文数据广播是一种适应性强、稳定性高、实时性好的信息传输方式。随着卫星通信技术的飞速发展,全球气象水文信息广播系统日臻成熟,广播资料的种类、覆盖范围和时效性已经基本满足了日常保障的需求,为全球人类生活、经济发展和事行动提供精细化预报服务和保障奠定了坚实的基础。
[0004] 目前,国内外业务运行的气象水文数据传输方式大多基于DVB S2标准的电视卫星广播转发系统实现的,国内外也均开发了基于DVB S2标准的电视卫星广播气象数据接收系统。但是由于具体使用要求和环境不同,对便携性和低功耗的要求不强,目前使用的气象数据接收系统体积均比较大,功耗也比较高,不能适应日常作训保障需求。鉴于此,我们提出便携式机动卫星气象水文信息保障系统及方法。

发明内容

[0005] 本发明的目的在于提供便携式机动卫星气象水文信息保障系统及方法,以解决上述背景技术中提出的气象数据接收系统体积均比较大,功耗也比较高,不能适应日常作训保障需求的问题。
[0006] 为实现上述目的,一方面,本发明提供便携式机动卫星气象水文信息保障系统,包括数据采集层、信号与状态分析层、综合处理层和交互层,所述交互层包括嵌入式操作系统、接收解码子系统、数据属性管理子系统、数据存储子系统、系统状态监测及配置子系统和数据共享子系统。
[0007] 作为优选,所述嵌入式操作系统基于嵌入式Linux操作系统开发,嵌入式操作系统包括Bootloader、内核、文件系统和驱动设计。
[0008] 作为优选,所述接收解码子系统包括数据文件接收模卫星信号处理模块、接收调度模块、传输应用协议解析模块和喷泉编码解析模块;
[0009] 所述数据文件接收模块用于卫星接收天线、低噪放单元实现卫星电视信号的接收;
[0010] 所述卫星信号处理模块用于卫星电视信号的变频、解调、解码和气象水文数据的存放;
[0011] 所述接收调度模块用于根据优先级调度线程的方式进行气象水文数据文件处理;
[0012] 所述传输应用协议解析模块利用气象水文专用传输应用协议对气象水文数据业务编码包进行解析,并将解析出的文件存至硬盘临时存储目录;
[0013] 所述喷泉编码解析模块用于将气象水文专用传输应用协议解析模块解析出的临时文件进行喷泉编码解码,解析成气象水文数据原始文件,存储至临时目录。
[0014] 作为优选,所述数据属性管理子系统包括资料存储目录管理模块和资料信息管理模块;
[0015] 所述资料存储目录管理模块用于允许用户查看资料存储的默认目录并定制指定类型资料的接收目录;
[0016] 所述资料信息管理模块用于分系统管理所有可接收资料的名称、唯一标识、默认存储目录、到达时段等信息,可由用户决定是否接收某种资料。
[0017] 作为优选,所述数据存储子系统用于将数据资料存储在与资料类型对应的目录中。
[0018] 作为优选,所述系统状态监测及配置子系统包括接收卡状态模块、系统状态监测模块、数据文件接收状态模块、存储空间可用空间检查模块、本地资料过期清除模块、站点注册模块、站点信息管理模块、时统配置模块和站点性能报警模块;
[0019] 所述接收卡状态模通过访问接收卡,实时获取并显示接收卡的信号状态、信号电平、信号强度等信息;
[0020] 所述系统状态监测模块用于监测并显示嵌入式设备的CPU利用率、内存使用率、可用存储,分系统的数据接收成功率、运行时长等信息;
[0021] 所述存储空间可用空间检查模块用于定时监测本地存储的剩余空间,与本地资料过期模块相配合,确保存储空间可用;
[0022] 所述本地资料过期模块用于清除维护本地存储的已接收资料,针对已超过规定时间范围的资料进行删除;
[0023] 所述站点注册模块用于负责处理来自主站的注册指令,完成分系统初始化,获取资料接收许可,以及相应的权限;
[0024] 所述时统配置模块用于同一数据分发分系统、数据接收分系统、站点管理分系统、组播代理分系统之间的信息交互,以及日志数据和事件放入标准;
[0025] 所述站点性能报警模块用于实时检查存储空间可用率、CPU利用率等状态,并对低于正常值的状态项,进行警示。
[0026] 作为优选,所述数据共享子系统包括共享任务管理模块、资料共享链路检测模块和Samba资料共享模块;
[0027] 所述共享任务管理模块用于实时获得分系统资料接收状态,驱动资料共享任务完成资料传输操作;
[0028] 所述资料共享链路检测模块用于实时监测资料传输链路的畅通性;
[0029] 所述Samba资料共享模块用于文件之间的网络共享。
[0030] 作为优选,本发明还提供一种便携式机动卫星气象水文信息保障方法,包括上述任意一项所述的便携式机动卫星气象水文信息保障系统,方法步骤如下:
[0031] S1、由卫星天线接收卫星电视信号并用同轴电缆传至接收终端;
[0032] S2、信号通过高频头解调处理后变为TS流。数据解码子系统根据TS包头中的PID判断是否为气象水文数据,如果不是则丢弃。如果是,则将其解析成气象水文业务编码流;
[0033] S3、按照气象水文专用传输应用协议将气象水文业务编码流解析为MPE/IP流;
[0034] S4、将MPE/IP流进行UDP解封,变为临时存储的喷泉编码文件;
[0035] S5、将临时存储的喷泉编码文件进行喷泉编码解码,变为数据编组;
[0036] S6、将数据编组文件进行按照数据属性管理子系统中用户定制资料的接收目录或资料对应的默认目录进行存储。
[0037] 与现有技术相比,本发明的有益效果:
[0038] 1、该便携式机动卫星气象水文信息保障系统及方法中,采用嵌入式操作系统数据广播通信技术对系统的数据接收终端进行升级改造,通过硬件平台和嵌入式Linux操作系统的结合,实现气象水文数据网络共享。
[0039] 2、该便携式机动卫星气象水文信息保障系统及方法中,通过设置接收解码子系统,便于接收卫星数据广播,并依照终端站点资料属性配置和本地权限确定是否接收到达资料。
[0040] 3、该便携式机动卫星气象水文信息保障系统及方法中,通过设置数据属性管理子系统,便于对资料类型进行识别并对资料存储目录和资料信息进行操作和管理。
[0041] 4、该便携式机动卫星气象水文信息保障系统及方法中,通过设置系统状态监测及配置子系统,实现数据接收、嵌入式平台状态的运况显示、分系统站点注册、站点属性设置、本地过期资料清除、存储空间可用空间检查。
[0042] 5、该便携式机动卫星气象水文信息保障系统及方法中,通过设置数据共享子系统,便于分系统接收到的资料,通过Samba的方式传输到本地或者远程计算机的目录中。附图说明
[0043] 图1为本发明的整体结构框图
[0044] 图2为本发明的整体体系结构图;
[0045] 图3为本发明的接收解码子系统模块图;
[0046] 图4为本发明的TS流解析流程图
[0047] 图5为本发明的气象水文数据分离算法流程图;
[0048] 图6为本发明的按优先级调度算法示意图;
[0049] 图7为本发明的线程调度策略流程图;
[0050] 图8为本发明的授权信息的解析和文件数据解析及存储流程图;
[0051] 图9为本发明的接收解码子系统流程图;
[0052] 图10为本发明的数据属性管理子系统模块图;
[0053] 图11为本发明的系统状态监测及配置子系统模块图;
[0054] 图12为本发明的数据共享子系统模块图。

具体实施方式

[0055] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0056] 实施例1
[0057] 一方面,本发明提供便携式机动卫星气象水文信息保障系统,如图1和图2所示,包括数据采集层、信号与状态分析层、综合处理层和交互层,交互层包括嵌入式操作系统、接收解码子系统、数据属性管理子系统、数据存储子系统、系统状态监测及配置子系统和数据共享子系统。
[0058] 本实施例中,数据采集层针对系统的接口适配器和协议单元层,从信号接入点、设备状态接口、I/O状态以及环境要素等获取各原始数据。
[0059] 进一步的,信号与状态分析层主要完成分布式的信号接收、数据分解、参数分析与状态分析。根据要求从码流数据中分解并获取气象水文数据,并根据相关的标准、协议和模型参数的要求,判别信号、设备与环境是否满足指定的要求。
[0060] 具体的,交互层主要完成用户的系统配置、I/O操作以及应用服务的执行与响应。
[0061] 进一步的,应用层是运行在核心层之上,主要包含设备管理、系统维护、数据交互、数据处理等不和硬件直接发生关系的软件
[0062] 此外,系统的体系结构可以分为核心层、应用层和网络与服务层三个层次,具体如图2所示,其中,核心层主要包括卫星信号接收和数据处理平台两部分,从天线接收到的信号经过调谐、解调等处理,发送给数据处理平台。数据处理平台包括嵌入式处理器、FLASH、DDR、接口器件,以及运行在硬件之上的嵌入式实时操作系统和和各设备的驱动。
[0063] 其中,应用层是运行在核心层之上,主要包含设备管理、系统维护、数据交互、数据处理等不和硬件直接发生关系的软件。
[0064] 其中,网络与服务层负责和外部的数据交互,可以通过网络等接口实现信息交换。
[0065] 值得说明的是,嵌入式操作系统基于嵌入式Linux操作系统开发,嵌入式操作系统包括Bootloader、内核、文件系统和驱动设计。
[0066] 其中,Boot Loader为操作系统在内核运行之前运行的一段小的引导加载程序,通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
[0067] 具体为,系统上电后运行的第一段程序被称为引导加载程序,下面就以我们的通用PC机为例进行分析,BIOS和位于硬盘MBR中的OS Boot Loader一起组成了PC机的引导加载程序。其中BIOS的主要任务是硬件设备的初始化,分配系统资源和搬运存储在硬盘MBR区的操作系统加载程序Boot Loader到系统的RAM空间中。接下来就是Boot Loader加载引导操作系统。一般Boot Loader的主要任务是:搬运操作系统内核映象到RAM中,然后在RAM空间内跳转到内核的入口,解析启动参数,读取启动参数争取启动操作系统。然而在嵌入式系统中,类似BIOS这样的固化在硬件内的程序是没有的。因此在嵌入式系统中,启动加载任务是由Boot Loader单独完成的。
[0068] 一般地,系统硬件平台上电或复位后,CPU会从特定的地址读取第一条指令运行,通常这个特定的地址都是由CPU制造厂商出厂时预设好的。例如,基于Power  PC MPC8377core的CPU在复位时会读取地址0x00000000存储的内容,作为CPU第一条指令运行,在嵌入式系统中,通常都会有特定的固态存储设备被映射到这个预设的地址上。因此,在嵌入式系统中系统加电或复位后,处理器将会最先执行Boot Loader启动程序。
[0069] 其中,内核基于开放的Linux操作系统进行开发,内核版本为2.6.19。系统设计采用的内核是经过优化和裁剪,只包含必需的功能内核,主要包括了多任务调度、任务间通讯和同步、内存管理、时钟管理、中断处理等基本功能,其中,为保证实时性,系统采用时间片轮询和可抢占式相结合的任务调度模式。
[0070] Linux内核主要由5个模块组成,分别为:
[0071] (1)进程调度模块:有效地控制和管理进程对CPU资源的使用。
[0072] (2)内存管理模块:虚拟内存管理和控制,为所有进程十分安全地共享计算机的主内存区提供保障。
[0073] (3)文件系统模块:提供对外部设备驱动的程序支持和对驱动程序和应用程序存储的支持。
[0074] (4)进程间通信模块:提供多种进程之间的信息通信方式的支持。
[0075] (5)网络接口模块:提供对各种不同网络通信协议标准的访问支持和支持各种不同的网络硬件设备。
[0076] 具体的,在Linux内核中,所有的模块要顺利运行都依赖于进程调度模块。因为它们的正常运行都需要进程调度程序对它们的进程挂起(暂停)或重新运行有效调度。通常,一个模块会因为等待硬件的某些操作,而被系统默认挂起,而只有在硬件的操作完成后,这个模块才可以继续重新运行。
[0077] 具体的,在Linux内核中,进程调度子系统在规划进程所占的物理内存空间时则需要调用内存管理器来管理。
[0078] 具体的,在Linux内核中,进程间通信子系统在需要支持共享内存通信时会调用内存管理器来管理。
[0079] 具体的,在Linux内核中,虚拟文件系统通过网络接口来实现对网络文件系统(NFS)的支持。同样Linux内核也通过使用内存管理子系统来实现对内存虚拟盘(如ramdisk)设备的支持。而内存管理子系统也会通过调用文件系统提供的接口函数来实现内存存储的数据块的交换
[0080] 其中,驱动设计基于FPGA嵌入式系统的设备驱动程序开发,系统用到的驱动有串口驱动、网卡驱动、USB驱动、硬盘驱动、TS接口驱动以及看狗驱动等。其中OS/驱动层面与中间件层面全部为源码,可控;结构层面完全自行设计,可根据需要更改。
[0081] 具体的,从Linux 2.6起引入了平台设备机制,即platform device driver机制,Linux中大部分设备驱动都可以使用这套机制。和传统的device driver机制(通过driver register函数进行注册)相比,十分明显的优势在于platform机制将设备本身的资源注册进内核,由内核统一管理,在驱动程序中使用这些资源时通过platform device提供的标准接口进行申请并使用。这样提高了驱动和资源管理的独立性,并且如有较好的可移植性和交全性。GPIO设备具有双重身份:平台设备与混杂设备(miscdevice)。平台设备意味着GPIO控制器设备是属于平台的独立模块:混杂设备(即主设备号为10)是一种特殊的字符型设备,描述了GPIO控制器的访问方式是顺序的。在嵌入式Llnux2.6操作系统中,通过platform机制,对外设进行管理。
[0082] 在Linux2.6内核中platform设备用结构体platform-device来描述,该结构体定义在kernel\include\linux\platformesdevice.h中:
[0083] struct platform_device{
[0084] const char*name;//平台设备的设备名
[0085] u32 id;//平台设备的设备ID
[0086] struct device dev;//设备结构体
[0087] u32 num_resources;//平台设备使用的各类资源数量
[0088] struct resource*resource;//资源
[0089] };
[0090] 该结构一个重要的元素是resource,它存入了最为重要的设备资源信息。在嵌入式开发工具EDK中生成BSP(板级支持包)的时候有一个设备参数头文件xparameter.h,里面定义了相关设备的设备数量、地址资源、中断资源和时钟资源等。在添加平台设备信息的时候需要用到该头文件中定义的地址信息和中断信息,在编写驱动之前,需要在该文件中添加有关GPIO控制器的设备定义:
[0091]
[0092]
[0093] 上述的代码定义了GPIO设备名称——xilinx_gpio,XPA_GPIO平台设备结构中name元素和设备驱动的platform_driver结构体中的driver.name必须是相同的。这是因为在平台设备驱动注册时会对所有己注册的platform_device中的name和当前注册的platform_driver的drivername进行比较,使得platfrom_device和platform_driver建立关联,只有找到相同的名称的platfrom_device才能注册成功.在平台设备的描述中GPIO设备定义了2个资源,一个是I/O空间资源,描述了GPIO控制器设备所占用的总线地址范围,IORESOURCE_MEM表示第1组描述的是内存类型的资源信息;另一个是中断资源,描述了设备的中断号,IORESOURCE_IRQ表示第2组描述的是中断资源信息,设备驱动会根据类型来获取相应的资源信息.本项目共用到三个GPIO设备XPAR GPIO(0),XPAR GPIO(1),XPAR GPIO(2)。
[0094] virtex_devices.c中的platform_device是在系统启动时,使用virtexinit(void)函数进行注册。
[0095] 同时被注册还有很多virtex平台的设备,该函数是在系统初始化阶段调用,驱动注册时需要匹配内核中所有己注册的设备名,因此platform_device设备的注册过程必须在相应设备驱动加载之前被调用。
[0096] 与平台设备对应的平台设备驱动程序由struct platform_driver描述:
[0097]
[0098] GPIO的驱动程序中结构体struct platform_driver主要实现了xgpio_driver的探测和移除函数。代码如下:
[0099]
[0100]
[0101] 最后需要调用platform_driver_register()函数注册平台设备驱动,在注册成功后会调用platform_driver结构元素probe函数指针,进入probe函数后,需要获取设备的资源信息。注册平台设备驱动的实现函数如下:
[0102]
[0103] Linux是保护模式的操作系统,内核和应用程序分别运行在完全分离的虚拟地址空间,用户空间的进程一般不能直接访问硬件。设备驱动充当了硬件和应用软件之间的纽带,它与底层硬件直接打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询、中断处理、DMA通信,进行物理内存向虚拟内存的映射,最终使通信设备能收发数据,使显示设备能否显示文字和画面,使存储设备能够记录文件和数据。
[0104] 使用platform_driver_register(&xgpio_driver)注册GPIO设备驱动成功后,利用系统探测函数probe(),获取设备需要的资源信息。在探测函数中,需要通过platform_get_resource()函数分别获得GPIO内存和IRQ资源:
[0105] struct resource*platform_get_resource(struct platform_device*dev,unsigned int type,unsigned int num);
[0106] 根据参数type所指定的类型,IORESOURCE_MEM和IORESOURCE_IRQ来获取指定的资源.
[0107] 驱动程序中相应代码为:
[0108] regs_res=platform_get resource(pdev,IORESOURCE MEM,0);
[0109] irq_res=platform_get_resource(pdev,IORESOURCE IRQ,0);
[0110] 在获取资源成功后,驱动程序会申请内核空间和I/O空间,将物理地址映射到虚拟地址以及申请中断等。在Linux内核空间申请内存的主要函数是kmalloc(),kzalloc()。由这两个函数申请的内存位于物理内存映射区域,在物理上也是连续的。它们与真实的物理地址只有一个固定的偏移,存在较简单的转换关系。
[0111] 驱动程序中与内存申请有关的程序代码:
[0112] xgpio_inst=lanalloc(sizeof(struct xgpio_instance),GFP_KERNEL);
[0113] miscdev=kmalloc(sizeof(struct miscdevice),GFP KERNEL);
[0114] 第一个参数是分配的空间大小,第二个标志表示是在内核空间的进程中申请内存,GFP KERNEL标志申请内存时,若暂时不能满足,则进程会睡眠引起阻塞。使用kmalloc(),kzalloc()申请的内存要用kfree()释放。
[0115] GPIO设备控制器有一组寄存器用于读写设备和获取设备状态,即控制寄存器、状态寄存器和数据寄存器。这些寄存器位于I/O内存空间。首先需要调用request_mem_region()申请资源,接着将寄存器地址通过ioremap()将物理地址映射到内核空间虚拟地址,之后才可以调用编程接口访问这些设备的寄存器。访问完成后用iounmap()对申请的内核虚拟地址进行释放,并释放申请的I/O内存资源o GPIO控制器驱动程序的相关代码如下:
[0116]
[0117] 在Linux的文件操作系统调用中,字符型设备一般涉及到打开,读写和关闭文件等操作。在控制器驱动程序中要给内核提供file_operations结构,才能为设备驱动提供用户调用的接口,定义如下:
[0118]
[0119]
[0120] 当系统启动后,GPIO控制器被初始化,申请资源和内核I/O内存空间。用户调用open函数打开GPIO设备时,系统调用了xgpio_open()函数,主要完成使能中断等功能.在打开设备后,返回一个文件指针,可以用这个文件指针对设备进行一系列操作。当用户调用read()函数对控制器进行读取的时候,系统调用了xgpio_read函数,读取GPIO设备数据寄存器的值。当用户调用close()函数关闭GPIO设备时,系统调了用xgpio_release()函数,禁止中断。
[0121] 在打开GPIO控制器后,依据GPIO数据文档,向GPIO全局中断使能寄存器GIER写入0x80000000,向中断使能寄存器IER写入0x00000003来使能中断:xgpio_open()函数实现代码如下:
[0122]
[0123] 在关闭GPIO控制器后,向GPIO全局中断使能寄存器GIER写入0x0,向中断使能寄存器IER写入0x0来禁止中断。xgpio_release()函数实现代码如下:
[0124]
[0125] 嵌入式Linux设备驱动程序编写完成后,需要将驱动程序加到内核中,这要求修改嵌入式Linux的源代码,然后重新编译内核。步骤如下:
[0126] 1)将设备驱动文件拷贝到llinux/driver/char目录下
[0127] 2)在/linux/driver/char目录下Makefile中增加如下代码:
[0128] obj-$(CONFIG_XMU_GPIO)+=xgpio;
[0129] 在/linux/driver/char目录下Kconfig中增加如下代码:
[0130]
[0131] 3)重新编译内核,进入Linux目录,执行以下代码
[0132] #make menuconfig
[0133] 在Character Devices-->中找到<>XMU_GPIO选中为加载模块的形式:<*>XMU_GPIO,然后保存退出。
[0134] #make
[0135] 这样得到的内核包含了用户的设备驱动程序。
[0136] 在应用程序中利用函数open()系统调用xgpio_open()函数来使能GPIO中断,当中断发生时,执行中断处理程序;应用程序执行read()函数时,系统调用了xgpio_read()函数读取GPIO数据寄存器的值;当应用程序执行close()函数时,系统调用xgpio_release()函数,屏蔽GPIO中断。此时,驱动程序测试结束。
[0137] 实施例2
[0138] 作为本发明的第二种实施例,为了便于接收卫星数据广播,并依照终端站点资料属性配置和本地权限确定是否接收到达资料,本发明还对接收解码子系统作出改进,作为一种优选实施例,如图3所示,接收解码子系统包括数据文件接收模块、卫星信号处理模块、接收调度模块、传输应用协议解析模块和喷泉编码解析模块;数据文件接收模块用于卫星接收天线、低噪放单元实现卫星电视信号的接收;卫星信号处理模块用于卫星电视信号的变频、解调、解码和气象水文数据的存放;接收调度模块用于根据优先级调度线程的方式进行气象水文数据文件处理;传输应用协议解析模块利用气象水文专用传输应用协议对气象水文数据业务编码包进行解析,并将解析出的文件存至硬盘临时存储目录;喷泉编码解析模块用于将气象水文专用传输应用协议解析模块解析出的临时文件进行喷泉编码解码,解析成气象水文数据原始文件,存储至临时目录。
[0139] 本实施例中,数据接收模块基于卫星接收天线、低噪放单元实现卫星电视信号的接收。卫星接收天线接收到卫星信号,经过室外单元降噪处理,将信号传输至卫星信号处理模块。
[0140] 进一步的,卫星信号处理模块实现卫星电视信号的变频、解调、解码和气象水文数据的存放。基于DVB-S(数字卫星广播系统标准),信号流的解调采用QPSK(四相相移键控调制)方式,工作频率为L波段(950-2150MHz)。
[0141] 其中,程序关联表包含对应的包头PID值固定为0x0000。通过程序关联表可以找到节目映射表的PID值,进而得到数据量的PID值。因此找到程序关联表是解析TS流的关键。通过上述分析,得到解析TS流的流程如图4所示,解析步骤如下:
[0142] 1)、依次按顺序解析收到的TS包的包头,并提取其PID值。如果其PID值是0x0000,则执行步骤2),否则丢弃该TS包,继续接收下一个TS包。
[0143] TS包头的解析数据结构(只对自适应字段之前的内容进行检验):
[0144] typedef struct TsS_Header{
[0145] unsigned char Sync_byte;//同步字节
[0146] Bool Transport_error_indicator;//传送错误指示
[0147] Bool Payload_unit_star_indicator;//净荷开始指示
[0148] Bool Transport_priority;//传送优先级
[0149] unsigned short PID;//PID
[0150] unsigned char Transport_scrambling_control;//传送加密控制位[0151] unsigned char Adaptation_field_control;//自适应字段控制字[0152] unsigned char Continuity_counter;//连续性计数器
[0153] }TS_Header_t;
[0154] 同一数据流的应当具有相同的PID。利用净荷开始指示和连续性计数器的定义,只有净荷开始指示为1的TS包才有数据加载,并且连续性计数器应该是从0x0000~0x1111连续计数的。利用这些,可以检测封装气象水文数据流的TS的连续性和完整性,也是判断正确组数据包的依据。
[0155] 2)、从1)中PID为0x0000的程序关联表中获取节目映射表所对应的PID。
[0156] 3)、继续按顺序解析收到的TS包的包头,并提取其PID值,直到其值与(2)中获取的节目映射表所对应的PID一致。从该包中提取节目码流格式码和气象水文数据流的PID,挂载气象水文数据提取进程。现在已经得到了气象水文数据流的信息,因此可以为要接收到的气象水文数据文件挂载解码函数,同时创建解码线程。
[0157] 气象水文数据提取进程的主要数据结构:
[0158] typedef struct TS_PID_filter{
[0159] unsigned short subtype;//数据类型
[0160] unsigned short PID;//PID编号
[0161] unsigned char*pes_buf;//打包基本流接收缓冲区
[0162] unsigned int pes_curposition;//打包基本流接收缓冲区数据位置[0163] TS_Header_tTSPes_Header;//打包基本流头部结构
[0164] unsigned long int pts;//当前打包基本流对应的文件显示时间戳[0165] unsigned long int dts;//当前打包基本流对应的文件解码时间戳[0166] unsigned short payloadtype;//当前PID对应的净荷类型
[0167] void*pFuncPutStream;//打包基本流放入解码缓冲回调函数指针[0168] }*TS_PID_filter_t;
[0169] 4)、后续收到的TS包,依然要逐个提取其PID值并进行甄别。如果是程序关联表,跳转回(1),更新程序关联表数据。如果是打包基本流,从中解码出气象水文数据,组成完整的气象水文文件,送入文件缓冲区,等待后续处理。
[0170] 由于TS流的封装和数据装载方式灵活多样,一个完整的节目特定信息(PSI)分组和气象水文数据(PES)分组往往都被封装在多个TS包中,因此,怎么样准确的从多个TS包中将完整的节目特定信息分组和气象水文数据分组解析出来,同时还能够将头部数据和气象水文数据从气象水文数据分组中成功的进行分离就成为了TS流解析的重点问题。气象水文数据的头部数据包含有接收数据分组大小、数据类型以及气象水文数据文件的时间戳等重要信息,而TS包头中的净荷开始指示位则指出了该TS包中有效负载起始的第一个字节,也就是节目特定信息或者气象水文数据头部的起始,但是无法保证里面含有完整的节目特定信息或者气象水文数据头部信息。因此程序必须要确保能够完整的接收气象水文数据包头,然后再对包头进行解析,根据其中的气象水文数据分组长度信息和气象水文数据分组数据长度等定位信息来进行定位和接收完整的气象水文数据。针对上述情况,本发明根据净荷开始指示位的不同数值分别进行处理,具体如下:
[0171] (1)如果接收到的TS包PID无误,同时净荷开始指示位值为1,说明其有效负载分是新的气象水文数据分组的起始。此时再检查该TS包中是否包括全部的分组头部信息。如果包含全部分组头部信息,则对分组头部信息进行解析,置位包头解析标志,然后再根据解析结果对其余气象水文数据部分进行定位和处理。如果没有包含完整分组头部信息,则现将该TS包中的包头信息暂时存储,等待继续接收后面相同PID的TS包。
[0172] (2)如果接收到的TS包PID无误,同时净荷开始指示位值为0,此时开始对包头解析标志进行判断。如果已经置位,说明其有效负载段中没有节目特定信息或者气象水文数据头部。因此可以根据之前的气象水文数据分组头部解析结果对气象水文数据进行定位和接收,进而组成完整的气象水文数据。
[0173] 气象水文数据分离算法的流程图如图5所示。
[0174] 进一步的,针对气象水文文件接收呈现短时间内大量涌入的实际情况,硬盘中专门开辟了一块大小适中缓冲区域,临时存储刚刚接收并且等待处理的文件,并形成文件排队链表。由于气象水文文件较多,必须考虑待处理文件积压情况,当链表节点超过特定个数时,系统自动将后加入的节点存入本地硬盘的缓冲区域;删除内存中的链表节点后,再陆续从缓冲区中将待处理节点内容读入。如此一来,需要一个算法来确定链表的先后顺序问题。
[0175] 为了能充分合理的利用嵌入式系统,保证重要的数据能够第一时间存储到硬盘的指定位置,实现气象水文数据接收的高效率,必须改进信息的收发机制,按优先级调度线程的方式进行气象水文数据文件处理,算法流程如图6所示,优先级的划分根据发送数据的种类确定,发送优先级见下表:
[0176] 优先级表
[0177]
[0178] 常规资料和非常规资料通道的优先级只有在信道发生争用的时候才能体现出来。如果次高优先级通道中发送的文件总量超过了某个阈值,系统通过调整,降低低优先级通道的线程数,增加高优先级通道的线程数,保证数据接收的实时性。应急通道的优先级高于其他任何一个通道,它发送的是实时性要求非常高的资料,只有在重要的任务保障或者发送少量的重要临时文件时应用,线程调度策略流程图如图7所示。
[0179] 此外,气象水文专用传输应用协议解析模块利用气象水文专用传输应用协议对气象水文数据业务编码包进行解析,并将解析出的文件存至硬盘临时存储目录。接收终端通过站点配置子系统配置PID,在配置生效之后,终端就可以实现对气象水文数据的自行下载,具体的接收过程如下:
[0180] 1)初始化嵌入式终端,站点配置子系统自动运行,该子系统根据系统预置和用户配置的授权文件产生授权信息,同时,也可以从发送端获取发送的授权信息,并自动按照最新的授权信息更新本机配置;
[0181] 2)根据本机的授权信息,打开有权限接收文件的第一个气象水文数据通道,根据站点配置子系统中提供的PID信息开始进行接收,所有气象水文数据的PID都是一样的,TID则是每个气象水文文件都不一样,每一个气象水文数据文件收完后,下一个有权限接收气象水文数据文件的数据通道会被系统自动打开,如此往复,系统会依次接收下来所有有权接收的气象水文数据文件;
[0182] 3)一个气象水文数据列表发送完毕后,再开启第二个列表的发送,此时,嵌入式接收设备会根据是否更新授权信息而根据最新的授权信息而决定是否继续接收。
[0183] 其中,将文件数据写入嵌入式设备SATA硬盘的应用开发,设计实现流程如下:
[0184] 1)初始化任务,包括创建任务、创建消息队列、打开中断、打开授权数据接收通道等操作;
[0185] 2)创建并打开数据缓冲区,根据授权信息打开气象水文数据PID通道,按照3.2中所描述的步骤开始接收气象水文数据;
[0186] 3)根据接收到的第一个section,解析出文件名、文件id、文件长度等气象水文数据文件系统信息,同时给硬盘发送创建文件的消息,在硬盘中创建一个文件;
[0187] 4)将section按顺序接收,并依次存入缓冲区。若缓冲区写满,给硬盘发送写文件消息。该消息将缓冲区内的数据按照指定的方式写入硬盘中预先被指定的位置中。同时采用了双缓冲区的设计,以避免缓冲区内的数据被冲洗掉并且保证了气象水文数据的接收速度。先将接收缓冲区内的数据导入写缓冲区,再从写缓冲区将数据写入硬盘;
[0188] 5)将4)进行重复,直到满足条件this_section==total_section。此时系统发送最后一个写文件消息,成功写入硬盘后,整个气象水文数据文件即接收完成。
[0189] 授权信息的解析和文件数据解析及存储流程如图8所示。
[0190] 具体的,喷泉编码解析模块负责将气象水文专用传输应用协议解析模块解析出的临时文件进行喷泉编码解码,解析成气象水文数据原始文件,存储至临时目录,本发明采用LT码,LT码是第一个真正意义上的喷泉码,它可以生成任意长的一个编码数据流,其每一个编码包都按同一算法独立生成,算法如下:
[0191] 1)将原始数据等分为k个数据包,在1~k范围内按某一个分布Ω(称为编码度分布)随机选取一个整数d,其中k称为该码的码长,d称为编码包的度;
[0192] 2)在数据包中均匀的随机选取d个不同包;
[0193] 3)对这d个包求异或,得到一个编码包。
[0194] 编码度分布Ω=[Ω1,Ω2,…,ΩD]表示随机选到整数d的概率为Ωd,其中D为能取到的最大度数。编码度分布还可以用函数的形式来表达,即:
[0195] Ω(x)=Ω1+Ω2x+Ω3x2+…+ΩDxD-1
[0196] LT码的译码采用一种迭代算法。在译码的每一步,译码器都在编码包集合中寻找度为1的包,这些包组成的集合称为输出可译集。他们连接的数据包组成的集合称为输入可译集。输出可译集中的元素与对应的相连的数据包取值相同,因此输入可译集中的所有数据包都能被直接译出。在此之后,译码器将一个译出的数据包与跟它相连的所有编码包进行异或,计算结果取代对应编码包原来的值,完成之后删除与它们之间的连接关系。重复上述过程直到不存在度为1的包为止。如果所有数据包都被恢复则译码成功,否则译码失败。
[0197] LT码的编码和译码均需ο(kln(k/δ))次符号异或操作。接收端需接收略大于k个编码包(符号)才能以不低于1-δ的概率成功译码。为了提高译码的成功率,LT码的译码一般需要接收大于k个数据包,这个额外接收的编码数量与码长k之比称为译码开销(overhead),其典型值为5%,接收解码子系统流程如图9所示。
[0198] 实施例3
[0199] 作为本发明的第三种实施例,为了便于对资料类型进行识别并对资料存储目录和资料信息进行操作和管理,本发明还对数据属性管理子系统作出改进,作为一种优选实施例,如图10所示,数据属性管理子系统包括资料存储目录管理模块和资料信息管理模块;资料存储目录管理模块用于允许用户查看资料存储的默认目录并定制指定类型资料的接收目录;资料信息管理模块用于分系统管理所有可接收资料的名称、唯一标识、默认存储目录、到达时段等信息,可由用户决定是否接收某种资料。
[0200] 本实施例中,资料存储目录管理模块允许用户查看资料存储的默认目录并定制指定类型资料的接收目录。
[0201] 进一步的,资料信息管理模块提供了分系统所有可接收资料的名称、唯一标识、默认存储目录、到达时段等信息,可由用户决定是否接收某种资料。
[0202] 具体的,数据存储子系统负责将数据资料存储在与资料类型对应的目录中,数据存储子系统通过气象水文专用传输应用协议解析模块中解析到数据包中的资料标识,识别其资料类型,根据资料存储目录管理模块所提供的存储目录位置,进行定位并存储。
[0203] 实施例4
[0204] 作为本发明的第四种实施例,为了便于实现数据接收、嵌入式平台状态的运况显示、分系统站点注册、站点属性设置、本地过期资料清除、存储空间可用空间检查,本发明还对系统状态监测及配置子系统作出改进,作为一种优选实施例,如图11所示,系统状态监测及配置子系统包括接收卡状态模块、系统状态监测模块、数据文件接收状态模块、存储空间可用空间检查模块、本地资料过期清除模块、站点注册模块、站点信息管理模块、时统配置模块和站点性能报警模块;接收卡状态模通过访问接收卡,实时获取并显示接收卡的信号状态、信号电平、信号强度等信息;系统状态监测模块用于监测并显示嵌入式设备的CPU利用率、内存使用率、可用存储,分系统的数据接收成功率、运行时长等信息;存储空间可用空间检查模块用于定时监测本地存储的剩余空间,与本地资料过期模块相配合,确保存储空间可用;本地资料过期模块用于清除维护本地存储的已接收资料,针对已超过规定时间范围的资料进行删除;站点注册模块用于负责处理来自主站的注册指令,完成分系统初始化,获取资料接收许可,以及相应的权限;时统配置模块用于同一数据分发分系统、数据接收分系统、站点管理分系统、组播代理分系统之间的信息交互,以及日志数据和事件放入标准;站点性能报警模块用于实时检查存储空间可用率、CPU利用率等状态,并对低于正常值的状态项,进行警示。
[0205] 本实施例中,所有状态和配置信息都可以通过Web系统配置及状态显示子系统使用网页的方式进行查看和修改,并且通过通信传输子系统实时上传至信息中心。终端状态、接收卡状态、分系统版本状态和配置信息还可以通过设备前置面板进行选择查看。
[0206] 进一步的,接收卡状态模块通过访问接收卡,实时获取并显示接收卡的信号状态、信号电平、信号强度等信息。
[0207] 具体的,系统状态监测模块监测并显示嵌入式设备的CPU利用率、内存使用率、可用存储,分系统的数据接收成功率、运行时长等信息。
[0208] 此外,存储空间可用空间检查模块定时监测本地存储的剩余空间,与本地资料过期模块相配合,确保存储空间可用。
[0209] 除此之外,本地资料过期模块清除维护本地存储的已接收资料,针对已超过规定时间范围的资料进行删除,以保证本地存储空间可用。用户可以结合存储空间实际自定义资料的存储时间。
[0210] 值得说明的是,站点信息管理模块对站点信息进行有效管理。站点信息包括站点的名称、地点、唯一标识、序列号、联系人、可接收资料种类以及所属单位等。
[0211] 实施例5
[0212] 作为本发明的第五种实施例,为了便于分系统接收到的资料,通过Samba的方式传输到本地或者远程计算机的目录中,本发明还对数据共享子系统作出改进,作为一种优选实施例,如图12所示,数据共享子系统包括共享任务管理模块、资料共享链路检测模块和Samba资料共享模块;共享任务管理模块用于实时获得分系统资料接收状态,驱动资料共享任务完成资料传输操作;资料共享链路检测模块用于实时监测资料传输链路的畅通性;Samba资料共享模块用于文件之间的网络共享。
[0213] 本实施例中,共享任务管理模块以任务为单位,管理资料共享操作,提供创建向导,可以实现共享任务的启动、停止、配置和删除操作。资料接收状态实时获得分系统资料接收状态,驱动资料共享任务完成资料传输操作。
[0214] 进一步的,资料共享链路检测模块实时监测资料传输链路的畅通性。数据共享子系统的具体配置可以通过Web配置及状态显示子系统使用网页的方式进行。
[0215] 具体的,Samba资料共享模块是一种在不同主机之间共享文件和打印机及其他信息的协议,是运行在Unix Like类操作系统之上的一组软件包。Samba软件包是Linux与Windows之间文件相互共享的桥梁,它的主要功能有:(1)把Linux服务器上的目录共享给Windows系列的操作系统;同时,把Linux服务器上安装的打印机共享给Windows主机使用;(2)在Linux系统下访问Windows服务器上的共享文件,也可以进入到Windows主机中创建文件。
[0216] Samba也是基于SMB协议的一种软件,SMB协议是一种客户端/服务器模型协议,在Windows客户端通过该协议可以访问Linux服务器上的共享资源.SMB协议的原理是以请求应答方式进行的,当用户(客户端)发出请求时,然后经过网络传输到服务器端,服务器端接收到这些SMB请求后,通过对请求消息的解释,向用户(客户端)返回响应,这样Windows客户端就可以访问Samba文件服务器了。
[0217] Samba的工作原理就是使NetBIOS和SMB这两种协议运行在TCP/IP通信协议之上,并且使用NetBIOS名字解释器让Unix Like类计算机可以在Windows计算机的网上邻居中被看到,从而和Windows主机进行直接访问;同时,还可以实现Linux主机访问Windows服务器共享资源的目的。
[0218] 在使用Samba软件包之前,首先介绍一下启动Samba服务时,所要启用的两个后台守护进程:(1)smbd;这个进程的主要功能是负责建立对话,对到达局域网上的SMB消息块进行处理,也就是说如果该消息块指定的是一个文件,则该共享资源就是一个文件;而如果是一个打印机发送请求,那么就要求访问一台打印机.(2)nmbd;这个后台进程的主要任务是负责进行Samba服务器的名字解析,并为Windows的网上邻居提供共享资源列表,使Samba服务器的共享资源出现在Windows的网上邻居中;简单的说就是通过主机名的解析来浏览Linux主机。
[0219] 另一方面,本发明还提供一种便携式机动卫星气象水文信息保障方法,其方法步骤如下:
[0220] S1、由卫星天线接收卫星电视信号并用同轴电缆传至接收终端;
[0221] S2、信号通过高频头解调处理后变为TS流。数据解码子系统根据TS包头中的PID判断是否为气象水文数据,如果不是则丢弃。如果是,则将其解析成气象水文业务编码流;
[0222] S3、按照气象水文专用传输应用协议将气象水文业务编码流解析为MPE/IP流;
[0223] S4、将MPE/IP流进行UDP解封,变为临时存储的喷泉编码文件;
[0224] S5、将临时存储的喷泉编码文件进行喷泉编码解码,变为数据编组;
[0225] S6、将数据编组文件进行按照数据属性管理子系统中用户定制资料的接收目录或资料对应的默认目录进行存储。
[0226] 以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈