时间:2024-07-29
樊伊君,高加琼
(1.河南省地质矿产勘查开发局第一地质矿产调查院,洛阳 471023;2.四川职业技术学院 管理系,遂宁 629000)
目前在移动通信网络覆盖范围内,图像传输方式可以通过第四代移动通信(4G)信号或者计算机网络进行传输[1-3].但在一些偏远的山区,常常出现发射信号的基站出现问题或是远离发射基站覆盖的区域,致使商业网络通信没有办法实现信息的有效传输.在区域小范围地质地貌普查中该问题突出,特别是在工作人员无法到达的险要山区,通过无人机携带图像获取设备,通过短距离传输协议可以很好地解决这一难题.
传统的地质普查采用大型航空器或遥感卫星等测绘手段[4],投入成本高.在小区域地形地貌初步探测中,选择投入少、见效快的方法获得初步的图像对进一步开展地貌探测具有显著的作用.ZigBee是一种具有低成本、短时延、低功耗、安全性及可靠性高和传输距离短等特点的无线传感器网络通信技术,可以很好的解决短距离无线图像信息的传输,主要用于距离短、功耗低且传输速率不高的各种电子设备,支持最高250 kbit·s-1、20 kbit·s-1和40 kbit·s-1三种传输速率[5],与移动通信的CDMA网或GSM网不同的是,ZigBee网络主要是为工业现场自动化控制数据传输而建立,每个ZigBee网络节点不仅本身可以直接进行数据采集和监控,还可以通过路由节点自动中转终端节点传过来的数据资料.ZigBee网络可多达65 535个无线数传模块(节点)组成的无线数传网络平台[6],在整个网络范围内,每一个ZigBee网络数传模块之间可以相互通信,每个网络节点间的距离可以从标准的75 m通过路由无限扩展.通过一个网关节点(又称协调器节点)即可自组织一个网络,网络形成后其他节点可以直接加入或通过多跳方式加入该网络,目前已被广泛应用到智能控制、智能家居、智能监控和智能管理等诸多领域[2].
文中拟提出一种基于无人机的图像文件传输方案,以ZigBee技术的图像传输为基础,研究图像文件数据传输系统组成与关键技术.
系统主要包括:无人机图像获取系统、数传部分和地面接收处理三部分组成,图像获取部分完成图像的获取与分包,数传部分完成分包后数据的传输,地面接收处理部分由计算机进行图像合包与人机交互界面的展示,无人机主要实现图像的采集和发送.系统的路由节点和协调器节点采用的是ZigBee CC2530套件[3].ZigBee CC2530不仅支持2.4 GHz IEEE 802.15.4 /ZigBee标准的数据传输,而且具有稳定强大的网络组网能力.
系统设计的总体结构框图如图1所示.
地-空数据传输网络是系统设计的关键,安全可靠的传输是保证数据准确可靠的第一步.文中通过中心协调器来创建ZigBee网络,当有节点加入时,协调器给加入的节点分配地址,节点、路由器和协调器之间可组成星型网络、树形网络和网状网络,可根据需要组建网络,加入此网络的节点就可进行相互通信,完成地-空之间的数据无线传输.
图1 系统总体结构框图
地面计算机完成接收数据的处理、人机交互界面的设计和合包后图像的显示.采用的开发工具是VC++6.0软件和MSComm控件.
MSComm为Windows环境下的串行通信编程Active控件,主要通过串行端口接收图像数据.该控件提供两种处理数据通信的方法:事件驱动法和查询法,文中系统的数据通信采用事件驱动法[7].
事件驱动方法是处理串行端口交互作用的一种非常有效的方法,在许多情况下,事件发生时需要得到通知.这些情况包括:在串口接收区中如果有字符;Carier Detect(简称CD)或Request to Send(简称RTS)线上一个字符到达;某一事件发生时等.在这些场景中,就可以利用MSComm控件的OnComm事件捕获并处理这些通信事件.
在实际编程应用中,在OnComm事件的处理函数中加入新事件的处理代码,这使得系统程序响应及时,可靠性高,且每个MSComm控件对应一个串口端口完成通信.
无人机图像数据传输采用台湾DTK公司的CC2530系统套件,套件有三种节点类型:ZigBee协调器(Coordinator)、路由节点(Router)和终端节点(EndDevice),通过ZigBee Configuration界面对ZigBee模块进行节点功能配置,根据节点位置设置成所需要的节点类型[8].其中终端节点与无人机通过RS232串口连接图像采集设备,路由节点用来接收并中转(如果距离较大)终端节点发送的数据,通常安装在传输文件的地点的合适地方(可视区域),该节点位置可以固定也可以移动;协调器通过RS232串口线和接收端计算机连接,用来接收终端节点或者路由节点发送的图像数据,并通过RS232串口线传送给地面计算机,无人机完成图像数据采集、分包以及处理,接收端计算机完成图像数据的解码、合并等操作,通过上位机人机交互界面可判断图像文件接收与解码情况,以此决定下一步执行的操作[9].
系统研究的数据传输系统由图像数据预处理模块、ZigBee数据传输模块、数据发送和数据接收三个模块组成,图像传输模块如图2所示.
图2 图像传输模块框架
图像接收部分由地面计算机完成,采用VC++软件,编写程序对接收的数据进行处理,用以保证数据在无线传输中的完整性、正确性的关键模块[10].ZigBee中传输属于小数据量的无线传输,一般都在几十kbyte到几百kbyte(压缩后)之间的文件,对于图像类的较大数据量的数据无法直接实现传输,因此要对文件进行分包操作.
实际应用中如果设定的单个包文件越大,数据传输的时间就越短,单个包文件越小,传输的时间就越长.因此可根据实际需要设定包的大小,对实时性要求较高的场合,可以将包分的大一点,尽量减少分包与合包的次数,节省时间,对准确性要求较高的情况下,可以将包分的小一点,确保文件可靠传输[11].无论何种情况,接收到的文件包在合包之前要进行数据一致性检验,确保数据完整正确.
图像分包后就要开始数据传输,数据正确传输是保证最终图像完整齐全的前提.当发送端单片机对数据分包并完成正确命名后,依次将不同编号的分包数据通过ZigBee节点模块进行传输,如果传输距离较大,可以增加中间的路由节点,数据首先通过终端节点传送到路由节点或者中心节点(也可以称为协调节点或协调器),协调器将每一个分包数据接收后进行排序、对照检查包数量,正确无误后按顺序通过RS232接口传送给接收端计算机上位机软件,进行数据的解码、合并、存储和图像显示等操作,完成整个数据流的传输过程[9].
无人机在开始发送数据时,首先要在发送端对文件按照压缩算法进行哈夫曼压缩编码、分包和编号等操作[12].接收端协调器按顺序依次接收ZigBee网络协调器传送过来的分包数据,首先将接收分包的序号与本地的接收状态变量相比较,如果二者相等就表明是新的数据包,就接受该数据包,并发送确认报文,否则就丢弃,丢弃后则需要给发送端发送重传报文,让发送端重传刚才的分包.并将正确接收的分包进行保存、解压和合并,命名为“-”前的部分,将整个文件保存为jpg形式.在接收端计算机的上位机界面上可以显示文件的接收进度以及文件的保存状态.可以根据包的编号顺序在上位机文件夹中找到保存的分包文件,可以对其进行查看、编辑和删除等操作.
ZigBee网络支持网络内任意节点与路由器、路由器与路由器以及路由器与协调器(中心节点)数据的相互传输,终端节点与终端节点之间不能传输数据.网络传输方式支持透明传输、点对点传输两种.
传输时首先要确定接收端在哪里,接收节点的位置信息,接收节点要获得接收的数据来自哪个节点所连的无人机,节点要首先判断数据是否发送给该节点,如果确定“是”就接收,如果发现“否”就拒绝接收,所以本实验涉及的数据传输主要是peer to peer传输.
点对点(peer to peer)数据传输有以下三种帧格式[13]:
① 完整包短地址寻址方式
指令格式:0xFD + 数据长度 + 目标地址+数据,在接收端则要包括接收方收到发送端的全部数据 + 来源地址;
② 短地址寻址方式
用ZigBee提供的短地址寻址,通过对发送方进行设置,接收方收到数据后,将包头、包尾去掉;
③ 自定义地址寻址
该方式去掉包头和包尾,用自定义地址寻址方式,通过对发送方进行设置,接收方收到数据后,将包头、包尾去掉.
系统在一台民用无人机和一台地面计算机之间实现图像的采集、分包、压缩、无线传输、合包、解压成图显示等关键技术,具有成本低、操作简单等优点,文件传输安全、稳定和可靠性高等特点.
无人机发送图像时,对图像文件进行压缩,对压缩后的文件计算其字节数,如果数据量没有超过分包上限,就不用对数据进行分包直接发送,如果文件数据量大于分包的上限就要对数据进行分包.
文件分包步骤:
① 获取文件的名称,将文件名称放在第一个包中进行传输,文件的名称不要超过分包的上限也就是10 kbyte,告知接收端由发送端发送此名称的文件.
② 根据实际情况将文件分包,分成10 kbyte字节一个数据分包,将分包的文件名改为<源文件名-分割后的序号i>.分包时依次循环分割获取的图像文件,直到满足设定的文件大小要求,完成数据传输前文件预处理操作.分包完成之后通过串口依次对所分的数据分包进行压缩处理,通过ZigBee无线网络进行传输.
图像文件分包过程如图3所示.
图3 文件分包过程
获得的图像文件进行分包完成操作后,对分包后的文件依次按顺序进行传输,为了保证数据包文件传输的正确性,接收端计算机在接收到分包文件后须发送确认报文,空中无人机端ZigBee协调器根据收到的确认报文来判断分包发送是否成功,以及判断是否需要重新发送数据包,如果发送成功就继续发送下一个分包并删除刚才成功发送的数据包,如果发送失败就重新发送刚才失败的数据包,直到发送成功或达到所设置的上限[14].地面端计算机通过停止等待协议进行上述操作.
停止等待协议在分包的小文件经过ZigBee无线传感器网络传输到接收端后,只有收到序号正确的确认报文后,才发送新的数据包,否则重新发送刚才发送的数据包.序号为分包后“文件名”+“-”后的序号.如果发送端接收到连续相同序号的确认报文,那么就表明接收端接收到了错误的分包.说明刚才发送端数据包不正确,可能是重复、错序或者丢包,这时将刚才发送的数据包再次发送,直到收到序号正确的确认报文.在实际应用中,有时由于各种干扰,会多次传输失败,多次请求重发,这种情况是不允许的,因此可以设置系统无限制的重传重发的次数(文中将最大重新发送次数设定为3次),防止无限制重发,造成系统出现崩溃的情况,如果出现超过规定的次数,则提示“文件发送失败”告警,这样就需要检查错误的原因,排除错误后继续传送数据.
分包后的图像文件经过停止等待协议按发送顺序依次被接收端接收,接收端将接收的文件分包保存在计算机中指定的文件夹中,并将小文件合并为一个大文件,大文件以小文件名的“文件名”命名,每次成功合并后就将接收的新的文件分包删除.将合并后的文件保存在计算机中的指定位置.依次循环来完成文件的合并,完成整个文件的接收[15].
实验采用无人机型号为DJI Inspire V2.0,T600四旋翼飞行器,主要参数包括:最大飞行高度4 500 m,最大上升速度5 m·s-1,下降速度4 m·s-1,最大水平飞行速度22 m·s-1,最大俯仰角度35°,可承受最大风力10 m·s-1,飞行时间约18 min.飞行器图像传感器:SONY EXMOR 1/2.3″,照片分辨率4 000×3 000 pixel.在计算机上安装Visual Studio 2017软件并配置Open CV模块进行实验测试.用RS232串口线将一个ZigBee通信模块连接到接收端计算机上,如果测试的无人机与计算机相隔比较远就需要设置路由节点,对发送的文件进行中继;一个终端节点,一个中心节点就能完成系统测试.然后给ZigBee模块上电,系统加电后,设置传感器网络拓扑结构为星型网络,完成实现无线数据传输功能,在终端接收计算机上用上位机软件实现接收数据的数据验证、合包和解码等操作,得到图像的十六进制代码,接收完数据后保存数据,如图4所示.
图4 收到的十六进制数据及图像展示
单击界面中的“展示”按钮后,出现转化后的实际图像,实验获取的图像像素数为339×272 pixel,图像大小约92 kbyte,图像清晰,效果良好.从图4中可看出,在分辨率要求不高的情况下,获取的图片可以清晰判断地面一般建筑物与构筑物,满足一般对地质外形与地貌识读要求.
文中在对地形地貌图像特征研究的基础上,通过对近距离无线网络数据传输特点的比较,提出了一种基于ZigBee的无人机无线图像传输系统,包括无人机图像获取部分、数据预处理、数据传输、数据分包与合包和压缩与解压等模块,设计并实现了系统的硬件组成(下位机)、软件设计(上位机)、数据传输关键技术及数据传输格式,并进行了实验测试.测试结果表明,在小区域野外地质普查测量中,可以得到较为清晰的照片,满足初步了解地形地貌特征.系统的无线网络组网简单、灵活,具有硬件成本低、软件编程简单等特点,有一定的应用前景.受条件所限,对传输的实时性和安全性没有进行设计与实现,在条件完善时将开展下一步工作.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!