当前位置:首页 > > 充电吧
[导读]Pixhawk是一款由PX4开源项目设计并由3DR公司制造生产的高级自动驾驶仪系统。其前身是APM,由于APM的处理器已经接近满负荷,没有办法满足更复杂的运算处理,所以硬件厂商采用了目前最新标准的32


Pixhawk是一款由PX4开源项目设计并由3DR公司制造生产的高级自动驾驶仪系统。其前身是APM,由于APM的处理器已经接近满负荷,没有办法满足更复杂的运算处理,所以硬件厂商采用了目前最新标准的32位ARM处理器,它采用了ST Microelectronic先进的处理器及传感器技术且搭载了NuttX的实时操作系统,在模型自动控制方面有着出色的性能、灵活性和可靠性。

Pixhawk系统的优势在于它继承了多线程,一个类似于UNIX/Linux类型的编程环境,全新自动驾驶仪的功能如Lua脚本任务以及飞行模式,并且有一个自定义PX4底层驱动来确保全周期的定时处理。这些高级功能保证了自动飞行姿态的自由性。Pixhawk将同现有的APM和PX4无缝连接,所以在一定程度上不会给用户造成太多的新鲜感。

旗舰版Pixhawk模式将伴有新的外部设备选项,包括一个由外部多彩LED指示灯现实的数字气流传感器以及一个外部的磁强计。所有的外设都是自动检测和配置的。

简介

PIXHAWK 的所有硬件都是透明的,它用的是什么芯片和传感器一目了然,所有的总线和外设都进行引出,不但以后可以兼容一些其他外设,而且对于有开发能力的用户提供了方便。 PIXHAWK 是一个双处理器的飞行控制器,一个擅长于强大运算的 32 bit STM32F427 Cortex M4 核心 168 MHz/256 KB RAM/2 MB Flash 处理器,还有一个主要定位于工业用途的协处理器 32 bit STM32F103,它的特点就是安全稳定。所以就算主处理器死机了,还有一个协处理器来保障安全。

1. 特性

Ÿ 核心MCU 性能:168 MHz / 252 MIPS Cortex-M4F;

Ÿ 输出能力:14 PWM / 舵机输出(其中8 个带有失效保护功能,可人工设定。

Ÿ 6 个可用于输入,全部支持高压舵机);

Ÿ 大量外设接口(UART,I2C,CAN);

Ÿ 在飞翼模式中,可以使用飞行中备份系统,可设置。可存储飞行状态等数据;

Ÿ 多余度供电系统,可实现不间断供电;

Ÿ 外置安全开关;

Ÿ 全色LED 智能指示灯;

Ÿ 大音量智能声音指示器;

Ÿ 集成microSD 卡控制器,可以进行高速数据记录。

2.MCU

Ÿ 32bit,STM32F427,Cortex M4 核心,带有浮点运算器;

Ÿ 168 MHz;

Ÿ 256 KB RAM;

Ÿ 2 MB Flash;

Ÿ 32 bit,STM32F103 失效保护控制器。

3.传感器

Ÿ ST 公司小型L3GD20H 16 bit 陀螺芯片;

Ÿ ST 公司小型LSM303D 14 bit 加速度/磁场芯片;

Ÿ Invensense 公司MPU 6000 三轴加速度/陀螺仪

Ÿ MEAS 公司MS5611 气压芯片。

4. 通信

Ÿ 5x UART(串口),1 个带有高驱动能力,2 个带有流控制功能;

Ÿ 2x CAN ,1 个带有内置3.3V 转换器,另一个需要外置转换器;

Ÿ 支持Spektrum DSM / DSM2 / DSM-X 输入;

Ÿ 支持Futaba S.BUSő 输入;

Ÿ 支持PPM 信号输入;

Ÿ 支持RSSI (PWM 信号)输入;

Ÿ I2C;

Ÿ SPI;

Ÿ 3.3 and 6.6V ADC 电压信号输入;

Ÿ 内置microUSB 接口,并可扩展外部microUSB 接口。

5. 电源和保护

Ÿ 电源失效后自动二极管控制(不间断供电);

Ÿ 支持最大10V 舵机电源和最大10A 功耗;

Ÿ 所有的外围输出带有功率保护;

Ÿ 所有输入带有静电保护。

6. 扩展

