999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種ARM+DSP架構的小型無人機飛行控制平臺軟件設計

2014-01-15 09:59:48雷金奎
電子設計工程 2014年15期
關鍵詞:設備系統

雷金奎, 趙 晨, 陳 浩

(1.西北工業大學 第365研究所,陜西 西安 710065;2.西北工業大學 陜西 西安 710072)

近年來,無人機[1]以其獨有的低成本、低損耗、零傷亡、可重復使用和高機動等優勢,在軍用和民用領域的應用范圍不斷擴大,使得人們對無人機提出了更高的要求,因此作為無人機核心的飛行控制器的研究也越來越受到重視。高精度要求無人機控制系統的精度高,穩定性好,能適應復雜的環境,計算速度快,精度高[2],小型化則對控制系統的重量和體積提出了更高的要求。此外,還要具備實時、可靠的特點。

1 飛控平臺概述

本設計的無人機飛行控制平臺是基于ARM+DSP雙處理器協同工作來實現的,總體結構圖如圖1所示。平臺選用SAMSUNG公司的ARM9處理器S3C2440作為主處理器,選用TI公司的DSP處理器TMS320F2812作為從處理器。雙口RAM芯片IDT7028L實現雙處理器之間的通訊,AD7490芯片將機載傳感器采集的信號由模擬量轉換為數字量,AD5628芯片用于輸出模擬控制量。平臺外擴32M SDRAM,8路串口通信電路,具有30路離散I/O口,JTAG調試接口。主要實現的功能:

1)ARM主處理器采集各傳感器信號,包括角速度、高度、飛行器姿態等參數,經調理電路濾除干擾后送入A/D轉換電路,將轉換后的數字量存入雙口RAM。

2)DSP從處理器通過雙口RAM獲取數據,進行控制律解算,產生PWM控制信號送入舵機,保證無人機平穩飛行。

圖1 系統總體結構圖Fig.1 Structure diagram of the small UAV flight platform

2 軟件設計

根據平臺任務劃分,分別對ARM、DSP處理器進行軟件設計。針對ARM主處理器需要完成U-boot內核引導程序、Linux內核、yaffs根文件系統的移植,建立起嵌入式ARMLinux系統,基于此開發環境進行驅動及應用程序開發。針對DSP從處理器主要基于CCS集成開發環境,使用C語言與匯編語言完成數據處理。

ARM處理器主要包括初始化模塊、數據采集模塊,其中數據采集模塊包括A/D轉換、串行通訊和無線通訊等。初始化模塊主要完成對ARM系統時鐘、中斷寄存器、外部存儲器的操作,保證串口、AD7490等的正常工作。數據采集模塊使用計數方式產生不同時間間隔的定時中斷,在中斷服務程序中完成對A/D轉換、串口等數據的采集并存入雙口RAM IDT7028L。

DSP處理器主要包括初始化模塊、控制律解算模塊。初始化模塊保證DSP系統正常工作。為滿足系統的實時性要求,控制律解算模塊通過設置合理的定時間隔讀取雙口RAM中的數據,進行控制律解算,向舵機輸出PWM控制信號。在解算過程中考慮到A/D轉換、串行通訊、無線傳輸具有不同的刷新速率,刷新速率較慢的數據使用歷史值作為當前值。軟件設計流程圖如圖2所示。

圖2 軟件設計流程圖Fig.2 Flow chart of the software design

3 關鍵技術解決

飛控平臺軟件設計的關鍵是移植Linux操作系統,并在此基礎上實現底層驅動的開發。

3.1 Linux系統移植

3.1.1 Bootloader的移植

文中選用U-boot-1.1.6作為系統的Bootloader,在源碼基礎上修改添加開發板硬件相關文件、配置選項。首先修改最頂層Makefile,在其中添加如下兩行:

smdk2440_config:unconfig

@$ (MKCONFIG) $ (@:_CONFIG= ) arm arm920t smdk2440 NULL s3c24x0

修改board/smdk2440/lowlevel_init.S完成SDRAM的配置,修改board_init函數完成對S3C2440系統時鐘的改動,修改board/s3c2440/flash.c完成對Nor Flash的支持,修改driver/nand/nand.c等驅動函數完成對Nand Flash等設備的支持,增加串口xmodem協議以便使用SecureCRT工具,增加“nand write”和“nand write.yaffs”等命令以燒寫內核和 yaffs文件系統映像文件。 執行“make s3c2440_config”和“make all”命令,對U-boot重新編譯,生成二進制映像文件u-boot.bin,將其燒寫進Nor Flash。

3.1.2 內核的移植

首先配置內核,確保內核可以正確編譯。修改頂層Makefile,將如下代碼:

