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

        ?

        AUV運動控制器CAN通信模塊在RT-Thread上的設(shè)計與實現(xiàn)

        2021-10-09 09:44:34丁一明李文魁張煦光
        自動化儀表 2021年9期
        關(guān)鍵詞:指令

        丁一明,李文魁,張煦光

        (海軍工程大學(xué)電氣工程學(xué)院,湖北 武漢,430000)

        0 引言

        自主式水下潛航器(autonomous underwater vehicle,AUV)因機(jī)動性好、安全、智能化等優(yōu)點,成為完成各種水下任務(wù)的重要工具。在復(fù)雜的水下工作環(huán)境中,執(zhí)行任務(wù)的實時性和可靠性顯得格外重要。傳統(tǒng)的前后臺程序?qū)崿F(xiàn)比較直觀,但在實時處理能力方面有很大的局限性。由于其再次響應(yīng)任務(wù)的時間是整個循環(huán)執(zhí)行的時間,導(dǎo)致可靠性和實時性較差[1-2]。為了提高AUV 的可靠性和實時性,加入實時多線程(real time thread,RT-Thread)操作系統(tǒng)對AUV進(jìn)行設(shè)計和管理,利用RT-Thread優(yōu)秀的同步機(jī)制和任務(wù)調(diào)度管理機(jī)制,在規(guī)定時間內(nèi)完成任務(wù)??刂破骶钟蚓W(wǎng)絡(luò)(controller area network,CAN)作為應(yīng)用較為廣泛的現(xiàn)場總線之一,具有高性能、高可靠性及糾錯性能好等優(yōu)點[3]。本文采用CAN總線實現(xiàn)與導(dǎo)航模塊等外設(shè)間的數(shù)據(jù)通信。

        1 RT-Thread操作系統(tǒng)

        1.1 RT-Thread操作系統(tǒng)架構(gòu)及特點

        RT-Thread操作系統(tǒng)架構(gòu)如圖1所示。

        圖1 RT-Thread操作系統(tǒng)架構(gòu)

        RT-Thread為搶占式實時多任務(wù)操作系統(tǒng),采用面向?qū)ο蟮脑O(shè)計方法,架構(gòu)清晰,裁剪、移植方便[4-5]。RT-Thread既有一個實時內(nèi)核,又有豐富的中間層組件。系統(tǒng)采用分層式結(jié)構(gòu),由下至上分別為:CPU架構(gòu)、內(nèi)核層(kernel)、組件和服務(wù)層(components )、軟件包(packages)。實時內(nèi)核是系統(tǒng)核心,包括線程管理、時鐘管理、內(nèi)存管理、信號量、事件、消息隊列等。任務(wù)線程調(diào)度靈活,具有多種內(nèi)存管理算法,支持多種同步和通信機(jī)制。組件和服務(wù)層提供了文件系統(tǒng)、圖形庫等較完整的中間件組件。軟件包內(nèi)容豐富,包括物聯(lián)網(wǎng)、系統(tǒng)、外設(shè)庫與驅(qū)動類等60多個軟件包。

        1.2 Env工具

        Env工具是RT-Thread的輔助開發(fā)工具,為操作系統(tǒng)的項目工程提供編譯環(huán)境構(gòu)建、圖形化系統(tǒng)配置及軟件包管理等功能,可對內(nèi)核、組件和軟件包進(jìn)行自由裁剪。

        1.3 FinSH組件模塊

        FinSH 是RT-Thread操作系統(tǒng)的命令行組件??刂平K端接收的用戶命令通過串口傳給FinSH;FinSH讀取命令,解析并自動掃描內(nèi)部函數(shù)表,尋找對應(yīng)函數(shù)名,執(zhí)行函數(shù)后輸出回應(yīng),將結(jié)果顯示在控制終端上。

        2 AUV半物理仿真系統(tǒng)

        AUV半物理仿真系統(tǒng)如圖2所示。

        圖2 AUV半物理仿真系統(tǒng)

        為滿足實驗室環(huán)境下運動控制器開發(fā)的需要,將AUV運動控制器與前期開發(fā)的AUV運動模擬器對接,構(gòu)建AUV半物理仿真系統(tǒng)。AUV運動控制器與AUV運動模擬器間通信的信號流為:控制器接收來自控制終端的指令航向、指令深度等控制指令,并接收來自模擬器的航向、航速、縱傾、橫傾、深度等實際運動參數(shù),形成指令舵角,發(fā)送給運動模擬器。模擬器接收控制器發(fā)送的指令舵角,進(jìn)行舵機(jī)模擬和AUV運動模擬計算,并將實際舵角和運動參數(shù)發(fā)送給控制器。

        控制器硬件平臺采用STM32F4開發(fā)板,微控制芯片為STM32F407,基于ARM Cortex-M4內(nèi)核,最高主頻為168 MHz,具有192 KB SRAM、1 024 KB FLASH、USART、CAN控制器等豐富的資源[6],可通過USART連接通信模塊,與上位機(jī)進(jìn)行數(shù)據(jù)交換[7-8]。CAN外設(shè)支持2.0 A及2.0 B,波特率最高為1 Mbit/s。TJA1050收發(fā)器與MCU內(nèi)置的CAN控制器可實現(xiàn)CAN總線通信。

        AUV運動模擬器通過USB CAN Ⅱ分析儀與AUV運動控制器連接。USB CAN Ⅱ分析儀帶有USB2.0接口和2路CAN接口,具備CAN總線協(xié)議分析功能。

        3 工程創(chuàng)建

        3.1 RT-Thread源碼獲取

        開發(fā)環(huán)境采用Keil MDK5軟件。RT-Thread源碼使用版本rt-thread-v4.0.2,其源碼可從RT-Thread官網(wǎng)下載[9]。板級支持包bsp文件夾提供了多種開發(fā)平臺的配置文件。本文選取stm32文件夾中的stm32f407-atk-explorer文件。

        3.2 使用Env工具創(chuàng)建工程模板

        在Env工具命令行中輸入menuconfig命令。打開圖形化配置工具,將RT-Thread Kernel相關(guān)參數(shù)設(shè)為默認(rèn)值。在RT-Thread Components /Device Drivers目錄下,選中Using CAN device drivers選項。輸入命令scons-target=mdk5生成Keil MDK5工程,輸入命令scons -dist生成dist文件夾。其子文件夾stm32f407-atk-explorer包含了RT-Thread內(nèi)核源碼和BSP相關(guān)工程。

        3.3 芯片引腳配置

        使用STM32CubeMX配置芯片引腳。在Connectivity目錄下使能CAN1,芯片圖上CAN1_TX和CAN1_RX對應(yīng)的引腳PA12和PA11顯示為綠色,說明配置成功。檢查時鐘樹配置是否正確(如最高時鐘頻率是否為168 MHz等),然后生成代碼。將生成的文件夾Inc和Src中的stm32f4xx_hal_conf.h和stm32f4xx_hal_msp.c文件拷貝到libraries/STM32F4xx_HAL/ STM32F4xx_HAL_Driver中對應(yīng)的Inc和Src文件夾,替換原來的文件。

        打開Env工具,在命令行輸入scons-target=mdk5生成mdk5工程。打開生成的mdk5工程應(yīng)用程序,完成編譯。

        3.4 CAN驅(qū)動程序移植及編譯

        3.4.1 波特率配置

        3.4.2 CAN驅(qū)動移植

        ①CAN驅(qū)動添加。

        在stm32f4xx_hal_conf.h文件里使能HAL庫CAN驅(qū)動宏定義:

        #define HAL_CAN_MODULE_ENABLED

        在rtconfig.h里加入相應(yīng)的宏定義:

        #define RT_USING_CAN

        //使能CAN設(shè)備框架

        #define BSP_USING_CAN

        //使能CAN設(shè)備驅(qū)動

        #define BSP_USING_CAN1

        //使能CAN1設(shè)備驅(qū)動

        ②CAN設(shè)備初始化。

        CAN設(shè)備初始化涉及l(fā)ibraries文件夾里的drv_common.c、drv_can.c和drv_can.h等文件。在drv_common.c文件中,加入頭文件調(diào)用:#include "drv_can.h",并將drv_can.c文件中CAN設(shè)備初始化函數(shù)rt_hw_can_init()添加到板載外設(shè)初始化函數(shù)void rt_hw_board_init()中。

        3.4.3 下載驗證

        通過FinSH組件進(jìn)行交互操作,控制終端運行的串口助手上顯示出RT-Thread版本信息,在串口助手中輸入list_device,則設(shè)備(device)欄中列出配置的CAN1設(shè)備,表明CAN1設(shè)備已經(jīng)成功掛載到RT-Thread系統(tǒng)上。

        4 通信模塊軟件設(shè)計

        4.1 CAN通信協(xié)議

        CAN報文設(shè)置幀格式為擴(kuò)展幀,幀類型為數(shù)據(jù)幀,波特率為125 kbit/s。

        CAN接口協(xié)議如表1所示。無實際意義的字節(jié)用FFFF填充。

        表1 CAN接口協(xié)議

        4.2 CAN通信程序設(shè)計

        在Applications目錄下新建ctrboard_can.c文件,創(chuàng)建CAN接收事件和CAN通信線程,使用事件來實現(xiàn)線程間的同步,并通過串口助手將接收到的數(shù)據(jù)按照一定格式打印出來。

        通信程序流程如圖3所示。

        圖3 通信程序流程圖

        5 通信測試

        將AUV運動控制器通過USB CANII分析儀與AUV運動模擬器連接。為便于參數(shù)比較,控制器發(fā)送固定的指令舵角,即方向舵8°和艉升降舵2°。模擬器接收報文并解碼,顯示方向舵為7.998°、艉升降舵為1.999 5°。該結(jié)果表明,模擬器接收到的指令信息與控制器發(fā)送的指令信息基本一致。

        AUV運動模擬器發(fā)送航速航姿和深度舵角兩組報文,STM32F4開發(fā)板外設(shè)CAN接收解碼并通過串口助手在控制終端上顯示。AUV運動控制器接收報文如表2所示。

        表2 AUV運動控制器接收報文

        經(jīng)檢驗,控制器接收的報文指令信息與模擬器發(fā)送的指令一致,表明AUV運動模擬器和AUV運動控制器之間能準(zhǔn)確地通信。

        6 結(jié)論

        RT-Thread具有的豐富中間組件及硬實時性,可以很好地滿足AUV各種功能模塊開發(fā)的需要。本文針對AUV運動控制器的開發(fā)需要,結(jié)合STM32CubeMX和Env圖形化配置工具,基于RT-Thread操作系統(tǒng),在SMT32F4硬件平臺上成功地實現(xiàn)了CAN通信模塊的開發(fā)。該設(shè)計方法可推廣應(yīng)用于RT-Thread各類硬件平臺的工程配置和外設(shè)驅(qū)動添加。

        猜你喜歡
        指令
        聽我指令:大催眠術(shù)
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        殺毒軟件中指令虛擬機(jī)的脆弱性分析
        巧用G10指令實現(xiàn)橢圓輪廓零件倒圓角
        中斷與跳轉(zhuǎn)操作對指令串的影響
        科技傳播(2015年20期)2015-03-25 08:20:30
        基于匯編指令分布的惡意代碼檢測算法研究
        一種基于滑窗的余度指令判別算法
        歐盟修訂電氣及電子設(shè)備等產(chǎn)品安全規(guī)定
        家電科技(2014年5期)2014-04-16 03:11:28
        MAC指令推動制冷劑行業(yè)發(fā)展
        汽車零部件(2014年2期)2014-03-11 17:46:27
        伊人中文字幕亚洲精品乱码| 天堂中文官网在线| 中文字字幕在线精品乱码| 国产视频毛片| 国产青青草视频在线播放| 日本少妇一区二区三区四区| 亚洲中文字幕无码天然素人在线| 亚洲精品国产福利一二区 | 精品无码人妻一区二区三区不卡| 国产白丝在线| 国产成人精品一区二区日出白浆| 开心久久综合婷婷九月| 午夜福利一区二区三区在线观看| 欧美野外疯狂做受xxxx高潮| 天天狠天天透天干天天| 亚洲第一页在线观看视频网站| 日本h片中文字幕在线| 毛多水多www偷窥小便| 97精品国产91久久久久久久| 国产熟女露脸大叫高潮| 女人的精水喷出来视频| 午夜丰满少妇性开放视频| 99热在线播放精品6| 丰满少妇又爽又紧又丰满动态视频| 一区二区三区视频在线观看免费| 激情影院内射美女| 97福利视频| 亚洲av一二三四五区在线| 人妻在卧室被老板疯狂进入| 一区二区三区在线 | 欧| 中文字幕永久免费观看| 91人妻一区二区三区蜜臀| 中文字幕在线日亚州9| 成年在线观看免费视频| 新久久久高清黄色国产| 亚洲tv精品一区二区三区| 18成人片黄网站www| 无遮高潮国产免费观看韩国| 在线观看麻豆精品视频| 欧美人和黑人牲交网站上线| 国产清品夜色一区二区三区不卡|