摘 要: 為實(shí)現(xiàn)多軸飛行器姿態(tài)及機(jī)載視頻無(wú)線傳輸,設(shè)計(jì)了基于Linux、無(wú)線網(wǎng)卡AR6003和ARM平臺(tái)的機(jī)載WiFi AP模式服務(wù)器數(shù)據(jù)接收發(fā)送端。詳細(xì)介紹了多軸飛行器WiFi數(shù)據(jù)傳輸系統(tǒng)的硬件平臺(tái)設(shè)計(jì)及AR6003網(wǎng)卡在Linux系統(tǒng)中的驅(qū)動(dòng)移植和AP模式實(shí)現(xiàn)及收發(fā)數(shù)據(jù)程序設(shè)計(jì)。對(duì)設(shè)計(jì)系統(tǒng)進(jìn)行數(shù)據(jù)傳輸測(cè)試,結(jié)果表明該系統(tǒng)在WiFi AP模式下能高效、實(shí)時(shí)傳輸飛行器姿態(tài)數(shù)據(jù)。該方法對(duì)多軸飛行器無(wú)線數(shù)據(jù)傳輸、調(diào)試具有實(shí)用工程價(jià)值。
關(guān)鍵詞: WiFi; AP模式; 多軸飛行器; 數(shù)據(jù)傳輸
中圖分類(lèi)號(hào): TN919.8?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)13?0027?03
Abstract: To achieve wireless transmission of multi?axis aircraft attitude and airborne video, server data receiving and sending end of airborne WiFi AP mode based on Linux, WLAN card AR6003 and ARM platform was designed. The hardware platform design of multi?axis aircraft WiFi data transmission system, drive transplant and AP mode realization of AR6003 network card in Linux system, and design of transceiving data program are introduced in detail. Data transmission test results of the designed system show that the system can transmit aircraft attitude data efficiently and in real time under WiFi AP mode. This method has practical project value for transmitting and debugging of multi?axis aircraft wireless data.
Keywords: WiFi; AP mode; multi?axis aircraft; data transmission
0 引 言
多軸飛行器在調(diào)試和使用過(guò)程中都需要和地面控制終端進(jìn)行交互。其搭載的飛控系統(tǒng)需要具有較高帶寬的無(wú)線數(shù)據(jù)傳輸能力和嚴(yán)格的功耗要求。WiFi廣泛用于無(wú)線傳輸,WiFi無(wú)線接入點(diǎn)(Access Point,AP)能為移動(dòng)終端提供無(wú)縫的、高速的、透明的接入服務(wù)。本文采用ARM11嵌入Linux 3.0.1平臺(tái),集成具有內(nèi)置 MAC(Media Access Control)層功能的AR6003無(wú)線網(wǎng)卡,實(shí)現(xiàn)最高帶寬 85 Mb/s的傳輸速率。搭載采用WiFi AP進(jìn)行飛行姿態(tài)操控?cái)?shù)據(jù)和視頻數(shù)據(jù)的傳輸控制板,手機(jī)、平板電腦等移動(dòng)設(shè)備可以通過(guò)WiFi信號(hào)直接訪問(wèn)飛控板,將數(shù)據(jù)接收后進(jìn)行處理。
1 系統(tǒng)設(shè)計(jì)
系統(tǒng)設(shè)計(jì)如圖1所示,數(shù)據(jù)傳輸系統(tǒng),根據(jù)機(jī)載飛控板采集磁力計(jì)、氣壓計(jì)、陀螺儀、加速度傳感器、溫度傳感器和視頻傳感器信號(hào)進(jìn)行處理,將處理好的數(shù)據(jù)打包再通過(guò)WiFi AP無(wú)線傳輸給地面帶有WiFi Client的接收終端。地面接收終端接收數(shù)據(jù)時(shí),首先打開(kāi)無(wú)線網(wǎng)絡(luò)連接搜索周邊的WiFi AP 熱點(diǎn),當(dāng)搜索到特定機(jī)載WiFi AP名稱(chēng)時(shí)輸入連接密碼進(jìn)行連接,成功后打開(kāi)接收端接收來(lái)自飛控板的飛行姿態(tài)信息和視頻信息。
2 硬件設(shè)計(jì)
2.1 硬件平臺(tái)設(shè)計(jì)
本設(shè)計(jì)數(shù)據(jù)傳輸系統(tǒng)硬件只用考慮機(jī)載飛控板發(fā)送部分,接收終端采用手機(jī)或者便攜式計(jì)算機(jī)則不需要設(shè)計(jì)。硬件平臺(tái)系統(tǒng)如圖2所示,具體實(shí)現(xiàn)如圖3所示,要能實(shí)現(xiàn)Linux的裝載,需要有SDIO0接口用于連接SD卡實(shí)現(xiàn)程序的燒寫(xiě),SDIO1接口用于連接AR6003。由于姿態(tài)傳感器采用的是I2C傳輸數(shù)據(jù),S3C6410需要有一個(gè)I2C接口和一個(gè)用于調(diào)試監(jiān)控和數(shù)據(jù)采集的串口。
2.2 WiFi接口設(shè)計(jì)
AR6003嵌入式環(huán)境中WiFi的硬件接口如圖4所示。在SDIO接口和S3C6410的SDIO接口連接時(shí),SD_D0~SD_D3實(shí)現(xiàn)數(shù)據(jù)傳輸,SD_CLK實(shí)現(xiàn)傳輸時(shí)鐘同步。
3 系統(tǒng)軟件設(shè)計(jì)
數(shù)據(jù)傳輸過(guò)程如圖5所示。姿態(tài)和視頻傳感器采集的參數(shù)經(jīng)過(guò)應(yīng)用程序預(yù)處理,然后通過(guò)UDP或者TCP協(xié)議將數(shù)據(jù)打包。打包好的數(shù)據(jù)在操作系統(tǒng)和無(wú)線網(wǎng)絡(luò)驅(qū)動(dòng)作用下通過(guò)AR6003網(wǎng)卡對(duì)攜帶的數(shù)據(jù)包進(jìn)行收發(fā)。
3.1 WiFi AP模式驅(qū)動(dòng)實(shí)現(xiàn)
由于低于3.2版本的Linux內(nèi)核源碼中并沒(méi)包含AR6003的驅(qū)動(dòng)代碼,故使用compat?wireless把AR6003驅(qū)動(dòng)代碼移植到Linux 3.0.1內(nèi)核中。具體步驟如下:
進(jìn)入解壓出來(lái)的compat?wireless?3.3?2?n目錄;執(zhí)行./scripts/driver?select ath6kl;然后使用以下命令交叉編譯驅(qū)動(dòng):
ARCH=arm CROSS_COMPILE=arm?none?linux?gnueabi?make KLIB=/home/xx/Desktop/linux?3.0.1 ;KLIB_BUILD=/home/xx/Desktop/linux?3.0.1
編譯成功后,把compat?wireless?3.3?2?n目錄下的net/wireless/生成的cfg80211.ko和drivers/net/wireless/ath/ath6kl/中生成的ath6kl.ko兩個(gè)文件拷貝到目標(biāo)板的文件系統(tǒng)中,同時(shí)把AR6003的firmware目錄ath6k拷貝到目標(biāo)板的/lib/firmware/目錄中,用ln ?s /lib/firmware/ath6k/AR6003/hw2.1.1/bdata.SD32.bin /lib/firmware/th6k/ AR6003/hw2.1.1/bdata.bin建立軟鏈接。
交叉編譯libnl庫(kù)并安裝在usr/local/arm/libnl1.1/路徑下;交叉編譯libssl庫(kù)并安裝在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的庫(kù)文件路徑;LIBS+=?L/usr/local/arm/libnl/lib/指定ssl的庫(kù)文件路徑
然后編譯make hostapd,得到hostapd和myap.conf文件。修改myap.conf:
interface=wlan0;driver=nl80211;ssid=test;hw_mode=g;channel=8
將改好的hostapd和myap.conf文件拷貝到S3C6410目標(biāo)板中。
安裝dhcpd和配置dhcpd.conf,實(shí)現(xiàn)對(duì)試圖接入AR6003AP終端的IP地址動(dòng)態(tài)分配。
3.2 數(shù)據(jù)傳輸軟件設(shè)計(jì)
當(dāng)AR6003網(wǎng)卡啟動(dòng)并工作在AP模式后,并與客戶(hù)端實(shí)現(xiàn)WiFi信號(hào)連接,操作系統(tǒng)調(diào)用數(shù)據(jù)傳輸應(yīng)用程序,socket封裝了TCP/IP網(wǎng)絡(luò)的API,通過(guò)調(diào)用其相關(guān)函數(shù)實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。開(kāi)發(fā)流程如下:
首先調(diào)用socket()函數(shù)創(chuàng)建socket, 用setsockopt()函數(shù)設(shè)置socket屬性,用bind()函數(shù)綁定IP地址、端口等信息到socket,用函數(shù)listen()監(jiān)聽(tīng)。write(WORD *buff,WORD len)實(shí)現(xiàn)發(fā)送,read(WORD *buff,WORD maxlen)實(shí)現(xiàn)數(shù)據(jù)接收。數(shù)據(jù)幀分為功能幀0x0傳輸加速度、陀螺儀、磁力計(jì)傳感信息;功能幀0x01傳輸氣壓高度、溫度和姿態(tài)解算信息以及視頻信號(hào)數(shù)據(jù)。功能幀0x0數(shù)據(jù)填充格式如表1所示。
4 數(shù)據(jù)傳輸測(cè)試
數(shù)據(jù)傳輸測(cè)試結(jié)果如圖6所示,其中加速度、陀螺儀、磁力計(jì)波形按照1/5衰減顯示,當(dāng)?shù)孛婵蛻?hù)端搜索到機(jī)載WiFi信號(hào)后,輸入連接密碼成功后,多軸飛行器姿態(tài)數(shù)據(jù)便按照預(yù)定義的格式打包傳入接收端,接收端按照協(xié)議對(duì)數(shù)據(jù)進(jìn)行解析和處理顯示。
5 結(jié) 語(yǔ)
設(shè)計(jì)實(shí)現(xiàn)了工作在WiFi AP模式下的多軸飛行器無(wú)線數(shù)據(jù)傳輸系統(tǒng)。能實(shí)現(xiàn)多終端接收攜帶有飛行器實(shí)時(shí)姿態(tài)數(shù)據(jù)WiFi信號(hào),可以方便飛行器調(diào)試,還可以通過(guò)多個(gè)WiFi AP中繼后增加飛行器的遠(yuǎn)程數(shù)據(jù)傳輸功能。
參考文獻(xiàn)
[1] 陳東偉,吳延超,李偉杰,等.基于物聯(lián)網(wǎng)的智能家居系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2014(5):67?70.
[2] 王金紅,成怡,錢(qián)紅亮,等.四軸飛行器姿態(tài)監(jiān)控系統(tǒng)設(shè)計(jì)[J].宇航計(jì)測(cè)技術(shù),2014,34(6):9?13.
[3] 盧靈,周賢軍.基于WiFi的嵌入式視頻監(jiān)控系統(tǒng)設(shè)計(jì)[J].電視技術(shù),2013,37(1):157?160.
[4] 張霞,張志杰,軒志偉.基于ARM和WiFi的測(cè)試系統(tǒng)手持終端的設(shè)計(jì)[J].電視技術(shù),2013,37(15):74?76.
[5] 李俐萍,陳金鷹,孫宇,等.WiFi控制的功率調(diào)節(jié)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化儀表,2014,35(7):48?51.
[6] 李山,楊波.基于WiFi的環(huán)境監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].軟件,2011,32(1):42?45.
[7] 劉杰.四軸飛行器研究與設(shè)計(jì)[D].南京:南京郵電大學(xué),2013.
[8] 朱陽(yáng),王偉成,王民慧,等.WiFi技術(shù)在智能車(chē)數(shù)據(jù)通信中的應(yīng)用[J].傳感器世界,2014(7):35?39.
[9] 劉志高,丁青青.基于802.11n的多功能無(wú)線傳輸平臺(tái)的設(shè)計(jì)與應(yīng)用[J].工礦自動(dòng)化,2014(4):110?114.
[10] 陳李文,馬國(guó)軍,張家棟.四軸飛行器無(wú)刷直流電機(jī)驅(qū)動(dòng)技術(shù)研究[J].現(xiàn)代電子技術(shù),2013,36(16):152?154.