ARCH ?=$(SUBARCH)

CROSS_COMPILE?=

改為:

ARCH ?=arm

CROSS_COMPILE?=arm-linux-

根據U-boot對Flash的分區情況修改linux2.6.32/arch/

arm/mach-s3c2440/目錄下的mach-smdk2440.c等文件。修改drivers/mtd/nand下的s3c2440.c文件和arch/arm/plats3c24xx下的common-smdk.c文件,將相關設備注冊進內核,完成MTD分區。將yaffs2代碼通過腳本文件patch-der.sh給內核打補丁的方式加入內核。用make menuconfig命令進入內核配置界面,對內核進行裁剪,然后執行“make dep”“make clean”“make zImage”命令生成內核映像文件zImage。當U-boot啟動后就可以將內核燒寫進Nand Flash。

3.1.3 根文件系統的移植

鑒于訪問速度快的優點,選擇YAFFS文件系統進行移植。利用Busybox-1.7.0來創建/bin、/sbin等目錄下的可執行文件,并在/dev目錄下創建必需的設備節點、在/etc目錄下創建必需配置文件、在/lib目錄下包含庫文件。

在Busybox-1.7.0目錄下執行“make menuconfig”命令可進入配置界面對Busybox進行相關配置。修改Busybox根目錄的Makefile,使用交叉編譯器,修改后為:

ARCH ?=arm

CROSS_COMPILE?=arm-linux-

然后執行 “make”命令編譯Busybox,執行命令“make CONFIG_PREFIX=dir_path install”將其安裝在指定目錄dir_path下,再加載glibc庫。創建etc目錄下的etc/inittab、etc/init.d/rcS和etc/fstab文件,在/dev目錄下靜態創建各種節點,如/dev/mtdblock*、/dev/ttySAC*等。使用mdev初始化/dev和動態更新,修改etc/fstab和etc/init.d/rcS使內核啟動時自動運行 mdev。 最 后 創 建 proc、mnt等 空 目 錄 。 使 用 命 令“mkyaffsimage”創建YAFFS文件系統映像文件,進而燒寫到目標板。

3.2 底層驅動的實現

3.2.1 AD7490驅動的實現

AD7490作為字符設備,其讀寫是以字節為單位的,采用可加載模塊化機制來開發設備驅動程序。首先對設備進行初始化,AD7490設備的初始化包括兩部分,一是對SPI工作方式、各控制寄存器和模式寄存器等配置參數,并將PIO配置為引腳外設控制;二是完成設備驅動程序向Linux內核注冊,調用函數register_chrdev()實現驅動模塊的注冊,調用函數unregiste_chrdev()實現驅動模塊注銷。

對于字符設備驅動程序是通過file_operations結構體中的成員函數實現對Linux的系統調用的。file_operations結構體如下:

static struct file_operations AD7490_fops={

.owner= THIS_MODULE;

.llseek= NULL;

.read= ad7490_rd;

.write= ad7490_wr;

.open= ad7490_open;

.release=ad7490_close;

};

構造file_operations結構中用到的各個成員函數,每個成員都對應一個系統調用,當用戶操作設備文件時系統調用通過設備文件的主設備號找到相應設備驅動程序,再通過file_operations中相應函數指針,由該函數進行相應控制。

最后編寫Makefile文件,執行“make”命令進行編譯,生成可執行的.ko文件。編譯成功后在目標板的映射目錄下執行“insmod”命令進行動態加載,執行“rmmod”命令實現動態卸載。驅動程序加載后,還需編寫A/D測試程序來驗證驅動程序是否實現了相應功能。經驗證,該驅動成功實現了預期功能。

3.2.2 IDT7028L驅動的實現

將雙口RAM IDT7028L作為塊設備編寫驅動程序,利用一塊系統內存作為緩沖區,當用戶進程對設備進行讀寫請求時驅動程序先查看緩沖區內容,若能滿足要求就返回相應數據,否則就調用相應的請求函數進行實際的I/O操作。

首先對雙口RAM進行初始化,配置寄存器、分配地址資源并初始化數據結構、申請中斷和注冊設備[4]。調用函數register_blkdev()實現驅動注冊,不使用請求隊列而是使用制造請求的方式實現I/O請求處理,分配gendisk,初始化gendisk,添加gendisk到系統中,調用函數unregister_blkdev()實現驅動注銷。

類似于字符設備驅動中的file_operations結構體,在塊設備驅動中有block_device_operations結構體。定義結構體如下:

