导航菜单

基于WiFiAP模式下的多轴飞行器数据传输系统设计

刘芝福

(中航工业长沙中传机械有限公司,湖南长沙410200)

摘要:为实现多轴飞行器姿态及机载视频无线传输,设计了基于Linux、无线网卡AR6003和ARM 平台的机载WiFiAP模式服务器数据接收发送端。详细介绍了多轴飞行器WiFi数据传输系统的硬件平台设计及AR6003网卡在Linux系统中的驱动移植和AP模式实现及收发数据程序设计。对设计系统进行数据传输测试,结果表明该系统在WiFi AP模式下能高效、实时传输飞行器姿态数据。该方法对多轴飞行器无线数据传输、调试具有实用工程价值。

教育期刊网 http://www.jyqkw.com
关键词 :WiFi;AP模式;多轴飞行器;数据传输

中图分类号:TN919.8?34 文献标识码:A 文章编号:1004?373X(2015)13?0027?03

收稿日期:2015?01?25

0 引言

多轴飞行器在调试和使用过程中都需要和地面控制终端进行交互。其搭载的飞控系统需要具有较高带宽的无线数据传输能力和严格的功耗要求。WiFi广泛用于无线传输,WiFi无线接入点(Access Point,AP)能为移动终端提供无缝的、高速的、透明的接入服务。本文采用ARM11嵌入Linux 3.0.1平台,集成具有内置MAC(Media Access Control)层功能的AR6003 无线网卡,实现最高带宽85 Mb/s的传输速率。搭载采用WiFi AP进行飞行姿态操控数据和视频数据的传输控制板,手机、平板电脑等移动设备可以通过WiFi信号直接访问飞控板,将数据接收后进行处理。

1 系统设计

系统设计如图1 所示,数据传输系统,根据机载飞控板采集磁力计、气压计、陀螺仪、加速度传感器、温度传感器和视频传感器信号进行处理,将处理好的数据打包再通过WiFi AP 无线传输给地面带有WiFi Client的接收终端。地面接收终端接收数据时,首先打开无线网络连接搜索周边的WiFi AP 热点,当搜索到特定机载WiFi AP名称时输入连接密码进行连接,成功后打开接收端接收来自飞控板的飞行姿态信息和视频信息。

2 硬件设计

2.1 硬件平台设计

本设计数据传输系统硬件只用考虑机载飞控板发送部分,接收终端采用手机或者便携式计算机则不需要设计。硬件平台系统如图2所示,具体实现如图3所示,要能实现Linux的装载,需要有SDIO0接口用于连接SD 卡实现程序的烧写,SDIO1 接口用于连接AR6003。由于姿态传感器采用的是I2C 传输数据,S3C6410 需要有一个I2C 接口和一个用于调试监控和数据采集的串口。

2.2 WiFi接口设计

AR6003嵌入式环境中WiFi的硬件接口如图4所示。在SDIO接口和S3C6410的SDIO接口连接时,SD_D0~SD_D3实现数据传输,SD_CLK 实现传输时钟同步。

3 系统软件设计

数据传输过程如图5所示。姿态和视频传感器采集的参数经过应用程序预处理,然后通过UDP 或者TCP 协议将数据打包。打包好的数据在操作系统和无线网络驱动作用下通过AR6003网卡对携带的数据包进行收发。

3.1 WiFi AP模式驱动实现

由于低于3.2 版本的Linux 内核源码中并没包含AR6003 的驱动代码,故使用compat?wireless把AR6003驱动代码移植到Linux 3.0.1内核中。具体步骤如下:

进入解压出来的compat?wireless?3.3?2?n 目录;执行./scripts/driver?select ath6kl;然后使用以下命令交叉编译驱动:

ARCH=arm CROSS_COMPILE=arm?none?linux?gnueabi?makeKLIB=/home/xx/Desktop/linux?3.0.1 ;KLIB_BUILD=/home/xx/Desk?top/linux?3.0.1

编译成功后,把compat?wireless?3.3?2?n 目录下的net/wireless/生成的cfg80211.ko 和drivers/net/wireless/ath/ath6kl/中生成的ath6kl.ko两个文件拷贝到目标板的文件系统中,同时把AR6003的firmware目录ath6k拷贝到目标板的/lib/firmware/目录中,用ln ?s /lib/firmware/ath6k/AR6003/hw2.1.1/bdata.SD32.bin /lib/firmware/th6k/AR6003/hw2.1.1/bdata.bin建立软链接。

