《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM微控制器的飛行數據記錄儀設計
基于ARM微控制器的飛行數據記錄儀設計
2018年電子技術應用第11期
劉 琨,許 哲,李飛飛
中國航天科技集團有限公司第四研究院第四十一研究所,陜西 西安710025
摘要: 為了實時記錄無人直升機的飛行數據,為后續分析直升機飛行狀態、建立數學模型提供方便,介紹了一種實用性強、通用性好、移植方便的數據記錄儀軟硬件設計方案。本方案采用ARM內核微處理器結合SD卡以及文件系統的設計,并擴展出常用的通信接口以適應與使用不同通信協議的設備互連。經實際運行測試,記錄儀能夠很好地將數據存入建立的文件中,為后續數據分析、曲線繪制等工作提供了方便,具有一定的推廣意義和實用價值。
中圖分類號: TP368.1;V248.2
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.181570
中文引用格式: 劉琨,許哲,李飛飛. 基于ARM微控制器的飛行數據記錄儀設計[J].電子技術應用,2018,44(11):57-60.
英文引用格式: Liu Kun,Xu Zhe,Li Feifei. Design of flight data recorder based on ARM microcontroller[J]. Application of Electronic Technique,2018,44(11):57-60.
Design of flight data recorder based on ARM microcontroller
Liu Kun,Xu Zhe,Li Feifei
The 41st Institute of the Fourth Academy of China Aerospace Science and Technology Co.,Ltd.,Xi′an 710025,China
Abstract: To record the flight data of unmanned helicopter in real time, and for the convenience of subsequent analysis of the helicopter′s flight state and mathematical modeling, in this paper, a data recorder with the features of good practicability, generality and convenient to transplantation is designed with software and hardware solution. This solution is designed with ARM microcontroller combined with SD card and the file system, and commonly used communication interfaces are added to connect with different devices using different communication protocols. By actual running tests, the flight data can be well stored in the file set up before, and provides the convenience for subsequent data analysis, curve drawing and so on. Also, it has certain significance for popularization and practical value.
Key words : flight data recorder;unmanned helicopter;ARM microcontroller;file system;SD card

0 引言

    實時記錄飛行器的飛行數據對于監測飛行器飛行狀態以及后續研究飛行器(如模型辨識等)都起著關鍵的作用。對于小型飛行器來說,設計開發一種體積小、重量輕且操作方便的數據記錄儀顯得尤為重要。隨著微控制器技術的發展,其片上Flash空間也越來越大,一般都有幾十到上百KB的容量,能夠滿足多數數據量小的應用,但對于某些應用(例如數據采集和文件存儲等),片上Flash就不能提供足夠的存儲空間了。可見大容量數據的存儲是微控制器應用系統的瓶頸[1]。因此需要外擴存儲設備來解決存儲空間不足的問題。以Flash為存儲體的SD卡因其具備體積小、功耗低、可擦寫以及非易失性等特點而被廣泛應用。本文將介紹一種采用ARM處理器結合SD卡的直升機飛行數據記錄儀設計方案。

1 飛行數據記錄儀總體設計

    本方案所選取的ARM處理器為意法半導體公司的Cortex-M3內核高性能微處理器STM32F103,其片內擁有豐富的資源。數據記錄儀的數據接收端由STM32F103擴展出常用的通信接口:USART、SPI、I2C、USB2.0,以適用于不同通信協議的設備;直升機的控制輸入數據即4個舵機PWM控制信號由STM32F103輸入捕獲單元捕獲并做信號解混控處理;數據存儲端采用STM32F103內特有的SDIO接口與SD卡連接并結合FatFs文件系統,實現與SD的通信與數據文件存儲;同時增加按鍵與指示燈來實現對設備的操作和設備狀態指示功能。飛行數據記錄儀的總體設計圖如圖1所示。

ck3-t1.gif

2 記錄儀硬件設計

    記錄儀所采用的核心處理器STM32F103是意法半導體公司生產的具有ARM Cortex-M3內核的32位高性能微處理器,最高主頻72 MHz,具有512 KB容量片內Flash、64 KB片內SRAM、12通道DMA控制器,以及多達11個定時器,并擁有I2C、USART、SPI、CAN、USB2.0和SDIO通信接口[2],足以滿足數據記錄儀的設計要求。

2.1 串口通信電路

    本無人直升機系統所使用的AHRS采用串口RS232協議,為了采集AHRS數據需要設計主控制器與AHRS的通信接口電路。本文采用RS232電平轉換芯片MAX232作為RS232電平與TTL電平轉換器,以實現AHRS與主控制器的數據通信。RS232串口通信電平轉換電路如圖2所示。

ck3-t2.gif

2.2 MicroSD卡電路

    SD卡與主控制器內SDIO接口連接,以實現主控制器與SD卡的通信以及對SD卡的操作,完成SD卡檢測和文件系統的建立以及數據存儲。本文采用MicroSD卡作為存儲介質,該型卡的數據信號線采用6線制,分別為數據線D0、D1、D2和D3,命令線CMD和時鐘線CK。數據線D0~D3分別與主控制器SDIO接口的4根數據SDIO-D0~SDIO-D3線互連,命令線與時鐘線分別與SDIO接口的SDIO-CMD和SDIO-CK連接。其中數據線和命令線需加上拉電阻。MicroSD卡采用3.3 V供電。MicroSD卡的SDIO模式電路圖如圖3所示。

