基于北斗短报文的远程图像通信系统设计
2019-12-11李志炜刘李欢韩洪祥
李志炜,傅 军,刘李欢,韩洪祥
(1. 海参航保局,北京 100847;2.海军工程大学,武汉 430033;3.湛江航保厂,湛江 524000)
0 引言
目前,我国的无线通信系统主要采用建立地面基站的方式进行通信,但是这种无线通信方式尚未覆盖我国的全部区域。在野外遇险以及未覆盖区域发生重大火灾等突发事件时,当事者无法及时与有关部门取得联系从而导致救援受阻,而偏远地区存在的通信盲区对于监控管理也带来了极大的不便[1]。
此外,马航MH370客机的失联引起了社会各界的密切关注,如何实现有效的航空监管,确保航空安全,是当前亟待解决的问题。影响航空安全的因素很多,其中恐怖活动是威胁航空安全的主要原因之一,严重威胁乘客的生命财产安全。当前,航空监管主要采用航空雷达技术,少数飞机可以使用通信卫星,这种监控方式的成本较高,后期维护费用昂贵,增加了客机的运营成本,且存在雷达系统无法获取飞机位置的情况。这是因为飞机处于雷达盲区,或应答机出现故障等情况,都会导致雷达系统对飞机的监控失效。因此,利用北斗短报文通信费用低廉的优点,本文设计了一款可进行远程图像传输的系统,对灾害救援、无人区监控、反恐行动等工作有着重要的意义。
1 系统设计相关技术
1.1 北斗短报文通信
每个北斗用户接收机都有唯一的北斗通信ID卡,通信均需经过地面中心站转发,通信流程是:1)发送端接收机首先将包含接收方ID号和通信内容的通信申请信号加密后通过卫星转发入站;2)地面中心站接收到通信申请信号后,经解密和再加密后加入持续出站广播电文中,经卫星广播给用户;3)终端接收机接收出站信号,解调解密出站电文,完成一次通信[2-5]。从具体应用方面来看,北斗的短报文通信在远程数据传输控制中还存在限制[6],具体如下:1)单次通信的容量有限,每次进行短报文通信所能传输的数据量是有限的,一般来说,民用北斗一次通信量仅有80字节左右;2)通信频度有限,北斗系统每发送完一条报文后需等待很长的时间才能进行下一条报文的发送,一般来说,民用北斗通信频度是60s左右;3)北斗卫星通信链路是不可靠的通信连接,在连续传输多条报文后成功率会大大降低。而且,民用北斗通信没有回执,即发送方不知道接收方是否正确收到了数据。
1.2 图像数据处理技术
由于北斗短报文通信在数据传输方面的限制,在进行图像数据传输时,需要对图像数据进行高效压缩,从而提高数据传输效率。图像压缩是图像存储、处理和传输的基础,它是用尽可能少的数据来进行图像的存储和传输[7-9]。图像压缩的过程既包括图像编码,也包括图像解码,使图像数据得到部分或完全恢复,从而获得原始图像数据所表达的信息量[10-12]。本文采用JPEG压缩算法,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能够较好地展现原始图像。
2 系统设计与实现
2.1 硬件设计
本系统基于北斗短报文的设计,为更好地获取图像数据以及图像处理,选择OV2640摄像头来获取图像;选择低功耗、高性能的STM32F429单片机进行数据处理;选择RD0538B1北斗短报文通信模块进行数据发送与接收。摄像头与单片机之间采用DCMI接口进行连接,单片机与北斗短报文通信模块用USART进行连接。系统硬件及设计方案如图1所示。
图1 北斗通信模块及系统设计方案图Fig.1 Design scheme of Beidou communication module and system
2.2 软件设计
软件功能算法设计如图2所示。
图2 算法设计方案图Fig.2 Algorithm design scheme diagram
1)发送端数据处理:OV2640摄像头拍摄的一帧图像通过接口存储在STM32单片机的SDRAM中;存储完毕后,北斗短报文通信模块开始获取当地位置信息、拍摄图像时间以及其他导航信息。图像信息和导航信息会按顺序分成每份70字节的数据包,并对数据包进行编号,通过北斗短报文通信模块进行图像数据包的发送;当北斗短报文通信模块发送完最后一个数据包时,发送端完成发送任务。
2)接收端数据处理:从接收的数据格式中依次提取图像信息,将图像信息按接收顺序进行整合,整合后的图像信息会形成图像文件。在最后一包数据中提取发送端的位置信息、拍摄图像的时间信息和其他导航信息,并将其附在图像上。最终的合成图像会存储在指定文件夹中。
3)显示结果:最终的合成图像在上位机的界面上可以得到显示。图像周围的信息栏显示各类导航信息。
2.3 数据传输机制
为解决图像和导航数据的传输问题,基于北斗短报文的通信协议,自定义系统通信协议,对北斗通信电文内容进行扩充。本文采用分包策略实现图像数据和导航数据的正确传输,采用丢包反馈机制以保证可靠的数据传输,采用差错校验策略实现无失真通信,采用数据多卡发送解决北斗短报文通信频度有限的问题。
1)数据分包发送机制。由于北斗短报文每次通信能力的限制,一张图片信息必须通过北斗通信模块发送多次才能发送完毕,故需将图像信息进行分包处理,并按照北斗卫星导航系统通用数据接口4.0协议进行编排。接收端为了正确地解析数据包的内容,准确地还原图像信息,需对每个数据包末尾附上序列号。采用数据分包发送方式,较好地解决了北斗短报文通信能力受限的问题,同时确保了图像信息传输的完整性。
2)数据接收查询反馈机制。每发送完最后一个数据包,发送端会发送一个请求查询包,接收端接收到请求查询包后,进行序列号的检测,若有缺包项,则将缺失的包序列号以响应包的形式发送至发送端,发送端再重新发送缺失的数据包[13-15]。发送完毕后重复上述查询步骤,直至序列号检测完整,完成数据的接收。
3)采用数据多卡发送机制。由于北斗短报文通信能力的限制,若发送端和接收端采用一对一的方式进行数据传输,势必严重影响数据传输效率。为了提高数据传输效率,发送端与接收端采用多对一的方式,即在发送端,通过对多个北斗通信模块进行设置,配置成多卡共天线数据发送模式,即将数据包依次分给各个北斗通信模块,通过同一根天线进行无线数据传输,接收端却只使用一个北斗通信模块进行数据接收。这种多对一和多卡共天线的无线数据传输方式极大地提高了数据的传输效率。
4)图像数据包与导航信息数据包的区分。提前计算好图像数据包的数量,以最后一个图像数据包的序列号为标识符,表示图像数据已经发送完毕。在导航信息数据包中,电文内容的最后4个字节为“12 34 56 78”,作为导航信息数据包的标识符。
数据可靠传输的设计流程如图3所示。
图3 数据可靠传输的设计流程Fig.3 Design process for reliable data transmission
3 系统验证
为了验证基于北斗短报文的远程图像通信系统能否按照预计的效果工作,进行了图像的拍摄、当地导航信息的获取,以及数据包的发送与接收显示实验。摄像头抓拍1张场景图片,北斗卫星导航模块采集此时的导航信息,将采集的数据有线传输至STM32核心处理器;STM32核心处理器对接收到的图像信息进行压缩,并将其按照顺序和北斗卫星导航系统通用数据接口4.0协议进行数据分包,设置每个数据包最大为72字节,将导航信息作为最后一个数据包,数据包的末尾附上序列号;对5个北斗通信模块进行设置,将其配置成多卡共用同一天线的发送模式,实现了多对一的数据无线传输;接收端对接收的数据包进行防丢包验证,得到完整、准确的数据包;对接收的数据包进行图像还原,将还原得到的图像叠加对应的导航信息,并在显控端进行显示,如图4所示。拍摄图片经数据压缩处理后,利用数据多卡发送机制,能够较快地完成图像数据的传输功能。
图4 上位机显示的接收图像Fig.4 Received image displayed by the host computer
4 结论
本文利用北斗短报文通信费用低廉的优点,设计了一款可进行远程图像传输的系统,针对北斗短报文通信的局限性,提出了相应的数据传输机制以保证可靠有效的远程数据传输。系统测试结果表明,系统能够较快地完成图像数据传输功能。系统可进一步推广应用于野外、航空、航海等应用领域,为各领域的安全提供了保障,且成本低廉,便于大面积推广使用。