本发明涉及一种基于北斗三代卫星短报文传输文件的方法及通信终端。
背景技术:
tcp/ip(transmissioncontrolprotocol/internetprotocol)协议是internet国际互联网络的基础,是网络中使用的基本的通信协议。其中tcp传输协议是面向连接的、可靠的传输层通信协议,实现了网络数据传输的稳定可靠。
同时,依据北斗卫星通信导航官网2019年12月发布的《北斗卫星导航终端应用服务体系》相关文件,北斗三代卫星短报文将按照服务区域进行划分为两种服务形式,分别为:gsmc(globalshortmessagecommunication全球短报文通信)、rsmc(globalsystemformobilecommunications区域短报文通信),并且服务数据量及频度分别为:560bit(≥1min);14000bit(30s,最高1s)。北斗三代较北斗一代短报文提供能力有很大的提升,不管是覆盖范围还是数据通信能力方面。
基于北斗三代全球服务能力的提升及现有网络tcp稳定传输数据的优势。本文提出了一种基于北斗三代卫星短报文传输文件的方法及通信终端,能够充分发挥国产北斗三代卫星短报文全球服务能力的优势,实现数据的实时、稳定可靠传输,为未来北斗短报文的推广提供坚实基础。
技术实现要素:
本发明针对上述的技术问题,本发明提出了一种基于北斗三代卫星短报文传输文件的方法,包括以下步骤:
s1:封装北斗三代短报文通信协议栈;
s2:基于协议栈设计应答机制,实现接收端与发送端同步;
s3:发送端确认短报文服务类型,将文件分割成多个数据块并进行发送;
s4:接收端接收来自发送端的数据块,实行接收排序机制对原始文件进行还原。
优选的是,所述s3中还包括有可重传机制,发送文件过程中,发送端每发送一个数据块均对是否收到接收端返回的ack确认包进行确认,如未收到,则重新发送上一数据块。
优选的是,s1的步骤包括:
发送端对待发送文件进行解析获取对应文件的文件属性,通过定义文件属性结构体,将上述文件属性进行封装。
优选的是,s2的步骤包括:
发送端将封装后的发送文件按照北斗格式转换成北斗短报文格式进行编码,并组成数据包,将此数据包作为syn同步包进行发送,同时发送端启动定时器;
接收端在收到syn同步包后,进行格式解析,获取syn同步包中各字段信息,同时启动接收线程等待接收数据包,并向发送端发送ack确认包;
如果发送端收到ack确认包,则进行s3步骤;如果发送端规定时间内没有收到接收端返回ack确认包,则再次发送syn同步包。
优选的是,s3的步骤包括:
s31:按照发送端设备的所在区域,确定北斗三代卫星的短报文服务类型,并根据短报文服务类型将待发送文件进行分割;
s32:把上述分割得到的一数据块放入发送队列,进行发送,等待接收端的ack确认,同时启动定时器,在一分钟内如果未收到ack确认,则对本数据块进行重新发送,若正常接收ack确认,则直接对s31中分割的下一数据块进行发送。
优选的是,s31中所述短报文服务类型若为gsmc,则将文件分割成70字节;若为rsmc,则将文件分割成1750字节。
优选的是,s4的步骤包括:
s41:接收端接收到一数据块后,根据数据块的id进行排队,如果已经接收则直接丢弃,同时发送ack确认消息,否则根据接收的数据块的id进行排队,同时发送ack确认消息;
s42:在接收到最后一数据块并发送ack确认消息之后,接收端根据接收的syn同步包内的文件名称和格式,创建对应文件,同时将接收队列中的数据块,按照id号的顺序写入创建的文件中并停职接收过程。
一种基于北斗三代卫星短报文的通信终端,实施上述权利要求1-7任意一项所述的方法,包括:
主控模块,协调各个模块之间的数据或指令交互;
通信控制逻辑模块,电性连接所述主控模块,所述主控模块控制所述通信控制逻辑模块封装北斗三代短报文通信协议栈;
指令交互模块,电性连接所述主控模块,所述主控模块控制所述指令交互模块实现本通信终端与远程控制中心进行指令交互;
设备位置/时间模块,电性连接所述主控模块,所述设备位置/时间模块将获得的自身位置及时间信息传送给所述主控模块,所述主控模块根据位置信息确定短报文服务类型;
北斗三代收/发模块,电性连接所述通信控制逻辑模块,所述主控模块控制所述北斗三代收/发模块进行北斗三代卫星短报文的gsmc或rsmc信息的接收或发送。
优选的是,还包括:
状态数据收集模块,电性连接所述主控模块,所述主控模块控制所述状态数据收集模块采集本通信终端自身运行过程中各个状态数据并传输给所述主控模块
海洋数据采集模块,电性连接所述主控模块,所述海洋数据采集模块将采集到的海洋数据汇集到所述主控模块,并由主控模块进行后续逻辑处理;
存储模块,电性连接所述主控模块,所述主控模块控制所述存储模块存储所述数据采集模块采集的数据;
供电模块,电性连接所述主控模块,所述主控模块的控制该供电模块为通信终端的各个模块提供不同的工作电压。
优选的是,所述海洋数据采集模块设置于海洋观测设备或船载设备上。
与现有技术相比,本发明的优点和积极效果在于:
1、实现设备数据传输的全球化及保证数据传输安全可靠。
2、为深远海自主海洋观测设备或船载设备数据稳定传输提供解决方案。
3、解决现有深远海数据采集传输过程中数据后汇集的缺点。
4、解决了北斗短报文不稳定、容易丢包的问题。
附图说明
图1为基于北斗三代卫星短报文的通信终端。
图2为一种基于北斗三代卫星短报文的传输文件的方法的流程图;
图3为本方法中接收端与发送端同步过程;
图4为本方法中北斗三代卫星短报文件传输协议栈实现图;
具体实施方式
以下,结合附图对本发明的具体实施方式进行进一步的描述。
实施例1:
如图1所示,一种基于北斗三代卫星短报文的通信终端,包括:
主控模块,协调各个模块之间的数据或指令交互;
通信控制逻辑模块,电性连接所述主控模块,所述主控模块控制所述通信控制逻辑模块封装北斗三代短报文通信协议栈;
指令交互模块,电性连接所述主控模块,所述主控模块控制所述指令交互模块实现本通信终端与远程控制中心进行指令交互;
设备位置/时间模块,电性连接所述主控模块,所述设备位置/时间模块将获得的自身位置及时间信息传送给所述主控模块,所述主控模块根据位置信息确定短报文服务类型;
北斗三代收/发模块,电性连接所述通信控制逻辑模块,所述主控模块控制所述北斗三代收/发模块进行北斗三代卫星短报文的gsmc或rsmc信息的接收或发送;
状态数据收集模块,电性连接所述主控模块,所述主控模块控制所述状态数据收集模块采集本通信终端自身运行过程中各个状态数据并传输给所述主控模块;
海洋数据采集模块,电性连接所述主控模块,所述海洋数据采集模块将采集到的海洋相关温、盐、流等数据汇集到所述主控模块,并由主控模块进行后续逻辑处理;
存储模块,电性连接所述主控模块,所述主控模块控制所述存储模块存储所述数据采集模块采集的数据;
供电模块,电性连接所述主控模块,所述主控模块的控制该供电模块为通信终端的各个模块提供不同的工作电压。
主控模块协调各个模块之间的数据或指令交互,首先,主控模块控制通信控制逻辑模块封装北斗三代短报文通信协议栈;然后,主控模块根据设备位置/时间模块所获取的通信终端自身的位置及时间信息,确认北斗三代短报文服务类型是gsmc还是rsmc;最后,北斗三代收/发模块根据确认的北斗三代卫星短报文服务类型进行短报文的gsmc或rsmc信息的接收或发送,在此过程中,主控模块控制指令交互模块实现本通信终端与远程控制中心进行指令交互。
主控模块通过状态数据收集模块获取终端运行过程中各状态数据,以便于各模块间协同工作;海洋数据采集模块依据携带的各类传感器进行海洋相关温、盐、流等数据采集,并存储于存储模块中,主控模块对存储模块中数据进行读取并进行后续的逻辑处理;在本通信终端工作的过程中,供电模块在主控模块的控制下为通信终端的各个模块提供不同的工作电压。
在本实施例中,海洋观测设备或船载设备上安装的海洋数据采集模块,用于采集海洋温、盐、流等数据,并传输到主控模块,并由主控进行数据汇集、检错和纠错。
如图2所示,本实施例还提出了一种基于北斗三代卫星短报文的传输文件的方法,包括以下步骤:
s1:通信控制逻辑模块封装北斗三代短报文协议栈,具体而言,发送端对待发送文件进行解析获取对应文件的大小、名称、数据块个数及后缀格式等文件属性,通过定义文件属性结构体,将上述文件属性进行封装,格式如下:
s2:基于协议栈进行设计应答机制,实现接收端与发送端同步,具体而言,发送端将封装后的文件属性结构体按照北斗短报文格式进行编码,组成数据包,并将此数据包作为syn(synchronize)同步包进行发送,同时发送端启动定时器;如果发送端规定时间内没有收到接收端返回ack(acknowledgement)确认包,则再次发送syn包,如果发送端收到ack确认包,则进行s3步骤;接收端在收到syn同步包后,进行格式解析,获取syn同步包中各字段信息,同时启动接收线程等待接收数据包,并向发送端发送ack确认包。
s3:发送端确认短报文服务类型,分割文件并进行发送;首先,根据北斗三代卫星的定位同步功能,设备位置/时间模块获取设备的位置和时间信息;然后依据发送设备的所在区域,确定北斗卫星短报文服务类型为gsmc或rsmc,并根据确定的北斗卫星短报文服务类型将发送文件分割为70字节或1750字节;最后,将上述分割得到的数据块放入发送队列中,进行发送,同时启动定时器,等待接收端的ack确认,在一分钟内如果未收到ack确认,则对本数据块进行重新发送,若正常接收到ack确认,则直接对上述分割的下一数据块进行发送。
发送端在每次数据块发送后,均需进行ack确认,实现对数据边发送边检查的目的,提高了文件传输的稳定性和准确性。
s3中设置的可重传机制,在发送文件的过程中,发送端每发送一个数据块,均会确认是否收到接收端返回的ack确认包,当收到时,继续发送下一个数据块,当在规定时限内未收到接收端返回的ack确认包时,重新发送本数据块,及时发现文件传输过程中的错误并及时纠正。
s4:接收端接收来自发送端的数据块,实行接收排序机制对原始文件进行还原。具体而言,接收端接收到一数据块后,根据数据块的id进行排队,如果已经接收则直接丢弃,同时发送ack确认消息,否则根据接收的数据块的id进行排队,同时发送ack确认消息;接收端根据同步过程中获得的数据块数量,确认是否接收完毕,在接收到最后一数据块并发送ack确认消息之后,根据接收的syn同步包内的文件名称和格式,创建对应文件,同时将接收队列中的数据块,按照id号从小到大的顺序写入创建的文件中并停止接收过程。
如图3所示接收端与发送端的同步过程。首先,北斗发送端发送syn同步包至北斗接收端,syn同步包中包括文件名称、文件后缀和发送包数量等信息数据;其次,北斗接收端接收syn同步包,并进行格式解析得到syn同步包中需要接收的数据包的格式、文件名称以及文件格式等,接收端启动接收线程等待接收数据包,同时向发送端发送ack确认包;最后,如果北斗发送端接收到接收端返回的ack包,对ack包进行解析,北斗发送端和北斗接收端完成同步过程,如果在一定时限内,北斗发送端未接收到ack包,则表示此次同步过程失败,北斗发送端再次发送syn同步包以完成同步过程。
接收端与发送端同步过程的实现是两者之间进行短报文文件传输的前提。
图4所示北斗三代卫星短报文件传输协议栈实现图。
北斗发送端根据北斗三代短报文服务类型为gsmc或rsmc将文件分割,若为gsmc则将发送文件分割成70字节的数据块,若为rsmc则将发送文件分割成1750字节的数据块;将待发送的数据块放入发送队列进行发送,并打开计时器,北斗接收端收到一个数据块,进行解析,并发送ack确认包,在规定时限内,北斗发送端收到ack确认包,将文件中新的一数据块加入发送队列,再次发送,若在规定时限内,北斗发送端未接收到ack确认包,则将本次发送的数据块重新加入到发送队列中;北斗接收端根据syn同步包中的发送包数据确认是否接收完成,未接收完成时,北斗接收端发送ack确认包后,继续进入接收线程,等待下一数据块到来,直到接收完成后,生成文件。
在发送数据块的过程中,每发送一个数据块进行一次ack确认,提高了传输文件的准确性,保证了短报文文件稳定传输。
实施例2:
本实施例中,对于实施例1所说明的基于北斗三代卫星短报文的传输文件的方法具体应用于深远海自主海洋观测设备或船载设备数据的稳定传输,下面对具体采集数据的传输方法:
首先,海洋数据采集模块,用于采集海洋温、盐、流等数据,并传输到主控模块。主控模块根据海洋数据采集模块、状态数据采集模块等获取的数据进行汇总形成对应的文件,然后将该文件进行解析,获取对应文件的大小、名称、后缀及数据块数量等信息,将上述文件属性信息封装成北斗格式的文件属性结构体,再按照北斗短报文格式对上述文件属性结构体进行编码并组成数据包。
其次,海洋观测设备或船载设备与岸基数据中心进行同步设置,海洋观测设备或船载设备将上述数据包作为syn同步包进行发送,同时打开定时器;岸基数据中心接收syn同步包进行解析,获得需要接收的数据包的格式、文件名称和文件格式等,启动接收线程等待接收数据包,并向海洋观测设备或船载设备发送ack确认包。此过程中,若海洋观测设备或船载设备在定时器时限内没有收到ack确认包,则重新发送syn同步包,若海洋观测设备或船载设备在规定时限内收到ack确认包,对ack确认包进行解析,收发双方同步过程完成。
再次,根据海洋观测设备或船载设备所在区域,确定短报文服务类型为gsmc或rsmc,若为gdmc将发送文件分割为70字节,若为rsmc则将发送文件分割为1750字节;再将分割得到的数据块依次放入发送队列,进行发送,同时启动定时器,并等待接收端的ack确认,若一分钟内,未接收到ack确认则对上一数据块进行重新发送,若正常接收到ack确认,则发送下一数据块。
最后,岸基数据中心接收到数据块后,进行解析,根据数据块的id进行排队,如果已经接收则直接丢弃,同时发送ack确认消息,否则根据接收的数据块的id进行排队,同时发送ack确认消息;
在接收到最后一数据块后,发送ack确认消息之后,根据接收的syn同步包内的文件名称和格式,创建文件,按照队列的块id号,从小到大,把每一数据块写入到创建的文件中,停止接收过程。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。