ck3-t3.gif

2.3 舵機PWM信號捕獲電路

    由于舵機的控制信號PWM信號具有周期固定、占空比可調的特點,因此只需要捕獲PWM信號高電平所占的寬度即可。使用STM32F103內部定時器的輸入捕獲功能就可完成此項任務。從接收機輸出的PWM信號一路輸入舵機同時分出相同一路輸入STM32F103的定時器TIM3的4個通道TIM3_CH1~ TIM3_CH4進行信號捕獲處理。舵機PWM信號的捕獲電路示意圖如圖4所示。

ck3-t4.gif

3 記錄儀軟件設計

3.1 AHRS數據接收與解包

    傳感器數據包由數據包頭、數據、數據包尾組成,且數據包連續發送至控制器串口緩沖區,為了保證能夠接收到完整的數據包且需要保證數據是最新的,本文使用了環形緩沖區數據結構來對數據進行接收。環形緩沖區示意圖如圖5所示。

ck3-t5.gif

    數據包以包頭、數據、包尾的順序依次進入緩沖區,程序中定義包頭包尾檢測函數,從當前指針位置實時檢測尋找數據包尾,當找到數據包尾時,再逆序遍歷找到對應的數據包頭,以此保證一包數據的實時性。環形緩沖區的長度是一包數據長度的2倍,兩個緩沖區交替讀/寫數據,因此能夠保證數據的完整性。

3.2 文件系統

    由于采集的數據需要使用與PC兼容的FAT16文件系統組織文件才可以直接在PC上使用MATLAB或Excel軟件打開并繪制曲線,因此需要在微控制器中移植文件系統來完成此功能。本方案選取的FatFs文件系統是一個完全免費開源的文件系統,專門為小型的嵌入式系統設計。它完全用標準C語言編寫,具有良好的硬件平臺獨立性,只需做簡單的修改就可以方便移植到不同類型的微處理器上[3];它支持FAT12、FAT16和FAT32,支持多個存儲媒介;具有多個緩沖區,可以對多個文件進行讀/寫。FatFs文件系統層次結構如圖6所示。

ck3-t6.gif

    對于最頂層的應用層,用戶無須理會FatFs的內部結構和復雜的FAT 協議,只需要調用FatFs模塊提供給用戶的一系列應用接口函數,如f_open、f_read、f_write和f_close等,就可以方便地讀/寫文件。中間層的FatFs模塊實現了FAT 文件讀/寫協議。FatFs模塊提供的是ff.c和ff.h兩個文件。除非有必要,用戶一般不用修改,使用時將頭文件直接包含進去即可。需要編寫移植代碼的是FatFs模塊提供的底層接口,它包括存儲媒介讀/寫接口(disk I/O)和供給文件創建修改時間的實時時鐘[4]。本文采用的FatFs文件系統版本是R0.09a。FatFs在移植時一般只需要修改2個文件,即ffconf.h和diskio.c。FatFs的所有配置項都是存放在ffconf.h 中,可以通過配置其中一些選項來滿足自己的需求。

    FatFs的移植主要分為3步:(1)根據編譯器的數據類型在integer.h文件中定義好數據類型;(2)ffconf.h文件配置FatFs的相關功能以滿足需求;(3)在diskio.c文件中進行底層驅動編寫,一般需要編寫6個驅動函數:disk_initialize、disk_status、disk_read、disk_write、disk_ioctl和get_fattime。完成以上3個步驟后即可完成FatFs的移植,在使用FatFs之前必須先通過f_mount函數注冊一個工作區才能開始后續應用接口函數的使用。

3.3 直升機傾斜盤舵機信號解混控

    由于控制直升機傾斜盤的3個舵機是以聯動的方式使傾斜盤產生相應動作來控制直升機姿態,而直升機的控制輸入變量為縱向周期變距變量Δδe、側向周期變距變量Δδa、總距變量Δδc以及尾槳變距變量Δδr[5],因此需要對控制傾斜盤動作的3個舵機信號做解混控處理來分別解算出縱向周期變距變量Δδe、側向周期變距變量Δδa、總距變量Δδc。其中尾槳變距舵機單獨工作,因此不需要做信號解混控,只需單獨采集該舵機信號即可換算出尾槳變距變量Δδr。直升機傾斜盤結構示意圖如圖7所示。

ck3-t7.gif

    當傾斜盤做單純前后傾斜運動時(對應直升機滾轉運動),舵機A與舵機B同時動作且幅度相同,舵機C則相對舵機A、B差動;當傾斜盤做單純左右傾斜運動時(對應直升機俯仰運動),舵機A與舵機B差動且幅度相同,而此時舵機C則不動;當傾斜盤做單純平行上下運動時(對應直升機總距變化),3個舵機同時動作且幅度相同。

    由圖7所示的傾斜盤結構示意圖可簡化出如圖8所示的傾斜盤舵機間幾何關系圖。