交叉编译libnl库并安装在usr/local/arm/libnl1.1/路径下;交叉编译libssl库并安装在usr/local/arm/ssl/路径下。

下载hostapd 2.0.tar.gz,解压并修改文件夹中的makefile文件:

CC=arm?linux?gcc 制定编译器,CFLAGS+=?I/usr/local/arm/ssl/include/指定ssl的头文件路径;CFLAGS+=?I/usr/local/arm/libnl1.1/include/指定libnl的头文件路径;LIBS+=?L/usr/local/arm/ssl/lib/指定ssl的库文件路径;LIBS+=?L/usr/local/arm/libnl/lib/指定ssl的库文件路径

然后编译make hostapd,得到hostapd 和myap.conf文件。修改myap.conf:

interface=wlan0;driver=nl80211;ssid=test;hw_mode=g;channel=8

将改好的hostapd和myap.conf文件拷贝到S3C6410目标板中。

安装dhcpd 和配置dhcpd.conf,实现对试图接入AR6003AP终端的IP地址动态分配。

3.2 数据传输软件设计

当AR6003网卡启动并工作在AP模式后,并与客户端实现WiFi信号连接,操作系统调用数据传输应用程序,socket封装了TCP/IP网络的API,通过调用其相关函数实现数据的收发。开发流程如下:

首先调用socket()函数创建socket,用setsockopt()函数设置socket属性,用bind()函数绑定IP 地址、端口等信息到socket,用函数listen()监听。write(WORD *buff,WORD len)实现发送,read(WORD *buff,WORDmaxlen)实现数据接收。数据帧分为功能帧0x0传输加速度、陀螺仪、磁力计传感信息;功能帧0x01 传输气压高度、温度和姿态解算信息以及视频信号数据。功能帧0x0数据填充格式如表1所示。

4 数据传输测试

数据传输测试结果如图6 所示,其中加速度、陀螺仪、磁力计波形按照1/5衰减显示,当地面客户端搜索到机载WiFi信号后,输入连接密码成功后,多轴飞行器姿态数据便按照预定义的格式打包传入接收端,接收端按照协议对数据进行解析和处理显示。

5 结语

设计实现了工作在WiFi AP模式下的多轴飞行器无线数据传输系统。能实现多终端接收携带有飞行器实时姿态数据WiFi信号,可以方便飞行器调试,还可以通过多个WiFi AP中继后增加飞行器的远程数据传输功能。

教育期刊网 http://www.jyqkw.com
参考文献

[1] 陈东伟,吴延超,李伟杰,等.基于物联网的智能家居系统设计与实现[J].信息技术,2014(5):67?70.

[2] 王金红,成怡,钱红亮,等.四轴飞行器姿态监控系统设计[J].宇航计测技术,2014,34(6):9?13.

[3] 卢灵,周贤军.基于WiFi的嵌入式视频监控系统设计[J].电视技术,2013,37(1):157?160.

[4] 张霞,张志杰,轩志伟.基于ARM和WiFi的测试系统手持终端的设计[J].电视技术,2013,37(15):74?76.

[5] 李俐萍,陈金鹰,孙宇,等.WiFi控制的功率调节系统设计与实现[J].自动化仪表,2014,35(7):48?51.

[6] 李山,杨波.基于WiFi的环境监测系统设计[J].软件,2011,32(1):42?45.

[7] 刘杰.四轴飞行器研究与设计[D].南京:南京邮电大学,2013.

[8] 朱阳,王伟成,王民慧,等.WiFi技术在智能车数据通信中的应用[J].传感器世界,2014(7):35?39.

[9] 刘志高,丁青青.基于802.11n的多功能无线传输平台的设计与应用[J].工矿自动化,2014(4):110?114.

[10] 陈李文,马国军,张家栋.四轴飞行器无刷直流电机驱动技术研究[J].现代电子技术,2013,36(16):152?154.

作者简介:刘芝福(1979—),男,四川内江人,硕士,工程师。主要从事传动控制系统研究与设计以及测试工作。

下载文本