garfield

【原创】飞思卡尔MQX RTOS在电机控制中的应用

0
阅读(3157)

 

MQX 是飞思卡尔最近一直在力推的实时操作系统,飞思卡尔在mqx上可谓下了血本,不仅投入了大量的成本开发,同时也无时无刻不在宣传,现在飞思卡尔几乎所有的参考设计,开发平台都能跟mqx车上关系,今天介绍一下mqx在电机控制方面做了哪些工作。

    mqx rtos是一个实时的功能库,可以用于实时多任务的应用。 mqx rtos支持mpu应用,可与灵活的嵌入式io产品以其应用于网络、数据通信、文件管理和控制等。主要的mqx应用领域针对大型控制器,如带有以太网、USB、sdhc等外设和其他外设支持的基于arm cortex m4处理器的kinetis mcu。该系列的一些器件集成了pwm模块和为电机控制设计的其他外设模块。尤其是kinetis kv系列是专门为电机控制和电源产品设计的。

    运动控制系统越来越复杂,对控制算法的要求也越来越高,导致嵌入式系统的开发压力越来越大,一个完整的电机控制系统不仅要有采样,测量,算法实现,pwm输出等核心内容,还需要通信,显示,存储以及更加复杂的人机交互,这些需求迫切的要求将实时操作系统引入电机控制应用。

    典型的基于mqx的电机控制应用可控制一个或多个电机,还支持专用传感器和其他应用功能,如以太网和usb连接,显示控制和用户界面。在时间调度方面,高级电机控制应用本质上需要快速系统响应的恒定采样频率,如acim和pmsm正弦电机控制,和异步事件,如bldc电机换向控制。而最关键事件的响应需求通常在一到几十微秒之间。mqx rtos是一个具有动态分配和posix调度的复杂系统,其系统调度器的时间片默认时长为5微秒,显然,电机控制需要支持高优先级的中断来处理。

    基于mqx rtos的电机控制实现取决于电机类型、控制算法以及应用需求。每个电机控制技术由周期任务和异步任务组成。

image

    在mqx rtos下编写电机控制应用程序通常将作为一个专用电机控制驱动程序来处理,独立于mqx的任务处理。电机控制过程由一个或多个内核中断或mqx最高优先级中断任务提供的。电机控制处理软件也与标准的非操作系统方法相似。mqx rtos用于电机控制的初始化,和非电机控制有关的任务,如以太网通信,这是为确保时间关键的电机控制任务始终按时执行,而基于mqx的任务则在剩余的时间内完成。

    对于mqx控制应用,飞思卡尔可提供硬件平台,mqx软件安装,应用笔记以及参考设计。飞思卡尔的应用文档an4254介绍了mqx操作系统的电机控制。drm135介绍了使用k60n512微控制器的基于mqx rtos的三相bldc电机无传感器控制应用。