主权项 |
一种基于双MCU实现的飞行机器人系统,其特征在于,所述系统包括电源模块、通信模块、第一微控制器单元、第二微控制器单元和双口RAM;其中,所述电源模块分别与所述通信模块、第一微控制器单元、第二微控制器单元和双口RAM连接,用于为整个飞行机器人的正常工作提供能量;所述通信模块分别与所述电源模块和第一微控制器单元连接;用于将飞行机器人的实时状态信息发送至远端PC,对飞行机器人的工作状态进行实施监视;所述第一微控制器单元分别与所述通信模块、电源模块和双口RAM连接,第一微控制器单元与双口RAM进行双向通信,用于整个系统的控制与任务调度;所述第二微控制器单元分别与所述电源模块和双口RAM连接,第二微控制器单元与双口RAM进行双向通信,用于实时解算当前飞行姿态;所述双口RAM分别与所述电源模块、第一微控制器单元和第二微控制器单元连接,使第一微控制器单元和第二微控制器单元可以按照各自的速度对数据进行处理和交换;所述双口RAM包括邮箱Mail Box、上行数据区、下行数据区;邮箱Mail Box用于两个微控制器单元MCU在信息交互时产生中断,防止出现双口RAM中的传感器数据与已获得的姿态解算结果数据不是在同一软件运行周期内计算的问题;第一微控制器单元将采集到的传感器数据放入双口RAM的下行数据区;查看BUSY_R信号判断第二微控制器单元是否在向上行数据区写入数据,若否,则读取其中存储的经过解算获得的飞行机器人空间姿态数据;此时,查看BUSY_L信号判断第二微控制器单元是否在向下行数据区写入数据,若否,则操作邮箱Mail Box产生中断,通知第二微控制器单元读取双口RAM中的传感器数据,进行空中姿态解算;第二微控制器单元将解算获得的飞行机器人空中姿态数据存放于双口RAM的上行数据区;查看BUSY_L信号判断第一微控制器单元是否在向下行数据区写入数据,若否,则读取其中存储的传感器数据;此时,查看BUSY_R信号判断第一微控制器单元是否在向上行数据区写入数据,若否,则操作邮箱Mail Box产生中断,通知第一微控制器单元读取双口RAM中的空中姿态数据,如此循环往复。 |