1. 程式人生 > >Crazyflie 2.0 System Architecture

Crazyflie 2.0 System Architecture

overflow -i -a font http read 同事 section 傳感

Crazyflie 2.0架構包含兩個微控制器:

A NRF51, Cortex-M0, 用於實現無線通信和電源管理:
(1)按鍵開關邏輯(ON/OFF logic)
(2)控制給其它系統供電(STM32, sensors and expansion board)
(3)電池充電管理和電壓測量
(4)Master 無線bootloader
(5)無線和BLE通信
(6)探測和檢測外部擴展板
An STM32F405, [email protected], 用於實現飛行控制以及其它的重負載的工作:
(1)讀取傳感器和電機控制(Sensor reading and motor control)

(2)飛行控制(Flight control)
(3)測量(包含電池電壓)
(4)用戶擴展功能

以下是總體硬件連接的框圖:

技術分享

The nRF51822Anchor link for: the_nrf51822

主要有兩個任務:處理無線通信的數據和電源管理 ,它扮演無線橋的作用,將無線接收的數據發送給STM32F405RG。

Crazyflie 2.0 用到了CRTP和BLE的無線通信, 同事硬件也支持其它的協議,比方ANT。CRTP模式兼容 Crazyradio USB dongle ,提供2Mbit/秒的低延遲數據通信. 測試顯示,在沒有重傳和包大小1~32字節的情況下,普通無線通信2Mbps

的延遲在360us 和1.26ms之間. BLE最小的延時是7.5ms,可是眼下實際延時大於20ms. CRTP link基本的優勢在於在不論什麽支持USB的主機系統上都能夠很easy的實現,這也是為什麽它成為Crazyflie首選來做試驗. BLE 主要是用於手機控制Crazyflie 2.0.

nRF51 另外一個優勢是能夠用紐扣電池供電, 也就是說很適合用在低功耗的領域,所以NRF51會負責功耗管理部分。當USB或者電池供電的時候,NRF51總是會有電,其余部分電路的供電和行為動作取決於按鍵按下的時間長短(比如,能夠用於啟動到bootloader).眼下也實現了通過外部擴展板的一個引腳喚醒Crazyflie 2

.0

The STM32F405Anchor link for: the_stm32f405

STM32是基本的控制MCU。盡管它是由NRF51供電啟動。相對於NRF51它是作為主要角色。它實現了兩個功能:飛行控制和全部的通信算法。擴展板主要是跟STM32連接,所以擴展板的驅動主要實如今STM32這邊。

STM32F405 內部 RAM 196kB。這麽大的RAM一般的應用肯定是沒有問題的。實現飛行控制搓搓有余,還能夠實現一些復雜的密集型的算法。比如:慣性傳感器和GPS數據的融合。

Inter-MCU communicationAnchor link for: inter mcu_communication

兩個MCU之間的通信靠 syslink protocol, 該協議是Crazyflie定義的基於包的簡單的可擴展的協議機制。

Syslink 提供了全部的兩個MCU之間全部的消息, STM32是主機,NRF51是從機.我們盡可能保持NRF51是簡單的,而負責的算法都會再STM32實現。

syslink消息樣例:

(1)原始的無線包,發送和接收

(2)電源管理測量


Crazyflie 2.0 System Architecture