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

AUV運動控制器CAN通信模塊在RT-Thread上的設計與實現

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

丁一明,李文魁,張煦光

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

0 引言

自主式水下潛航器(autonomous underwater vehicle,AUV)因機動性好、安全、智能化等優點,成為完成各種水下任務的重要工具。在復雜的水下工作環境中,執行任務的實時性和可靠性顯得格外重要。傳統的前后臺程序實現比較直觀,但在實時處理能力方面有很大的局限性。由于其再次響應任務的時間是整個循環執行的時間,導致可靠性和實時性較差[1-2]。為了提高AUV 的可靠性和實時性,加入實時多線程(real time thread,RT-Thread)操作系統對AUV進行設計和管理,利用RT-Thread優秀的同步機制和任務調度管理機制,在規定時間內完成任務。控制器局域網絡(controller area network,CAN)作為應用較為廣泛的現場總線之一,具有高性能、高可靠性及糾錯性能好等優點[3]。本文采用CAN總線實現與導航模塊等外設間的數據通信。

1 RT-Thread操作系統

1.1 RT-Thread操作系統架構及特點

RT-Thread操作系統架構如圖1所示。

圖1 RT-Thread操作系統架構

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

1.2 Env工具

Env工具是RT-Thread的輔助開發工具,為操作系統的項目工程提供編譯環境構建、圖形化系統配置及軟件包管理等功能,可對內核、組件和軟件包進行自由裁剪。

1.3 FinSH組件模塊

FinSH 是RT-Thread操作系統的命令行組件。控制終端接收的用戶命令通過串口傳給FinSH;FinSH讀取命令,解析并自動掃描內部函數表,尋找對應函數名,執行函數后輸出回應,將結果顯示在控制終端上。

2 AUV半物理仿真系統

AUV半物理仿真系統如圖2所示。

圖2 AUV半物理仿真系統

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

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

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

3 工程創建

3.1 RT-Thread源碼獲取

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

3.2 使用Env工具創建工程模板

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

3.3 芯片引腳配置

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

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

3.4 CAN驅動程序移植及編譯

3.4.1 波特率配置

3.4.2 CAN驅動移植

①CAN驅動添加。

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

#define HAL_CAN_MODULE_ENABLED

在rtconfig.h里加入相應的宏定義:

#define RT_USING_CAN

//使能CAN設備框架

#define BSP_USING_CAN

//使能CAN設備驅動

#define BSP_USING_CAN1

//使能CAN1設備驅動

②CAN設備初始化。

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

3.4.3 下載驗證

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

4 通信模塊軟件設計

4.1 CAN通信協議

CAN報文設置幀格式為擴展幀,幀類型為數據幀,波特率為125 kbit/s。

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

表1 CAN接口協議

4.2 CAN通信程序設計

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

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

圖3 通信程序流程圖

5 通信測試

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

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

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

經檢驗,控制器接收的報文指令信息與模擬器發送的指令一致,表明AUV運動模擬器和AUV運動控制器之間能準確地通信。

6 結論

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

猜你喜歡
指令
聽我指令:大催眠術
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
巧用G10指令實現橢圓輪廓零件倒圓角
時代農機(2015年3期)2015-11-14 01:14:29
中斷與跳轉操作對指令串的影響
科技傳播(2015年20期)2015-03-25 08:20:30
基于匯編指令分布的惡意代碼檢測算法研究
一種基于滑窗的余度指令判別算法
歐盟修訂電氣及電子設備等產品安全規定
家電科技(2014年5期)2014-04-16 03:11:28
MAC指令推動制冷劑行業發展
汽車零部件(2014年2期)2014-03-11 17:46:27
主站蜘蛛池模板: 国产精品成| 国产网站一区二区三区| 青青青国产视频手机| 自拍偷拍欧美日韩| 福利视频一区| 欧洲免费精品视频在线| 伊人久久精品无码麻豆精品 | 欧美乱妇高清无乱码免费| av尤物免费在线观看| 亚洲码在线中文在线观看| 91久久国产热精品免费| 91无码视频在线观看| 99视频在线免费观看| 日本黄网在线观看| 欧美一区二区精品久久久| 国产视频资源在线观看| 欧美日韩另类国产| 97成人在线视频| 女人毛片a级大学毛片免费| 欧美成人免费一区在线播放| 一区二区三区国产精品视频| 最新加勒比隔壁人妻| 五月天综合网亚洲综合天堂网| 国产成人精品第一区二区| 五月婷婷精品| 久久久波多野结衣av一区二区| 在线观看国产小视频| 免费jizz在线播放| 亚洲欧美成aⅴ人在线观看 | 天堂网亚洲综合在线| 高清国产va日韩亚洲免费午夜电影| 国产午夜无码片在线观看网站 | 亚洲码在线中文在线观看| 91精品aⅴ无码中文字字幕蜜桃| 久久窝窝国产精品午夜看片| 国产在线视频二区| 欧洲成人在线观看| 成年网址网站在线观看| 国产av一码二码三码无码| 国产视频一二三区| 精品视频一区二区三区在线播| 久久久久国产精品熟女影院| 日韩成人免费网站| 国产精品永久久久久| 精品超清无码视频在线观看| 亚洲综合香蕉| 中文字幕波多野不卡一区| 国产95在线 | 在线精品欧美日韩| 热热久久狠狠偷偷色男同| 99精品影院| 国产成人8x视频一区二区| 秋霞国产在线| www.亚洲色图.com| 亚洲欧洲国产成人综合不卡| 欧美有码在线观看| 亚洲视频二| 免费va国产在线观看| 国产清纯在线一区二区WWW| 国产免费精彩视频| 精品成人免费自拍视频| 国产第三区| 国产午夜小视频| 日韩精品亚洲一区中文字幕| 18禁高潮出水呻吟娇喘蜜芽| 久久不卡精品| 久久久亚洲色| 午夜高清国产拍精品| www.91中文字幕| 无码内射中文字幕岛国片| 亚洲国产精品不卡在线| 国产精品视频观看裸模| 高清无码不卡视频| 国产亚洲精久久久久久久91| 极品国产在线| 久久黄色视频影| 日韩免费毛片| 国产97区一区二区三区无码| 亚洲 欧美 日韩综合一区| 色有码无码视频| 日韩无码真实干出血视频| 国产成人综合网|