Ÿ 数字空速传感器,PIXHawk 支持MS4525DO 数字差压传感器作为空速传感器。这是一种贴片内置14 位精度压差采集和11 位精度温度采集的气压传感;芯片。使用1PSI 量程,内部采样精度为24bit,分辨率0.84Pa;

Ÿ 外部USB 扩展接口(可安装在设备外壳);

Ÿ 外置全色彩LED ;

Ÿ I2C 分线器。


正面

1. SpektrumDSM2 或DSMX 卫星接收机接口

2.(丝印字符TELEM1)TTL 串口数据,数传电台

3.(丝印字符TELEM2)TTL 串口数据,常用于连接OSD

4. 外接USB 连接口,用于延长USB 接口到外面

5. SPI 总线

6. 电源模块接口

7. 安全开关接口

8. 蜂鸣器接口

9. TTL 串口4 和5

10. GPS 模块接口

11. CAN 总线接口

12. I2C 总线接口

13. ADC 输入最高6.6V

14. ADC 输入最高3.3V

15. LED 信号灯

侧面1

1. 输入输出模块复位按钮

2. TF 卡插槽

3. 飞行控制模块复位按钮

4. Micro - USB 接口

侧面2

1. 遥控器输入PPM 格式,最多支持8 个通道,大多数用户需要PWM 转PPM 模块。

2. S.Bus 输出。

3. 主输出,8 个PWM 通道,用于连接电调或者舵机。

4. 辅助输出,6 个PWM 通道,用于其它扩展,例如舵机云台。

接口引线介绍

• TELEM1, TELEM2 接口

Pin Signal Volt 1(red) VCC +5V 2(blk) TX(OUT) ±3.3V 3(blk) RX(IN) ±3.3V 4(blk) CTS(IN) ±3.3V 5(blk) (OUT) ±3.3V 6(blk) GND ±3.3V

Ÿ GPS 接口

Ÿ 串行端口4/5 - 由于空间的限制两个端口都在一个连接器

Ÿ ADC 6.6V

Ÿ 6.6 ADC 输入,6.6V 电压模拟信号输入,接的外部设备是空速传感器。还可用于声呐的接口或者其他模拟传感器。

Ÿ ADC 3.3V

3.3ADC 输入,3.3V 电压模拟信号输入,接的外部设备是光流传感器。还可用于声呐的接口或者其他模拟传感器。

Ÿ I2C (罗盘)

这里的I2C 接口可以接GPS 里面外置的罗盘,还可以接外扩的I2C,如果我们用不到pixhawk 的RGB 模块的话就可以直接把外置GPS 上的罗盘接到I2C 这个接口上面,但是如果我们要用到pixhawk 的RGB 模块的话,就必须用到这个I2C接口来扩展, 因为pixhawk 配的RGB 模块必须由I2C 接口和USB 外扩口来供电。

Ÿ CAN

CAN总线现在还没有使用,官方正在尝试研发CAN电调。DJI的禅思也是用的CAN总线,是外部磁力计的接口。

Ÿ SPI

可以外接实时时钟、AD转换器。

Ÿ POWER (电源)

Ÿ SWITCH(安全开关)

Ÿ SPKT/DSM接口

兼容 Spektrum DSM / DSM2 / DSM-XÂ? 卫星接收机输入: 允许使用 Specktrum 遥控接收机,对于 Spektrum DSM, DSM2或者 DSMX 卫星接收机,直接接在 SPKT/DSM 接口。 DSM 是Digital Spread Spectrum Modulation 的缩写,一共有三代: DSM、 DSM2、 DSMX。国内最常见的是 DSM2, JR 的遥控器和 Spectrum 的遥控器都支持。该协议也是一种串行协议,但是比 S.BUS 更加通用,使用的标准串口定义,所以市面上兼容接收机更加便宜,兼容的设备也更多,比如电直的三轴陀螺 VBar 就可以直接接受 DSM2信号。

但是该协议并不是一种总线化的协议,要靠接收机取把协议变为 PWM 来驱动舵机, DSM2接口也只能连接接收机和卫星接收机,不过对于飞控来说这个无所谓,反正也是一个接口连接到飞控就可以了。DSMX 是 DSM2的升级版,协议基本一样就是速率加快了。 DSMX协议可以用于双向传输,即能够将飞机上的信息传回遥控器上在液晶屏显示,不过对于玩儿飞控这个功能不重要,有了电台和 PC,这个意义不大。

DSM2硬件协议

