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優秀的同步機制和任務調度管理機制,在規定時間內完成任務??刂破骶钟蚓W絡(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操作系統的命令行組件??刂平K端接收的用戶命令通過串口傳給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
主站蜘蛛池模板: 久久久久88色偷偷| 成人午夜网址| 伊人蕉久影院| 欧美在线三级| 男人天堂伊人网| 无码人中文字幕| 99re66精品视频在线观看| 园内精品自拍视频在线播放| 97人妻精品专区久久久久| 国产成人免费高清AⅤ| 黄色网页在线观看| 91年精品国产福利线观看久久| 国产白浆在线| 久久久久久久久18禁秘| 97成人在线观看| 日韩福利视频导航| 国产精品美女自慰喷水| 国产视频一二三区| 国产一区二区三区免费观看| 亚欧美国产综合| 亚洲成人播放| 伊人大杳蕉中文无码| 野花国产精品入口| 福利在线免费视频| 国产不卡一级毛片视频| 人妻无码中文字幕一区二区三区| 91青青在线视频| 免费日韩在线视频| 欧美h在线观看| 日韩欧美网址| 国产免费精彩视频| 东京热高清无码精品| 国产麻豆aⅴ精品无码| 一边摸一边做爽的视频17国产| 亚洲欧美成aⅴ人在线观看| 国产欧美日韩一区二区视频在线| 永久天堂网Av| 亚洲日韩精品无码专区97| 久久精品人人做人人爽97| AV在线天堂进入| 欧洲欧美人成免费全部视频| 国产日本欧美在线观看| 五月激情综合网| 亚洲男人天堂久久| 色综合中文字幕| 日韩大乳视频中文字幕| 国产成人福利在线| 国产精品专区第1页| 中文无码日韩精品| 亚洲高清日韩heyzo| 99久久国产综合精品2020| 国产精品短篇二区| 伊人婷婷色香五月综合缴缴情| 久久精品这里只有精99品| 国产爽歪歪免费视频在线观看| 好紧太爽了视频免费无码| 伊人久综合| 久久免费观看视频| 国产精品尤物在线| 色妞永久免费视频| 日本成人精品视频| 久久精品欧美一区二区| 欧美国产另类| 四虎国产永久在线观看| 欧洲高清无码在线| 91精品伊人久久大香线蕉| 成年人国产网站| AV在线麻免费观看网站| 国产精品免费久久久久影院无码| 丁香综合在线| 五月综合色婷婷| 国产精品亚洲专区一区| 尤物精品国产福利网站| AV不卡无码免费一区二区三区| 久久人体视频| 国产精品视频导航| 亚洲天堂成人在线观看| 久久久久亚洲av成人网人人软件| 国产真实乱子伦视频播放| 国产激情第一页| 99er这里只有精品| 日韩视频精品在线|