當前位置:編程學習大全網 - 源碼下載 - 教學機器人控制系統的軟件組織

教學機器人控制系統的軟件組織

軟件平臺基於移植到S3C44B0X的實時多任務操作系統UC/OS II。它是壹個基於優先級的搶占式實時內核,主要提供任務管理、進程調度、任務間通信和內存管理等功能。它具有開源代碼、可移植性好的特點。它采用搶占式多任務機制,可以支持56個用戶任務。其中斷管理功能提供了255層中斷嵌套。多任務管理通過uC/ OS II,任務處於五種狀態之壹:休眠、等待(暫停)、就緒、運行、中斷。本系統共有四個用戶任務,Task1:接收上位機的命令;任務2:軌跡規劃;任務3:系統狀態監控,任務4:系統狀態發送和顯示。任務的優先級依次降低。任務之間的信息交換和資源共享都是通過郵箱完成的。主控制器通過Task1接收上位機的位置和速度指令。由於上位機發送的指令是隨機的,而下位機除了要處理來自上位機的指令外,還要處理其他的事情,為了保證指令在運動過程中不丟失,采取了兩種措施:壹是將任務設置為最高優先級的用戶任務,主處理器允許UART1的接收中斷,並根據指令的長度將接收緩沖區的觸發深度設置為12字節。(根據需要,這裏上位機發送給下位機的指令長度為每幀12字節,S3C44B0X的UART接收觸發深度可以通過軟件編程設置為4、8、12、16字節)。當上位機不發送指令時,任務處於掛起狀態,當上位機發送12字節的命令時,會觸發UART中斷。喚醒Task1,使中斷服務程序進入就緒狀態。因為它的優先級最高,所以可以立即執行,從接收緩沖區接收上位機的指令。這樣就避免了單字節激發中斷時主處理器頻繁響應中斷的情況,以及在沒有實時操作系統的前後臺調度模式下命令丟失的情況。Task2根據傳感器提供的機器人當前位置信息和障礙物信息,以及接收到的上位機指令,進行機器人在世界坐標系下的整體任務規劃和逆運動學求解,生成下壹拍各關節應旋轉的角位移和角速度,然後通過總線寫入LM629對應的寄存器中。該任務的優先級僅低於Task1,運行周期為100毫秒。Task3主要處理傳感器信息,運行周期為100毫秒。包括通過LM629的狀態寄存器獲取當前編碼器的信息,然後通過運動學計算獲取機器人的當前位置信息,通過超聲波傳感器獲取當前機器人周圍的障礙物信息,通過LMD18200獲取功放的過熱過流信息。此外,下位機的壹些運行狀態,如當前位置、障礙物信息等,也需要發送到上位機,由LCD模塊顯示。這個任務由Task4完成,它的優先級最低,運行周期為300毫秒。

系統軟件已在ADS1.2下調試通過。因為ARM7TDMI中沒有MMU(內存管理單元),所以最後要把它的操作系統和用戶程序壹起編譯生成壹個文件。這方面和DOS或Windows下的概念是不壹樣的。它的操作系統和用戶程序是分離的,多個應用程序可以同時存在於主機中。另外,在ADS1.2下,可以使用C語言進行軟件開發,利用數學庫縮短軟件開發周期。

  • 上一篇:函數源代碼
  • 下一篇:怎麽做SEO才有效?
  • copyright 2024編程學習大全網