static struct block_device_operations IDT7028L_fops={.owner= THIS_MODULE;

.open= idt7028_open;

.release=idt7028_close;

.ioctl= idt7028_ioctl;

.media_changed= idt7028_media_changed;

.revalidate_disk=idt7028_revalidate_disk;

.getgeo=idt7028_getgeo;

};

實現block_device_operations結構體中的各個函數,編寫Makefile文件,編譯、加載該驅動模塊。經測試程序驗證,該驅動成功實現了預期功能。

4 結 論

文中研究了ARM+DSP架構的小型無人機飛行控制平臺軟件設計,分析了系統功能模塊,給出了系統軟件設計流程和關鍵技術的解決方法。實踐證明該方案合理可行,軟件可靠性高,系統具有抗干擾能力強、實時處理效果好的優點。

[1]張小林,趙宇博.新一代高性能無人機飛控系統的研究與設計[J].計算機測量與控制,2010,18(11):2588-2590.ZHANG Xiao-lin,ZHAO Yu-bo.Research and design of new generation high performance unmanned aerial vehicle flight controlsystem[J].Computer Measurement& Control,2010,18(11):2588-2590.

[2]王昱輝,雷金奎.基于SmartFusion的無人機飛行控制系統設計[J].現代電子技術,2012,35(10):129-131.WANG Yi-hui,LEI Jin-kui.Design of smartfusion-based flight control system forUAVs[J].Modern Electronics Technique,2012,35(10):129-131.

[3]楊小兵.基于雙ARM的飛控計算機核心系統的研究與設計[D].南京:南京航空航天大學,2012.

[4]孫習波,陽富民.嵌入式系統雙口RAM應用及驅動開發[J].計算機工程與設計,2005,26(8):2257-2259.SUN Xi-bo,YANG Fu-min.Application and driver development of dual-port ram in embedded system[J]. Computer Engineering and Design,2005,26(8):2257-2259.

[5]張綺文.ARM嵌入式常用模塊與綜合系統設計實例精講[M].北京:電子工業出版社,2007.

[6]蘇奎峰.TMS320F2812原理與開發[M].北京:電子工業出版社,2005.

猜你喜歡
設備系統
諧響應分析在設備減振中的應用
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
主站蜘蛛池模板: 久久综合五月婷婷| 色亚洲成人| 热re99久久精品国99热| 亚洲人在线| 亚洲中文字幕在线精品一区| 久热中文字幕在线观看| 国产主播福利在线观看| 91区国产福利在线观看午夜| 亚洲成人一区在线| 狼友视频一区二区三区| 免费视频在线2021入口| 亚洲无码一区在线观看| 高清无码手机在线观看| 国产欧美日韩18| 亚洲国产成人在线| 特级欧美视频aaaaaa| 日本不卡在线播放| 最近最新中文字幕在线第一页| 老色鬼欧美精品| 精品免费在线视频| 中文精品久久久久国产网址| 孕妇高潮太爽了在线观看免费| 国产午夜精品鲁丝片| 99视频精品在线观看| 全部毛片免费看| 在线免费a视频| av在线无码浏览| 日韩无码视频播放| 成·人免费午夜无码视频在线观看 | 免费av一区二区三区在线| 婷婷六月激情综合一区| 免费毛片全部不收费的| 波多野结衣爽到高潮漏水大喷| 国产精品无码一区二区桃花视频| 亚洲美女久久| 国产性精品| 91网站国产| 日本免费高清一区| 久久不卡国产精品无码| 日本91视频| 老司机久久精品视频| 制服丝袜一区二区三区在线| 久久99国产综合精品女同| 久久96热在精品国产高清| 激情综合图区| 欧美成人日韩| 激情乱人伦| 欧美在线天堂| 久久久久久久97| 国产午夜无码专区喷水| 国产人成在线视频| 久草视频精品| 国产麻豆精品手机在线观看| 国产导航在线| 欧美三級片黃色三級片黃色1| 欧美成人精品一级在线观看| 国产精品妖精视频| 亚洲AⅤ综合在线欧美一区| 5555国产在线观看| 欧美一级在线| 日韩精品一区二区三区免费在线观看| 国产丝袜啪啪| 欧美精品xx| 天堂av综合网| 国产尹人香蕉综合在线电影 | 综合五月天网| 尤物特级无码毛片免费| 国产精品无码久久久久久| 亚洲第一网站男人都懂| 亚洲欧美在线精品一区二区| 欧美不卡视频一区发布| 午夜精品一区二区蜜桃| 欧美不卡二区| 看看一级毛片| 国产一二三区视频| 久久大香香蕉国产免费网站| 国产欧美视频在线| 色久综合在线| 中文字幕调教一区二区视频| 在线色国产| 午夜视频在线观看免费网站| 精品视频一区二区观看|