匿名飛控中的時間分配註解

匿名飛控中仍然採用陀螺儀,加速度計和磁力計修正旋轉矩陣偏差,然後反推歐拉角的做法實現姿態解算過程。其飛控中時間分配如下:

  1. 1000Hz任務:四元數更新,傳感器數據的讀取。誰讓是SPI通信呢…
  2. 500Hz任務:角速度環控制,以及電機輸出;
  3. 200Hz任務:獲得姿態角,以及角度環輸出;
  4. 100Hz任務:遙控器數據處理,飛行模式設置,高度融合,燈光控制;
  5. 50Hz任務:羅盤處理,程序指令控制,位置速度環控制;
  6. 20Hz任務:TOF,電池電壓,恆溫控制
  7. 2Hz任務:SPI_Flash存儲任務。
    匿名程序中Flash存儲(片外),只有在加鎖狀態下,且1)上位機選擇存儲模式 或2)第一次片內無參數時進行存儲參數。
    程序在初始化時會讀取Flash參數,其中包含有Ver信息,若版本信息正確,則讀取參數以及偏移量;若版本信息不正確,則復位PID並寫入。
  8. 電池電壓採集爲傳統的ADC採樣,特別的,加入了一低通濾波設計,防止電壓跳變。
  9. 恆溫控制爲讀取icm20602的值,設定溫度後進行PID控制,採用PWM開關三極管加熱電阻。
  10. 匿名的數傳在1ms(1000Hz)任務中處理,採用500000波特率串口(特製數傳電臺)發送,接收端同樣採用匿名的設備(這個速率有點誘人),發送速度快,有一定的誤碼率。
  11. 匿名串口2接數傳,串口1留給GPS,串口4留給光流。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章