1.一种智能北斗路由器,一种智能北斗路由器,包括能与北斗卫星进行数据通信的北斗收发模块;其特征在于:还包括与北斗收发模块连接的中心控制模块,与中心控制模块连接的至少能支持AP模式的WIFI模块和局域网模块,局域网模块提供有LAN接口,其中中心控制模块能完成长度超过北斗收发模块能发送的短报文长度的长报文的发送和接收。
2.根据权利要求1所述的智能北斗路由器,其特征在于:所述中心控制模块完成长度超过北斗收发模块能发送的短报文长度的长报文的发送和接收的具体方式为:发送端的智能北斗路由器将长报文分割成能够用北斗收发模块和北斗短报文协议发送的多条分包数据,然后再将分解后的多条分包数据通过北斗短报文协议发送给接收端的智能北斗路由器;所述分包数据包括包头和数据正文两部分,其中包头包含的内容有:分包标识:用来标识本分包数据为某长报文中的一个分包,不是独立的数据包;
末包标识:用来标识本分包数据是否是长报文的最后一个分包;
分包ID:用来指定本分包数据在原长报文所有分包数据中的唯一ID;
所属长报文ID:标明本分包数据属于哪个长报文;
接收端对收到的分包数据进行缓存,待接收端收到包含有末包标识的分包数据后,根据每个分包数据中的分包ID来确定分包数据的顺序,然后对属于同一个长报文的所有分包数据进行合并;最后根据合并的结果,给发送端返回一条“接收成功”反馈信息或“补包请求”反馈消息,“补包请求”反馈消息包含所属长报文ID、丢失的分包ID;
发送端根据收到的反馈消息,如为“补包请求”反馈消息,则将丢失的相应长报文的相应分包数据重新发送给接收端。
3.根据权利要求2所述的智能北斗路由器,其特征在于:接收端根据分包ID和所属长报文ID来判定是否收到重复的分包数据,如果收到了重复的分包数据,则把重复的分包数据丢弃;发送端与接收端在分包数据传输过程中出现丢包情况有五种:第一种,接收端有其它分包数据没有收到,但包含末包标识的分包数据收到,发送端收到接收端发来的“补包请求”反馈消息;
第二种情况:发送给接收端的包含末包标识的分包数据丢失;
第三种情况:接收端所有分包数据全部收到,但接收端发送给发送端的反馈消息丢失,发送端没有收到接收端的反馈消息;
第四种情况:接收端有其它分包数据丢失,但包含末包标识的分包数据收到,接收端给发送端收发送的“补包请求”反馈消息丢失;
第五种情况:发送端发给接收端的补包数据全部丢失,即发送端发送了补包数据,但接收端一个也没收到;
针对上述五种丢包情况,通过如下补包机制进行处理:
针对第一种情况,接收端收到包含末包标识的分包数据后,由此判断发送端针对某一长报文所有的分包数据均发送结束,接收端按照分包合并后的反馈规则,给发送端返回一条反馈消息,反馈消息包含所属长报文ID和丢失的分包ID,发送端收到反馈消息后,根据反馈消息中的所属长报文ID和丢失的分包ID找到该长报文中相应丢失的分包数据,然后再根据反馈消息所在的短报文的发送地址将丢失的分包数据重新发送给接收端;
针对第二种情况,由于接收端没有收到包含末包标识的分包数据,因此无法判断发送端是否发送结束,也就无法启动分包合并操作,因此不会向发送端发送反馈消息,此时,发送端和接收端会进入互相等待的“死锁”状态,即——接收端等待发送端的包含末包标识的分包数据,发送端等待接收端的反馈消息,为避免这种死锁状态,在发送端设置定时器解锁机制,即:设置一个60~70秒的定时器,在一个长报文的所有分包数据发送结束后,启动定时器,如果定时器计时结束还没有收到接收端发来的反馈消息,则认为反馈消息在传输中丢失,此时发送端向接收端补发一次包含末包标识的分包数据,然后重新启动定时器,为避免无限循环,定时器重新启动的次数不超过3次;三次重启的定时器计时结束后还没有收到接收端发来的反馈消息时,释放发送端与接收端之间的链路资源,本次通信失败;
针对第三种情况,发送端针对某一长报文的所有分包数据实际上已经成功传输,但“成功接收”的反馈消息丢失,由于发送端的定时器解锁机制,定时器计时结束后会重发包含末包标识的分包数据,对此,接收端接收到包含末包标识的分包数据后,根据所属长报文ID判定此长报文已接收完毕,则丢弃该分包数据,并发送“成功接收”的反馈消息给发送端;
针对第四种情况:接收端等待发送端的补包,发送端等待接收端的反馈消息,双方会进入互相等待的“死锁”状态,此时同样通过发送端的定时器解锁机制解决;
针对第五种情况:接收端一直等待发送端的补包,发送端等待接收端的再次反馈消息,也会进入“死锁”状态,此时同样通过发送端的定时器解锁机制解决。
4.根据权利要求3所述的智能北斗路由器,其特征在于:针对第一种情况,接收端设置有超时机制:反复发送3次“补包请求”反馈消息后仍没有收到相应丢失分包数据,则放弃接收该分包数据。
5.根据权利要求3所述的智能北斗路由器,其特征在于:针对第三种情况,接收端记录最后一次成功接收到的分包数据中的所属长报文ID,以此判断当前收到的分包数据是否属于最后一次传输的长报文。
6.根据权利要求2所述的智能北斗路由器,其特征在于:发送端向某一接收端发送一长报文时,需要临时建立一条长报文传输链路,不同的发送端能同时与同一个接收端之间建立长报文传输链路,即:同一个接收端能同时接收不同的发送端发来的不同长报文;同一个发送端也能同时与不同的接收端建立长报文传输链路,即:同一个发送端能同时将不同的长报文发送给不同的接收端。
7.根据权利要求1所述的智能北斗路由器,其特征在于:所述中央控制器还能将多个用户数据捆绑在同一条短报文中进行发送,具体实现方式为:将需要发往同一个接收端的不同用户数据捆绑在一个北斗短报文中,然后通过发送终端发送出去,不同用户数据捆绑后的北斗短报文成为混合报文,混合报文的长度满足能够用北斗短报文协议进行发送,混合报文的内容格式为:标识位、第一原始数据长度、第一原始数据、第二原始数据长度、第二原始数据、……第n原始数据长度、第n原始数据;
接收终端收到发送终端发来的混合报文后,根据混合报文的内容格式,依次提取出混合报文中的原始数据。
8.根据权利要求7所述的数据传输方法,其特征在于:标识位的长度为1个字节,第一原始数据长度、第二原始数据长度、……第n原始数据长度的位数也均为1个字节。
9.根据权利要求7所述的数据传输方法,其特征在于:不同用户数据捆绑进同一个北斗短报文的方式为:
建立并维护一个发送队列,当北斗发送终端可以发送北斗短报文时,首先从发送队列的头部取出并移除首条待发数据,将首条待发数据作为第一原始数据放入混合报文内,统计第一原始数据的字节长度,将第一原始数据的字节长度存入混合报文的第一原始数据长度;然后依次往后遍历发送队列,找到第一个能够放入混合报文剩余空间的待发数据,把该待发数据作为第二原始数据放入混合报文中,并从发送队列中删除此待发数据,同样统计该待发数据的字节长度存入混合报文的第二原始数据长度;按照这个规则不断循环,直到混合报文剩余空间无法容纳发送队列中的任何待发数据为止。
10.根据权利要求9所述的数据传输方法,其特征在于:在发送端,为每一个用户数据提供优先权级别,然后根据优先权级别将用户数据存入发送队列,优先级最高的用户数据放在发送队列的头部,优先级低的用户数据放在优先级高的数据后面。