PH7系统简介
- PH7是什么?
狭义的PH7是一套以无人机飞控为典型应用案例,涵盖无人车或船、GCS数据采集、伺服控制、AHRS、地面模拟仿真系统等的通用控制器代码框架,该框架以Stm32CubeMx生成代码为基础,在其之上建立了分层并模块化、可替换可移植的代码框架体系,从而能够方便的在ST单片机系统间移植,同时也适用于其他型号的单片机系统。
而完整的PH7系统还包括了PH7及SinglePilot硬件控制板、控制站开发平台CSS、多轴飞行试验平台、固定翼飞行平台Cross等子系统。
- PH7软件代码框架
PH7软件代码框架基于上一代经过近百次试飞的SinglePilot飞控软件完全重新开发而成,是一套基于FreeRtos实时操作系统,可提供完整飞控功能,能非常方便进行二次开发的软件代码框架。在此框架中,用户可以方便的获取各个传感器在各个运算阶段的实时数据;能够方便的发送、接收各种遥测通讯数据和控制命令;可方便的对调参参数、航线航点、飞行黑匣子数据进行各种操作。可通过多种硬件接口及通讯协议与其他控制板进行通讯等。并在上述基础功能的充分支撑下,开发面向用户需求的各种逻辑控制功能或流程。
PH7框架为用户开发自己应用提供了现成代码框架,用户在该框架下,结合PH7提供的各种功能,即可方便的开发各种针对但不局限于无人机领域的复杂应用。PH7框架在总体架构上采用了分层模块化、可裁剪、可替换的设计思想,由底层向上分别为驱动层、框架层、算法层和应用层。中高级用户对各层级的各主要功能模块,均可进行替换或裁减,或加入新的功能模块。从而能够方便的进行硬件种类拓展、软件算法扩展或验证评估,代码移植等工作。
简单的用一个类比来说,PH7就是一套具有高完成度,针对特定领域,具备低开发门槛的超级arduino系统。试想,一套具备姿态、运动、方向、位置、大气环境、电流电压、控制输入输出等数据测量、具备强大的无线数据通讯协议(mavlink 1.0 plus)、具备参数类型及LOG类型读写存储、具备多种姿态控制,位置控制,总体能量控制(TECS)功能在内等等完备功能、经过了一定实践验证、且易于二次开发的控制代码框架,能够在科研工作及工业应用中发挥多大的作用?
目前PH7代码框架可在Stm32F429、Stm32H743为muc的单片机系统间无缝移植,下一步将拓展到国产化的GD32系列MCU。
- PH7代码框架分层结构功能:
- 驱动层
- 驱动功能管理
- 陀螺仪驱动,获取3轴原始角速度数据及元件温度数据
- 加速度计驱动,获取3轴原始加速度数据及元件温度数据
- 磁强计驱动,获取3轴磁强数据
- 气压计驱动,获取气压及大气温度数据
- 空速计驱动,获取差分气压数据
- 高速高精度AD转换芯片驱动,获取高精度高速电压数据
- Flash存储芯片驱动,提供对Flash存储芯片的数据读写
- 高精度定时器驱动,为PH7框架提供精确到us级的各种时间数据
- GPS驱动,获取各种GPS位置、运行、时间数据
- PWM 驱动,提供PWM输入控制信号读取,PWM输出信号控制功能
- USART、I2C、SPI驱动,提供MCU接口数据读写功能
- LED及其他GPIO驱动
- 框架层
- 框架层功能管理
- 调试及调试信息引擎,为整个PH7框架提供调试及字符调试信息服务
- 时间功能服务,提供各种时刻及时间段数据获取功能
- Loop 循环频率控制,提供各种频率的loop 控制及倍频控制
- Message Loop引擎,为PH7框架提供 SendMessage 及消息响应服务
- 数据总线(bus),为整个PH7框架提供具有线程的数据传输体系
- 遥测通讯协议,通过mavlink协议实现上行/下行数据传输
- 参数存储,使用板载Flash芯片提供参数类数据的读写存储
- 航点存储,使用板载Flash芯片提供航点类数据的读写存储
- LOG数据操作,使用使用板载Flash芯片提供LOG数据高速读写