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

基于RTOS的STM32通信發送管理系統的設計與實現

2024-09-14 00:00:00周冠程李黨超葉佳胤常建磊郝朝陽
物聯網技術 2024年3期

摘 要:ABU Robocon是由亞太廣播聯盟舉辦的針對亞太地區高校學生的國際教育活動,我校團隊在相關機器人的研發中,自主開發了一套基于RTOS的STM32單片機通信發送管理系統,可以很好地解決傳統發送系統在RTOS環境下出現的發送不完整和發送時間較長的問題,并通過實驗證明了本文所設計的系統相較傳統方法的優勢。本通信系統已經被應用到了ABU Robocon的備賽和比賽環節,可以實現上下位機的高效通信。

關鍵詞:RTOS;STM32;通信;發送系統;UART;多線程設計

中圖分類號:TP39;TN914 文獻標識碼:A 文章編號:2095-1302(2024)03-00-03

0 引 言

機器人是一種能夠自主或者在操作者的幫助下完成指定任務的智能機器,其在日常生活中應用十分廣泛。高校開展機器人教育能夠以較少的投入取得較大的成果,從而優化教與學的效果[1-3]。同時參與相關的機器人比賽能夠潛移默化地培養學生追求完美、凡事講究的工作作風;整個過程還教會了學生如何團結協作、善于聽取意見和處理人際關系[4]。

ABU Robocon機器人大賽是由亞太廣播聯盟舉辦的針對亞太地區高校學生的國際教育活動,參賽的大學生團體需要根據每年的賽題進行相關的機器人設計。由于賽題的復雜性與學生的技術能力限制,設計的機器人通常采用半自動或者遙控的形式控制,這就對機器人主控通信系統的可靠性提出了較高要求。STM32系列單片機常作為機器人的主控芯片[5],但僅僅依賴于單片機自帶通信接口難以滿足比賽中持續高速通信的需求,需要使用者自主設計一套通信系統以滿足整場比賽的需求。尤其對STM32的異步收發傳輸器(Universal Asynchronous Receiver/Transmitter, UART)如果出現連續的發送請求,往往最新要求發送的信息會覆蓋前面的信息,導致發送信息的丟失。傳統的通信發送管理系統的思路是讓程序等待直至上一次的信息發送完成之后再進行下一輪數據發送,極大地浪費了芯片的性能,導致程序運行效率不高。為提高串口通信效率,具有多任務管理功能的嵌入式實時操作系統已經被用于串口通信的調度[6]。

UCOS-Ⅲ是一個具有可移植性、可拓展性、高效性、可靠性和易用性的實時操作系統(Real Time Operating System, RTOS)[7-10]。本文將基于UCOS-Ⅲ的框架進行STM32F407IGT6平臺下的UART發送管理系統的設計與實現,在保證信息發送完整的前提下,充分利用芯片計算資源[4],同時采用循環隊列管理實現存儲空間的最大利用。

1 通信發送系統的設計

1.1 總體設計框架

本通信發送管理系統由兩個部分組成(如圖1所示),一是基于RTOS實現的發送信息監控線程設計,另一個是以循環隊列為載體的用戶端接口設計。

RTOS系統在嵌入式開發中具有實時響應、多任務處理、低延遲和穩定的優點,而UCOS-Ⅲ作為嵌入式開發中較為常用的一款RTOS系統,其具有可移植、可拓展、高效、可靠和易用的優點。

基于RTOS實現的發送信息監控線程主要用于監控各串口外設的使用情況,并在出現串口外設空閑的情況時向外設提出通信請求,同時此線程擁有高于主線程的優先級,以保證發信的連貫性和完整性,提高各端口通信的速度和質量。用戶端接口通過循環隊列存儲準備發送的信息,通常用于存儲因為STM32單片機性能問題所造成的滯留信息,此時如果在單一線程的通信設計中未等待發送信息完成,將導致該串信息僅能保證最后一個信息完整發送,而其他信息將有較大的概率出現信息丟失,信息越長,丟失的概率就越大。

為最大限度節約因新開線程導致的資源浪費,監控線程在沒有發送任務或者沒有空閑串口的情況下,將處于掛起狀態,不占用CPU資源。

1.2 監控線程設計

監控線程的設計思路如圖2所示,監控線程獨立于主線程,且優先級高于主線程,以實現信息發送的實時性。在線程初次被建立的時候,將為每一個串口創建并初始化一個循環隊列以存儲準備發送的信息。然后進入線程的主體循環部分,如果當前沒有發信任務或者沒有空閑串口的情況下,該線程將被掛起,以節約CPU資源。如果當前存在發信任務且存在空閑串口,該線程將把需要發送的信息存儲到相應串口外設的發送數據寄存器(TDR),同時更新串口狀態,然后外設將數據通過引腳發送出去。在將數據存儲到發送數據寄存器后,將檢測循環隊列中是否仍然存在未發送的數據,如果無數據則將該串口更新為待命狀態。

