Crazyflie 2.0 System Architecture
来源:互联网 发布:数据库用什么语言 编辑:程序博客网 时间:2024/05/20 14:24
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, Cortex-M4@160MHz, 用于实现飞行控制以及其他的重负载的工作:
(1)读取传感器和电机控制(Sensor reading and motor control)
(2)飞行控制(Flight control)
(3)测量(包括电池电压)
(4)用户扩展功能
下面是整体硬件连接的框图:
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的主机系统上都可以非常容易的实现,这也是为什么它成为Crazyflie首选来做试验. BLE 主要是用于手机控制Crazyflie 2.0.
nRF51 另外一个优势是可以用纽扣电池供电, 也就是说非常适合用在低功耗的领域,所以NRF51会负责功耗管理部分,当USB或者电池供电的时候,NRF51总是会有电,其余部分电路的供电和行为动作取决于按键按下的时间长短(例如,可以用于启动到bootloader).目前也实现了通过外部扩展板的一个引脚唤醒Crazyflie 2.0
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
- crazyflie control system about PID
- Crazyflie笔记二:Crazyflie 1.0和2.0产品特点概述
- Getting started with the Crazyflie 2.0
- HyperTransport System Architecture
- System Architecture with XML
- adnroid system architecture
- Android System Architecture
- DM81xx Gstreamer System Architecture
- architecture&platform&system&framework
- Intel Multiprocessor System Architecture
- [OS]System Architecture
- 转载_bluetooth_Core System Architecture
- Android Logging System Architecture
- AllJoyn SYSTEM ARCHITECTURE
- System architecture No.1
- QNX system architecture 1
- QNX system architecture 2
- Android入门(43)——第五章 使用Notification实现状态通知栏的通知
- iOS - 动画Animation零基础完全教程之一
- ANDROID技术积累:开发规范
- Linux安装VMware Tools 录屏
- InnoDB Insert(插入)操作(下)--mysql技术内幕
- Crazyflie 2.0 System Architecture
- c#设计模式---建造者模式(Builder Pattern)
- c++primer 要点-函数
- 【读书笔记】Linux高性能服务器编程(第二篇 第五章)
- [Ovject-c] 文件处理 (一) plist文件
- Csharp调用微软COM转换word为HTML
- 黑马程序员——String类详解
- Dijkstra算法求任意点到其它点的最短路径
- 面试技巧之群面