Crazyflie 2.0 System Architecture
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)
(3)測量(包含電池電壓)
(4)用戶擴展功能
以下是總體硬件連接的框圖:
The nRF51822
主要有兩個任務:處理無線通信的數據和電源管理 ,它扮演無線橋的作用,將無線接收的數據發送給STM32F405RG。
Crazyflie 2.0 用到了CRTP和BLE的無線通信, 同事硬件也支持其它的協議,比方ANT。CRTP模式兼容 Crazyradio USB dongle ,提供2Mbit/秒的低延遲數據通信. 測試顯示,在沒有重傳和包大小1~32字節的情況下,普通無線通信2Mbps
nRF51 另外一個優勢是能夠用紐扣電池供電, 也就是說很適合用在低功耗的領域,所以NRF51會負責功耗管理部分。當USB或者電池供電的時候,NRF51總是會有電,其余部分電路的供電和行為動作取決於按鍵按下的時間長短(比如,能夠用於啟動到bootloader).眼下也實現了通過外部擴展板的一個引腳喚醒Crazyflie 2
The STM32F405
STM32是基本的控制MCU。盡管它是由NRF51供電啟動。相對於NRF51它是作為主要角色。它實現了兩個功能:飛行控制和全部的通信算法。擴展板主要是跟STM32連接,所以擴展板的驅動主要實如今STM32這邊。
STM32F405 內部 RAM 196kB。這麽大的RAM一般的應用肯定是沒有問題的。實現飛行控制搓搓有余,還能夠實現一些復雜的密集型的算法。比如:慣性傳感器和GPS數據的融合。
Inter-MCU communication
兩個MCU之間的通信靠 syslink protocol, 該協議是Crazyflie定義的基於包的簡單的可擴展的協議機制。
Syslink 提供了全部的兩個MCU之間全部的消息, STM32是主機,NRF51是從機.我們盡可能保持NRF51是簡單的,而負責的算法都會再STM32實現。
syslink消息樣例:
(1)原始的無線包,發送和接收
(2)電源管理測量
Crazyflie 2.0 System Architecture