ck3-t8.gif

    由于A、B、C構成等邊三角形3個頂點,因此由圖8所示幾何關系可知舵機A與舵機B的連線中點D對旋翼軸心O的力臂L1是舵機C對旋翼軸心O力臂的1/2,當傾斜盤做單純前后傾斜運動時(對應直升機滾轉運動),舵機C的動作幅度應是舵機A、B動作幅度的2倍,對應采集到的舵機C的PWM信號占空比變化量也是舵機A、B的PWM信號占空比變化量的2倍。由以上分析可得出直升機傾斜盤舵機控制信號值與縱向周期變距變量Δδe、側向周期變距變量Δδa以及總距變量Δδc的關系式如式(1)所示:

     ck3-gs1.gif

式中,α、β、γ分別代表實時采集到的舵機A、B、C的PWM信號高電平寬度值,α0、β0、γ0分別代表總距為0°時舵機A、B、C的PWM信號高電平寬度值。

    由式(1)可反解出對應的縱向周期變距變量Δδe、側向周期變距變量Δδa、總距變量Δδc如式(2)所示:

     ck3-gs2.gif

    由式(2)可知,由總距為0°時舵機A、B、C的PWM信號高電平寬度值和實時采集到舵機A、B、C的PWM信號高電平寬度值即可實時解算出對應的縱向周期變距變量Δδe、側向周期變距變量Δδa和總距變量Δδc

3.4 程序流程圖

    數據記錄儀的軟件部分如上所述,包含AHRS數據接收與解包、文件系統建立與文件存儲、舵機PWM信號捕獲與信號解混控以及人機交互程序。整個軟件部分的程序流程圖如圖9所示。

ck3-t9.gif

4 飛行數據記錄儀的應用

    按照正常操作流程,將數據記錄儀搭載到無人直升機上進行數據采集,各項飛行參數被正常記錄到在板載MicroSD卡內創建的Flight Data.txt文件中,可以通過MATLAB、Excel等軟件對文件中的數據繪制成曲線供后續數據分析,也可對數據做預處理后作為無人直升機模型辨識的控制輸入數據。根據記錄的數據利用MATLAB繪制的直升機三軸姿態角、三軸角速率分別如圖10、圖11所示。

ck3-t10.gif

ck3-t11.gif

5 結束語

    本飛行數據記錄儀能夠很好地完成飛行數據記錄功能,可將數據實時寫入創建的Flight Data.txt中,并能夠方便地在PC上使用MATLAB、Excel等軟件讀入數據并繪制曲線。同時,預留的不同通信協議接口可以方便地與使用不同通信協議的傳感器等設備互連,且軟件修改方便,只需修改前端數據接收部分程序即可快速投入使用,通用性強,可移植性好,能夠滿足實際使用的要求。

參考文獻

[1] 張濤,左謹平,馬華玲.FatFs在32位微控制器STM32上的移植[J].電子技術,2010(3):25.

[2] Stmicroelectronics.STM32F103xCDE datasheet[Z].2009.

[3] 洪岳煒,王百鳴,謝超英.一種易于移植和使用的文件系統FatFs Moduel[J].單片機與嵌入式系統應用,2008(5):29.

[4] 李世奇,董浩斌,李榮生.基于FatFs文件系統的SD卡存儲器設計[J].測控技術,2011,30 (12):79-80.

[5] 楊一棟.直升機飛行控制[M].北京:國防工業出版社,2007.



作者信息:

劉  琨,許  哲,李飛飛

(中國航天科技集團有限公司第四研究院第四十一研究所,陜西 西安710025)

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 高清国产在线观看 | 亚洲色图欧美 | 又黄又免费的视频 | 成人三级视频 | 色黄网站成年女人色毛片 | 亚洲专区在线播放 | 亚洲国产情侣一区二区三区 | 久久免视频 | 韩国 日本 在线观看 | 欧美大片在线观看成人 | 欧美黑人巨大硬xxx猛性 | 成人a毛片在线看免费全部播放 | 成在线人视频免费视频 | 国产成人精品在视频 | 久久综合九色综合狠狠97 | 国产精品一国产精品免费 | www在线视频观看 | 免费看国产精品麻豆 | 天天狠天天透天天伊人 | 最新欧美一级视频 | 天堂在线观看视频观看www | 激情五月社区 | 日本三级2018亚洲视频 | 日韩导航| 亚洲人成在线免费观看 | 很很在线视频观看 | 91se在线看片国产免费观看 | 青草草在线视频 | 国产欧美成人免费观看视频 | 4k岛国精品午夜高清在线观看 | 亚洲成人18 | 香港三级日本三级人妇网站 | 日韩精品视频观看 | 国产高清精品久久久久久久 | 国产小视频在线免费观看 | 天天射天天做 | s级毛片 | 在线免费黄色 | 日韩ab| 亚洲精品第五页中文字幕 | 欧美日韩一区二区在线观看视频 |