為實現串口狀態的動態更新,使用STM32單片機UART外設的中斷實現,將該串口狀態寄存器的TC位置1,使能串口發送完成中斷,并更新串口的狀態。

1.3 用戶端口設計

用戶端口提供給用戶發送信息的函數接口,其設計思路如圖3所示,在用戶提交發信的原始數據時,接口將進入RTOS的臨界段,提交信息時使監控線程與該接口不會同時調用同一個循環隊列。接著接口將把相應的原始數據存儲到對應串口的循環隊列之中,同時通過另一個循環隊列存儲對應位置信息的長度,以分割循環隊列中的不同信息段,并相應更新對應串口的狀態為存在需要發送的信息。

該接口的任務僅僅是將需要發送的數據存儲到隊列中,并更新串口的狀態。相較于傳統的做法,即將所需要發送的數據存儲到相應串口的發送寄存器后并等待其完全發送,本系統的運行所需要的時間更少,并且在保證發信完整性的情況下,解決了多個線程同時提出發信請求時傳送的沖突問題。

2 通信發送系統的應用效果

為驗證該通信發送系統的可靠性和高效性,設計如下的三組實驗:第一組實驗中將評估本文提出的通信系統的通信效果;第二組實驗中將評估不使用RTOS操作系統且無視信息是否發送完全的方法的通信效果;第三組實驗中將評估不使用RTOS操作系統但是等待信息完全發送的方法的通信效果。

實驗在同一塊基于STM32F407IGT6設計的實驗板(如圖4所示)上進行,實驗UART通信參數為:波特率115 200 b/s,8位數據位,1位停止位,無校驗位,且不使用流控制。每一組實驗將完成相同的任務:在實驗開始時,完成10×108次簡單累加以模擬正常使用時的其他運算(如傳感器信息處理),并在每一次累加之后發送一次內容為0×31的信息;利用RTOS的時間戳記錄累加完成的時間,記為速度指標;在對象完成發信任務后,統計發送的數據數量,記錄為完整性指標。

采用兩個同優先級的線程發送不同的信息,以模擬多個同等優先級的進程(如電控進程和定位進程通常需要在同一個優先級下共同運行),同時需要進行串口通信的場景。假設其中一個線程循環發送50次“1234567890”,另一個線程循環發送50次“ABCDEFGKIJ”,為了模擬真實的通信情況,本次實驗的每次信息在發送完成后會等待5 ms,以模擬通信接收方處理數據的過程。

實驗中第一組數據是使用了本文中的通信方式得到的結果,第二組數據是使用了傳統的不等待每個字符發送完成的發送方式得到的結果,第三組數據是使用傳統的等待每個字符發送完成的發送方式得到的結果。其后的第二個數字表示該組的第幾次。經過本次實驗,得到表1所列的結果。

通過表1的實驗結果可以發現,第二組實驗中消耗的時間較長且無法保證通信的完整性,其中的通信結果通常是混雜著上述兩個線程的信息,例如“BJ0AJ0BJ0”根本無法進行常規的通信。造成第二組通信完整度不夠的原因可能是多個線程在極短的時間內調用同一個串口,造成外設需要消耗更多的時間去處理這些沖突。通過第三組實驗可以發現,雖然使用了一定程度上的優化,以排除多線程造成的通信問題,但是在速度上仍然有很大的提升空間。因此通過觀察第一組的實驗數據,可以使用本文的發送方式在保證多線程發送完整性的前提下,加快發送的速度;平均時間相較第二組數據,提升了2%。同時因為使用單獨線程調度的功能,在更大量數據的情況下本文使用的通信方式也將優于傳統的方法。

3 應 用

我校參加了ABU Robocon2022中國區的賽事,自主設計了以賽題為導向的創新型機器人,機器人如圖5所示。在賽前調試中應用本文介紹的通信發送系統實現下位機(以STM32單片機為核心的機器人系統)與上位機(Windows操作系統的電腦),二者通過基于CH340芯片的串口轉換模塊實現波特率為115 200 b/s的串行數據通信。上下位機通信的主要任務是將機器人底盤的碼盤陀螺儀定位系統計算得到的位置信息發送給上位機,上位機解碼數據后通過前端軟件將機器人在場地里的相對位置直觀地展示給調試人員,如圖6所示。下位機發送信息的頻率為100 Hz,可以實現實時的機器人位置監控,同時減少通信系統對主體控制系統造成的影響。在監視機器人位置的同時,還可以通過前端分離位置信息和其他調試信息,從而減少調試人員人工分離各個種類調試信息的工作量,尤其對于位置信息這種實時性要求極高、信息量極大的調試信息來說是很有必要的。

