收的数据单元时,将数据净荷写入终端缓冲区;
[0189]直至接收到最后一段数据单元,重组完成,解析终端缓冲区数据,发给相应的用户终端。
[0190]粘包模块,用于从发送缓冲区读指针开始,读取指针所指数据单元的长度位,若数据单元长度小于75字节,写入发送数组;读发送缓冲区下一数据单元,直至数据长度和大于75字节,停止读取,对发送数组中的数据打包发送;接收到数据后,去除包头包尾,将电文内容中的数据写入接收缓冲区,按照长度位读取相应长度数据,提取数据单元,进行解析,发往相应用户终端。
[0191]丢包反馈模块,用于发送报文后,将标志位写入共享内存的确认标志位中,若发送报文内数据为粘包数据,则记录最后一个合并单元的标志位;检查每一接收数据包的电文内容第一字节是否为反馈标志位,若为反馈标志位,将标志位的第3比特置为O,写入共享内存中的接收反馈标志位;对比共享内存的确认标志位与接收反馈标志位,若相同,数据发送成功,删除发送缓冲区中发送成功的数据单元;若不同,对比接收反馈标志位与发送数组中的每个单元的标志位,若与其中之一相同,数据发送部分成功,删除发送缓冲区中发送成功的数据单元,将发送缓冲区读指针指向出现误码的数据单元;
[0192]接收数据后,提取数据单元,若数据单元正确,将标志位的第3比特置为1,写入共享内存中的发送反馈标志位,读取下一单元;
[0193]若错误,直接丢弃后续单元的数据,发送反馈标志位中记录的是接收到的最后一单元正确数据的标志位。
[0194]其中,差错校验模块,用于对每一段数据净荷采用循环校验码进行计算,得出两位校验位,写入每段数据净荷之后的两字节,将单元数据写入发送缓冲区;
[0195]接收到数据后,提取数据单元,对数据净荷进行校验计算,得出两位检验码,对比数据净荷之后的检验位以进行差错检验。
[0196]其中,管理控制器包括:第一子线程模块、第二子线程模块和第三子线程模块,
[0197]第一子线程模块,用于与用户终端进行数据交互,采用I/O复用技术,依靠选择机制实时监听套接字请求,维持北斗通信机与多个用户终端的连接;
[0198]第二子线程模块,用于监听北斗通信机的串口,实时接收北斗通信数据,串口接收数据后,进行数据包的检测与解析;
[0199]第三子线程模块,用于定时发送北斗通信数据。
[0200]本发明实施例对各器件的型号除做特殊说明的以外,其他器件的型号不做限制,只要能完成上述功能的器件均可。
[0201]本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0202]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于北斗卫星的可靠远程通信方法,其特征在于,所述可靠远程通信方法包括以下步骤: 依据TCP/IP协议与北斗通信协议,定制远程通信协议; 通过分包粘包策略、丢包反馈机制以及差错校验策略建立有效传输机制; 通过在北斗通信机内开辟三个子线程,对北斗通信机进行管理。2.根据权利要求1所述的一种基于北斗卫星的可靠远程通信方法,其特征在于,所述依据TCP/IP协议与北斗通信协议,定制远程通信协议具体为: 将电文内容的第I字节作为标志位,将第2字节用作长度位,电文内容最后两个字节用作检验位。3.根据权利要求2所述的一种基于北斗卫星的可靠远程通信方法,其特征在于,所述第I字节标志位中的0-2比特用作段序列号;第3比特用作反馈标识;第4比特用作末位标识;第5-7比特表示数据序列号。4.根据权利要求1所述的一种基于北斗卫星的可靠远程通信方法,其特征在于,所述分包策略具体为: 北斗通信机为用户终端数据分配数据序列号,若用户终端数据大于最大数据净荷长度,以所述最大数据净荷长度进行分段,依次分配段序列号,所述段序列号标识每段数据在用户终端数据中的位置; 北斗通信机在接收到被拆分的数据后,对数据进行重组。5.根据权利要求4所述的一种基于北斗卫星的可靠远程通信方法,其特征在于,所述北斗通信机在接收到被拆分的数据后,对数据进行重组的步骤具体为: 记录数据的段序列号及数据序列号,将数据净荷写入终端缓冲区; 接收下一段数据单元,比对数据序列号,若相同,比对段序列号,确认为应接收的数据单元时,将数据净荷写入终端缓冲区; 直至接收到最后一段数据单元,重组完成,解析终端缓冲区数据,发给相应的用户终端。6.根据权利要求1所述的一种基于北斗卫星的可靠远程通信方法,其特征在于,所述粘包策略具体为: 从发送缓冲区读指针开始,读取指针所指数据单元的长度位,若数据单元长度小于75字节,写入发送数组; 读发送缓冲区下一数据单元,直至数据长度和大于75字节,停止读取,对发送数组中的数据打包发送; 接收到数据后,去除包头包尾,将电文内容中的数据写入接收缓冲区,按照长度位读取相应长度数据,提取数据单元,进行解析,发往相应用户终端。7.根据权利要求1所述的一种基于北斗卫星的可靠远程通信方法,其特征在于,所述丢包反馈机制具体为: 发送报文后,将标志位写入共享内存的确认标志位中,若发送报文内数据为粘包数据,则记录最后一个合并单元的标志位; 检查每一接收数据包的电文内容第一字节是否为反馈标志位,若为反馈标志位,将标志位的第3比特置为0,写入共享内存中的接收反馈标志位; 对比共享内存的确认标志位与接收反馈标志位,若相同,数据发送成功,删除发送缓冲区中发送成功的数据单元;若不同,对比接收反馈标志位与发送数组中的每个单元的标志位,若与其中之一相同,数据发送部分成功,删除发送缓冲区中发送成功的数据单元,将发送缓冲区读指针指向出现误码的数据单元; 接收数据后,提取数据单元,若数据单元正确,将标志位的第3比特置为1,写入共享内存中的发送反馈标志位,读取下一单元; 若错误,直接丢弃后续单元的数据,发送反馈标志位中记录的是接收到的最后一单元正确数据的标志位。8.根据权利要求1所述的一种基于北斗卫星的可靠远程通信方法,其特征在于,所述差错校验策略具体为: 对每一段数据净荷采用循环校验码进行计算,得出两位校验位,写入每段数据净荷之后的两字节,将单元数据写入发送缓冲区; 接收到数据后,提取数据单元,对数据净荷进行校验计算,得出两位检验码,对比数据净荷之后的检验位以进行差错检验。9.根据权利要求1所述的一种基于北斗卫星的可靠远程通信方法,其特征在于,所述通过在北斗通信机内开辟三个子线程,对北斗通信机进行管理具体为: 第一子线程,用于与用户终端进行数据交互,采用I/o复用技术,依靠选择机制实时监听套接字请求,维持北斗通信机与多个用户终端的连接; 第二子线程,用于监听北斗通信机的串口,实时接收北斗通信数据,串口接收数据后,进行数据包的检测与解析; 第三子线程,用于定时发送北斗通信数据。10.—种基于北斗卫星的可靠远程通信装置,其特征在于,所述可靠远程通信装置包括: 定制控制器,用于依据TCP/IP协议与北斗通信协议,定制远程通信协议; 传输控制器,用于通过分包粘包策略、丢包反馈机制以及差错校验策略建立有效传输机制; 管理控制器,用于通过在北斗通信机内开辟三个子线程,对北斗通信机进行管理。
【专利摘要】本发明公开了一种基于北斗卫星的可靠远程通信方法及其通信装置,方法包括:依据TCP/IP协议与北斗通信协议,定制远程通信协议;通过分包粘包策略、丢包反馈机制以及差错校验策略建立有效传输机制;通过在北斗通信机内开辟三个子线程,对北斗通信机进行管理。装置包括:定制控制器、传输控制器和管理控制器,通过三个控制器实现两个局域网内多个用户终端基于北斗卫星可靠有效的数据交互。本发明提高了北斗通信的可靠性、以及通信效率,构建了点对点可靠稳健无盲区的通信链路;并通过北斗通信网与局域网的融合来实现用户终端与北斗通信装置的信息交互,进而组建支持多用户终端的远程数据传输网络。
【IPC分类】H04L29/08, H04L12/24
【公开号】CN105024861
【申请号】CN201510456040
【发明人】车明, 高小娟
【申请人】天津大学
【公开日】2015年11月4日
【申请日】2015年7月28日