DSM2设备使用三线连接,黑色线是地线,红色是电源线,另一条是信号线,这个跟舵机一样,但是注意:电源线是3.3V。信号线上跑的是标准 TTL 串口, 3.3V 电平,串口的电平逻辑跟普通 TTL 串口一致,可以直接跟现在的大部分单片机兼容,比如 STM32。串口波特率115200,数据位8bit, 1个停止位,无校验位,无流控制。

DSM2软件协议

软件协议简单得多。每一帧数据使用两个 Byte, 16字节。第1个字节表示此帧状态,为0的时候表示此帧为遥控数据, 1的时候表示为其他数据 。 后 面 4 个 字 节 为 通 道 ID , 对 应 接 收 机 上 面 的 输 出0: Throttle, 1: Aileron, 2: Elevator, 3: Rudder, 4: Gear, 5: Aux1, 6: Aux2, 7: Aux3 。后11个字节是0~2047的通道数据。 1023为中间值对应输出1.5ms 的 PWM 信号, 0对应0.75ms, 2047对应2.25ms。一般用于直升机和固定翼飞机上面,所以多旋翼飞机一般用不到这个接口。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

链表作为一种基础的数据结构,在程序设计中扮演着重要角色。掌握链表的高效操作技巧,特别是逆序、合并和循环检测,对于提升算法性能和解决复杂问题至关重要。本文将详细介绍这些操作的C语言实现,并分析其时间复杂度。

关键字: 链表 C语言

在C/C++多文件编程中,静态变量(static)与全局变量的作用域规则看似简单,实则暗藏诸多陷阱。开发者若未能准确理解其链接属性与生命周期,极易引发难以调试的内存错误、竞态条件以及维护灾难。本文将深入剖析这两类变量的作...

关键字: 静态变量 全局变量 C语言

在嵌入式系统和服务器开发中,日志系统是故障排查和运行监控的核心组件。本文基于Linux环境实现一个轻量级C语言日志库,支持DEBUG/INFO/WARN/ERROR四级日志分级,并实现按大小滚动的文件轮转机制。该设计在某...

关键字: C语言 嵌入式系统

在嵌入式系统和底层驱动开发中,C语言因其高效性和可控性成为主流选择,但缺乏原生单元测试支持成为开发痛点。本文提出一种基于宏定义和测试用例管理的轻量级单元测试框架方案,通过自定义断言宏和测试注册机制,实现无需外部依赖的嵌入...

关键字: C语言 嵌入式系统 驱动开发

在嵌入式系统开发中,实时操作系统(RTOS)的任务调度算法直接影响系统的响应速度和资源利用率。时间片轮转(Round-Robin, RR)作为一种经典的公平调度算法,通过为每个任务分配固定时间片实现多任务并发执行。本文将...

关键字: 实时操作系统 RTOS C语言

在Linux设备驱动开发中,等待队列(Wait Queue)是实现进程睡眠与唤醒的核心机制,它允许进程在资源不可用时主动放弃CPU,进入可中断睡眠状态,待资源就绪后再被唤醒。本文通过C语言模型解析等待队列的实现原理,结合...

关键字: 驱动开发 C语言 Linux

在嵌入式系统开发中,C语言与汇编的混合编程是优化性能、访问特殊指令或硬件寄存器的关键技术。然而,内联汇编的语法差异和寄存器使用规则常导致难以调试的问题。本文以ARM Cortex-M和x86架构为例,系统梳理内联汇编的核...

关键字: C语言 汇编混合编程

在计算机安全领域,缓冲区溢出攻击长期占据漏洞利用榜首。这种攻击通过向程序缓冲区写入超出其容量的数据,覆盖相邻内存区域(如返回地址),进而实现任意代码执行。本文将深入探讨栈保护机制与安全函数(如snprintf)的集成防御...

关键字: 栈保护 安全函数 C语言

在嵌入式系统和大规模数值计算等性能敏感场景中,程序优化是提升效率的关键环节。gprof作为GNU工具链中的性能分析工具,能够精准定位CPU时间消耗热点。本文通过实际案例演示gprof的三个核心使用步骤,帮助开发者快速识别...

关键字: C语言 gprof 热点函数

哈希表作为高效数据检索的核心结构,其性能高度依赖冲突解决策略。本文通过C语言实现对比链地址法与开放寻址法,揭示两种方法在内存占用、查询效率及实现复杂度上的差异,为工程实践提供量化参考。

关键字: 哈希表 链地址法 开放寻址法 C语言
关闭