4 結 語

針對機器人通信系統存在的通信沖突導致數據丟失的問題,設計了一套基于UCOS-Ⅲ的STM32單片機通信發送管理調度系統,并實驗驗證了所設計調度管理系統的有效性,所設計系統已經應用于自主設計的機器人,取得了良好的效果,并參加了ABU Robocon機器人大賽。

注:本文通訊作者為李黨超。

參考文獻

[1]秦緒彬,蔡曉敏,卞宇. 大學生機器人競賽的多學科融合實踐教學研究:以江蘇省大學生機器人大賽高爾夫項目為例[J].電腦知識與技術,2021,17(30):224-226.

[2]岳文東,康海軍,楊成彪. 利用機器人競賽提升學生的技術素養:以“VEX機器人工程挑戰賽”為例[J].實驗教學與儀器, 2020,37(4):70-71.

[3]楊蒙蒙,鄧三星,李帥,等. 基于STM32單片機的雙足競走機器人設計[J].物聯網技術,2022,12(5):123-126.

[4]方波,曹其新. IDC ROBOCON比賽與機器人教育的探討[J].現代教育技術, 2011,21(3):140-144.

[5]劉青林.基于STM32的嵌入式PLC研究與設計[D].昆明:昆明理工大學,2022.

[6]夏鑫,張果,王劍平, 等.實時操作系統uC/OS-Ⅱ串口通信的設計與實現[J]. 價值工程, 2017,36(19): 90-93.

[7]許迅文.開源RTOS在STM32單片機中的應用[J].企業技術開發,2011,30(16):37.

[8]高華. ROS2的RTOS支持擴展研究與實現[D].北京:北京郵電大學,2020.

[9]王亞,王瑞,關永,等. RGMP-ROS混合機器人操作系統節點間通信的形式化驗證[J].小型微型計算機系統,2015,36(10):2379-2383.

[10]邵壯. 兼容ROS的嵌入式實時機器人通信系統的設計與實現[D].哈爾濱:哈爾濱工業大學,2019.

主站蜘蛛池模板: 国产一级无码不卡视频| 国产呦视频免费视频在线观看| 国产欧美日韩视频一区二区三区| 国产女人18毛片水真多1| 中文字幕亚洲精品2页| 57pao国产成视频免费播放| 大香伊人久久| 日韩欧美亚洲国产成人综合| 亚洲黄色成人| 中文字幕乱妇无码AV在线| 97se亚洲综合在线韩国专区福利| 国产成人亚洲日韩欧美电影| 99热这里只有精品在线观看| 一级毛片在线播放免费| 亚洲系列中文字幕一区二区| 91小视频版在线观看www| 大学生久久香蕉国产线观看 | 亚洲成人在线免费| a级毛片免费看| 国产农村妇女精品一二区| 国产永久无码观看在线| 久久女人网| 免费国产好深啊好涨好硬视频| 日韩毛片基地| 国内精品小视频在线| 亚洲va欧美va国产综合下载| 亚洲欧美日韩久久精品| 亚洲第一区欧美国产综合| 国产无码精品在线| 小13箩利洗澡无码视频免费网站| 日韩天堂视频| 中文一级毛片| 国产成人欧美| 激情六月丁香婷婷| 性做久久久久久久免费看| 国产高清在线精品一区二区三区| 日韩精品久久久久久久电影蜜臀| www.91中文字幕| 亚洲精品欧美重口| 欧美亚洲香蕉| 国产精品视频系列专区| 国产亚洲现在一区二区中文| 国产亚洲欧美在线专区| 国产亚洲欧美日韩在线一区二区三区| 综合色区亚洲熟妇在线| 91视频免费观看网站| 久久这里只有精品2| 亚洲va精品中文字幕| 国产精品白浆在线播放| 72种姿势欧美久久久久大黄蕉| 久久无码av三级| 亚洲色图狠狠干| 网友自拍视频精品区| 一级看片免费视频| 欧美精品亚洲精品日韩专区va| 国产精品久线在线观看| 午夜福利视频一区| AV网站中文| 精品色综合| 激情综合网址| 亚洲天堂视频在线播放| 欧美天天干| 成人免费网站久久久| 制服无码网站| 久久久久亚洲Av片无码观看| 亚洲AV成人一区国产精品| 激情综合网激情综合| 久久综合结合久久狠狠狠97色| 最新日韩AV网址在线观看| 亚洲国产精品一区二区第一页免 | 成色7777精品在线| 在线国产欧美| 国产精品无码一二三视频| 日本精品视频一区二区 | 沈阳少妇高潮在线| a级毛片在线免费观看| 99久久精品国产麻豆婷婷| 久久毛片网| 91九色国产porny| 亚洲久悠悠色悠在线播放| 国产精品55夜色66夜色| 国产网站免费|