亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        雷金奎, 趙 晨, 陳 浩

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

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

        1 飛控平臺概述

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

        1)ARM主處理器采集各傳感器信號,包括角速度、高度、飛行器姿態(tài)等參數(shù),經(jīng)調(diào)理電路濾除干擾后送入A/D轉(zhuǎn)換電路,將轉(zhuǎn)換后的數(shù)字量存入雙口RAM。

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

        圖1 系統(tǒng)總體結(jié)構(gòu)圖Fig.1 Structure diagram of the small UAV flight platform

        2 軟件設計

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

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

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

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

        3 關鍵技術解決

        飛控平臺軟件設計的關鍵是移植Linux操作系統(tǒng),并在此基礎上實現(xiàn)底層驅(qū)動的開發(fā)。

        3.1 Linux系統(tǒng)移植

        3.1.1 Bootloader的移植

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

        smdk2440_config:unconfig

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

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

        3.1.2 內(nèi)核的移植

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

        ARCH ?=$(SUBARCH)

        CROSS_COMPILE?=

        改為:

        ARCH ?=arm

        CROSS_COMPILE?=arm-linux-

        根據(jù)U-boot對Flash的分區(qū)情況修改linux2.6.32/arch/

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

        3.1.3 根文件系統(tǒng)的移植

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

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

        ARCH ?=arm

        CROSS_COMPILE?=arm-linux-

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

        3.2 底層驅(qū)動的實現(xiàn)

        3.2.1 AD7490驅(qū)動的實現(xiàn)

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

        對于字符設備驅(qū)動程序是通過file_operations結(jié)構(gòu)體中的成員函數(shù)實現(xiàn)對Linux的系統(tǒng)調(diào)用的。file_operations結(jié)構(gòu)體如下:

        static struct file_operations AD7490_fops={

        .owner= THIS_MODULE;

        .llseek= NULL;

        .read= ad7490_rd;

        .write= ad7490_wr;

        .open= ad7490_open;

        .release=ad7490_close;

        };

        構(gòu)造file_operations結(jié)構(gòu)中用到的各個成員函數(shù),每個成員都對應一個系統(tǒng)調(diào)用,當用戶操作設備文件時系統(tǒng)調(diào)用通過設備文件的主設備號找到相應設備驅(qū)動程序,再通過file_operations中相應函數(shù)指針,由該函數(shù)進行相應控制。

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

        3.2.2 IDT7028L驅(qū)動的實現(xiàn)

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

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

        類似于字符設備驅(qū)動中的file_operations結(jié)構(gòu)體,在塊設備驅(qū)動中有block_device_operations結(jié)構(gòu)體。定義結(jié)構(gòu)體如下:

        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;

        };

        實現(xiàn)block_device_operations結(jié)構(gòu)體中的各個函數(shù),編寫Makefile文件,編譯、加載該驅(qū)動模塊。經(jīng)測試程序驗證,該驅(qū)動成功實現(xiàn)了預期功能。

        4 結(jié) 論

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

        [1]張小林,趙宇博.新一代高性能無人機飛控系統(tǒng)的研究與設計[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的無人機飛行控制系統(tǒng)設計[J].現(xiàn)代電子技術,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的飛控計算機核心系統(tǒng)的研究與設計[D].南京:南京航空航天大學,2012.

        [4]孫習波,陽富民.嵌入式系統(tǒng)雙口RAM應用及驅(qū)動開發(fā)[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嵌入式常用模塊與綜合系統(tǒng)設計實例精講[M].北京:電子工業(yè)出版社,2007.

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

        猜你喜歡
        設備系統(tǒng)
        諧響應分析在設備減振中的應用
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        半沸制皂系統(tǒng)(下)
        基于VB6.0+Access2010開發(fā)的設備管理信息系統(tǒng)
        基于MPU6050簡單控制設備
        電子制作(2018年11期)2018-08-04 03:26:08
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        500kV輸變電設備運行維護探討
        亚洲小说区图片区色综合网| 欧美人与动牲交片免费| 国产精品污一区二区三区在线观看 | 亚洲成人av大片在线观看| 无码一区二区三区| 韩国无码av片在线观看网站| 香港三级日本三级a视频| 久热这里只有精品视频6| 最近中文字幕在线mv视频在线| 精品久久久久久久久免费午夜福利| 亚洲 国产 哟| 久久久亚洲精品蜜臀av| 亚洲处破女av日韩精品中出| 人妻少妇精品无码专区动漫| 国产成人亚洲综合一区| 亚洲美女av二区在线观看| 91国产自拍精品视频| 欧美老肥妇做爰bbww| 精品久久久无码中字| 黄色毛片视频免费| 少妇bbwbbw高潮| 国产激情一区二区三区不卡av| 男女做爰高清免费视频网站| 韩国三级中文字幕hd久久精品| 久久久久久亚洲AV成人无码国产| 国内偷拍视频一区二区| 精品高朝久久久久9999| 一本一道久久综合狠狠老| 成人午夜视频一区二区无码| 中文字幕一区二区三区在线视频| 开心久久婷婷综合中文字幕| 97精品超碰一区二区三区| 国产精品理人伦国色天香一区二区| 亚洲色AV天天天天天天| 一区二区三区乱码专区| 久久精品国产亚洲夜色av网站| 99精品国产99久久久久久97| 国产成人精品免费视频大全| 91九色熟女潮喷露脸合集| 中文字幕人妻中文| 无码日韩AⅤ一区二区三区|